Added room body struct
authorLukas Krickl <lukas@krickl.dev>
Fri, 27 Dec 2024 09:42:04 +0000 (10:42 +0100)
committerLukas Krickl <lukas@krickl.dev>
Fri, 27 Dec 2024 09:42:04 +0000 (10:42 +0100)
src/wram.s

index c582f6d772bd5fcab78e7451e1130cbdb84feb3f..aa1efafbbe80269377d042ec0785b88e27ddf897 100644 (file)
@@ -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