From: Lukas Krickl Date: Sun, 25 May 2025 16:49:09 +0000 (+0200) Subject: map: added unit_get_tile subroutine X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=0010453f61d6b895bcb395e6f749f799e22afd8f;p=gbrg%2F.git map: added unit_get_tile subroutine This commit also reverts some of the map script changes made in the last commit --- diff --git a/maps/default_map.s b/maps/default_map.s index 159c23c..0276542 100644 --- a/maps/default_map.s +++ b/maps/default_map.s @@ -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 diff --git a/src/defs.s b/src/defs.s index 9f97348..e146d1a 100644 --- a/src/defs.s +++ b/src/defs.s @@ -158,4 +158,3 @@ .de map_flags_3, 1 .de map_flags_4, 1 .de map_bg_ptr, 2 -.de map_tile_flags_ptr, 2 diff --git a/src/map.s b/src/map.s index 43a9503..58bce1e 100644 --- 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 diff --git a/src/unit.s b/src/unit.s index 551c6c0..d3f6030 100644 --- a/src/unit.s +++ b/src/unit.s @@ -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 diff --git a/tools/tms2map.py b/tools/tms2map.py index 2ef434b..9f4f4b6 100755 --- a/tools/tms2map.py +++ b/tools/tms2map.py @@ -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)