diff options
| -rw-r--r-- | data/imgs/objects/big_control_panel.png | bin | 0 -> 57176 bytes | |||
| -rw-r--r-- | data/imgs/objects/chair_down.png | bin | 0 -> 12461 bytes | |||
| -rw-r--r-- | data/imgs/objects/computer_rack.png | bin | 0 -> 20919 bytes | |||
| -rw-r--r-- | data/imgs/objects/lamp_south.png | bin | 0 -> 6329 bytes | |||
| -rw-r--r-- | data/maps/map1.dat | bin | 8384008 -> 8384008 bytes | |||
| -rw-r--r-- | data/psd/big_control_panel.psd | bin | 0 -> 393041 bytes | |||
| -rw-r--r-- | data/psd/chair_down.psd | bin | 0 -> 76351 bytes | |||
| -rw-r--r-- | data/psd/computer_rack.psd | bin | 0 -> 205027 bytes | |||
| -rw-r--r-- | data/psd/lamp_south.psd | bin | 0 -> 32764 bytes | |||
| -rw-r--r-- | include/asset_defs.h | 4 | ||||
| -rw-r--r-- | include/objects.h | 10 | ||||
| -rw-r--r-- | main.c | 2 | ||||
| -rw-r--r-- | src/asset_defs.c | 4 | ||||
| -rw-r--r-- | src/game.c | 2 | ||||
| -rw-r--r-- | src/objects.c | 8 | ||||
| -rw-r--r-- | src/players.c | 24 | ||||
| -rw-r--r-- | src/wall_item.c | 4 | ||||
| -rw-r--r-- | src/zombies.c | 2 |
18 files changed, 44 insertions, 16 deletions
diff --git a/data/imgs/objects/big_control_panel.png b/data/imgs/objects/big_control_panel.png Binary files differnew file mode 100644 index 0000000..cd73806 --- /dev/null +++ b/data/imgs/objects/big_control_panel.png diff --git a/data/imgs/objects/chair_down.png b/data/imgs/objects/chair_down.png Binary files differnew file mode 100644 index 0000000..413fa01 --- /dev/null +++ b/data/imgs/objects/chair_down.png diff --git a/data/imgs/objects/computer_rack.png b/data/imgs/objects/computer_rack.png Binary files differnew file mode 100644 index 0000000..5bc5f36 --- /dev/null +++ b/data/imgs/objects/computer_rack.png diff --git a/data/imgs/objects/lamp_south.png b/data/imgs/objects/lamp_south.png Binary files differnew file mode 100644 index 0000000..247c968 --- /dev/null +++ b/data/imgs/objects/lamp_south.png diff --git a/data/maps/map1.dat b/data/maps/map1.dat Binary files differindex 56427bf..ea03387 100644 --- a/data/maps/map1.dat +++ b/data/maps/map1.dat diff --git a/data/psd/big_control_panel.psd b/data/psd/big_control_panel.psd Binary files differnew file mode 100644 index 0000000..2926bb6 --- /dev/null +++ b/data/psd/big_control_panel.psd diff --git a/data/psd/chair_down.psd b/data/psd/chair_down.psd Binary files differnew file mode 100644 index 0000000..d09314b --- /dev/null +++ b/data/psd/chair_down.psd diff --git a/data/psd/computer_rack.psd b/data/psd/computer_rack.psd Binary files differnew file mode 100644 index 0000000..3b956b6 --- /dev/null +++ b/data/psd/computer_rack.psd diff --git a/data/psd/lamp_south.psd b/data/psd/lamp_south.psd Binary files differnew file mode 100644 index 0000000..c5090e5 --- /dev/null +++ b/data/psd/lamp_south.psd diff --git a/include/asset_defs.h b/include/asset_defs.h index 6102be6..d691e61 100644 --- a/include/asset_defs.h +++ b/include/asset_defs.h @@ -45,10 +45,14 @@ image* img_metal_wall2; image* img_chair_up; image* img_zombie_spawner; image* img_lamp_east; +image* img_lamp_south; image* img_metal_table_h; image* img_cantine_glass; image* img_glass_door_h_closed; image* img_glass_door_h_open; +image* img_big_control_panel; +image* img_chair_down; +image* img_computer_rack; // Throwables image* img_grenade; diff --git a/include/objects.h b/include/objects.h index d1adf34..6cfbf43 100644 --- a/include/objects.h +++ b/include/objects.h @@ -32,7 +32,11 @@ typedef enum t_object_type { OBJECT_LAMP_EAST = 9, OBJECT_METAL_TABLE_H = 10, OBJECT_CANTINE_GLASS = 11, - OBJECT_GLASS_DOOR_H, + OBJECT_GLASS_DOOR_H = 12, // Substitute. + OBJECT_LAMP_SOUTH = 13, + OBJECT_BIG_CONTROL_PANEL = 14, + OBJECT_CHAIR_DOWN = 15, + OBJECT_COMPUTER_RACK = 16, OBJECT_END, } object_type; @@ -80,6 +84,10 @@ object object_dict[OBJECT_END] = { {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}, }; object get_object_at_tile(float x, float y); @@ -96,7 +96,7 @@ int main(int argc, char **argv) platform_init(argc, argv, CONFIG_DIRECTORY); settings_set_number("USE_GPU", 1); - platform_window *window = platform_open_window_ex("Zombies!", 800, 600, 1920, 1080, 500, 500, FLAGS_MINIMIZE, update_func, 0, 0, 0, 0); + platform_window *window = platform_open_window_ex("Zombies!", 1600, 900, 1920, 1080, 500, 500, FLAGS_MINIMIZE, update_func, 0, 0, 0, 0); platform_toggle_vsync(window, false); //platform_toggle_fullscreen(window, true); diff --git a/src/asset_defs.c b/src/asset_defs.c index ed4e7a1..8a2e701 100644 --- a/src/asset_defs.c +++ b/src/asset_defs.c @@ -51,12 +51,16 @@ void load_assets() { img_metal_wall = assets_load_image_from_file("data/imgs/objects/metal_wall.png"); img_metal_wall2 = assets_load_image_from_file("data/imgs/objects/metal_wall2.png"); img_chair_up = assets_load_image_from_file("data/imgs/objects/chair_up.png"); + img_chair_down = assets_load_image_from_file("data/imgs/objects/chair_down.png"); img_zombie_spawner = assets_load_image_from_file("data/imgs/objects/zombie_spawner.png"); img_lamp_east = assets_load_image_from_file("data/imgs/objects/lamp_east.png"); + img_lamp_south = assets_load_image_from_file("data/imgs/objects/lamp_south.png"); img_metal_table_h = assets_load_image_from_file("data/imgs/objects/metal_table_h.png"); img_cantine_glass = assets_load_image_from_file("data/imgs/objects/cantine_glass.png"); img_glass_door_h_open = assets_load_image_from_file("data/imgs/objects/glass_door_h_open.png"); img_glass_door_h_closed = assets_load_image_from_file("data/imgs/objects/glass_door_h_closed.png"); + img_big_control_panel = assets_load_image_from_file("data/imgs/objects/big_control_panel.png"); + img_computer_rack = assets_load_image_from_file("data/imgs/objects/computer_rack.png"); // Players img_gunner_black_run = assets_load_image_from_file("data/imgs/players/Black/Gunner_Black_Run.png"); @@ -116,7 +116,7 @@ static void rotate_user(platform_window* window, protocol_user_look *message) { } p->gunx = p->playerx + message->gunx; - p->guny = p->playery + message->guny; + p->guny = p->playery - 0.5f + message->guny; p->dirx = message->dirx; p->diry = message->diry; } diff --git a/src/objects.c b/src/objects.c index e551544..fd2d811 100644 --- a/src/objects.c +++ b/src/objects.c @@ -115,12 +115,20 @@ image* get_image_from_objecttype(object_type tile) { return img_zombie_spawner; case OBJECT_LAMP_EAST: return img_lamp_east; + case OBJECT_LAMP_SOUTH: + return img_lamp_south; case OBJECT_METAL_TABLE_H: return img_metal_table_h; case OBJECT_CANTINE_GLASS: return img_cantine_glass; case OBJECT_GLASS_DOOR_H: return img_glass_door_h_closed; + case OBJECT_BIG_CONTROL_PANEL: + return img_big_control_panel; + case OBJECT_CHAIR_DOWN: + return img_chair_down; + case OBJECT_COMPUTER_RACK: + return img_computer_rack; default: return 0; } diff --git a/src/players.c b/src/players.c index 4fb513e..dd62611 100644 --- a/src/players.c +++ b/src/players.c @@ -9,12 +9,16 @@ float get_bullet_size(platform_window* window) { return get_tile_width(window) * get_bullet_size_in_tile(window); } -float get_player_size_in_tile() { +float get_player_height_in_tile() { + return 1.0f; +} + +float get_player_width_in_tile() { return 1.5f; } float get_player_size(platform_window* window) { - float player_size = get_tile_width(window) * get_player_size_in_tile(); + float player_size = get_tile_width(window) * get_player_width_in_tile(); return player_size; } @@ -168,7 +172,7 @@ void move_user(platform_window* window, u32 id, protocol_move_type move, float d if (is_in_bounds(p->playerx, newy)) { p->playery = newy; object o = check_if_player_collided_with_object(*p); - if (o.active) p->playery = o.position.y - get_player_size_in_tile() - pad_between_player_and_obj; + if (o.active) p->playery = o.position.y - get_player_height_in_tile() - pad_between_player_and_obj; } } @@ -188,7 +192,7 @@ void move_user(platform_window* window, u32 id, protocol_move_type move, float d if (is_in_bounds(newx, p->playery)) { p->playerx = newx; object o = check_if_player_collided_with_object(*p); - if (o.active) p->playerx = o.position.x-get_player_size_in_tile() - pad_between_player_and_obj; + if (o.active) p->playerx = o.position.x-get_player_width_in_tile() - pad_between_player_and_obj; } } @@ -204,9 +208,9 @@ player* get_player_by_id(u32 id) { } bool check_if_player_collided_with_box(player p, box o) { - float player_size = get_player_size_in_tile(); + float player_size = get_player_width_in_tile(); - box pbox = get_box_of_square((vec3f){p.playerx, p.playery, p.height}, (vec3f){player_size,player_size,0.8f}); + box pbox = get_box_of_square((vec3f){p.playerx, p.playery, p.height}, (vec3f){player_size,get_player_height_in_tile(),0.8f}); // [x1, y1, x2, y2] bool b1 = min(pbox.br_u.x, o.br_d.x) > max(pbox.tl_u.x, o.tl_u.x); @@ -305,8 +309,8 @@ void take_player_input(platform_window* window) { diry /= length; float gunsize = get_gun_size(p->guntype); - float gun_offset_x = (get_player_size_in_tile()/2) + (dirx*gunsize); - float gun_offset_y = (get_player_size_in_tile()/2) + (diry*gunsize); + float gun_offset_x = (get_player_width_in_tile()/2) + (dirx*gunsize); + float gun_offset_y = (get_player_width_in_tile()/2) + (diry*gunsize); add_message_to_outgoing_queuex(create_protocol_user_look(player_id, gun_offset_x, gun_offset_y, dirx, diry), *global_state.client); } @@ -546,7 +550,7 @@ void draw_player(platform_window* window, player* p, int index) { char* name = get_player_name_by_player_index(index); - vec2f player_pos = world_pos_to_screen_pos(window, p->playerx, p->playery, p->height); + vec2f player_pos = world_pos_to_screen_pos(window, p->playerx, p->playery - (get_player_width_in_tile() - get_player_height_in_tile()), p->height); float player_render_x = player_pos.x; float player_render_y = player_pos.y; @@ -605,7 +609,7 @@ void draw_player(platform_window* window, player* p, int index) { } void draw_players(platform_window* window, uint32_t ystart, uint32_t yend) { - float size = get_player_size_in_tile(); + float size = get_player_width_in_tile(); for (int i = 0; i < MAX_PLAYERS; i++) { if (!players[i].active) continue; diff --git a/src/wall_item.c b/src/wall_item.c index 12b5ce7..3e87d77 100644 --- a/src/wall_item.c +++ b/src/wall_item.c @@ -112,8 +112,8 @@ void draw_wallitems(platform_window* window) { player* p = get_player_by_id(player_id); if (!p) continue; - float dirx = ((item.position.x + (0.5)) - (p->playerx + (get_player_size_in_tile()/2))); - float diry = ((item.position.y) - (p->playery + (get_player_size_in_tile()/2))); + float dirx = ((item.position.x + (0.5)) - (p->playerx + (get_player_width_in_tile()/2))); + float diry = ((item.position.y) - (p->playery + (get_player_width_in_tile()/2))); float length = sqrt(dirx * dirx + diry * diry); if (length < 1.0f) { diff --git a/src/zombies.c b/src/zombies.c index 205097e..c04f91e 100644 --- a/src/zombies.c +++ b/src/zombies.c @@ -366,7 +366,7 @@ void update_zombies_server(platform_window* window) { zombies[i].time_since_last_path += SERVER_TICK_RATE; if (zombies[i].time_since_last_path > SERVER_PATHFINDING_INTERVAL) { player closest_player = get_closest_player_to_tile(o.position.x, o.position.y); - vec2f target_tile = (vec2f){closest_player.playerx, closest_player.playery+(get_player_size_in_tile()/2)}; + vec2f target_tile = (vec2f){closest_player.playerx, closest_player.playery+(get_player_width_in_tile()/2)}; // All players died, move around randomly if (closest_player.id == -1) { target_tile = get_random_target_for_zombie(o); |
