Use map names with ToggleData* symbols (#563)

This commit is contained in:
Narishma-gb
2026-01-17 22:42:34 +01:00
committed by GitHub
parent 4e22af12bc
commit 70f654bda7
2 changed files with 9 additions and 8 deletions

View File

@@ -2,7 +2,8 @@ DEF OFF EQU $11
DEF ON EQU $15
MACRO toggle_consts_for
DEF TOGGLEMAP{\1} EQU const_value
DEF TOGGLEMAP{\1}_ID EQU const_value
DEF TOGGLEMAP{\1}_NAME EQUS "\1"
ENDM
; ToggleableObjectStates indexes (see data/maps/toggleable_objects.asm)

View File

@@ -4,8 +4,8 @@ ToggleableObjectMapPointers:
; entries correspond to map ids
table_width 2
FOR n, NUM_MAPS
IF DEF(TOGGLEMAP{n}) ; defined by `toggle_consts_for`
dw ToggleData{n}
IF DEF(TOGGLEMAP{n}_NAME) ; defined by `toggle_consts_for`
dw ToggleData_{TOGGLEMAP{n}_NAME}
ELSE
dw NoToggleData
ENDC
@@ -20,14 +20,14 @@ DEF toggles_ok = 1
MACRO? toggleable_objects_for
DEF toggle_map_id = \1 ; map id
ToggleData{toggle_map_id}:
ToggleData_\1:
IF toggles_ok
ASSERT DEF(TOGGLEMAP{toggle_map_id}), \
ASSERT DEF(TOGGLEMAP{toggle_map_id}_ID), \
"`toggleable_objects_for \1` is not defined"
DEF toggles_ok &= DEF(TOGGLEMAP{toggle_map_id})
DEF toggles_ok &= DEF(TOGGLEMAP{toggle_map_id}_ID)
IF toggles_ok
assert_table_length TOGGLEMAP{toggle_map_id}
DEF toggles_ok &= TOGGLEMAP{toggle_map_id} * 3 == @ - ToggleableObjectStates
assert_table_length TOGGLEMAP{toggle_map_id}_ID
DEF toggles_ok &= TOGGLEMAP{toggle_map_id}_ID * 3 == @ - ToggleableObjectStates
ENDC
ENDC
ENDM