From 9f704efda600cb5ca65b0de76e25e0b7f08cdd70 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Fri, 27 Dec 2024 10:42:04 +0100 Subject: [PATCH] Added room body struct --- src/wram.s | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/wram.s b/src/wram.s index c582f6d..aa1efaf 100644 --- a/src/wram.s +++ b/src/wram.s @@ -141,6 +141,16 @@ curr_room_exits: .adv 2 ; rooms are always in the order specified here: ; room_struct, tiles, flags, actor_table, exit_table + ; room body including all tiles, flags, actors + ; and exits +.se 0 +.de roomb_header, room_size +.de roomb_tiles, ROOM_TILES_SIZE +.de roomb_flags, ROOM_FLAGS_SIZE +.de roomb_actors, ACTOR_TABLE_SIZE +.de roomb_exits, ROOM_EXIT_TABLE_SIZE +.de roomb_size, 0 + ; save game struct .se 0 ; checksum of save game @@ -152,12 +162,8 @@ curr_room_exits: .adv 2 ; it is important to ensure ; that the rooms are loaded back in their intended memory space ; to not corrupt room header pointers -.de save_game_rooms, room_size * ROOMS_TOTAL -.de save_game_room_tiles, ROOM_TILES_SIZE * ROOMS_TOTAL -.de save_game_room_flags, ROOM_FLAGS_SIZE * ROOMS_TOTAL -.de save_game_room_actors, ACTOR_TABLE_SIZE * ROOMS_TOTAL -.de save_game_room_exits, ROOM_EXIT_TABLE_SIZE * ROOMS_TOTAL ; saving player state +.de save_game_rooms, roomb_size * ROOMS_TOTAL .de save_game_player, player_size ; this is a canary value to detect out of bounds reads in sram ; if this value is not SRAM_MAGIC then the save game is corrupted -- 2.30.2