mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-16 18:30:50 +12:00
Implement def_warps_to in a simpler way
Instead of building a semicolon-separated "array" of warp_to coordinates in _WARP_TO_BUFFER, just declare a new EQUS for each one: _WARP_TO_NUM_1, _WARP_TO_NUM_2, etc. Then have def_warps_to output and PURGE each one of them.
This commit is contained in:
parent
6fa8a553cb
commit
5e1865a7b1
|
@ -42,10 +42,6 @@ def_warps: MACRO
|
||||||
_NUM_WARPS EQUS "_NUM_WARPS_\@"
|
_NUM_WARPS EQUS "_NUM_WARPS_\@"
|
||||||
db _NUM_WARPS
|
db _NUM_WARPS
|
||||||
_NUM_WARPS = 0
|
_NUM_WARPS = 0
|
||||||
IF DEF(_WARP_TO_BUFFER)
|
|
||||||
PURGE _WARP_TO_BUFFER
|
|
||||||
ENDC
|
|
||||||
_WARP_TO_BUFFER EQUS ""
|
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
;\1 x position
|
;\1 x position
|
||||||
|
@ -55,10 +51,9 @@ ENDM
|
||||||
warp: MACRO
|
warp: MACRO
|
||||||
db \2, \1, \3, \4
|
db \2, \1, \3, \4
|
||||||
_NUM_WARPS = _NUM_WARPS + 1
|
_NUM_WARPS = _NUM_WARPS + 1
|
||||||
_TMP EQUS "{_WARP_TO_BUFFER}\1,\2; "
|
_WARP_TO_NAME EQUS "_WARP_TO_NUM_{d:{_NUM_WARPS}}"
|
||||||
PURGE _WARP_TO_BUFFER
|
_WARP_TO_NAME EQUS "warp_to \1, \2, _WARP_TO_WIDTH"
|
||||||
_WARP_TO_BUFFER EQUS "{_TMP}"
|
PURGE _WARP_TO_NAME
|
||||||
PURGE _TMP
|
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
def_signs: MACRO
|
def_signs: MACRO
|
||||||
|
@ -78,17 +73,18 @@ sign: MACRO
|
||||||
_NUM_SIGNS = _NUM_SIGNS + 1
|
_NUM_SIGNS = _NUM_SIGNS + 1
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
;\1 source map
|
||||||
def_warps_to: MACRO
|
def_warps_to: MACRO
|
||||||
_WARP_TO_WIDTH = \1_WIDTH
|
_WARP_TO_WIDTH = \1_WIDTH
|
||||||
|
_WARP_TO_N = 1
|
||||||
REPT _NUM_WARPS
|
REPT _NUM_WARPS
|
||||||
_SEP = STRIN("{_WARP_TO_BUFFER}", ";")
|
_WARP_TO_NAME EQUS "_WARP_TO_NUM_{d:_WARP_TO_N}"
|
||||||
_WARP_TO_NTH EQUS STRCAT(STRCAT("warp_to ", STRSUB("{_WARP_TO_BUFFER}", 1, _SEP - 1)), ", _WARP_TO_WIDTH")
|
_WARP_TO_NAME
|
||||||
_TMP EQUS STRSUB("{_WARP_TO_BUFFER}", _SEP + 1, STRLEN("{_WARP_TO_BUFFER}") - _SEP)
|
_WARP_TO_N = _WARP_TO_N + 1
|
||||||
PURGE _WARP_TO_BUFFER
|
_PURGE_WARP_TO_NUM EQUS "PURGE {_WARP_TO_NAME}"
|
||||||
_WARP_TO_BUFFER EQUS "{_TMP}"
|
_PURGE_WARP_TO_NUM
|
||||||
PURGE _TMP
|
PURGE _PURGE_WARP_TO_NUM
|
||||||
_WARP_TO_NTH
|
PURGE _WARP_TO_NAME
|
||||||
PURGE _WARP_TO_NTH
|
|
||||||
ENDR
|
ENDR
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue