map: added unit_get_tile subroutine
authorLukas Krickl <lukas@krickl.dev>
Sun, 25 May 2025 16:49:09 +0000 (18:49 +0200)
committerLukas Krickl <lukas@krickl.dev>
Sun, 25 May 2025 16:49:09 +0000 (18:49 +0200)
This commit also reverts some of the map script changes made in the last
commit

maps/default_map.s
src/defs.s
src/map.s
src/unit.s
tools/tms2map.py

index 159c23c0f8a842ed8fab388fff948fef03c7ce90..027654272095a656bf2f6b7d400432fdd2a3e705 100644 (file)
@@ -1,7 +1,6 @@
 default_map_header:
 .db 0, 0, 0, 0 ; flags
 dw default_map_bg
-dw default_map_tile_flags
 
 default_map_bg:
 
@@ -101,260 +100,3 @@ default_map_bg:
 .db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0
 .db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0
 .db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x65,0x0
-default_map_tile_flags:
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x1
-.db  0x1
-.db  0x1
-.db  0x1
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x1
-.db  0x1
-.db  0x1
-.db  0x1
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x1
-.db  0x1
-.db  0x1
-.db  0x1
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
-.db  0x0
index 9f97348d9accbdf0b2024f20dbbdede1e3c85475..e146d1a126b700ae06dab38ce4f8baf7b3027aa1 100644 (file)
 .de map_flags_3, 1
 .de map_flags_4, 1
 .de map_bg_ptr, 2
-.de map_tile_flags_ptr, 2
index 43a9503a1c5691ab8c2dd0f0309e19463c765943..58bce1e46ea0411ef4855a5d78e274894a11de50 100644 (file)
--- a/src/map.s
+++ b/src/map.s
@@ -7,7 +7,35 @@ map_init:
   call cells_draw_all
 
   ret
+
+  ; gets the tile at a y/x position
+  ; inputs:
+  ;   b/c: y/x tile position
+  ; returns:
+  ;   a: tile
+  ;   b: flags
+map_get_tile:
+  ; current map
+  ld hl, state_cells
+  ld d, 0
+  ld e, MAP_W * c_size
+
+  ; calculate y offset 
+@y_loop:
+    add hl, de
+    dec b
+  jr nz, @y_loop REL
+
+  ; add x offset 
+  ld e, c
+  ; add x offset c_size times
+.rep i, c_size, 1, add hl, de
+  
+  ; load values 
+
+
+  ret
+
  ; loads a map 
  ; inputs:
  ;    hl: map header
index 551c6c06371a9327146bad8a1f5af63e9f66d7dc..d3f6030d3f618cfa3634c853a20afbe63884167c 100644 (file)
@@ -621,6 +621,22 @@ unit_resume_objs:
   ld [draw_flags], a
   ret
 
+
+  ; gets the tile value at the current unit's position
+  ; inputs:
+  ;   de: unit
+  ; returns:
+  ;   a: flags 
+  ;   b: tile index 
+unit_get_tile:
+  ld hl, act_pos_y 
+  add hl, de ; hl = pos y
+  ld a, [hl+]
+  ld b, a ; b = y
+  ld a, [hl]
+  ld c, a ; c = x
+  jp map_get_tile
+
 unit_demo_1:
   st_def 0x00, unit_demo_1_init, st_unit_idle
   act_def ACT_T_DEMO_1, 0, 2, 2, 0
index 2ef434b9b1fcda0d2aa90e3fa0cb1af72249753e..9f4f4b6ab667667eda29553ca2c39e1b4a927f2c 100755 (executable)
@@ -51,7 +51,6 @@ def print_header(name):
     print(name + "_header:")
     print(".db 0, 0, 0, 0 ; flags")
     print("dw " + name + "_bg")
-    print("dw " + name + "_tile_flags")
     print("")
     
 def get_flag(tile):
@@ -69,11 +68,6 @@ def get_flags(tileset):
         if child.tag == 'tile':
             get_flag(child)
 
-def print_tile_flags(name):
-    print(name + "_tile_flags:");
-    for flag in TILE_FLAGS:
-        print(".db ", hex(int(flag)));
-
 def convert(src, name):
     tree = ET.parse(src)
     root = tree.getroot()
@@ -87,6 +81,4 @@ def convert(src, name):
         elif child.tag == "tileset":
             get_flags(child)
 
-    print_tile_flags(name)
-
 convert(src, name)