diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2024-05-16 16:37:39 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2024-05-16 16:37:39 +0200 |
| commit | 544f338b8e9ea010eccedbfa24bee5c97b7d3621 (patch) | |
| tree | 029154f6de1a78c73a6aa9a5dfad2c16fb8928bd | |
| parent | b2ca9b477856cd8ea284389b91d718e8ea814d7b (diff) | |
walls, msvc building
| -rw-r--r-- | .vscode/settings.json | 3 | ||||
| -rw-r--r-- | data/imgs/objects/floormat1.png | bin | 0 -> 2549551 bytes | |||
| -rw-r--r-- | data/imgs/objects/floormat2.png | bin | 0 -> 2045573 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall10.png | bin | 0 -> 56589 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall3.png | bin | 0 -> 71779 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall4.png | bin | 0 -> 153885 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall5.png | bin | 0 -> 121043 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall6.png | bin | 0 -> 57123 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall7.png | bin | 0 -> 140136 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall8.png | bin | 0 -> 495 bytes | |||
| -rw-r--r-- | data/imgs/objects/metal_wall9.png | bin | 0 -> 4809 bytes | |||
| -rw-r--r-- | data/maps/map1.dat | bin | 8384008 -> 8384008 bytes | |||
| -rw-r--r-- | data/psd/floormat1.psd | bin | 0 -> 10509220 bytes | |||
| -rw-r--r-- | data/psd/floormat2.psd | bin | 0 -> 8564143 bytes | |||
| -rw-r--r-- | data/psd/metal_wall10.psd | bin | 0 -> 1889148 bytes | |||
| -rw-r--r-- | data/psd/metal_wall4.psd | bin | 0 -> 3663122 bytes | |||
| -rw-r--r-- | data/psd/metal_wall5.psd | bin | 0 -> 3894810 bytes | |||
| -rw-r--r-- | data/psd/metal_wall6.psd | bin | 0 -> 461287 bytes | |||
| -rw-r--r-- | data/psd/metal_wall8.psd | bin | 0 -> 43186 bytes | |||
| -rw-r--r-- | data/psd/metal_wall9.psd | bin | 0 -> 165687 bytes | |||
| -rw-r--r-- | include/asset_defs.h | 10 | ||||
| -rw-r--r-- | include/audio.h | 2 | ||||
| -rw-r--r-- | include/game.h | 1 | ||||
| -rw-r--r-- | include/menu.h | 13 | ||||
| -rw-r--r-- | include/objects.h | 60 | ||||
| -rw-r--r-- | include/zombies.h | 3 | ||||
| -rw-r--r-- | libs/msvc/SDL2_mixer.dll | bin | 0 -> 306688 bytes | |||
| -rw-r--r-- | libs/msvc/SDL2_mixer.lib | bin | 0 -> 22068 bytes | |||
| -rw-r--r-- | main.c | 12 | ||||
| -rw-r--r-- | msvc.bat | 11 | ||||
| -rw-r--r-- | src/allocator.c | 2 | ||||
| -rw-r--r-- | src/asset_defs.c | 10 | ||||
| -rw-r--r-- | src/editor.c | 6 | ||||
| -rw-r--r-- | src/game.c | 80 | ||||
| -rw-r--r-- | src/objects.c | 22 | ||||
| -rw-r--r-- | src/zombies.c | 2 |
36 files changed, 170 insertions, 67 deletions
diff --git a/.vscode/settings.json b/.vscode/settings.json index 928ce35..43dcada 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,6 +6,7 @@ "xutility": "c", "editor.h": "c", "glass_doors.h": "c", - "*.rh": "c" + "*.rh": "c", + "sdl_mixer.h": "c" } }
\ No newline at end of file diff --git a/data/imgs/objects/floormat1.png b/data/imgs/objects/floormat1.png Binary files differnew file mode 100644 index 0000000..285794b --- /dev/null +++ b/data/imgs/objects/floormat1.png diff --git a/data/imgs/objects/floormat2.png b/data/imgs/objects/floormat2.png Binary files differnew file mode 100644 index 0000000..b343733 --- /dev/null +++ b/data/imgs/objects/floormat2.png diff --git a/data/imgs/objects/metal_wall10.png b/data/imgs/objects/metal_wall10.png Binary files differnew file mode 100644 index 0000000..dddc7b2 --- /dev/null +++ b/data/imgs/objects/metal_wall10.png diff --git a/data/imgs/objects/metal_wall3.png b/data/imgs/objects/metal_wall3.png Binary files differnew file mode 100644 index 0000000..979f69a --- /dev/null +++ b/data/imgs/objects/metal_wall3.png diff --git a/data/imgs/objects/metal_wall4.png b/data/imgs/objects/metal_wall4.png Binary files differnew file mode 100644 index 0000000..a1232e2 --- /dev/null +++ b/data/imgs/objects/metal_wall4.png diff --git a/data/imgs/objects/metal_wall5.png b/data/imgs/objects/metal_wall5.png Binary files differnew file mode 100644 index 0000000..52fde82 --- /dev/null +++ b/data/imgs/objects/metal_wall5.png diff --git a/data/imgs/objects/metal_wall6.png b/data/imgs/objects/metal_wall6.png Binary files differnew file mode 100644 index 0000000..c418985 --- /dev/null +++ b/data/imgs/objects/metal_wall6.png diff --git a/data/imgs/objects/metal_wall7.png b/data/imgs/objects/metal_wall7.png Binary files differnew file mode 100644 index 0000000..876d193 --- /dev/null +++ b/data/imgs/objects/metal_wall7.png diff --git a/data/imgs/objects/metal_wall8.png b/data/imgs/objects/metal_wall8.png Binary files differnew file mode 100644 index 0000000..25bc8da --- /dev/null +++ b/data/imgs/objects/metal_wall8.png diff --git a/data/imgs/objects/metal_wall9.png b/data/imgs/objects/metal_wall9.png Binary files differnew file mode 100644 index 0000000..42dfa4f --- /dev/null +++ b/data/imgs/objects/metal_wall9.png diff --git a/data/maps/map1.dat b/data/maps/map1.dat Binary files differindex d159157..e01822a 100644 --- a/data/maps/map1.dat +++ b/data/maps/map1.dat diff --git a/data/psd/floormat1.psd b/data/psd/floormat1.psd Binary files differnew file mode 100644 index 0000000..2865e3f --- /dev/null +++ b/data/psd/floormat1.psd diff --git a/data/psd/floormat2.psd b/data/psd/floormat2.psd Binary files differnew file mode 100644 index 0000000..06c4900 --- /dev/null +++ b/data/psd/floormat2.psd diff --git a/data/psd/metal_wall10.psd b/data/psd/metal_wall10.psd Binary files differnew file mode 100644 index 0000000..83d8b4c --- /dev/null +++ b/data/psd/metal_wall10.psd diff --git a/data/psd/metal_wall4.psd b/data/psd/metal_wall4.psd Binary files differnew file mode 100644 index 0000000..96c1a6f --- /dev/null +++ b/data/psd/metal_wall4.psd diff --git a/data/psd/metal_wall5.psd b/data/psd/metal_wall5.psd Binary files differnew file mode 100644 index 0000000..1312f19 --- /dev/null +++ b/data/psd/metal_wall5.psd diff --git a/data/psd/metal_wall6.psd b/data/psd/metal_wall6.psd Binary files differnew file mode 100644 index 0000000..248526e --- /dev/null +++ b/data/psd/metal_wall6.psd diff --git a/data/psd/metal_wall8.psd b/data/psd/metal_wall8.psd Binary files differnew file mode 100644 index 0000000..b1b5a9a --- /dev/null +++ b/data/psd/metal_wall8.psd diff --git a/data/psd/metal_wall9.psd b/data/psd/metal_wall9.psd Binary files differnew file mode 100644 index 0000000..4f2ce28 --- /dev/null +++ b/data/psd/metal_wall9.psd diff --git a/include/asset_defs.h b/include/asset_defs.h index 23610b4..0d27bbe 100644 --- a/include/asset_defs.h +++ b/include/asset_defs.h @@ -101,6 +101,16 @@ image* img_painting7; image* img_painting8; image* img_painting9; image* img_painting10; +image* img_floormat1; +image* img_floormat2; +image* img_metal_wall3; +image* img_metal_wall4; +image* img_metal_wall5; +image* img_metal_wall6; +image* img_metal_wall7; +image* img_metal_wall8; +image* img_metal_wall9; +image* img_metal_wall10; // Throwables image* img_grenade; diff --git a/include/audio.h b/include/audio.h index 8319305..db979df 100644 --- a/include/audio.h +++ b/include/audio.h @@ -45,7 +45,7 @@ typedef struct t_audio_event { #define MAX_AUDIO_EVENTS (NUM_AUDIO_CHANNELS) audio_event audio_events[MAX_AUDIO_EVENTS] = {0}; int max_audio_events = MAX_AUDIO_EVENTS; -vec3f global_audio_source_position =(vec3f){-1,-1,-1}; +vec3f global_audio_source_position; void play_music(Mix_Music* music); void add_throwable_audio_event_to_queue(audio_event_type event, throwable_type throwable, u32 playerid, vec3f position); diff --git a/include/game.h b/include/game.h index 88fd0e1..20a7437 100644 --- a/include/game.h +++ b/include/game.h @@ -40,5 +40,6 @@ game global_state = {GAMESTATE_IDLE,DISCONNECTED,0,0}; void init_game(); void start_solo_game(); bool connect_to_game(char* ip, char* port); +void fill_game_structs(); #endif
\ No newline at end of file diff --git a/include/menu.h b/include/menu.h index fd74425..1623d51 100644 --- a/include/menu.h +++ b/include/menu.h @@ -7,18 +7,7 @@ extern int current_res_index; extern bool is_fullscreen; -vec2 available_resolutions[] = { - (vec2){1366, 769}, - (vec2){1440, 900}, - (vec2){1600, 900}, - (vec2){1920, 1080}, - (vec2){2560, 1080}, - (vec2){2560, 1440}, - (vec2){2560, 1600}, - (vec2){3440, 1440}, - (vec2){3840, 2160}, - (vec2){5120, 1440}, -}; +vec2 available_resolutions[10]; void update_menu(platform_window* window); diff --git a/include/objects.h b/include/objects.h index 9d22942..cb42a04 100644 --- a/include/objects.h +++ b/include/objects.h @@ -69,6 +69,16 @@ typedef enum t_object_type { OBJECT_PAINTING8 = 45, OBJECT_PAINTING9 = 46, OBJECT_PAINTING10 = 47, + OBJECT_FLOORMAT1 = 48, + OBJECT_FLOORMAT2 = 49, + OBJECT_METAL_WALL3 = 50, + OBJECT_METAL_WALL4 = 51, + OBJECT_METAL_WALL5 = 52, + OBJECT_METAL_WALL6 = 53, + OBJECT_METAL_WALL7 = 54, + OBJECT_METAL_WALL8 = 55, + OBJECT_METAL_WALL9 = 56, + OBJECT_METAL_WALL10 = 57, OBJECT_END, } object_type; @@ -103,55 +113,7 @@ typedef struct t_box { } box; // @NEWOBJECT -object object_dict[OBJECT_END] = { - {0,(vec3f){0, 0, 0},{1,3,0.5f},OBJECT_SPACE_CONTROL_PANEL, 1}, - {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_SPACE_WINDOW, 1}, - {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL, 1}, - {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL2, 1}, - {0,(vec3f){0, 0, 0},{3,1,0.5f},OBJECT_SPACE_CONTROL_PANEL2, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CHAIR_UP, 1}, - {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_SPACE_WINDOW_H, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5},OBJECT_ZOMBIE_SPAWNER, 1}, - {0,(vec3f){0, 0, 0},{1,1,0},OBJECT_LAMP_EAST, 0}, - {0,(vec3f){0, 0, 0},{3,1,0.5},OBJECT_METAL_TABLE_H, 1}, - {0,(vec3f){0, 0, 0},{2,2,0.5},OBJECT_CANTINE_GLASS, 1}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_GLASS_DOOR_H, 0}, - {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_LAMP_SOUTH, 0}, - {0,(vec3f){0, 0, 0},{3,7,0.5f},OBJECT_BIG_CONTROL_PANEL, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CHAIR_DOWN, 1}, - {0,(vec3f){0, 0, 0},{2,1,1.0f},OBJECT_COMPUTER_RACK, 1}, - {0,(vec3f){0, 0, 0},{8,2,1.0f},OBJECT_GENERATOR, 1}, - {0,(vec3f){0, 0, 0},{1,4,0.5f},OBJECT_SCHOOL_TABLE, 1}, - {0,(vec3f){0, 0, 0},{2,1,0.5f},OBJECT_SCHOOL_BENCH, 1}, - {0,(vec3f){0, 0, 0},{1,1,1.0f},OBJECT_LOCKER, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_BAR_H, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_BAR_V, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_BAR_HV, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT1, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT2, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT3, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT4, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_WALL1, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_WALL2, 1}, - {0,(vec3f){0, 0, 0},{1,1,1.0f},OBJECT_CLUB_WALL3, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT5, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT6, 1}, - {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT7, 1}, - {0,(vec3f){0, 0, 0},{13,3,0},OBJECT_BOWLING_LANE, 0}, - {0,(vec3f){0, 0, 0},{2,3,1},OBJECT_BOWLING_LANE_END, 1}, - {0,(vec3f){0, 0, 0},{1,2,1},OBJECT_GLASS_DOOR_V, 0}, - {0,(vec3f){0, 0, 0},{3,1,0.5f},OBJECT_BOWLING_MACHINE, 1}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING1, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING2, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING3, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING4, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING5, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING6, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING7, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING8, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING9, 0}, - {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING10, 0}, -}; +object object_dict[OBJECT_END]; // decoration objects laying on floor. object decoration_objects[MAX_DECORATION_OBJECTS] = {0}; diff --git a/include/zombies.h b/include/zombies.h index 85f66df..bb74d23 100644 --- a/include/zombies.h +++ b/include/zombies.h @@ -46,6 +46,9 @@ typedef struct t_spawner { // Despawn distance. #define MAX_DISTANCE_BETWEEN_ZOMBIE_AND_PLAYER 40 +// Spawners closer than this will not spawn. +#define MIN_DISTANCE_BETWEEN_ZOMBIE_AND_PLAYER 20 + #define MAX_SPAWNERS (25) spawner spawner_tiles[MAX_SPAWNERS] = {0}; diff --git a/libs/msvc/SDL2_mixer.dll b/libs/msvc/SDL2_mixer.dll Binary files differnew file mode 100644 index 0000000..5e4fef3 --- /dev/null +++ b/libs/msvc/SDL2_mixer.dll diff --git a/libs/msvc/SDL2_mixer.lib b/libs/msvc/SDL2_mixer.lib Binary files differnew file mode 100644 index 0000000..3381183 --- /dev/null +++ b/libs/msvc/SDL2_mixer.lib @@ -3,6 +3,16 @@ #define ASSET_FONT_COUNT 20 #define NUM_AUDIO_CHANNELS 64 +#include <float.h> + +#ifndef __FLT_MAX__ +#define __FLT_MAX__ FLT_MAX +#endif + +#ifndef M_PI +#define _USE_MATH_DEFINES +#endif + #include "project-base/src/project_base.h" #include "include/SDL2/SDL_mixer.h" @@ -91,6 +101,8 @@ void handle_args(int argc, char **argv) { int main(int argc, char **argv) { + fill_game_structs(); + platform_init(argc, argv, CONFIG_DIRECTORY); is_fullscreen = settings_get_number_or_default("FULLSCRN", 1); diff --git a/msvc.bat b/msvc.bat new file mode 100644 index 0000000..1ae28c1 --- /dev/null +++ b/msvc.bat @@ -0,0 +1,11 @@ +call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 +@set OUT_DIR=build\\ +@set OUT_EXE=zombies +@set SOURCES=main.c +@set LIBS=opengl32.lib Advapi32.lib Shell32.lib Ole32.lib User32.lib Pathcch.lib SDL2_mixer.lib +@set FLAGS=/DMODE_DEBUG /DEBUG:FULL /Ob0 /MT /Oy- /Zi + + +cl /std:c11 /analyze:stacksize 40000 /nologo %FLAGS% /w /MD /EHsc /Isrc /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fd%OUT_DIR%/vc140.pdb /Fo%OUT_DIR%/ /link /LIBPATH:libs/msvc %LIBS% +if "%1"=="-r" call "%OUT_DIR%/%OUT_EXE%.exe" +if "%1"=="-d" call devenv "%OUT_DIR%/%OUT_EXE%.exe" diff --git a/src/allocator.c b/src/allocator.c index bddc5e5..b1989f6 100644 --- a/src/allocator.c +++ b/src/allocator.c @@ -13,7 +13,7 @@ void* allocator_alloc(allocator* al, uint64_t size) { mutex_lock(&al->mutex); if (al->cursor + size < al->size) { al->cursor += size; - void* result = al->memory + al->cursor - size; + char* result = (char*)al->memory + al->cursor - size; mutex_unlock(&al->mutex); return result; } diff --git a/src/asset_defs.c b/src/asset_defs.c index 1440e48..c814355 100644 --- a/src/asset_defs.c +++ b/src/asset_defs.c @@ -107,6 +107,16 @@ void load_assets() { // Assets loaded at match start. img_painting8 = assets_load_image_from_file("data/imgs/objects/painting8.png"); img_painting9 = assets_load_image_from_file("data/imgs/objects/painting9.png"); img_painting10 = assets_load_image_from_file("data/imgs/objects/painting10.png"); + img_floormat1 = assets_load_image_from_file("data/imgs/objects/floormat1.png"); + img_floormat2 = assets_load_image_from_file("data/imgs/objects/floormat2.png"); + img_metal_wall3 = assets_load_image_from_file("data/imgs/objects/metal_wall3.png"); + img_metal_wall4 = assets_load_image_from_file("data/imgs/objects/metal_wall4.png"); + img_metal_wall5 = assets_load_image_from_file("data/imgs/objects/metal_wall5.png"); + img_metal_wall6 = assets_load_image_from_file("data/imgs/objects/metal_wall6.png"); + img_metal_wall7 = assets_load_image_from_file("data/imgs/objects/metal_wall7.png"); + img_metal_wall8 = assets_load_image_from_file("data/imgs/objects/metal_wall8.png"); + img_metal_wall9 = assets_load_image_from_file("data/imgs/objects/metal_wall9.png"); + img_metal_wall10 = assets_load_image_from_file("data/imgs/objects/metal_wall10.png"); // Players img_gunner_black_run = assets_load_image_from_file("data/imgs/players/Black/Gunner_Black_Run.png"); diff --git a/src/editor.c b/src/editor.c index 9295d14..9eee45c 100644 --- a/src/editor.c +++ b/src/editor.c @@ -474,12 +474,16 @@ void draw_object_panel(platform_window* window) { int cols = 4; int tile_w = editor_width / cols; + static int scroll = 0; + if (_global_mouse.scroll_state == SCROLL_DOWN) scroll+=10; + if (_global_mouse.scroll_state == SCROLL_UP) scroll-=10; + int tile_start = OBJECT_NONE+1; for (int i = tile_start; i < OBJECT_END; i++) { int x = ((i-tile_start) % cols) * tile_w; int y = (start_y + ((i-tile_start) / cols)) * tile_w; - y += offset_y; + y += offset_y + scroll; image* img = get_image_from_objecttype((object_type)i); if (push_icon_button(x, y, tile_w, img, object_to_place == (object_type)i)) { @@ -119,6 +119,86 @@ void load_map() { global_state.state = GAMESTATE_LOADING_ASSETS; } +void fill_game_structs() +{ + global_audio_source_position = (vec3f){-1,-1,-1}; + + object _localobject_dict[OBJECT_END] = { + {0,(vec3f){0, 0, 0},{1,3,0.5f},OBJECT_SPACE_CONTROL_PANEL, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_SPACE_WINDOW, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL2, 1}, + {0,(vec3f){0, 0, 0},{3,1,0.5f},OBJECT_SPACE_CONTROL_PANEL2, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CHAIR_UP, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_SPACE_WINDOW_H, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5},OBJECT_ZOMBIE_SPAWNER, 1}, + {0,(vec3f){0, 0, 0},{1,1,0},OBJECT_LAMP_EAST, 0}, + {0,(vec3f){0, 0, 0},{3,1,0.5},OBJECT_METAL_TABLE_H, 1}, + {0,(vec3f){0, 0, 0},{2,2,0.5},OBJECT_CANTINE_GLASS, 1}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_GLASS_DOOR_H, 0}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_LAMP_SOUTH, 0}, + {0,(vec3f){0, 0, 0},{3,7,0.5f},OBJECT_BIG_CONTROL_PANEL, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CHAIR_DOWN, 1}, + {0,(vec3f){0, 0, 0},{2,1,1.0f},OBJECT_COMPUTER_RACK, 1}, + {0,(vec3f){0, 0, 0},{8,2,1.0f},OBJECT_GENERATOR, 1}, + {0,(vec3f){0, 0, 0},{1,4,0.5f},OBJECT_SCHOOL_TABLE, 1}, + {0,(vec3f){0, 0, 0},{2,1,0.5f},OBJECT_SCHOOL_BENCH, 1}, + {0,(vec3f){0, 0, 0},{1,1,1.0f},OBJECT_LOCKER, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_BAR_H, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_BAR_V, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_BAR_HV, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT1, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT2, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT3, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT4, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_WALL1, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_WALL2, 1}, + {0,(vec3f){0, 0, 0},{1,1,1.0f},OBJECT_CLUB_WALL3, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT5, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT6, 1}, + {0,(vec3f){0, 0, 0},{1,1,0.5f},OBJECT_CLUB_SEAT7, 1}, + {0,(vec3f){0, 0, 0},{13,3,0},OBJECT_BOWLING_LANE, 0}, + {0,(vec3f){0, 0, 0},{2,3,1},OBJECT_BOWLING_LANE_END, 1}, + {0,(vec3f){0, 0, 0},{1,2,1},OBJECT_GLASS_DOOR_V, 0}, + {0,(vec3f){0, 0, 0},{3,1,0.5f},OBJECT_BOWLING_MACHINE, 1}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING1, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING2, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING3, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING4, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING5, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING6, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING7, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING8, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING9, 0}, + {0,(vec3f){0, 0, 0},{2,1,1},OBJECT_PAINTING10, 0}, + {0,(vec3f){0, 0, 0},{10,10,0},OBJECT_FLOORMAT1, 0}, + {0,(vec3f){0, 0, 0},{10,10,0},OBJECT_FLOORMAT2, 0}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL3, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL4, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL5, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL6, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL7, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL8, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL9, 1}, + {0,(vec3f){0, 0, 0},{1,1,1},OBJECT_METAL_WALL10, 1}, + }; + memcpy(object_dict, _localobject_dict, sizeof(_localobject_dict)); + + vec2 _local_available_resolutions[] = { + (vec2){1366, 769}, + (vec2){1440, 900}, + (vec2){1600, 900}, + (vec2){1920, 1080}, + (vec2){2560, 1080}, + (vec2){2560, 1440}, + (vec2){2560, 1600}, + (vec2){3440, 1440}, + (vec2){3840, 2160}, + (vec2){5120, 1440}, + }; + memcpy(available_resolutions, _local_available_resolutions, sizeof(_local_available_resolutions)); +} + void init_game() { log_info("STATE: GAMESTATE_IDLE"); global_state.state = GAMESTATE_IDLE; diff --git a/src/objects.c b/src/objects.c index 2574ed7..72535f6 100644 --- a/src/objects.c +++ b/src/objects.c @@ -74,7 +74,7 @@ object get_object_at_tile(float x, float y) { void add_object(object obj) { object existing_obj = get_object_at_tile(obj.position.x, obj.position.y); - if (existing_obj.active) { + if (existing_obj.active && existing_obj.collision) { log_info("Space occupied, cannot place object."); return; } @@ -191,6 +191,26 @@ image* get_image_from_objecttype(object_type tile) { return img_painting9; case OBJECT_PAINTING10: return img_painting10; + case OBJECT_FLOORMAT1: + return img_floormat1; + case OBJECT_FLOORMAT2: + return img_floormat2; + case OBJECT_METAL_WALL3: + return img_metal_wall3; + case OBJECT_METAL_WALL4: + return img_metal_wall4; + case OBJECT_METAL_WALL5: + return img_metal_wall5; + case OBJECT_METAL_WALL6: + return img_metal_wall6; + case OBJECT_METAL_WALL7: + return img_metal_wall7; + case OBJECT_METAL_WALL8: + return img_metal_wall8; + case OBJECT_METAL_WALL9: + return img_metal_wall9; + case OBJECT_METAL_WALL10: + return img_metal_wall10; default: return 0; } diff --git a/src/zombies.c b/src/zombies.c index 9826ec2..fe892b4 100644 --- a/src/zombies.c +++ b/src/zombies.c @@ -213,7 +213,7 @@ void update_spawners_server() { float dist = 0.0f; player p = get_closest_player_to_tile_x(spawner.position.x, spawner.position.y, &dist); - if (dist >= MAX_DISTANCE_BETWEEN_ZOMBIE_AND_PLAYER && p.id != -1) { + if ((dist <= MIN_DISTANCE_BETWEEN_ZOMBIE_AND_PLAYER || dist >= MAX_DISTANCE_BETWEEN_ZOMBIE_AND_PLAYER) && p.id != -1) { continue; } |
