From 197958d8e7f539de6b1da937fddbbbfcf167a73b Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Thu, 16 May 2024 09:50:23 +0200 Subject: more doors & disco floor --- src/asset_defs.c | 2 ++ src/glass_doors.c | 4 +++- src/map.c | 20 ++++++++++++++++++-- src/objects.c | 3 +++ 4 files changed, 26 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/asset_defs.c b/src/asset_defs.c index 0e95b50..5e8b440 100644 --- a/src/asset_defs.c +++ b/src/asset_defs.c @@ -70,6 +70,8 @@ void load_assets() { // Assets loaded at match start. 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_glass_door_v_open = assets_load_image_from_file("data/imgs/objects/glass_door_v_open.png"); + img_glass_door_v_closed = assets_load_image_from_file("data/imgs/objects/glass_door_v_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"); img_generator = assets_load_image_from_file("data/imgs/objects/generator.png"); diff --git a/src/glass_doors.c b/src/glass_doors.c index f7ddbc7..87317d5 100644 --- a/src/glass_doors.c +++ b/src/glass_doors.c @@ -62,7 +62,9 @@ void draw_glass_doors(platform_window* window, uint32_t ystart, uint32_t yend) object o = glass_doors[i].obj; box box = get_box_of_object(window, o); - image* img = glass_doors[i].is_open ? img_glass_door_h_open : img_glass_door_h_closed; + image* img = 0; + if (o.type == OBJECT_GLASS_DOOR_H) img = glass_doors[i].is_open ? img_glass_door_h_open : img_glass_door_h_closed; + if (o.type == OBJECT_GLASS_DOOR_V) img = glass_doors[i].is_open ? img_glass_door_v_open : img_glass_door_v_closed; if (img) { renderer->render_image(img, box.tl_u.x, box.tl_u.y, box.br_d.x - box.tl_d.x, box.br_d.y - box.tr_u.y); diff --git a/src/map.c b/src/map.c index 9b21725..5beb136 100644 --- a/src/map.c +++ b/src/map.c @@ -277,7 +277,7 @@ void load_mapdata_into_world() { create_spawner((vec2){.x = o.position.x, .y = o.position.y}); } - if (o.type == OBJECT_GLASS_DOOR_H) { + if (o.type == OBJECT_GLASS_DOOR_H || o.type == OBJECT_GLASS_DOOR_V) { create_glass_door(o); } } @@ -477,6 +477,9 @@ void draw_grid(platform_window* window) { int tilemap_render_min_x = (_global_camera.x / info.tile_width); int tilemap_render_max_x = tilemap_render_min_x + (window->width/ info.tile_width) + 1; + static float dance_floor_disco_timestamp = 0.0f; + dance_floor_disco_timestamp += update_delta; + for (int y = 0; y < MAP_SIZE_Y; y++) { if (y < tilemap_render_min_y) continue; @@ -519,7 +522,20 @@ void draw_grid(platform_window* window) { */ float min_brightness = 150; - image* img = get_image_from_tiletype(tile.type); + tile_type type_to_draw = tile.type; + + + if ((int)dance_floor_disco_timestamp % 2 == 1) { + if (type_to_draw == TILE_CLUB3) { + type_to_draw = TILE_CLUB4; + } + else if (type_to_draw == TILE_CLUB4) { + type_to_draw = TILE_CLUB3; + } + } + + + image* img = get_image_from_tiletype(type_to_draw); if (img) { renderer->render_image_quad(img, topleft.x, topleft.y, diff --git a/src/objects.c b/src/objects.c index c6788db..371040b 100644 --- a/src/objects.c +++ b/src/objects.c @@ -167,6 +167,8 @@ image* get_image_from_objecttype(object_type tile) { return img_bowling_lane; case OBJECT_BOWLING_LANE_END: return img_bowling_lane_end; + case OBJECT_GLASS_DOOR_V: + return img_glass_door_v_closed; default: return 0; } @@ -181,6 +183,7 @@ void draw_objects(platform_window* window) { object o = loaded_map.objects[i]; if (o.type == OBJECT_GLASS_DOOR_H) continue; + if (o.type == OBJECT_GLASS_DOOR_V) continue; box box = get_box_of_object(window, o); -- cgit v1.2.3-70-g09d2