summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-05-16 09:50:23 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-05-16 09:50:23 +0200
commit197958d8e7f539de6b1da937fddbbbfcf167a73b (patch)
tree57c85c2e07e4be95e0b1ec0e8dd303d8b82b7921
parente2fb2bc2072f7d404a1c1664836d25b84b6fad03 (diff)
more doors & disco floor
-rw-r--r--data/imgs/objects/glass_door_v_closed.pngbin0 -> 349 bytes
-rw-r--r--data/imgs/objects/glass_door_v_open.pngbin0 -> 351 bytes
-rw-r--r--data/maps/map1.datbin8384008 -> 8384008 bytes
-rw-r--r--data/psd/glass_door_v_closed.psdbin0 -> 38630 bytes
-rw-r--r--data/psd/glass_door_v_open.psdbin0 -> 51054 bytes
-rw-r--r--include/asset_defs.h2
-rw-r--r--include/objects.h2
-rw-r--r--src/asset_defs.c2
-rw-r--r--src/glass_doors.c4
-rw-r--r--src/map.c20
-rw-r--r--src/objects.c3
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
new file mode 100644
index 0000000..1476da9
--- /dev/null
+++ b/data/imgs/objects/glass_door_v_closed.png
Binary files differ
diff --git a/data/imgs/objects/glass_door_v_open.png b/data/imgs/objects/glass_door_v_open.png
new file mode 100644
index 0000000..ee1741e
--- /dev/null
+++ b/data/imgs/objects/glass_door_v_open.png
Binary files differ
diff --git a/data/maps/map1.dat b/data/maps/map1.dat
index adbdbb9..f56e3c5 100644
--- a/data/maps/map1.dat
+++ b/data/maps/map1.dat
Binary files differ
diff --git a/data/psd/glass_door_v_closed.psd b/data/psd/glass_door_v_closed.psd
new file mode 100644
index 0000000..4aed8b5
--- /dev/null
+++ b/data/psd/glass_door_v_closed.psd
Binary files differ
diff --git a/data/psd/glass_door_v_open.psd b/data/psd/glass_door_v_open.psd
new file mode 100644
index 0000000..70d0371
--- /dev/null
+++ b/data/psd/glass_door_v_open.psd
Binary files differ
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);
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);