exits: Added exit table ptr to map definition
authorLukas Krickl <lukas@krickl.dev>
Sat, 5 Jul 2025 02:37:16 +0000 (04:37 +0200)
committerLukas Krickl <lukas@krickl.dev>
Sat, 5 Jul 2025 02:37:16 +0000 (04:37 +0200)
maps/default_map.s
src/exittables.s [new file with mode: 0644]
src/macros.inc
src/main.s
src/wram.s
tools/tms2map.py

index ba5a585d65f589da2e2f0e9478ef36465ddd3fd7..e086cb6c1bf68ae9e53717ddfa8326ee8c001440 100644 (file)
@@ -9,6 +9,7 @@ dw bank8000
 dw bank8800
 dw bank8C00
 dw bank9000
+dw default_map_exit_table
 
 default_map_bg:
 
@@ -28,6 +29,6 @@ default_map_bg:
 default_map_tile_flags:
 
 .db 0x27, 0x0, 0x4, 0x1, 0x48, 0x0, 0x4, 0x1
-.db 0x8, 0x0, 0x1, 0x2, 0xf, 0x0, 0x1, 0x3
+.db 0x8, 0x0, 0x1, 0x3, 0xf, 0x0, 0x1, 0x3
 .db 0x70, 0x0
 .db 0x00 ; termiante data
diff --git a/src/exittables.s b/src/exittables.s
new file mode 100644 (file)
index 0000000..d63117e
--- /dev/null
@@ -0,0 +1,3 @@
+default_map_exit_table:
+exit_entry 0, 0, 0, 0, default_map_header 
+exit_entry 0, 0, 0, 0, default_map_header 
index 7a714d2ee527d6e9dacb277106b6f89f362eed4d..941dedc8d87b5375c39c7089fde9dc2d05038ae6 100644 (file)
   ;   $3: goto y
   ;   $4: goto x
   ;   $5: map header pointer
-#macro map_exit_table_entry
+#macro exit_entry
   .db $1
   .db $2
   .db $3
index d48f97670eaf191d5a9120c8d6b1368760e06129..946003ea5ecac942668adea932a71d4438568849 100644 (file)
@@ -68,6 +68,7 @@ main:
 #include "text.s"
 #include "stats.s"
 #include "actortables.s"
+#include "exittables.s"
 #include "demos.s"
 
 ; fill bank
index 18b71bf506958d730fee675d078f53fe79a235e2..036e9b823c5757fd3dfdfb498a9deeaec4f571d0 100644 (file)
@@ -90,5 +90,7 @@ map_end:
   
   ; mape state machine
 map_st: .adv st_size
+  ; current exit table ptr
+map_exit_table: .adv 2
 
 state_end:
index 30a075d55ab4b3349bf28ac3153b6ae713675ba1..57c9eed246daaee6c5e8c447ce1956a3fe87801c 100755 (executable)
@@ -13,6 +13,7 @@ tile_bank0 = "bank8000"
 tile_bank1 = "bank8800"
 tile_bank2 = "bank8C00"
 tile_bank3 = "bank9000"
+exit_table = "default_map_exit_table"
 actor_table_ptr = "map_actor_table_null"
 map_name = "noname"
 NAME_LEN = 8
@@ -107,6 +108,7 @@ def print_header(name):
     print("dw " + tile_bank1)
     print("dw " + tile_bank2)
     print("dw " + tile_bank3)
+    print("dw " + exit_table)
     print("")
     
 def get_flag(tile):
@@ -131,6 +133,7 @@ def get_map_props(root):
     global tile_bank2
     global tile_bank3
     global map_name
+    global exit_table
 
     for child in root:
         if child.tag == "properties":
@@ -151,6 +154,8 @@ def get_map_props(root):
                     tile_bank3 = value
                 elif name == 'map_name':
                     map_name = value
+                elif name == 'exit_table':
+                    exit_table = value
 
     return