From 338e0a1de0f9fcb7e2a2d85e97afb67a0da908bd Mon Sep 17 00:00:00 2001 From: Masashi Date: Wed, 17 Dec 2025 20:50:59 +0530 Subject: [PATCH] rename --- soup/{main.sui => example.sui} | 0 soup/main.c | 260 --------------------------------- soup/main.o | Bin 78448 -> 0 bytes 3 files changed, 260 deletions(-) rename soup/{main.sui => example.sui} (100%) delete mode 100644 soup/main.c delete mode 100755 soup/main.o diff --git a/soup/main.sui b/soup/example.sui similarity index 100% rename from soup/main.sui rename to soup/example.sui diff --git a/soup/main.c b/soup/main.c deleted file mode 100644 index fdd6c5c..0000000 --- a/soup/main.c +++ /dev/null @@ -1,260 +0,0 @@ -#include "libsuicmez/libsuicmez.h" -#include -#include -#include -#include - -void* gc_alloc(const TypeInfo* type, size_t size); -void gc_init(void); -void gc_shutdown(void); - -// Helper for allocating arrays -static void* suic_alloc_array(const TypeInfo* type, size_t elem_size, size_t len, void* init_data) { - void* ptr = gc_alloc(type, elem_size * len); - if (init_data) memcpy(ptr, init_data, elem_size * len); - return ptr; -} - -// Helper for allocating structs -static void* suic_alloc_struct(const TypeInfo* type, size_t size, void* init_data) { - void* ptr = gc_alloc(type, size); - if (init_data) memcpy(ptr, init_data, size); - return ptr; -} - - - - -int suic_main(void); - - -int suic_main(void) { - suic_enable_msaa_4x(); - suic_init_window(1280, 720, suic_alloc_array(NULL, sizeof(char), 112, "Sui FPS Game - WASD to move, Mouse to look, SPACE to jump, SHIFT to sprint, F1 cursor, F2 hide FPS, F3 show FPS")); - suic_show_fps_meter((suic_vec2){ .x = 10.000000, .y = 10.000000 }); - suic_disable_cursor(); - suic_ode_init(); - void* world = suic_ode_world_create(); - void* null_space = NULL; - void* space = suic_ode_simple_space_create(null_space); - suic_ode_world_set_gravity(world, 0.000000, -9.810000, 0.000000); - void* contactgroup = suic_ode_joint_group_create(0); - void* ground_geom = suic_ode_create_plane_geom(space, 0.000000, 1.000000, 0.000000, 0.000000); - void* player_body = suic_ode_body_create(world); - suic_ode_body_set_position(player_body, 0.000000, 2.000000, 0.000000); - void* player_geom = suic_ode_create_box_geom(space, 0.800000, 1.600000, 0.800000); - suic_ode_geom_set_body(player_geom, player_body); - suic_ode_body_set_box_mass(player_body, 1.000000, 0.800000, 1.600000, 0.800000); - void* cube1_body = suic_ode_body_create(world); - suic_ode_body_set_position(cube1_body, 0.000000, 1.000000, -5.000000); - suic_ode_body_set_box_mass(cube1_body, 1.000000, 1.000000, 1.000000, 1.000000); - void* cube1_geom = suic_ode_create_box_geom(space, 1.000000, 1.000000, 1.000000); - suic_ode_geom_set_body(cube1_geom, cube1_body); - void* cube2_body = suic_ode_body_create(world); - suic_ode_body_set_position(cube2_body, 5.000000, 1.000000, -3.000000); - suic_ode_body_set_box_mass(cube2_body, 1.000000, 1.000000, 1.000000, 1.000000); - void* cube2_geom = suic_ode_create_box_geom(space, 1.000000, 1.000000, 1.000000); - suic_ode_geom_set_body(cube2_geom, cube2_body); - void* cube3_body = suic_ode_body_create(world); - suic_ode_body_set_position(cube3_body, -5.000000, 1.000000, -3.000000); - suic_ode_body_set_box_mass(cube3_body, 1.000000, 1.000000, 1.000000, 1.000000); - void* cube3_geom = suic_ode_create_box_geom(space, 1.000000, 1.000000, 1.000000); - suic_ode_geom_set_body(cube3_geom, cube3_body); - float forward_x = 0.000000; - float forward_y = 0.000000; - float forward_z = -1.000000; - float right_x = 1.000000; - float right_y = 0.000000; - float right_z = 0.000000; - float camera_x = 0.000000; - float camera_y = 2.000000; - float camera_z = 0.000000; - float target_x = 0.000000; - float target_y = 2.000000; - float target_z = -5.000000; - float yaw = 0.000000; - float pitch = 0.000000; - float mouse_sensitivity = 0.003000; - int fps_meter_visible = 1; - char** inventory = suic_alloc_array(NULL, sizeof(char*), 3, (char*[]){suic_alloc_array(NULL, sizeof(char), 6, "Sword"), suic_alloc_array(NULL, sizeof(char), 7, "Shield"), suic_alloc_array(NULL, sizeof(char), 7, "Potion")}); - bool inventory_open = false; - float cube1_x = 0.000000; - float cube1_y = 0.000000; - float cube1_z = 0.000000; - float cube2_x = 0.000000; - float cube2_y = 0.000000; - float cube2_z = 0.000000; - float cube3_x = 0.000000; - float cube3_y = 0.000000; - float cube3_z = 0.000000; - float player_x = 0.000000; - float player_y = 2.000000; - float player_z = 0.000000; - while ((suic_window_should_close() == false)) { - float delta_time = suic_get_frame_time(); - float mouse_delta_x = suic_get_mouse_delta_x(); - float mouse_delta_y = suic_get_mouse_delta_y(); - yaw = (yaw + (mouse_delta_x * mouse_sensitivity)); - pitch = (pitch - (mouse_delta_y * mouse_sensitivity)); - if ((pitch > 1.500000)) { - pitch = 1.500000; - } - if ((pitch < -1.500000)) { - pitch = -1.500000; - } - float cos_yaw = cos(yaw); - float sin_yaw = sin(yaw); - float cos_pitch = cos(pitch); - float sin_pitch = sin(pitch); - forward_x = sin_yaw; - forward_y = sin_pitch; - forward_z = -cos_yaw; - right_x = cos_yaw; - right_y = 0.000000; - right_z = sin_yaw; - float move_speed = 5.000000; - float target_vx = 0.000000; - float target_vz = 0.000000; - if ((suic_is_key_down(KEY_W) != 0)) { - target_vx = (target_vx + (forward_x * move_speed)); - target_vz = (target_vz + (forward_z * move_speed)); - } - if ((suic_is_key_down(KEY_S) != 0)) { - target_vx = (target_vx - (forward_x * move_speed)); - target_vz = (target_vz - (forward_z * move_speed)); - } - if ((suic_is_key_down(KEY_D) != 0)) { - target_vx = (target_vx + (right_x * move_speed)); - target_vz = (target_vz + (right_z * move_speed)); - } - if ((suic_is_key_down(KEY_A) != 0)) { - target_vx = (target_vx - (right_x * move_speed)); - target_vz = (target_vz - (right_z * move_speed)); - } - float current_vx = 0.000000; - float current_vy = 0.000000; - float current_vz = 0.000000; - suic_ode_body_get_linear_vel(player_body, ¤t_vx, ¤t_vy, ¤t_vz); - if ((suic_is_jump_pressed() != 0)) { - float dummy_x = 0.000000; - float current_y = 0.000000; - float dummy_z = 0.000000; - suic_ode_body_get_position(player_body, &dummy_x, ¤t_y, &dummy_z); - if ((current_y <= 1.300000)) { - current_vy = 8.000000; - } - } - suic_ode_body_set_linear_vel(player_body, target_vx, current_vy, target_vz); - suic_ode_space_collide(world, space, contactgroup); - if ((delta_time > 0.000000)) { - suic_ode_world_step(world, delta_time); - } - suic_ode_joint_group_empty(contactgroup); - suic_ode_body_get_position(player_body, &player_x, &player_y, &player_z); - if (((suic_is_key_pressed(KEY_EQUAL) != 0) || (suic_is_key_pressed(KEY_KP_ADD) != 0))) { - mouse_sensitivity = (mouse_sensitivity + 0.001000); - } - if (((suic_is_key_pressed(KEY_MINUS) != 0) || (suic_is_key_pressed(KEY_KP_SUBTRACT) != 0))) { - mouse_sensitivity = (mouse_sensitivity - 0.001000); - if ((mouse_sensitivity < 0.001000)) { - mouse_sensitivity = 0.001000; - } - } - if ((suic_is_key_pressed(KEY_F1) != 0)) { - suic_enable_cursor(); - } - if ((suic_is_key_pressed(KEY_F2) != 0)) { - suic_hide_fps_meter(); - fps_meter_visible = 0; - } - if ((suic_is_key_pressed(KEY_F3) != 0)) { - suic_show_fps_meter((suic_vec2){ .x = 10.000000, .y = 10.000000 }); - fps_meter_visible = 1; - } - if ((suic_is_key_pressed(KEY_I) != 0)) { - if (inventory_open) { - inventory_open = false; - suic_disable_cursor(); - } else { - inventory_open = true; - suic_enable_cursor(); - } - } - camera_x = (player_x + (forward_x * 0.500000)); - camera_y = (player_y + 0.900000); - camera_z = (player_z + (forward_z * 0.500000)); - target_x = (player_x + (forward_x * 5.000000)); - target_y = (player_y + (forward_y * 5.000000)); - target_z = (player_z + (forward_z * 5.000000)); - suic_ode_body_get_position(cube1_body, &cube1_x, &cube1_y, &cube1_z); - suic_ode_body_get_position(cube2_body, &cube2_x, &cube2_y, &cube2_z); - suic_ode_body_get_position(cube3_body, &cube3_x, &cube3_y, &cube3_z); - suic_begin_drawing(); - suic_clear_background(135, 206, 235, 255); - suic_begin_mode3d(camera_x, camera_y, camera_z, target_x, target_y, target_z, 0.000000, 1.000000, 0.000000, 45.000000, 0); - suic_draw_cube(cube1_x, cube1_y, cube1_z, 1.000000, 1.000000, 1.000000, 255, 0, 0, 255); - suic_draw_cube_wires(cube1_x, cube1_y, cube1_z, 1.000000, 1.000000, 1.000000, 0, 0, 0, 255); - suic_draw_cube(cube2_x, cube2_y, cube2_z, 1.000000, 1.000000, 1.000000, 0, 255, 0, 255); - suic_draw_cube_wires(cube2_x, cube2_y, cube2_z, 1.000000, 1.000000, 1.000000, 0, 0, 0, 255); - suic_draw_cube(cube3_x, cube3_y, cube3_z, 1.000000, 1.000000, 1.000000, 0, 0, 255, 255); - suic_draw_cube_wires(cube3_x, cube3_y, cube3_z, 1.000000, 1.000000, 1.000000, 0, 0, 0, 255); - suic_rl_push_matrix(); - suic_rl_translate_f(player_x, player_y, player_z); - suic_rl_rotate_f(((-yaw * 180.000000) / 3.141590), 0.000000, 1.000000, 0.000000); - suic_draw_cube(0.000000, 0.000000, 0.000000, 0.800000, 1.600000, 0.800000, 255, 255, 0, 255); - suic_draw_cube_wires(0.000000, 0.000000, 0.000000, 0.800000, 1.600000, 0.800000, 0, 0, 0, 255); - suic_rl_pop_matrix(); - suic_end_mode3d(); - suic_draw_text(suic_alloc_array(NULL, sizeof(char), 2, "N"), 1260, 20, 20, 255, 255, 255, 255); - suic_draw_line(1270, 40, 1270, 60, 255, 255, 255, 255); - suic_draw_rectangle(1100, 20, 150, 150, 0, 0, 0, 128); - suic_draw_rectangle_lines(1100, 20, 150, 150, 255, 255, 255, 128); - int minimap_center_x = 1175; - int minimap_center_y = 95; - suic_draw_circle(minimap_center_x, minimap_center_y, 3.000000, 255, 255, 0, 128); - if (inventory_open) { - suic_draw_rectangle(200, 100, 400, 300, 0, 0, 0, 200); - suic_draw_text(suic_alloc_array(NULL, sizeof(char), 10, "Inventory"), 220, 120, 24, 255, 255, 255, 255); - suic_draw_text(suic_alloc_array(NULL, sizeof(char), 6, "Sword"), 220, 160, 18, 200, 200, 200, 255); - suic_draw_text(suic_alloc_array(NULL, sizeof(char), 7, "Shield"), 220, 190, 18, 200, 200, 200, 255); - suic_draw_text(suic_alloc_array(NULL, sizeof(char), 7, "Potion"), 220, 220, 18, 200, 200, 200, 255); - suic_draw_text(suic_alloc_array(NULL, sizeof(char), 17, "Press I to close"), 220, 350, 16, 150, 150, 150, 255); - } - suic_draw_rectangle(20, 680, 200, 20, 255, 0, 0, 128); - suic_draw_rectangle(20, 680, 150, 20, 0, 255, 0, 128); - int screen_width = 1280; - int screen_height = 720; - int crosshair_x = (screen_width / 2); - int crosshair_y = (screen_height / 2); - suic_draw_line((crosshair_x - 10), crosshair_y, (crosshair_x + 10), crosshair_y, 255, 255, 255, 255); - suic_draw_line(crosshair_x, (crosshair_y - 10), crosshair_x, (crosshair_y + 10), 255, 255, 255, 255); - suic_end_drawing(); - } - suic_ode_geom_destroy(cube3_geom); - suic_ode_body_destroy(cube3_body); - suic_ode_geom_destroy(cube2_geom); - suic_ode_body_destroy(cube2_body); - suic_ode_geom_destroy(cube1_geom); - suic_ode_body_destroy(cube1_body); - suic_ode_geom_destroy(player_geom); - suic_ode_body_destroy(player_body); - suic_ode_geom_destroy(ground_geom); - suic_ode_joint_group_destroy(contactgroup); - suic_ode_space_destroy(space); - suic_ode_world_destroy(world); - suic_ode_close(); - suic_close_window(); - return 0; -} - -int main(int argc, char* argv[]) { - // Initialize GC - gc_init(); - // init globals - // init event loop - int result = suic_main(); - // Shutdown GC - gc_shutdown(); - return result; -} - diff --git a/soup/main.o b/soup/main.o deleted file mode 100755 index 0511bc5c8029eee88f438fd01a740b04736e2a72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78448 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 XE!SeaKVB*SiFX^$O9L4Kr_TQZi5-_u