summaryrefslogtreecommitdiff
path: root/macros.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros.asm')
-rw-r--r--macros.asm102
1 files changed, 102 insertions, 0 deletions
diff --git a/macros.asm b/macros.asm
index e8d30a67..3da4a691 100644
--- a/macros.asm
+++ b/macros.asm
@@ -10,3 +10,105 @@ INCLUDE "macros/scripts/audio.asm"
INCLUDE "macros/scripts/maps.asm"
INCLUDE "macros/scripts/events.asm"
INCLUDE "macros/scripts/text.asm"
+
+SHADE_BLACK EQU %11
+SHADE_DARK EQU %10
+SHADE_LIGHT EQU %01
+SHADE_WHITE EQU %00
+
+setpal: MACRO
+ ld a, \1 << 6 | \2 << 4 | \3 << 2 | \4
+ENDM
+
+setpalBGP: MACRO
+ setpal SHADE_BLACK, SHADE_DARK, SHADE_LIGHT, SHADE_WHITE
+ENDM
+
+setpalOBP: MACRO
+ setpal SHADE_BLACK, SHADE_DARK, SHADE_WHITE, SHADE_WHITE
+ENDM
+
+homecall_jump: MACRO
+ ldh a, [hLoadedROMBank]
+ push af
+ ld a, BANK(\1)
+ call BankswitchCommon
+ call \1
+ pop af
+ jp BankswitchCommon
+ENDM
+
+homecall_jump_sf: MACRO
+ ldh a, [hLoadedROMBank]
+ push af
+ ld a, BANK(\1)
+ call BankswitchCommon
+ call \1
+ pop bc
+ ld a, b
+ jp BankswitchCommon
+ENDM
+
+homecall_sf: MACRO ; homecall but save flags by popping into bc instead of af
+ ldh a, [hLoadedROMBank]
+ push af
+ ld a, BANK(\1)
+ call BankswitchCommon
+ call \1
+ pop bc
+ ld a, b
+ call BankswitchCommon
+ENDM
+
+switchbank: MACRO
+ ld a, BANK(\1)
+ call BankswitchCommon
+ENDM
+
+callbs: MACRO
+ ld a, BANK(\1)
+ call BankswitchCommon
+ call \1
+ENDM
+
+calladb_ModifyPikachuHappiness: MACRO
+ ld hl, ModifyPikachuHappiness
+ ld d, \1
+ ld b, BANK(ModifyPikachuHappiness)
+ call Bankswitch
+ENDM
+
+callabd_ModifyPikachuHappiness: MACRO
+ ld hl, ModifyPikachuHappiness
+ ld b, BANK(ModifyPikachuHappiness)
+ ld d, \1
+ call Bankswitch
+ENDM
+
+sine_wave: MACRO
+; \1: amplitude
+
+x = 0
+ rept $20
+ ; Round up.
+ dw (sin(x) + (sin(x) & $ff)) >> 8
+x = x + (\1) * $40000
+ endr
+ENDM
+
+ANIM_OBJ_INDEX EQUS "wAnimatedObject0Index - wAnimatedObject0"
+ANIM_OBJ_FRAME_SET EQUS "wAnimatedObject0FramesetID - wAnimatedObject0"
+ANIM_OBJ_CALLBACK EQUS "wAnimatedObject0AnimSeqID - wAnimatedObject0"
+ANIM_OBJ_TILE EQUS "wAnimatedObject0TileID - wAnimatedObject0"
+ANIM_OBJ_X_COORD EQUS "wAnimatedObject0XCoord - wAnimatedObject0"
+ANIM_OBJ_Y_COORD EQUS "wAnimatedObject0YCoord - wAnimatedObject0"
+ANIM_OBJ_X_OFFSET EQUS "wAnimatedObject0XOffset - wAnimatedObject0"
+ANIM_OBJ_Y_OFFSET EQUS "wAnimatedObject0YOffset - wAnimatedObject0"
+ANIM_OBJ_DURATION EQUS "wAnimatedObject0Duration - wAnimatedObject0"
+ANIM_OBJ_DURATION_OFFSET EQUS "wAnimatedObject0DurationOffset - wAnimatedObject0"
+ANIM_OBJ_FRAME_IDX EQUS "wAnimatedObject0FrameIndex - wAnimatedObject0"
+ANIM_OBJ_FIELD_B EQU $b
+ANIM_OBJ_FIELD_C EQU $c
+ANIM_OBJ_FIELD_D EQU $d
+ANIM_OBJ_FIELD_E EQU $e
+ANIM_OBJ_FIELD_F EQU $f