Move around some more macros.

This commit is contained in:
yenatch 2015-01-20 14:26:16 -08:00
parent 9303752e3f
commit f036cdf13b
6 changed files with 101 additions and 107 deletions

View File

@ -1,3 +1,5 @@
NONE EQU 0
PARTY_LENGTH EQU 6
MAX_ITEMS EQU 20

View File

@ -6,6 +6,8 @@ INCLUDE "macros/move_effect.asm"
INCLUDE "macros/move_anim.asm"
INCLUDE "macros/movement.asm"
INCLUDE "macros/map.asm"
INCLUDE "macros/predef.asm"
INCLUDE "macros/rst.asm"
RGB: MACRO
@ -15,28 +17,6 @@ RGB: MACRO
percent EQUS "* $ff / 100"
; macros require rst vectors to be defined
FarCall EQU $08
Bankswitch EQU $10
JumpTable EQU $28
farcall: MACRO ; bank, address
ld a, BANK(\1)
ld hl, \1
rst FarCall
ENDM
callba EQUS "farcall"
callab: MACRO ; address, bank
ld hl, \1
ld a, BANK(\1)
rst FarCall
ENDM
NONE EQU 0
dwb: MACRO
dw \1
@ -82,6 +62,7 @@ lb: MACRO ; r, hi, lo
ld \1, (\2) << 8 + (\3)
ENDM
bccoord: MACRO
coord bc, \1, \2
ENDM
@ -129,68 +110,6 @@ const_value SET const_value + 1
ENDM
note: MACRO
dn (\1), (\2) - 1
ENDM
sound: macro
db \1 ; duration
db \2 ; intensity
dw \3 ; frequency
endm
noise: macro
db \1 ; duration
db \2 ; intensity
db \3 ; frequency
endm
; pitch
__ EQU 0
C_ EQU 1
C# EQU 2
D_ EQU 3
D# EQU 4
E_ EQU 5
F_ EQU 6
F# EQU 7
G_ EQU 8
G# EQU 9
A_ EQU 10
A# EQU 11
B_ EQU 12
; maps
map: MACRO
; This is a really silly hack to get around an rgbds bug.
; Ideally:
; db GROUP_\1, MAP_\1
\1\@ EQUS "GROUP_\1"
\1\@2 EQUS "MAP_\1"
db \1\@, \1\@2
ENDM
roam_map: MACRO
; A map and an arbitrary number of some more maps.
map \1
db \2
rept \2
map \3
shift
endr
db 0
ENDM
sine_wave: MACRO
; \1: amplitude
@ -201,26 +120,3 @@ x = 0
x = x + (\1) * $40000
endr
ENDM
add_predef: MACRO
\1Predef::
dw \1
db BANK(\1)
ENDM
predef_id: MACRO
; Some functions load the predef id
; without immediately calling Predef.
ld a, (\1Predef - PredefPointers) / 3
ENDM
predef: MACRO
predef_id \1
call Predef
ENDM
predef_jump: MACRO
predef_id \1
jp Predef
ENDM

View File

@ -1,3 +1,29 @@
map: MACRO
; This is a silly hack to get around an rgbds bug.
; Ideally:
; db GROUP_\1, MAP_\1
\1\@ EQUS "GROUP_\1"
\1\@2 EQUS "MAP_\1"
db \1\@, \1\@2
ENDM
roam_map: MACRO
; A map and an arbitrary number of some more maps.
map \1
db \2
rept \2
map \3
shift
endr
db 0
ENDM
person_event: macro
db \1 ; sprite
db \2 ; y

21
macros/predef.asm Normal file
View File

@ -0,0 +1,21 @@
add_predef: MACRO
\1Predef::
dw \1
db BANK(\1)
ENDM
predef_id: MACRO
; Some functions load the predef id
; without immediately calling Predef.
ld a, (\1Predef - PredefPointers) / 3
ENDM
predef: MACRO
predef_id \1
call Predef
ENDM
predef_jump: MACRO
predef_id \1
jp Predef
ENDM

17
macros/rst.asm Normal file
View File

@ -0,0 +1,17 @@
FarCall EQU $08
Bankswitch EQU $10
JumpTable EQU $28
farcall: MACRO ; bank, address
ld a, BANK(\1)
ld hl, \1
rst FarCall
ENDM
callba EQUS "farcall"
callab: MACRO ; address, bank
ld hl, \1
ld a, BANK(\1)
rst FarCall
ENDM

View File

@ -1,3 +1,35 @@
note: MACRO
dn (\1), (\2) - 1
ENDM
sound: macro
db \1 ; duration
db \2 ; intensity
dw \3 ; frequency
endm
noise: macro
db \1 ; duration
db \2 ; intensity
db \3 ; frequency
endm
; pitch
__ EQU 0
C_ EQU 1
C# EQU 2
D_ EQU 3
D# EQU 4
E_ EQU 5
F_ EQU 6
F# EQU 7
G_ EQU 8
G# EQU 9
A_ EQU 10
A# EQU 11
B_ EQU 12
octave: macro
db $d8 - (\1)
endm