Updated room script to also output a room struct
authorLukas Krickl <lukas@krickl.dev>
Fri, 25 Oct 2024 09:45:46 +0000 (11:45 +0200)
committerLukas Krickl <lukas@krickl.dev>
Fri, 25 Oct 2024 09:45:46 +0000 (11:45 +0200)
maps/base_room.s
src/map.s
src/video.s
src/wram.s
tools/tms2map.py

index 48028fdb6512f29edbdb440fe0e96d806ce55a68..35b5d6640199956f163c9b2802d6228f58eb24bd 100644 (file)
@@ -1,3 +1,7 @@
+ ; struct for  base_room
+dw base_room_bg
+dw base_room_flags
+dw base_room_actors
 base_room_actors:
 .db  8
 .db  1 , 67 , 54 , 0
index 7983dca12e6c5823d0e7231dc8c782c802e99bec..ae9cd8abd6da28c7dfbb19631c5699e08ecbb066 100644 (file)
--- a/src/map.s
+++ b/src/map.s
@@ -30,7 +30,7 @@
   ; inputs:
   ;   curr_room: ptr to current room
   ;   curr_room_init_act: ptr to initial actors to be loaded 
-map_load:
+room_load_from:
   call room_draw
   call room_load_actors
   ret
index 9cbdffbde10f5f03fa98c2a3009bc472e56e1d2f..40fe54f7bacea0607be66c5adb9ac49374ecd59d 100644 (file)
@@ -98,7 +98,7 @@ video_init:
   ldhi a, base_room_actors
   ld [curr_room_init_act+1], a
 
-  call map_load
+  call room_load_from 
   
   ; set up bgp
   ld a, BGP 
index b8d46f2e0ad7238b126d8fda66339df7559f5712..9451b3be5b5733a8beadd0a54179d2025e8184e1 100644 (file)
@@ -78,7 +78,9 @@ damage_anim: .adv 1
 
 ; struct room
 .se 0
-.de tiles, ROOM_W * ROOM_H
+.de room_tiles, 2 ; ptr to tiles
+.de room_flags, 2 ; ptr to flags
+.de room_actor_table, 2 ; actor table ot be used
 .de room_size, 0
 
 ; room flags
index a54a63d1d83125019d77fcd1a21af58a784afa68..46a862dc73cecaa261eeaaaef1eb0f1ae07f8ae4 100755 (executable)
@@ -33,10 +33,18 @@ def print_data(data, name, layer):
 def print_actor(atype, y, x, flags):
     print(".db ", int(atype), ",", int(float(y)), ",", int(float(x)), ",", int(flags))
 
+def print_struct(name):
+    print(" ; struct for ", name)
+    print("dw " + name + '_bg')
+    print("dw " + name + '_flags')
+    print("dw " + name + '_actors')
 
 def convert(src, name):
     tree = ET.parse(src)
     root = tree.getroot()
+
+    print_struct(name)
+
     for child in root:
         if child.tag == "layer":
             for data in child: