mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
Use macros for packed arrays of nybbles
This commit is contained in:
parent
82f31b05c1
commit
653b62139d
3 changed files with 240 additions and 105 deletions
|
|
@ -38,6 +38,41 @@ x = \1
|
|||
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
|
||||
ENDM
|
||||
|
||||
nybble_array: MACRO
|
||||
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||
CURRENT_NYBBLE_ARRAY_LENGTH = 0
|
||||
IF _NARG == 1
|
||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
|
||||
ELSE
|
||||
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
|
||||
{CURRENT_NYBBLE_ARRAY_START}:
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
nybble: MACRO
|
||||
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
|
||||
CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
|
||||
CURRENT_NYBBLE_ARRAY_LENGTH = CURRENT_NYBBLE_ARRAY_LENGTH + 1
|
||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
|
||||
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||
CURRENT_NYBBLE_ARRAY_VALUE = 0
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
end_nybble_array: MACRO
|
||||
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
|
||||
db CURRENT_NYBBLE_ARRAY_VALUE
|
||||
ENDC
|
||||
IF _NARG == 1
|
||||
x = \1
|
||||
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
|
||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
|
||||
x = (x + 1) / 2
|
||||
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
|
||||
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
|
||||
ENDC
|
||||
ENDM
|
||||
|
||||
def_grass_wildmons: MACRO
|
||||
;\1: encounter rate
|
||||
CURRENT_GRASS_WILDMONS_RATE = \1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue