Add a macro for enumeration.

"enum" is like "const" but uses variables instead. This might not be desired.

It has been moved to the top of macros.asm so that included macros can be enumerated.
This commit is contained in:
yenatch 2015-04-13 21:30:51 -07:00
parent 50734c961c
commit e7a3ba0592
2 changed files with 33 additions and 11 deletions

View File

@ -1,3 +1,5 @@
INCLUDE "macros/enum.asm"
INCLUDE "macros/event.asm" INCLUDE "macros/event.asm"
INCLUDE "macros/sound.asm" INCLUDE "macros/sound.asm"
INCLUDE "macros/text.asm" INCLUDE "macros/text.asm"
@ -113,17 +115,6 @@ endanim: MACRO
ENDM ENDM
; Constant enumeration
const_def: MACRO
const_value SET 0
ENDM
const: MACRO
\1 EQU const_value
const_value SET const_value + 1
ENDM
sine_wave: MACRO sine_wave: MACRO
; \1: amplitude ; \1: amplitude

31
macros/enum.asm Normal file
View File

@ -0,0 +1,31 @@
; Enumerate variables
enum_start: macro
if _NARG >= 1
__enum__ = \1
else
__enum__ = 0
endc
if _NARG >= 2
__enumdir__ = \2
else
__enumdir__ = +1
endc
endm
enum: macro
\1 = __enum__
__enum__ = __enum__ + __enumdir__
endm
; Enumerate constants
const_def: MACRO
const_value = 0
ENDM
const: MACRO
\1 EQU const_value
const_value = const_value + 1
ENDM