diff options
| -rw-r--r-- | data/imgs/objects/glass_door_v_closed.png | bin | 0 -> 349 bytes | |||
| -rw-r--r-- | data/imgs/objects/glass_door_v_open.png | bin | 0 -> 351 bytes | |||
| -rw-r--r-- | data/maps/map1.dat | bin | 8384008 -> 8384008 bytes | |||
| -rw-r--r-- | data/psd/glass_door_v_closed.psd | bin | 0 -> 38630 bytes | |||
| -rw-r--r-- | data/psd/glass_door_v_open.psd | bin | 0 -> 51054 bytes | |||
| -rw-r--r-- | include/asset_defs.h | 2 | ||||
| -rw-r--r-- | include/objects.h | 2 | ||||
| -rw-r--r-- | src/asset_defs.c | 2 | ||||
| -rw-r--r-- | src/glass_doors.c | 4 | ||||
| -rw-r--r-- | src/map.c | 20 | ||||
| -rw-r--r-- | src/objects.c | 3 |
11 files changed, 30 insertions, 3 deletions
diff --git a/data/imgs/objects/glass_door_v_closed.png b/data/imgs/objects/glass_door_v_closed.png Binary files differnew file mode 100644 index 0000000..1476da9 --- /dev/null +++ b/data/imgs/objects/glass_door_v_closed.png diff --git a/data/imgs/objects/glass_door_v_open.png b/data/imgs/objects/glass_door_v_open.png Binary files differnew file mode 100644 index 0000000..ee1741e --- /dev/null +++ b/data/imgs/objects/glass_door_v_open.png diff --git a/data/maps/map1.dat b/data/maps/map1.dat Binary files differindex adbdbb9..f56e3c5 100644 --- a/data/maps/map1.dat +++ b/data/maps/map1.dat diff --git a/data/psd/glass_door_v_closed.psd b/data/psd/glass_door_v_closed.psd Binary files differnew file mode 100644 index 0000000..4aed8b5 --- /dev/null +++ b/data/psd/glass_door_v_closed.psd diff --git a/data/psd/glass_door_v_open.psd b/data/psd/glass_door_v_open.psd Binary files differnew file mode 100644 index 0000000..70d0371 --- /dev/null +++ b/data/psd/glass_door_v_open.psd diff --git a/include/asset_defs.h b/include/asset_defs.h index ca2f383..3c09f44 100644 --- a/include/asset_defs.h +++ b/include/asset_defs.h @@ -63,6 +63,8 @@ image* img_metal_table_h; image* img_cantine_glass; image* img_glass_door_h_closed; image* img_glass_door_h_open; +image* img_glass_door_v_closed; +image* img_glass_door_v_open; image* img_big_control_panel; image* img_chair_down; image* img_computer_rack; diff --git a/include/objects.h b/include/objects.h index 3ff7939..36ae30f 100644 --- a/include/objects.h +++ b/include/objects.h @@ -56,6 +56,7 @@ typedef enum t_object_type { OBJECT_CLUB_SEAT7 = 33, OBJECT_BOWLING_LANE = 34, OBJECT_BOWLING_LANE_END = 35, + OBJECT_GLASS_DOOR_V = 36, // Substitute. OBJECT_END, } object_type; @@ -126,6 +127,7 @@ object object_dict[OBJECT_END] = { {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}, }; object get_object_at_tile(float x, float y); 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); @@ -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); |
