From: Lukas Krickl Date: Fri, 27 Dec 2024 09:42:04 +0000 (+0100) Subject: Added room body struct X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=9f704efda600cb5ca65b0de76e25e0b7f08cdd70;p=gbrg%2F.git Added room body struct --- 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