diff options
Diffstat (limited to 'macros')
-rw-r--r-- | macros/base_stats.asm (renamed from macros/basestats.asm) | 2 | ||||
-rw-r--r-- | macros/charmap.asm | 403 | ||||
-rw-r--r-- | macros/code.asm | 55 | ||||
-rw-r--r-- | macros/color.asm | 15 | ||||
-rw-r--r-- | macros/coords.asm | 51 | ||||
-rw-r--r-- | macros/data.asm | 121 | ||||
-rw-r--r-- | macros/map.asm | 211 | ||||
-rw-r--r-- | macros/mobile.asm | 2 | ||||
-rw-r--r-- | macros/movement.asm | 247 | ||||
-rw-r--r-- | macros/pic.asm | 4 | ||||
-rw-r--r-- | macros/rst.asm | 12 | ||||
-rw-r--r-- | macros/scripts/audio.asm (renamed from macros/sound.asm) | 80 | ||||
-rw-r--r-- | macros/scripts/effect_commands.asm | 187 | ||||
-rw-r--r-- | macros/scripts/event.asm (renamed from macros/event.asm) | 340 | ||||
-rw-r--r-- | macros/scripts/gfx_anim.asm | 44 | ||||
-rw-r--r-- | macros/scripts/maps.asm | 108 | ||||
-rw-r--r-- | macros/scripts/move_anim.asm (renamed from macros/move_anim.asm) | 96 | ||||
-rw-r--r-- | macros/scripts/movement.asm | 246 | ||||
-rw-r--r-- | macros/scripts/text.asm (renamed from macros/text.asm) | 60 | ||||
-rw-r--r-- | macros/scripts/trade_anim.asm | 255 | ||||
-rwxr-xr-x | macros/tilesets.asm | 2 | ||||
-rwxr-xr-x | macros/trade_anim.asm | 255 | ||||
-rw-r--r-- | macros/trainer.asm | 11 | ||||
-rwxr-xr-x | macros/wram.asm | 280 |
24 files changed, 1738 insertions, 1349 deletions
diff --git a/macros/basestats.asm b/macros/base_stats.asm index f3e98b64a..f7c841634 100644 --- a/macros/basestats.asm +++ b/macros/base_stats.asm @@ -1,3 +1,5 @@ +; Used in data/pokemon/base_stats/*.asm + define: macro if !def(\1) \1 equs \2 diff --git a/macros/charmap.asm b/macros/charmap.asm index b936b0953..fd2d371fd 100644 --- a/macros/charmap.asm +++ b/macros/charmap.asm @@ -1,208 +1,209 @@ ; Control characters - charmap "<START>", $00 - charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English - charmap "<DAY>", $15 - charmap "¯", $1f ; soft linebreak - charmap "<LNBRK>", $22 - charmap "<POKE>", $24 ; "<PO><KE>" - charmap "%", $25 - charmap "<RED>", $38 ; RedsName - charmap "<GREEN>", $39 ; GreensName - charmap "<ENEMY>", $3f - charmap "<MOM>", $49 ; MomsName - charmap "<PKMN>", $4a ; "<PK><MN>" - charmap "<NEXT>", $4e - charmap "<LINE>", $4f - - charmap "@", $50 - charmap "<PARA>", $51 - charmap "<PLAYER>", $52 ; PlayerName - charmap "<RIVAL>", $53 - charmap "#", $54 - charmap "<CONT>", $55 - charmap "<......>", $56 ; "……" - charmap "<DONE>", $57 - charmap "<PROMPT>", $58 - charmap "<TARGET>", $59 - charmap "<USER>", $5a - charmap "<PC>", $5b ; "PC" - charmap "<TM>", $5c ; "TM" - charmap "<TRNER>", $5d ; "TRAINER" - charmap "<ROCKET>", $5e ; "ROCKET" - charmap "<DEXEND>", $5f - -; Actual characters (from gfx/misc/font_extra.png) - - charmap "<BOLD_A>", $60 ; unused - charmap "<BOLD_B>", $61 ; unused - charmap "<BOLD_C>", $62 ; unused - charmap "<BOLD_D>", $63 ; unused - charmap "<BOLD_E>", $64 ; unused - charmap "<BOLD_F>", $65 ; unused - charmap "<BOLD_G>", $66 ; unused - charmap "<BOLD_H>", $67 ; unused - charmap "<BOLD_I>", $68 ; unused - charmap "<BOLD_V>", $69 - charmap "<BOLD_S>", $6a - charmap "<BOLD_L>", $6b ; unused - charmap "<BOLD_M>", $6c ; unused - charmap "<COLON>", $6d ; colon with tinier dots than ":" - charmap "ぃ", $6e ; hiragana small i, unused - charmap "ぅ", $6f ; hiragana small u, unused - charmap "<PO>", $70 - charmap "<KE>", $71 - charmap "<``>", $72 ; opening quote - charmap "<''>", $73 ; closing quote - charmap "·", $74 ; middle dot, unused - charmap "…", $75 ; ellipsis - charmap "ぁ", $76 ; hiragana small a, unused - charmap "ぇ", $77 ; hiragana small e, unused - charmap "ぉ", $78 ; hiragana small o, unused - - charmap "┌", $79 - charmap "─", $7a - charmap "┐", $7b - charmap "│", $7c - charmap "└", $7d - charmap "┘", $7e - charmap " ", $7f - -; Actual characters (from gfx/misc/font_battle_extra.png) - - charmap "<LV>", $6e - - charmap "<ど>", $70 ; hiragana small do, unused - charmap "◀", $71 - charmap "『", $72 ; Japanese opening quote, unused - charmap "<ID>", $73 - charmap "№", $74 + charmap "<START>", $00 + charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English + charmap "<DAY>", $15 + charmap "¯", $1f ; soft linebreak + charmap "<LNBRK>", $22 + charmap "<KOUGEKI>", $23 ; "こうげき" + charmap "<POKE>", $24 ; "<PO><KE>" + charmap "%", $25 + charmap "<RED>", $38 ; RedsName + charmap "<GREEN>", $39 ; GreensName + charmap "<ENEMY>", $3f + charmap "<MOM>", $49 ; MomsName + charmap "<PKMN>", $4a ; "<PK><MN>" + charmap "<NEXT>", $4e + charmap "<LINE>", $4f + + charmap "@", $50 ; string terminator + charmap "<PARA>", $51 + charmap "<PLAYER>", $52 ; PlayerName + charmap "<RIVAL>", $53 + charmap "#", $54 ; "POKé" + charmap "<CONT>", $55 + charmap "<......>", $56 ; "……" + charmap "<DONE>", $57 + charmap "<PROMPT>", $58 + charmap "<TARGET>", $59 + charmap "<USER>", $5a + charmap "<PC>", $5b ; "PC" + charmap "<TM>", $5c ; "TM" + charmap "<TRNER>", $5d ; "TRAINER" + charmap "<ROCKET>", $5e ; "ROCKET" + charmap "<DEXEND>", $5f + +; Actual characters (from gfx/font/font_extra.png) + + charmap "<BOLD_A>", $60 ; unused + charmap "<BOLD_B>", $61 ; unused + charmap "<BOLD_C>", $62 ; unused + charmap "<BOLD_D>", $63 ; unused + charmap "<BOLD_E>", $64 ; unused + charmap "<BOLD_F>", $65 ; unused + charmap "<BOLD_G>", $66 ; unused + charmap "<BOLD_H>", $67 ; unused + charmap "<BOLD_I>", $68 ; unused + charmap "<BOLD_V>", $69 + charmap "<BOLD_S>", $6a + charmap "<BOLD_L>", $6b ; unused + charmap "<BOLD_M>", $6c ; unused + charmap "<COLON>", $6d ; colon with tinier dots than ":" + charmap "ぃ", $6e ; hiragana small i, unused + charmap "ぅ", $6f ; hiragana small u, unused + charmap "<PO>", $70 + charmap "<KE>", $71 + charmap "<``>", $72 ; opening quote + charmap "<''>", $73 ; closing quote + charmap "·", $74 ; middle dot, unused + charmap "…", $75 ; ellipsis + charmap "ぁ", $76 ; hiragana small a, unused + charmap "ぇ", $77 ; hiragana small e, unused + charmap "ぉ", $78 ; hiragana small o, unused + + charmap "┌", $79 + charmap "─", $7a + charmap "┐", $7b + charmap "│", $7c + charmap "└", $7d + charmap "┘", $7e + charmap " ", $7f + +; Actual characters (from gfx/font/font_battle_extra.png) + + charmap "<LV>", $6e + + charmap "<ど>", $70 ; hiragana small do, unused + charmap "◀", $71 + charmap "『", $72 ; Japanese opening quote, unused + charmap "<ID>", $73 + charmap "№", $74 ; Actual characters (from other graphics files) - charmap "|", $31 ; from gfx/stats/stats_tiles - - charmap "<SHINY>", $3f ; gfx/stats/shiny - - charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp - charmap "▲", $61 ; gfx/font/up_arrow.png - charmap "<PHONE>", $62 ; gfx/mobile/overworld_phone_icon.2bpp - charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp - - charmap "′", $6e ; gfx/font/feet_inches.png - charmap "″", $6f ; gfx/font/feet_inches.png - -; Actual characters (from gfx/misc/font.png) - - charmap "A", $80 - charmap "B", $81 - charmap "C", $82 - charmap "D", $83 - charmap "E", $84 - charmap "F", $85 - charmap "G", $86 - charmap "H", $87 - charmap "I", $88 - charmap "J", $89 - charmap "K", $8a - charmap "L", $8b - charmap "M", $8c - charmap "N", $8d - charmap "O", $8e - charmap "P", $8f - charmap "Q", $90 - charmap "R", $91 - charmap "S", $92 - charmap "T", $93 - charmap "U", $94 - charmap "V", $95 - charmap "W", $96 - charmap "X", $97 - charmap "Y", $98 - charmap "Z", $99 - - charmap "(", $9a - charmap ")", $9b - charmap ":", $9c - charmap ";", $9d - charmap "[", $9e - charmap "]", $9f - - charmap "a", $a0 - charmap "b", $a1 - charmap "c", $a2 - charmap "d", $a3 - charmap "e", $a4 - charmap "f", $a5 - charmap "g", $a6 - charmap "h", $a7 - charmap "i", $a8 - charmap "j", $a9 - charmap "k", $aa - charmap "l", $ab - charmap "m", $ac - charmap "n", $ad - charmap "o", $ae - charmap "p", $af - charmap "q", $b0 - charmap "r", $b1 - charmap "s", $b2 - charmap "t", $b3 - charmap "u", $b4 - charmap "v", $b5 - charmap "w", $b6 - charmap "x", $b7 - charmap "y", $b8 - charmap "z", $b9 - - charmap "Ä", $c0 - charmap "Ö", $c1 - charmap "Ü", $c2 - charmap "ä", $c3 - charmap "ö", $c4 - charmap "ü", $c5 - - charmap "'d", $d0 - charmap "'l", $d1 - charmap "'m", $d2 - charmap "'r", $d3 - charmap "'s", $d4 - charmap "'t", $d5 - charmap "'v", $d6 - - charmap "←", $df - charmap "'", $e0 - charmap "<PK>", $e1 - charmap "<MN>", $e2 - charmap "-", $e3 - - charmap "?", $e6 - charmap "!", $e7 - charmap ".", $e8 - charmap "&", $e9 - - charmap "é", $ea - charmap "→", $eb - charmap "▷", $ec - charmap "▶", $ed - charmap "▼", $ee - charmap "♂", $ef - charmap "¥", $f0 - charmap "×", $f1 - charmap "<DOT>", $f2 ; same as "." in English - charmap "/", $f3 - charmap ",", $f4 - charmap "♀", $f5 - - charmap "0", $f6 - charmap "1", $f7 - charmap "2", $f8 - charmap "3", $f9 - charmap "4", $fa - charmap "5", $fb - charmap "6", $fc - charmap "7", $fd - charmap "8", $fe - charmap "9", $ff + charmap "|", $31 ; from gfx/stats/stats_tiles + + charmap "<SHINY>", $3f ; gfx/stats/shiny + + charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp + charmap "▲", $61 ; gfx/font/up_arrow.png + charmap "<PHONE>", $62 ; gfx/font/overworld_phone_icon.2bpp + charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp + + charmap "′", $6e ; gfx/font/feet_inches.png + charmap "″", $6f ; gfx/font/feet_inches.png + +; Actual characters (from gfx/font/font.png) + + charmap "A", $80 + charmap "B", $81 + charmap "C", $82 + charmap "D", $83 + charmap "E", $84 + charmap "F", $85 + charmap "G", $86 + charmap "H", $87 + charmap "I", $88 + charmap "J", $89 + charmap "K", $8a + charmap "L", $8b + charmap "M", $8c + charmap "N", $8d + charmap "O", $8e + charmap "P", $8f + charmap "Q", $90 + charmap "R", $91 + charmap "S", $92 + charmap "T", $93 + charmap "U", $94 + charmap "V", $95 + charmap "W", $96 + charmap "X", $97 + charmap "Y", $98 + charmap "Z", $99 + + charmap "(", $9a + charmap ")", $9b + charmap ":", $9c + charmap ";", $9d + charmap "[", $9e + charmap "]", $9f + + charmap "a", $a0 + charmap "b", $a1 + charmap "c", $a2 + charmap "d", $a3 + charmap "e", $a4 + charmap "f", $a5 + charmap "g", $a6 + charmap "h", $a7 + charmap "i", $a8 + charmap "j", $a9 + charmap "k", $aa + charmap "l", $ab + charmap "m", $ac + charmap "n", $ad + charmap "o", $ae + charmap "p", $af + charmap "q", $b0 + charmap "r", $b1 + charmap "s", $b2 + charmap "t", $b3 + charmap "u", $b4 + charmap "v", $b5 + charmap "w", $b6 + charmap "x", $b7 + charmap "y", $b8 + charmap "z", $b9 + + charmap "Ä", $c0 + charmap "Ö", $c1 + charmap "Ü", $c2 + charmap "ä", $c3 + charmap "ö", $c4 + charmap "ü", $c5 + + charmap "'d", $d0 + charmap "'l", $d1 + charmap "'m", $d2 + charmap "'r", $d3 + charmap "'s", $d4 + charmap "'t", $d5 + charmap "'v", $d6 + + charmap "←", $df + charmap "'", $e0 + charmap "<PK>", $e1 + charmap "<MN>", $e2 + charmap "-", $e3 + + charmap "?", $e6 + charmap "!", $e7 + charmap ".", $e8 + charmap "&", $e9 + + charmap "é", $ea + charmap "→", $eb + charmap "▷", $ec + charmap "▶", $ed + charmap "▼", $ee + charmap "♂", $ef + charmap "¥", $f0 + charmap "×", $f1 + charmap "<DOT>", $f2 ; same as "." in English + charmap "/", $f3 + charmap ",", $f4 + charmap "♀", $f5 + + charmap "0", $f6 + charmap "1", $f7 + charmap "2", $f8 + charmap "3", $f9 + charmap "4", $fa + charmap "5", $fb + charmap "6", $fc + charmap "7", $fd + charmap "8", $fe + charmap "9", $ff ; Japanese kana, for those bits of text that were not translated to English diff --git a/macros/code.asm b/macros/code.asm new file mode 100644 index 000000000..5e247e9a3 --- /dev/null +++ b/macros/code.asm @@ -0,0 +1,55 @@ +; Syntactic sugar macros + +lb: MACRO ; r, hi, lo + ld \1, (\2 & $ff) << 8 + (\3 & $ff) + ENDM + +ln: MACRO ; r, hi, lo + ld \1, (\2 & $f) << 4 + (\3 & $f) + ENDM + +ldpixel: MACRO +if _NARG >= 5 + lb \1, \2 * 8 + \4, \3 * 8 + \5 +else + lb \1, \2 * 8, \3 * 8 +endc +endm + +depixel EQUS "ldpixel de," +bcpixel EQUS "ldpixel bc," + + +; Design patterns + +jumptable: MACRO + ld a, [\2] + ld e, a + ld d, 0 + ld hl, \1 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl +endm + +; Many mobile functions were dummied out in localization. +mobile EQUS "ret" + +maskbits: macro +; example usage in rejection sampling: +; .loop +; call Random +; maskbits 30 +; cp 30 +; jr nc, .loop +x = 1 +rept 8 +IF \1 > x +x = (x + 1) * 2 +- 1 +ENDC +endr + and x +endm diff --git a/macros/color.asm b/macros/color.asm new file mode 100644 index 000000000..35d69fe6f --- /dev/null +++ b/macros/color.asm @@ -0,0 +1,15 @@ +RGB: MACRO +rept _NARG / 3 + dw ((\3) << 10) + ((\2) << 5) + (\1) + shift + shift + shift +endr +ENDM + +palettes EQUS "* 8" +palette EQUS "+ 8 *" + +palred EQUS "$0001 *" +palgreen EQUS "$0020 *" +palblue EQUS "$0400 *" diff --git a/macros/coords.asm b/macros/coords.asm new file mode 100644 index 000000000..2a672c3d0 --- /dev/null +++ b/macros/coords.asm @@ -0,0 +1,51 @@ +bccoord equs "coord bc," +decoord equs "coord de," +hlcoord equs "coord hl," + +coord: MACRO +; register, x, y[, origin] + if _NARG < 4 + ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2) + else + ld \1, \4 + SCREEN_WIDTH * (\3) + (\2) + endc + ENDM + +dwcoord: MACRO + rept _NARG / 2 + dw TileMap + SCREEN_WIDTH * (\2) + (\1) + shift + shift + endr + ENDM + +ldcoord_a: MACRO + if _NARG < 3 + ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a + else + ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a + endc + ENDM + +lda_coord: MACRO + if _NARG < 3 + ld a, [TileMap + SCREEN_WIDTH * (\2) + (\1)] + else + ld a, [\3 + SCREEN_WIDTH * (\2) + (\1)] + endc + ENDM + + +bgrows EQUS "* $20" ; SCREEN_WIDTH + +hlbgcoord EQUS "bgcoord hl," +debgcoord EQUS "bgcoord de," +bcbgcoord EQUS "bgcoord bc," + +bgcoord: MACRO +IF _NARG >= 4 + ld \1, \3 bgrows + \2 + \4 +ELSE + ld \1, \3 bgrows + \2 + VBGMap0 +ENDC +ENDM diff --git a/macros/data.asm b/macros/data.asm new file mode 100644 index 000000000..cf4af0338 --- /dev/null +++ b/macros/data.asm @@ -0,0 +1,121 @@ +; Constant data (db, dw, dl) macros + +dwb: MACRO + dw \1 + db \2 + ENDM + +dbw: MACRO + db \1 + dw \2 + ENDM + +dbbw: MACRO + db \1, \2 + dw \3 + ENDM + +dbww: MACRO + db \1 + dw \2, \3 + ENDM + +dbwww: MACRO + db \1 + dw \2, \3, \4 + ENDM + +dn: MACRO ; nybbles + rept _NARG / 2 + db ((\1) << 4) | (\2) + shift + shift + endr + ENDM + +dc: MACRO ; "crumbs" + rept _NARG / 4 + db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4) + shift + shift + shift + shift + endr + ENDM + +dx: MACRO +x = 8 * ((\1) - 1) + rept \1 + db ((\2) >> x) & $ff +x = x + -8 + endr + ENDM + +dt: MACRO ; three-byte (big-endian) + dx 3, \1 + ENDM + +dd: MACRO ; four-byte (big-endian) + dx 4, \1 + ENDM + +bigdw: MACRO ; big-endian word + dx 2, \1 + ENDM + +dba: MACRO ; dbw bank, address + rept _NARG + dbw BANK(\1), \1 + shift + endr + ENDM + +dab: MACRO ; dwb address, bank + rept _NARG + dwb \1, BANK(\1) + shift + endr + ENDM + +dba_pic: MACRO ; dbw bank, address + db BANK(\1) - PICS_FIX + dw \1 +ENDM + + +dbpixel: MACRO +if _NARG >= 4 + db \1 * 8 + \3, \2 * 8 + \4 +else + db \1 * 8, \2 * 8 +endc +endm + +dsprite: MACRO +; conditional segment is there because not every instance of +; this macro is directly OAM +if _NARG >= 7 ; y tile, y pxl, x tile, x pxl, vtile offset, flags, palette + db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, (\6 << 3) + (\7 & 7) +else + db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6 +endc +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 + + +bcd: MACRO + rept _NARG + dn ((\1) % 100) / 10, (\1) % 10 + shift + endr +ENDM diff --git a/macros/map.asm b/macros/map.asm deleted file mode 100644 index f153806da..000000000 --- a/macros/map.asm +++ /dev/null @@ -1,211 +0,0 @@ -map: macro -;\1: map id - db GROUP_\1, MAP_\1 -endm - -maptrigger: macro -;\1: script pointer - dw \1, 0 -endm - -warp_def: macro -;\1: y: top to bottom, starts at 0 -;\2: x: left to right, starts at 0 -;\3: warp destination: starts at 1 -;\4: map id: from constants/map_constants.asm - db \1, \2, \3 - map \4 -endm - -xy_trigger: macro -;\1: number: controlled by dotrigger/domaptrigger -;\2: y: top to bottom, starts at 0 -;\3: x: left to right, starts at 0 -;\4: script pointer - db \1, \2, \3, $0 - dw \4 - db $0, $0 -endm - -signpost: macro -;\1: y: top to bottom, starts at 0 -;\2: x: left to right, starts at 0 -;\3: function: a SIGNPOST_* constant -;\4: script pointer - db \1, \2, \3 - dw \4 -endm - -person_event: macro -;\1: sprite: a SPRITE_* constant -;\2: y: top to bottom, starts at 0 -;\3: x: left to right, starts at 0 -;\4: movement function: a SPRITEMOVEDATA_* constant -;\5, \6: movement radius: y, x -;\7: clock hour: ??? -;\8: clock daytime: sum of MORN, DAY, and/or NITE, or 0 for always -;\9: color: a PAL_NPC_* constant, or 0 for sprite default -;\10: function: a PERSONTYPE_* constant -;\11: sight range: applies to PERSONTYPE_TRAINER -;\12: script pointer -;\13: event flag: an EVENT_* constant, or 0 for always - db \1, \2 + 4, \3 + 4, \4 - dn \5, \6 - db \7, \8 - shift - dn \8, \9 - shift - db \9 - shift - dw \9 - shift - dw \9 -endm - - -newgroup: macro -const_value = const_value + 1 - enum_start 1 -endm - -mapgroup: macro -;\1: map id -;\2: height: in blocks -;\3: width: in blocks -GROUP_\1 EQU const_value - enum MAP_\1 -\1_HEIGHT EQU \2 -\1_WIDTH EQU \3 -endm - - -map_header: macro -;\1: map label -;\2: tileset: a TILESET_* constant -;\3: permission: TOWN, ROUTE, INDOOR, CAVE, PERM_5, GATE, or DUNGEON -;\4: location: from constants/landmark_constants.asm -;\5: music: a MUSIC_* constant -;\6: phone service flag: 1 to prevent phone calls -;\7: time of day: a PALETTE_* constant -;\8: fishing group: a FISHGROUP_* constant -\1_MapHeader: - db BANK(\1_SecondMapHeader), \2, \3 - dw \1_SecondMapHeader - db \4, \5 - dn \6, \7 - db \8 -endm - - -map_header_2: macro -;\1: map label -;\2: map id -;\3: border block -;\4: connections: sum of NORTH, SOUTH, WEST, and/or EAST, or 0 for none -\1_SecondMapHeader:: - db \3 - db \2_HEIGHT, \2_WIDTH - db BANK(\1_BlockData) - dw \1_BlockData - db BANK(\1_MapScriptHeader) - dw \1_MapScriptHeader - dw \1_MapEventHeader - db \4 -endm - -connection: macro -if "\1" == "north" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: x -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5 - dw OverworldMap + \4 + 3 - db \6 - db \2_WIDTH - db \2_HEIGHT * 2 - 1 - db (\4 - \5) * -2 - dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1 -endc - -if "\1" == "south" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: x -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + \5 - dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3 - db \6 - db \2_WIDTH - db 0 - db (\4 - \5) * -2 - dw OverworldMap + \2_WIDTH + 7 -endc - -if "\1" == "west" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: y -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3 - dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3) - db \6 - db \2_WIDTH - db (\4 - \5) * -2 - db \2_WIDTH * 2 - 1 - dw OverworldMap + \2_WIDTH * 2 + 6 -endc - -if "\1" == "east" -;\2: map id -;\3: map label (eventually will be rolled into map id) -;\4: y -;\5: offset? -;\6: strip length -;\7: this map id - map \2 - dw \3_BlockData + (\2_WIDTH * \5) - dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3 - db \6 - db \2_WIDTH - db (\4 - \5) * -2 - db 0 - dw OverworldMap + \2_WIDTH + 7 -endc -endm - - -itemball: macro -;\1: item: from constants/item_constants.asm -;\2: quantity: default 1 -if _NARG == 2 - db \1, \2 -else - db \1, 1 -endc -endm - -elevfloor: macro -;\1: floor: a FLOOR_* constant -;\2: warp destination: starts at 1 -;\3: map id - db \1, \2 - map \3 -ENDM - -stonetable: macro -;\1: warp id -;\2: person_event id -;\3: script pointer - db \1, \2 - dw \3 -endm diff --git a/macros/mobile.asm b/macros/mobile.asm deleted file mode 100644 index 06b40d694..000000000 --- a/macros/mobile.asm +++ /dev/null @@ -1,2 +0,0 @@ -; Many mobile functions were dummied out in localization. -mobile EQUS "ret" diff --git a/macros/movement.asm b/macros/movement.asm deleted file mode 100644 index a2acf1356..000000000 --- a/macros/movement.asm +++ /dev/null @@ -1,247 +0,0 @@ -; MovementPointers indexes (see engine/movement.asm) - enum_start - -; Directional movements - - enum movement_turn_head -turn_head: macro - db movement_turn_head | \1 ; $00 - endm - -__enum__ = __enum__ + 3 - - enum movement_turn_step -turn_step: macro - db movement_turn_step | \1 ; $04 - endm - -__enum__ = __enum__ + 3 - - enum movement_slow_step -slow_step: macro - db movement_slow_step | \1; $08 - endm - -__enum__ = __enum__ + 3 - - enum movement_step -step: macro - db movement_step | \1 ; $0c - endm - -__enum__ = __enum__ + 3 - - enum movement_big_step -big_step: macro - db movement_big_step | \1 ; $10 - endm - -__enum__ = __enum__ + 3 - - enum movement_slow_slide_step -slow_slide_step: macro - db movement_slow_slide_step | \1 ; $14 - endm - -__enum__ = __enum__ + 3 - - enum movement_slide_step -slide_step: macro - db movement_slide_step | \1 ; $18 - endm - -__enum__ = __enum__ + 3 - - enum movement_fast_slide_step -fast_slide_step: macro - db movement_fast_slide_step | \1 ; $1c - endm - -__enum__ = __enum__ + 3 - - enum movement_turn_away -turn_away: macro - db movement_turn_away | \1 ; $20 - endm - -__enum__ = __enum__ + 3 - - enum movement_turn_in -turn_in: macro - db movement_turn_in | \1 ; $24 - endm - -__enum__ = __enum__ + 3 - - enum movement_turn_waterfall -turn_waterfall: macro - db movement_turn_waterfall | \1 ; $28 - endm - -__enum__ = __enum__ + 3 - - enum movement_slow_jump_step -slow_jump_step: macro - db movement_slow_jump_step | \1 ; $2c - endm - -__enum__ = __enum__ + 3 - - enum movement_jump_step -jump_step: macro - db movement_jump_step | \1 ; $30 - endm - -__enum__ = __enum__ + 3 - - enum movement_fast_jump_step -fast_jump_step: macro - db movement_fast_jump_step | \1 ; $34 - endm - -__enum__ = __enum__ + 3 - -; Control - enum movement_remove_sliding -remove_sliding: macro - db movement_remove_sliding ; $38 - endm - - enum movement_set_sliding -set_sliding: macro - db movement_set_sliding ; $39 - endm - - enum movement_remove_fixed_facing -remove_fixed_facing: macro - db movement_remove_fixed_facing ; $3a - endm - - enum movement_fix_facing -fix_facing: macro - db movement_fix_facing ; $3b - endm - - enum movement_show_person -show_person: macro - db movement_show_person ; $3c - endm - - enum movement_hide_person -hide_person: macro - db movement_hide_person ; $3d - endm - -; Sleep - - enum movement_step_sleep -step_sleep: macro -if \1 <= 8 - db movement_step_sleep + \1 - 1 -else - db movement_step_sleep + 8, \1 -endc -endm - -__enum__ = __enum__ + 8 - - enum movement_step_end -step_end: macro - db movement_step_end ; $47 - endm - -; Whatever Movement_48 is, it takes a one-byte parameter - enum movement_step_48 -step_48: macro - db movement_step_48 - db \1 - endm - - enum movement_remove_person -remove_person: macro - db movement_remove_person ; $49 - endm - - enum movement_step_loop -step_loop: macro - db movement_step_loop ; $4a - endm - - enum movement_step_4b -step_4b: macro - db movement_step_4b ; $4b - endm - - enum movement_teleport_from -teleport_from: macro - db movement_teleport_from ; $4c - endm - - enum movement_teleport_to -teleport_to: macro - db movement_teleport_to ; $4d - endm - - enum movement_skyfall -skyfall: macro - db movement_skyfall ; $4e - endm - - enum movement_step_dig -step_dig: macro - db movement_step_dig ; $4f - db \1 - endm - - enum movement_step_bump -step_bump: macro - db movement_step_bump ; $50 - endm - - enum movement_fish_got_bite -fish_got_bite: macro - db movement_fish_got_bite ; $51 - endm - - enum movement_fish_cast_rod -fish_cast_rod: macro - db movement_fish_cast_rod ; $52 - endm - - enum movement_hide_emote -hide_emote: macro - db movement_hide_emote ; $53 - endm - - enum movement_show_emote -show_emote: macro - db movement_show_emote ; $54 - endm - - enum movement_step_shake -step_shake: macro - db movement_step_shake ; $55 - db \1 ; displacement - endm - - enum movement_tree_shake -tree_shake: macro - db movement_tree_shake - endm - - enum movement_rock_smash -rock_smash: macro - db movement_rock_smash ; $57 - db \1 - endm - - enum movement_return_dig -return_dig: macro - db movement_return_dig ; $58 - db \1 - endm - - enum movement_skyfall_top -skyfall_top: macro - db movement_skyfall_top ; $59 - endm diff --git a/macros/pic.asm b/macros/pic.asm deleted file mode 100644 index f06c6cd4f..000000000 --- a/macros/pic.asm +++ /dev/null @@ -1,4 +0,0 @@ -add_pic: MACRO - db BANK(\1) - PICS_FIX - dw \1 -ENDM diff --git a/macros/rst.asm b/macros/rst.asm index 50259c968..fe7e42723 100644 --- a/macros/rst.asm +++ b/macros/rst.asm @@ -15,3 +15,15 @@ callab: MACRO ; address, bank ld a, BANK(\1) rst FarCall ENDM + +homecall: MACRO + ld a, [hROMBank] + push af + ld a, BANK(\1) + rst Bankswitch + + call \1 + + pop af + rst Bankswitch +ENDM diff --git a/macros/sound.asm b/macros/scripts/audio.asm index bac979a5f..3766785ba 100644 --- a/macros/sound.asm +++ b/macros/scripts/audio.asm @@ -26,7 +26,7 @@ cry_header: macro ; MusicCommands indexes (see audio/engine.asm) enum_start $d8 - enum notetype_cmd + enum notetype_cmd ; $d8 octave: macro db notetype_cmd - (\1) endm @@ -39,227 +39,227 @@ notetype: macro endc endm - enum pitchoffset_cmd + enum pitchoffset_cmd ; $d9 pitchoffset: macro db pitchoffset_cmd dn \1, \2 - 1 ; octave, key endm - enum tempo_cmd + enum tempo_cmd ; $da tempo: macro db tempo_cmd bigdw \1 ; tempo endm - enum dutycycle_cmd + enum dutycycle_cmd ; $db dutycycle: macro db dutycycle_cmd db \1 ; duty_cycle endm - enum intensity_cmd + enum intensity_cmd ; $dc intensity: macro db intensity_cmd db \1 ; intensity endm - enum soundinput_cmd + enum soundinput_cmd ; $dd soundinput: macro db soundinput_cmd db \1 ; input endm - enum sound_duty_cmd + enum sound_duty_cmd ; $de sound_duty: macro db sound_duty_cmd db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence endm - enum togglesfx_cmd + enum togglesfx_cmd ; $df togglesfx: macro db togglesfx_cmd endm - enum slidepitchto_cmd + enum slidepitchto_cmd ; $e0 slidepitchto: macro db slidepitchto_cmd db \1 - 1 ; duration dn \2, \3 ; octave, pitch endm - enum vibrato_cmd + enum vibrato_cmd ; $e1 vibrato: macro db vibrato_cmd db \1 ; delay db \2 ; extent endm - enum unknownmusic0xe2_cmd + enum unknownmusic0xe2_cmd ; $e2 unknownmusic0xe2: macro db unknownmusic0xe2_cmd db \1 ; unknown endm - enum togglenoise_cmd + enum togglenoise_cmd ; $e3 togglenoise: macro db togglenoise_cmd db \1 ; id endm - enum panning_cmd + enum panning_cmd ; $e4 panning: macro db panning_cmd db \1 ; tracks endm - enum volume_cmd + enum volume_cmd ; $e5 volume: macro db volume_cmd db \1 ; volume endm - enum tone_cmd + enum tone_cmd ; $e6 tone: macro db tone_cmd bigdw \1 ; tone endm - enum unknownmusic0xe7_cmd + enum unknownmusic0xe7_cmd ; $e7 unknownmusic0xe7: macro db unknownmusic0xe7_cmd db \1 ; unknown endm - enum unknownmusic0xe8_cmd + enum unknownmusic0xe8_cmd ; $e8 unknownmusic0xe8: macro db unknownmusic0xe8_cmd db \1 ; unknown endm - enum tempo_relative_cmd + enum tempo_relative_cmd ; $e9 tempo_relative: macro db tempo_relative_cmd bigdw \1 ; value endm - enum restartchannel_cmd + enum restartchannel_cmd ; $ea restartchannel: macro db restartchannel_cmd dw \1 ; address endm - enum newsong_cmd + enum newsong_cmd ; $eb newsong: macro db newsong_cmd bigdw \1 ; id endm - enum sfxpriorityon_cmd + enum sfxpriorityon_cmd ; $ec sfxpriorityon: macro db sfxpriorityon_cmd endm - enum sfxpriorityoff_cmd + enum sfxpriorityoff_cmd ; $ed sfxpriorityoff: macro db sfxpriorityoff_cmd endm - enum unknownmusic0xee_cmd + enum unknownmusic0xee_cmd ; $ee unknownmusic0xee: macro db unknownmusic0xee_cmd dw \1 ; address endm - enum stereopanning_cmd + enum stereopanning_cmd ; $ef stereopanning: macro db stereopanning_cmd db \1 ; tracks endm - enum sfxtogglenoise_cmd + enum sfxtogglenoise_cmd ; $f0 sfxtogglenoise: macro db sfxtogglenoise_cmd db \1 ; id endm - enum music0xf1_cmd + enum music0xf1_cmd ; $f1 music0xf1: macro db music0xf1_cmd endm - enum music0xf2_cmd + enum music0xf2_cmd ; $f2 music0xf2: macro db music0xf2_cmd endm - enum music0xf3_cmd + enum music0xf3_cmd ; $f3 music0xf3: macro db music0xf3_cmd endm - enum music0xf4_cmd + enum music0xf4_cmd ; $f4 music0xf4: macro db music0xf4_cmd endm - enum music0xf5_cmd + enum music0xf5_cmd ; $f5 music0xf5: macro db music0xf5_cmd endm - enum music0xf6_cmd + enum music0xf6_cmd ; $f6 music0xf6: macro db music0xf6_cmd endm - enum music0xf7_cmd + enum music0xf7_cmd ; $f7 music0xf7: macro db music0xf7_cmd endm - enum music0xf8_cmd + enum music0xf8_cmd ; $f8 music0xf8: macro db music0xf8_cmd endm - enum unknownmusic0xf9_cmd + enum unknownmusic0xf9_cmd ; $f9 unknownmusic0xf9: macro db unknownmusic0xf9_cmd endm - enum setcondition_cmd + enum setcondition_cmd ; $fa setcondition: macro db setcondition_cmd db \1 ; condition endm - enum jumpif_cmd + enum jumpif_cmd ; $fb jumpif: macro db jumpif_cmd db \1 ; condition dw \2 ; address endm - enum jumpchannel_cmd + enum jumpchannel_cmd ; $fc jumpchannel: macro db jumpchannel_cmd dw \1 ; address endm - enum loopchannel_cmd + enum loopchannel_cmd ; $fd loopchannel: macro db loopchannel_cmd db \1 ; count dw \2 ; address endm - enum callchannel_cmd + enum callchannel_cmd ; $fe callchannel: macro db callchannel_cmd dw \1 ; address endm - enum endchannel_cmd + enum endchannel_cmd ; $ff endchannel: macro db endchannel_cmd endm diff --git a/macros/scripts/effect_commands.asm b/macros/scripts/effect_commands.asm new file mode 100644 index 000000000..4fd2475b7 --- /dev/null +++ b/macros/scripts/effect_commands.asm @@ -0,0 +1,187 @@ +command: macro + enum \1_command +\1 equs "db \1_command" +endm + +; BattleCommandPointers indexes (see battle/effect_commands.asm) + enum_start 1 + command checkturn ; 01 + command checkobedience ; 02 + command usedmovetext ; 03 + command doturn ; 04 + command critical ; 05 + command damagestats ; 06 + command stab ; 07 + command damagevariation ; 08 + command checkhit ; 09 + command lowersub ; 0a + command hittargetnosub ; 0b + command raisesub ; 0c + command failuretext ; 0d + command checkfaint ; 0e + command criticaltext ; 0f + command supereffectivetext ; 10 + command checkdestinybond ; 11 + command buildopponentrage ; 12 + command poisontarget ; 13 + command sleeptarget ; 14 + command draintarget ; 15 + command eatdream ; 16 + command burntarget ; 17 + command freezetarget ; 18 + command paralyzetarget ; 19 + command selfdestruct ; 1a + command mirrormove ; 1b + command statup ; 1c + command statdown ; 1d + command payday ; 1e + command conversion ; 1f + command resetstats ; 20 + command storeenergy ; 21 + command unleashenergy ; 22 + command forceswitch ; 23 + command endloop ; 24 + command flinchtarget ; 25 + command ohko ; 26 + command recoil ; 27 + command mist ; 28 + command focusenergy ; 29 + command confuse ; 2a + command confusetarget ; 2b + command heal ; 2c + command transform ; 2d + command screen ; 2e + command poison ; 2f + command paralyze ; 30 + command substitute ; 31 + command rechargenextturn ; 32 + command mimic ; 33 + command metronome ; 34 + command leechseed ; 35 + command splash ; 36 + command disable ; 37 + command cleartext ; 38 + command charge ; 39 + command checkcharge ; 3a + command traptarget ; 3b + command effect0x3c ; 3c + command rampage ; 3d + command checkrampage ; 3e + command constantdamage ; 3f + command counter ; 40 + command encore ; 41 + command painsplit ; 42 + command snore ; 43 + command conversion2 ; 44 + command lockon ; 45 + command sketch ; 46 + command defrostopponent ; 47 + command sleeptalk ; 48 + command destinybond ; 49 + command spite ; 4a + command falseswipe ; 4b + command healbell ; 4c + command kingsrock ; 4d + command triplekick ; 4e + command kickcounter ; 4f + command thief ; 50 + command arenatrap ; 51 + command nightmare ; 52 + command defrost ; 53 + command curse ; 54 + command protect ; 55 + command spikes ; 56 + command foresight ; 57 + command perishsong ; 58 + command startsandstorm ; 59 + command endure ; 5a + command checkcurl ; 5b + command rolloutpower ; 5c + command effect0x5d ; 5d + command furycutter ; 5e + command attract ; 5f + command happinesspower ; 60 + command present ; 61 + command damagecalc ; 62 + command frustrationpower ; 63 + command safeguard ; 64 + command checksafeguard ; 65 + command getmagnitude ; 66 + command batonpass ; 67 + command pursuit ; 68 + command clearhazards ; 69 + command healmorn ; 6a + command healday ; 6b + command healnite ; 6c + command hiddenpower ; 6d + command startrain ; 6e + command startsun ; 6f + command attackup ; 70 + command defenseup ; 71 + command speedup ; 72 + command specialattackup ; 73 + command specialdefenseup ; 74 + command accuracyup ; 75 + command evasionup ; 76 + command attackup2 ; 77 + command defenseup2 ; 78 + command speedup2 ; 79 + command specialattackup2 ; 7a + command specialdefenseup2 ; 7b + command accuracyup2 ; 7c + command evasionup2 ; 7d + command attackdown ; 7e + command defensedown ; 7f + command speeddown ; 80 + command specialattackdown ; 81 + command specialdefensedown ; 82 + command accuracydown ; 83 + command evasiondown ; 84 + command attackdown2 ; 85 + command defensedown2 ; 86 + command speeddown2 ; 87 + command specialattackdown2 ; 88 + command specialdefensedown2 ; 89 + command accuracydown2 ; 8a + command evasiondown2 ; 8b + command statupmessage ; 8c + command statdownmessage ; 8d + command statupfailtext ; 8e + command statdownfailtext ; 8f + command effectchance ; 90 + command statdownanim ; 91 + command statupanim ; 92 + command switchturn ; 93 + command fakeout ; 94 + command bellydrum ; 95 + command psychup ; 96 + command rage ; 97 + command doubleflyingdamage ; 98 + command doubleundergrounddamage ; 99 + command mirrorcoat ; 9a + command checkfuturesight ; 9b + command futuresight ; 9c + command doubleminimizedamage ; 9d + command skipsuncharge ; 9e + command thunderaccuracy ; 9f + command teleport ; a0 + command beatup ; a1 + command ragedamage ; a2 + command resettypematchup ; a3 + command allstatsup ; a4 + command effect0xa5 ; a5 + command raisesubnoanim ; a6 + command lowersubnoanim ; a7 + command effect0xa8 ; a8 + command clearmissdamage ; a9 + command movedelay ; aa + command hittarget ; ab + command tristatuschance ; ac + command supereffectivelooptext ; ad + command startloop ; ae + command curl ; af + +__enum__ set $fe + + command endturn ; fe + command endmove ; ff diff --git a/macros/event.asm b/macros/scripts/event.asm index b00b6a6da..c40d6f8fd 100644 --- a/macros/event.asm +++ b/macros/scripts/event.asm @@ -1,101 +1,101 @@ ; ScriptCommandTable indexes (see engine/scripting.asm) enum_start - enum scall_command + enum scall_command ; $00 scall: macro db scall_command dw \1 ; pointer endm - enum farscall_command + enum farscall_command ; $01 farscall: macro db farscall_command dba \1 endm - enum ptcall_command + enum ptcall_command ; $02 ptcall: macro db ptcall_command dw \1 ; pointer endm - enum jump_command + enum jump_command ; $03 jump: macro db jump_command dw \1 ; pointer endm - enum farjump_command + enum farjump_command ; $04 farjump: macro db farjump_command dba \1 endm - enum ptjump_command + enum ptjump_command ; $05 ptjump: macro db ptjump_command dw \1 ; pointer endm - enum if_equal_command + enum if_equal_command ; $06 if_equal: macro db if_equal_command db \1 ; byte dw \2 ; pointer endm - enum if_not_equal_command + enum if_not_equal_command ; $07 if_not_equal: macro db if_not_equal_command db \1 ; byte dw \2 ; pointer endm - enum iffalse_command + enum iffalse_command ; $08 iffalse: macro db iffalse_command dw \1 ; pointer endm - enum iftrue_command + enum iftrue_command ; $09 iftrue: macro db iftrue_command dw \1 ; pointer endm - enum if_greater_than_command + enum if_greater_than_command ; $0a if_greater_than: macro db if_greater_than_command db \1 ; byte dw \2 ; pointer endm - enum if_less_than_command + enum if_less_than_command ; $0b if_less_than: macro db if_less_than_command db \1 ; byte dw \2 ; pointer endm - enum jumpstd_command + enum jumpstd_command ; $0c jumpstd: macro db jumpstd_command dw \1 ; predefined_script endm - enum callstd_command + enum callstd_command ; $0d callstd: macro db callstd_command dw \1 ; predefined_script endm - enum callasm_command + enum callasm_command ; $0e callasm: macro db callasm_command dba \1 endm - enum special_command + enum special_command ; $0f special: macro db special_command dw (\1Special - SpecialsPointers) / 3 @@ -106,98 +106,98 @@ add_special: MACRO dba \1 ENDM - enum ptcallasm_command + enum ptcallasm_command ; $10 ptcallasm: macro db ptcallasm_command dw \1 ; asm endm - enum checkmaptriggers_command + enum checkmaptriggers_command ; $11 checkmaptriggers: macro db checkmaptriggers_command map \1 ; map endm - enum domaptrigger_command + enum domaptrigger_command ; $12 domaptrigger: macro db domaptrigger_command map \1 ; map db \2 ; trigger_id endm - enum checktriggers_command + enum checktriggers_command ; $13 checktriggers: macro db checktriggers_command endm - enum dotrigger_command + enum dotrigger_command ; $14 dotrigger: macro db dotrigger_command db \1 ; trigger_id endm - enum writebyte_command + enum writebyte_command ; $15 writebyte: macro db writebyte_command db \1 ; value endm - enum addvar_command + enum addvar_command ; $16 addvar: macro db addvar_command db \1 ; value endm - enum random_command + enum random_command ; $17 random: macro db random_command db \1 ; input endm - enum checkver_command + enum checkver_command ; $18 checkver: macro db checkver_command endm - enum copybytetovar_command + enum copybytetovar_command ; $19 copybytetovar: macro db copybytetovar_command dw \1 ; address endm - enum copyvartobyte_command + enum copyvartobyte_command ; $1a copyvartobyte: macro db copyvartobyte_command dw \1 ; address endm - enum loadvar_command + enum loadvar_command ; $1b loadvar: macro db loadvar_command dw \1 ; address db \2 ; value endm - enum checkcode_command + enum checkcode_command ; $1c checkcode: macro db checkcode_command db \1 ; variable_id endm - enum writevarcode_command + enum writevarcode_command ; $1d writevarcode: macro db writevarcode_command db \1 ; variable_id endm - enum writecode_command + enum writecode_command ; $1e writecode: macro db writecode_command db \1 ; variable_id db \2 ; value endm - enum giveitem_command + enum giveitem_command ; $1f giveitem: macro db giveitem_command db \1 ; item @@ -208,7 +208,7 @@ else endc endm - enum takeitem_command + enum takeitem_command ; $20 takeitem: macro db takeitem_command db \1 ; item @@ -219,70 +219,70 @@ else endc endm - enum checkitem_command + enum checkitem_command ; $21 checkitem: macro db checkitem_command db \1 ; item endm - enum givemoney_command + enum givemoney_command ; $22 givemoney: macro db givemoney_command db \1 ; account dt \2 ; money endm - enum takemoney_command + enum takemoney_command ; $23 takemoney: macro db takemoney_command db \1 ; account dt \2 ; money endm - enum checkmoney_command + enum checkmoney_command ; $24 checkmoney: macro db checkmoney_command db \1 ; account dt \2 ; money endm - enum givecoins_command + enum givecoins_command ; $25 givecoins: macro db givecoins_command dw \1 ; coins endm - enum takecoins_command + enum takecoins_command ; $26 takecoins: macro db takecoins_command dw \1 ; coins endm - enum checkcoins_command + enum checkcoins_command ; $27 checkcoins: macro db checkcoins_command dw \1 ; coins endm - enum addcellnum_command + enum addcellnum_command ; $28 addcellnum: macro db addcellnum_command db \1 ; person endm - enum delcellnum_command + enum delcellnum_command ; $29 delcellnum: macro db delcellnum_command db \1 ; person endm - enum checkcellnum_command + enum checkcellnum_command ; $2a checkcellnum: macro db checkcellnum_command db \1 ; person endm - enum checktime_command + enum checktime_command ; $2b checktime: macro db checktime_command db \1 ; time @@ -292,13 +292,13 @@ checkmorn EQUS "checktime MORN" checkday EQUS "checktime DAY" checknite EQUS "checktime NITE" - enum checkpoke_command + enum checkpoke_command ; $2c checkpoke: macro db checkpoke_command db \1 ; pkmn endm - enum givepoke_command + enum givepoke_command ; $2d givepoke: macro db givepoke_command db \1 ; pokemon @@ -319,91 +319,91 @@ givepoke: macro endc endm - enum giveegg_command + enum giveegg_command ; $2e giveegg: macro db giveegg_command db \1 ; pkmn db \2 ; level endm - enum givepokeitem_command + enum givepokeitem_command ; $2f givepokeitem: macro db givepokeitem_command dw \1 ; pointer endm - enum checkpokeitem_command + enum checkpokeitem_command ; $30 checkpokeitem: macro db checkpokeitem_command dw \1 ; pointer endm - enum checkevent_command + enum checkevent_command ; $31 checkevent: macro db checkevent_command dw \1 ; event_flag endm - enum clearevent_command + enum clearevent_command ; $32 clearevent: macro db clearevent_command dw \1 ; event_flag endm - enum setevent_command + enum setevent_command ; $33 setevent: macro db setevent_command dw \1 ; event_flag endm - enum checkflag_command + enum checkflag_command ; $34 checkflag: macro db checkflag_command dw \1 ; engine_flag endm - enum clearflag_command + enum clearflag_command ; $35 clearflag: macro db clearflag_command dw \1 ; engine_flag endm - enum setflag_command + enum setflag_command ; $36 setflag: macro db setflag_command dw \1 ; engine_flag endm - enum wildon_command + enum wildon_command ; $37 wildon: macro db wildon_command endm - enum wildoff_command + enum wildoff_command ; $38 wildoff: macro db wildoff_command endm - enum xycompare_command + enum xycompare_command ; $39 xycompare: macro db xycompare_command dw \1 ; pointer endm - enum warpmod_command + enum warpmod_command ; $3a warpmod: macro db warpmod_command db \1 ; warp_id map \2 ; map endm - enum blackoutmod_command + enum blackoutmod_command ; $3b blackoutmod: macro db blackoutmod_command map \1 ; map endm - enum warp_command + enum warp_command ; $3c warp: macro db warp_command map \1 ; map @@ -411,46 +411,46 @@ warp: macro db \3 ; y endm - enum readmoney_command + enum readmoney_command ; $3d readmoney: macro db readmoney_command db \1 ; account db \2 ; memory endm - enum readcoins_command + enum readcoins_command ; $3e readcoins: macro db readcoins_command db \1 ; memory endm - enum RAM2MEM_command + enum RAM2MEM_command ; $3f RAM2MEM: macro db RAM2MEM_command db \1 ; memory endm - enum pokenamemem_command + enum pokenamemem_command ; $40 pokenamemem: macro db pokenamemem_command db \1 ; pokemon db \2 ; memory endm - enum itemtotext_command + enum itemtotext_command ; $41 itemtotext: macro db itemtotext_command db \1 ; item db \2 ; memory endm - enum mapnametotext_command + enum mapnametotext_command ; $42 mapnametotext: macro db mapnametotext_command db \1 ; memory endm - enum trainertotext_command + enum trainertotext_command ; $43 trainertotext: macro db trainertotext_command db \1 ; trainer_id @@ -458,273 +458,273 @@ trainertotext: macro db \3 ; memory endm - enum stringtotext_command + enum stringtotext_command ; $44 stringtotext: macro db stringtotext_command dw \1 ; text_pointer db \2 ; memory endm - enum itemnotify_command + enum itemnotify_command ; $45 itemnotify: macro db itemnotify_command endm - enum pocketisfull_command + enum pocketisfull_command ; $46 pocketisfull: macro db pocketisfull_command endm - enum opentext_command + enum opentext_command ; $47 opentext: macro db opentext_command endm - enum refreshscreen_command + enum refreshscreen_command ; $48 refreshscreen: macro db refreshscreen_command db \1 ; dummy endm - enum closetext_command + enum closetext_command ; $49 closetext: macro db closetext_command endm - enum loadbytec2cf_command + enum loadbytec2cf_command ; $4a loadbytec2cf: macro db loadbytec2cf_command db \1 ; byte endm - enum farwritetext_command + enum farwritetext_command ; $4b farwritetext: macro db farwritetext_command dba \1 endm - enum writetext_command + enum writetext_command ; $4c writetext: macro db writetext_command dw \1 ; text_pointer endm - enum repeattext_command + enum repeattext_command ; $4d repeattext: macro db repeattext_command db \1 ; byte db \2 ; byte endm - enum yesorno_command + enum yesorno_command ; $4e yesorno: macro db yesorno_command endm - enum loadmenudata_command + enum loadmenudata_command ; $4f loadmenudata: macro db loadmenudata_command dw \1 ; data endm - enum closewindow_command + enum closewindow_command ; $50 closewindow: macro db closewindow_command endm - enum jumptextfaceplayer_command + enum jumptextfaceplayer_command ; $51 jumptextfaceplayer: macro db jumptextfaceplayer_command dw \1 ; text_pointer endm ; IF _CRYSTAL - enum farjumptext_command + enum farjumptext_command ; $52 farjumptext: macro db farjumptext_command dba \1 endm ; ENDC - enum jumptext_command + enum jumptext_command ; $53 jumptext: macro db jumptext_command dw \1 ; text_pointer endm - enum waitbutton_command + enum waitbutton_command ; $54 waitbutton: macro db waitbutton_command endm - enum buttonsound_command + enum buttonsound_command ; $55 buttonsound: macro db buttonsound_command endm - enum pokepic_command + enum pokepic_command ; $56 pokepic: macro db pokepic_command db \1 ; pokemon endm - enum closepokepic_command + enum closepokepic_command ; $57 closepokepic: macro db closepokepic_command endm - enum _2dmenu_command + enum _2dmenu_command ; $58 _2dmenu: macro db _2dmenu_command endm - enum verticalmenu_command + enum verticalmenu_command ; $59 verticalmenu: macro db verticalmenu_command endm - enum loadpikachudata_command + enum loadpikachudata_command ; $5a loadpikachudata: macro db loadpikachudata_command endm - enum randomwildmon_command + enum randomwildmon_command ; $5b randomwildmon: macro db randomwildmon_command endm - enum loadmemtrainer_command + enum loadmemtrainer_command ; $5c loadmemtrainer: macro db loadmemtrainer_command endm - enum loadwildmon_command + enum loadwildmon_command ; $5d loadwildmon: macro db loadwildmon_command db \1 ; pokemon db \2 ; level endm - enum loadtrainer_command + enum loadtrainer_command ; $5e loadtrainer: macro db loadtrainer_command db \1 ; trainer_group db \2 ; trainer_id endm - enum startbattle_command + enum startbattle_command ; $5f startbattle: macro db startbattle_command endm - enum reloadmapafterbattle_command + enum reloadmapafterbattle_command ; $60 reloadmapafterbattle: macro db reloadmapafterbattle_command endm - enum catchtutorial_command + enum catchtutorial_command ; $61 catchtutorial: macro db catchtutorial_command db \1 ; byte endm - enum trainertext_command + enum trainertext_command ; $62 trainertext: macro db trainertext_command db \1 ; which_text endm - enum trainerflagaction_command + enum trainerflagaction_command ; $63 trainerflagaction: macro db trainerflagaction_command db \1 ; action endm - enum winlosstext_command + enum winlosstext_command ; $64 winlosstext: macro db winlosstext_command dw \1 ; win_text_pointer dw \2 ; loss_text_pointer endm - enum scripttalkafter_command + enum scripttalkafter_command ; $65 scripttalkafter: macro db scripttalkafter_command endm - enum end_if_just_battled_command + enum end_if_just_battled_command ; $66 end_if_just_battled: macro db end_if_just_battled_command endm - enum check_just_battled_command + enum check_just_battled_command ; $67 check_just_battled: macro db check_just_battled_command endm - enum setlasttalked_command + enum setlasttalked_command ; $68 setlasttalked: macro db setlasttalked_command db \1 ; person endm - enum applymovement_command + enum applymovement_command ; $69 applymovement: macro db applymovement_command db \1 ; person dw \2 ; data endm - enum applymovement2_command + enum applymovement2_command ; $6a applymovement2: macro db applymovement2_command dw \1 ; data endm - enum faceplayer_command + enum faceplayer_command ; $6b faceplayer: macro db faceplayer_command endm - enum faceperson_command + enum faceperson_command ; $6c faceperson: macro db faceperson_command db \1 ; person1 db \2 ; person2 endm - enum variablesprite_command + enum variablesprite_command ; $6d variablesprite: macro db variablesprite_command db \1 - SPRITE_VARS ; byte db \2 ; sprite endm - enum disappear_command + enum disappear_command ; $6e disappear: macro db disappear_command db \1 ; person endm - enum appear_command + enum appear_command ; $6f appear: macro db appear_command db \1 ; person endm - enum follow_command + enum follow_command ; $70 follow: macro db follow_command db \1 ; person2 db \2 ; person1 endm - enum stopfollow_command + enum stopfollow_command ; $71 stopfollow: macro db stopfollow_command endm - enum moveperson_command + enum moveperson_command ; $72 moveperson: macro db moveperson_command db \1 ; person @@ -732,19 +732,19 @@ moveperson: macro db \3 ; y endm - enum writepersonxy_command + enum writepersonxy_command ; $73 writepersonxy: macro db writepersonxy_command db \1 ; person endm - enum loademote_command + enum loademote_command ; $74 loademote: macro db loademote_command db \1 ; bubble endm - enum showemote_command + enum showemote_command ; $75 showemote: macro db showemote_command db \1 ; bubble @@ -752,34 +752,34 @@ showemote: macro db \3 ; time endm - enum spriteface_command + enum spriteface_command ; $76 spriteface: macro db spriteface_command db \1 ; person db \2 ; facing endm - enum follownotexact_command + enum follownotexact_command ; $77 follownotexact: macro db follownotexact_command db \1 ; person2 db \2 ; person1 endm - enum earthquake_command + enum earthquake_command ; $78 earthquake: macro db earthquake_command db \1 ; param endm - enum changemap_command + enum changemap_command ; $79 changemap: macro db changemap_command db \1 ; map_bank dw \2 ; map_data_pointer endm - enum changeblock_command + enum changeblock_command ; $7a changeblock: macro db changeblock_command db \1 ; x @@ -787,205 +787,205 @@ changeblock: macro db \3 ; block endm - enum reloadmap_command + enum reloadmap_command ; $7b reloadmap: macro db reloadmap_command endm - enum reloadmappart_command + enum reloadmappart_command ; $7c reloadmappart: macro db reloadmappart_command endm - enum writecmdqueue_command + enum writecmdqueue_command ; $7d writecmdqueue: macro db writecmdqueue_command dw \1 ; queue_pointer endm - enum delcmdqueue_command + enum delcmdqueue_command ; $7e delcmdqueue: macro db delcmdqueue_command db \1 ; byte endm - enum playmusic_command + enum playmusic_command ; $7f playmusic: macro db playmusic_command dw \1 ; music_pointer endm - enum encountermusic_command + enum encountermusic_command ; $80 encountermusic: macro db encountermusic_command endm - enum musicfadeout_command + enum musicfadeout_command ; $81 musicfadeout: macro db musicfadeout_command dw \1 ; music db \2 ; fadetime endm - enum playmapmusic_command + enum playmapmusic_command ; $82 playmapmusic: macro db playmapmusic_command endm - enum dontrestartmapmusic_command + enum dontrestartmapmusic_command ; $83 dontrestartmapmusic: macro db dontrestartmapmusic_command endm - enum cry_command + enum cry_command ; $84 cry: macro db cry_command dw \1 ; cry_id endm - enum playsound_command + enum playsound_command ; $85 playsound: macro db playsound_command dw \1 ; sound_pointer endm - enum waitsfx_command + enum waitsfx_command ; $86 waitsfx: macro db waitsfx_command endm - enum warpsound_command + enum warpsound_command ; $87 warpsound: macro db warpsound_command endm - enum specialsound_command + enum specialsound_command ; $88 specialsound: macro db specialsound_command endm - enum passtoengine_command + enum passtoengine_command ; $89 passtoengine: macro db passtoengine_command db \1 ; data_pointer endm - enum newloadmap_command + enum newloadmap_command ; $8a newloadmap: macro db newloadmap_command db \1 ; which_method endm - enum pause_command + enum pause_command ; $8b pause: macro db pause_command db \1 ; length endm - enum deactivatefacing_command + enum deactivatefacing_command ; $8c deactivatefacing: macro db deactivatefacing_command db \1 ; time endm - enum priorityjump_command + enum priorityjump_command ; $8d priorityjump: macro db priorityjump_command dw \1 ; pointer endm - enum warpcheck_command + enum warpcheck_command ; $8e warpcheck: macro db warpcheck_command endm - enum ptpriorityjump_command + enum ptpriorityjump_command ; $8f ptpriorityjump: macro db ptpriorityjump_command dw \1 ; pointer endm - enum return_command + enum return_command ; $90 return: macro db return_command endm - enum end_command + enum end_command ; $91 end: macro db end_command endm - enum reloadandreturn_command + enum reloadandreturn_command ; $92 reloadandreturn: macro db reloadandreturn_command db \1 ; which_method endm - enum end_all_command + enum end_all_command ; $93 end_all: macro db end_all_command endm - enum pokemart_command + enum pokemart_command ; $94 pokemart: macro db pokemart_command db \1 ; dialog_id dw \2 ; mart_id endm - enum elevator_command + enum elevator_command ; $95 elevator: macro db elevator_command dw \1 ; floor_list_pointer endm - enum trade_command + enum trade_command ; $96 trade: macro db trade_command db \1 ; trade_id endm - enum askforphonenumber_command + enum askforphonenumber_command ; $97 askforphonenumber: macro db askforphonenumber_command db \1 ; number endm - enum phonecall_command + enum phonecall_command ; $98 phonecall: macro db phonecall_command dw \1 ; caller_name endm - enum hangup_command + enum hangup_command ; $99 hangup: macro db hangup_command endm - enum describedecoration_command + enum describedecoration_command ; $9a describedecoration: macro db describedecoration_command db \1 ; byte endm - enum fruittree_command + enum fruittree_command ; $9b fruittree: macro db fruittree_command db \1 ; tree_id endm - enum specialphonecall_command + enum specialphonecall_command ; $9c specialphonecall: macro db specialphonecall_command dw \1 ; call_id endm - enum checkphonecall_command + enum checkphonecall_command ; $9d checkphonecall: macro db checkphonecall_command endm - enum verbosegiveitem_command + enum verbosegiveitem_command ; $9e verbosegiveitem: macro db verbosegiveitem_command db \1 ; item @@ -996,31 +996,31 @@ else endc endm - enum verbosegiveitem2_command + enum verbosegiveitem2_command ; $9f verbosegiveitem2: macro db verbosegiveitem2_command db \1 ; item db \2 ; var endm - enum swarm_command + enum swarm_command ; $a0 swarm: macro db swarm_command db \1 ; flag map \2 ; map endm - enum halloffame_command + enum halloffame_command ; $a1 halloffame: macro db halloffame_command endm - enum credits_command + enum credits_command ; $a2 credits: macro db credits_command endm - enum warpfacing_command + enum warpfacing_command ; $a3 warpfacing: macro db warpfacing_command db \1 ; facing @@ -1029,27 +1029,27 @@ warpfacing: macro db \4 ; y endm - enum battletowertext_command + enum battletowertext_command ; $a4 battletowertext: macro db battletowertext_command db \1 ; memory endm - enum landmarktotext_command + enum landmarktotext_command ; $a5 landmarktotext: macro db landmarktotext_command db \1 ; id db \2 ; memory endm - enum trainerclassname_command + enum trainerclassname_command ; $a6 trainerclassname: macro db trainerclassname_command db \1 ; id db \2 ; memory endm - enum name_command + enum name_command ; $a7 name: macro db name_command db \1 ; type @@ -1057,13 +1057,13 @@ name: macro db \3 ; memory endm - enum wait_command + enum wait_command ; $a8 wait: macro db wait_command db \1 ; duration endm - enum check_save_command + enum check_save_command ; $a9 check_save: macro db check_save_command endm diff --git a/macros/scripts/gfx_anim.asm b/macros/scripts/gfx_anim.asm new file mode 100644 index 000000000..a3fa710a0 --- /dev/null +++ b/macros/scripts/gfx_anim.asm @@ -0,0 +1,44 @@ +; pic + oam animations + +frame: macro + db \1 +x = \2 +if _NARG > 2 +rept _NARG +- 2 +x = x | (1 << (\3 + 1)) + shift +endr +endc + db x + endm + + enum_start $fc + + enum delanim_command ; $fc +delanim: macro ; used for oam + db delanim_command + endm + + enum dorepeat_command ; $fd +dorepeat: macro + db dorepeat_command + db \1 ; # + endm + + enum setrepeat_command ; $fe +setrepeat: macro + db setrepeat_command + db \1 ; # + endm + + enum endanim_command ; $ff +endanim: macro + db endanim_command + endm + +__enum__ = $fe + + enum dorestart_command ; $fe +dorestart: macro ; used for oam + db dorestart_command + endm diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm new file mode 100644 index 000000000..6c1e0b6b6 --- /dev/null +++ b/macros/scripts/maps.asm @@ -0,0 +1,108 @@ +map: macro +;\1: map id + db GROUP_\1, MAP_\1 +endm + + +maptrigger: macro +;\1: script pointer + dw \1, 0 +endm + +warp_def: macro +;\1: y: top to bottom, starts at 0 +;\2: x: left to right, starts at 0 +;\3: warp destination: starts at 1 +;\4: map id: from constants/map_constants.asm + db \1, \2, \3 + map \4 +endm + +xy_trigger: macro +;\1: number: controlled by dotrigger/domaptrigger +;\2: y: top to bottom, starts at 0 +;\3: x: left to right, starts at 0 +;\4: script pointer + db \1, \2, \3, $0 + dw \4 + db $0, $0 +endm + +signpost: macro +;\1: y: top to bottom, starts at 0 +;\2: x: left to right, starts at 0 +;\3: function: a SIGNPOST_* constant +;\4: script pointer + db \1, \2, \3 + dw \4 +endm + +person_event: macro +;\1: sprite: a SPRITE_* constant +;\2: y: top to bottom, starts at 0 +;\3: x: left to right, starts at 0 +;\4: movement function: a SPRITEMOVEDATA_* constant +;\5, \6: movement radius: y, x +;\7, \8: hour1 and hour2: control the hours a person_event is visible (0-23) +; * if hour1 < hour2, the person_event will only appear from hour1 to hour2 +; * if hour1 > hour2, the person_event will not appear from hour2 to hour1 +; * if hour1 == hour2, the person_event will always appear +; * if hour1 == -1, hour2 is treated as a time-of-day value: +; a combo of MORN, DAY, and/or NITE, or -1 to always appear +;\9: color: a PAL_NPC_* constant, or 0 for sprite default +;\10: function: a PERSONTYPE_* constant +;\11: sight range: applies to PERSONTYPE_TRAINER +;\12: script pointer +;\13: event flag: an EVENT_* constant, or 0 for always + db \1, \2 + 4, \3 + 4, \4 + dn \5, \6 + db \7, \8 + shift + dn \8, \9 + shift + db \9 + shift + dw \9 + shift + dw \9 +endm + + +trainer: macro +;\1: flag: an EVENT_BEAT_* constant +;\2: trainer group +;\3: trainer id +;\4: seen text +;\5: win text +;\6: loss text +;\7: after-battle text + dw \1 + db \2, \3 + dw \4, \5, \6, \7 +endm + +itemball: macro +;\1: item: from constants/item_constants.asm +;\2: quantity: default 1 +if _NARG == 2 + db \1, \2 +else + db \1, 1 +endc +endm + +elevfloor: macro +;\1: floor: a FLOOR_* constant +;\2: warp destination: starts at 1 +;\3: map id + db \1, \2 + map \3 +ENDM + +stonetable: macro +;\1: warp id +;\2: person_event id +;\3: script pointer + db \1, \2 + dw \3 +endm diff --git a/macros/move_anim.asm b/macros/scripts/move_anim.asm index 9859fbd50..7714bb09a 100644 --- a/macros/move_anim.asm +++ b/macros/scripts/move_anim.asm @@ -8,7 +8,7 @@ endc ; BattleAnimCommands indexes (see battle/anim_commands.asm) enum_start $d0 - enum anim_obj_command ; d0 + enum anim_obj_command ; $d0 anim_obj: macro db anim_obj_command db \1 ; obj @@ -17,20 +17,20 @@ anim_obj: macro db \6 ; param endm - enum anim_1gfx_command ; d1 + enum anim_1gfx_command ; $d1 anim_1gfx: macro db anim_1gfx_command db \1 ; gfx1 endm - enum anim_2gfx_command ; d2 + enum anim_2gfx_command ; $d2 anim_2gfx: macro db anim_2gfx_command db \1 ; gfx1 db \2 ; gfx2 endm - enum anim_3gfx_command ; d3 + enum anim_3gfx_command ; $d3 anim_3gfx: macro db anim_3gfx_command db \1 ; gfx1 @@ -38,7 +38,7 @@ anim_3gfx: macro db \3 ; gfx3 endm - enum anim_4gfx_command ; d4 + enum anim_4gfx_command ; $d4 anim_4gfx: macro db anim_4gfx_command db \1 ; gfx1 @@ -47,7 +47,7 @@ anim_4gfx: macro db \4 ; gfx4 endm - enum anim_5gfx_command ; d5 + enum anim_5gfx_command ; $d5 anim_5gfx: macro db anim_5gfx_command db \1 ; gfx1 @@ -57,147 +57,147 @@ anim_5gfx: macro db \5 ; gfx5 endm - enum anim_incobj_command ; d6 + enum anim_incobj_command ; $d6 anim_incobj: macro db anim_incobj_command db \1 ; id endm - enum anim_setobj_command ; d7 + enum anim_setobj_command ; $d7 anim_setobj: macro db anim_setobj_command db \1 ; id db \2 ; obj endm - enum anim_incbgeffect_command ; d8 + enum anim_incbgeffect_command ; $d8 anim_incbgeffect: macro db anim_incbgeffect_command db \1 ; effect endm - enum anim_enemyfeetobj_command ; d9 + enum anim_enemyfeetobj_command ; $d9 anim_enemyfeetobj: macro db anim_enemyfeetobj_command endm - enum anim_playerheadobj_command ; da + enum anim_playerheadobj_command ; $da anim_playerheadobj: macro db anim_playerheadobj_command endm - enum anim_checkpokeball_command ; db + enum anim_checkpokeball_command ; $db anim_checkpokeball: macro db anim_checkpokeball_command endm - enum anim_transform_command ; dc + enum anim_transform_command ; $dc anim_transform: macro db anim_transform_command endm - enum anim_raisesub_command ; dd + enum anim_raisesub_command ; $dd anim_raisesub: macro db anim_raisesub_command endm - enum anim_dropsub_command ; de + enum anim_dropsub_command ; $de anim_dropsub: macro db anim_dropsub_command endm - enum anim_resetobp0_command ; df + enum anim_resetobp0_command ; $df anim_resetobp0: macro db anim_resetobp0_command endm - enum anim_sound_command ; e0 + enum anim_sound_command ; $e0 anim_sound: macro db anim_sound_command db (\1 << 2) | \2 ; duration, tracks db \3 ; id endm - enum anim_cry_command ; e1 + enum anim_cry_command ; $e1 anim_cry: macro db anim_cry_command db \1 ; pitch endm - enum anim_minimizeopp_command ; e2 + enum anim_minimizeopp_command ; $e2 anim_minimizeopp: macro db anim_minimizeopp_command endm - enum anim_oamon_command ; e3 + enum anim_oamon_command ; $e3 anim_oamon: macro db anim_oamon_command endm - enum anim_oamoff_command ; e4 + enum anim_oamoff_command ; $e4 anim_oamoff: macro db anim_oamoff_command endm - enum anim_clearobjs_command ; e5 + enum anim_clearobjs_command ; $e5 anim_clearobjs: macro db anim_clearobjs_command endm - enum anim_beatup_command ; e6 + enum anim_beatup_command ; $e6 anim_beatup: macro db anim_beatup_command endm - enum anim_0xe7_command ; e7 + enum anim_0xe7_command ; $e7 anim_0xe7: macro db anim_0xe7_command endm - enum anim_updateactorpic_command ; e8 + enum anim_updateactorpic_command ; $e8 anim_updateactorpic: macro db anim_updateactorpic_command endm - enum anim_minimize_command ; e9 + enum anim_minimize_command ; $e9 anim_minimize: macro db anim_minimize_command endm - enum anim_0xea_command ; ea + enum anim_0xea_command ; $ea anim_0xea: macro db anim_0xea_command endm - enum anim_0xeb_command ; eb + enum anim_0xeb_command ; $eb anim_0xeb: macro db anim_0xeb_command endm - enum anim_0xec_command ; ec + enum anim_0xec_command ; $ec anim_0xec: macro db anim_0xec_command endm - enum anim_0xed_command ; ed + enum anim_0xed_command ; $ed anim_0xed: macro db anim_0xed_command endm - enum anim_if_param_and_command ; ee + enum anim_if_param_and_command ; $ee anim_if_param_and: macro db anim_if_param_and_command db \1 ; value dw \2 ; address endm - enum anim_jumpuntil_command ; ef + enum anim_jumpuntil_command ; $ef anim_jumpuntil: macro db anim_jumpuntil_command dw \1 ; address endm - enum anim_bgeffect_command ; f0 + enum anim_bgeffect_command ; $f0 anim_bgeffect: macro db anim_bgeffect_command db \1 ; effect @@ -206,89 +206,89 @@ anim_bgeffect: macro db \4 ; unknown endm - enum anim_bgp_command ; f1 + enum anim_bgp_command ; $f1 anim_bgp: macro db anim_bgp_command db \1 ; colors endm - enum anim_obp0_command ; f2 + enum anim_obp0_command ; $f2 anim_obp0: macro db anim_obp0_command db \1 ; colors endm - enum anim_obp1_command ; f3 + enum anim_obp1_command ; $f3 anim_obp1: macro db anim_obp1_command db \1 ; colors endm - enum anim_clearsprites_command ; f4 + enum anim_clearsprites_command ; $f4 anim_clearsprites: macro db anim_clearsprites_command endm - enum anim_0xf5_command ; f5 + enum anim_0xf5_command ; $f5 anim_0xf5: macro db anim_0xf5_command endm - enum anim_0xf6_command ; f6 + enum anim_0xf6_command ; $f6 anim_0xf6: macro db anim_0xf6_command endm - enum anim_0xf7_command ; f7 + enum anim_0xf7_command ; $f7 anim_0xf7: macro db anim_0xf7_command endm - enum anim_if_param_equal_command ; f8 + enum anim_if_param_equal_command ; $f8 anim_if_param_equal: macro db anim_if_param_equal_command db \1 ; value dw \2 ; address endm - enum anim_setvar_command ; f9 + enum anim_setvar_command ; $f9 anim_setvar: macro db anim_setvar_command db \1 ; value endm - enum anim_incvar_command ; fa + enum anim_incvar_command ; $fa anim_incvar: macro db anim_incvar_command endm - enum anim_if_var_equal_command ; fb + enum anim_if_var_equal_command ; $fb anim_if_var_equal: macro db anim_if_var_equal_command db \1 ; value dw \2 ; address endm - enum anim_jump_command ; fc + enum anim_jump_command ; $fc anim_jump: macro db anim_jump_command dw \1 ; address endm - enum anim_loop_command ; fd + enum anim_loop_command ; $fd anim_loop: macro db anim_loop_command db \1 ; count dw \2 ; address endm - enum anim_call_command ; fe + enum anim_call_command ; $fe anim_call: macro db anim_call_command dw \1 ; address endm - enum anim_ret_command ; ff + enum anim_ret_command ; $ff anim_ret: macro db anim_ret_command endm diff --git a/macros/scripts/movement.asm b/macros/scripts/movement.asm new file mode 100644 index 000000000..28be559a3 --- /dev/null +++ b/macros/scripts/movement.asm @@ -0,0 +1,246 @@ +; MovementPointers indexes (see engine/movement.asm) + enum_start + +; Directional movements + + enum movement_turn_head ; $00 +turn_head: macro + db movement_turn_head | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_step ; $04 +turn_step: macro + db movement_turn_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_slow_step ; $08 +slow_step: macro + db movement_slow_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_step ; $0c +step: macro + db movement_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_big_step ; $10 +big_step: macro + db movement_big_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_slow_slide_step ; $14 +slow_slide_step: macro + db movement_slow_slide_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_slide_step ; $18 +slide_step: macro + db movement_slide_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_fast_slide_step ; $1c +fast_slide_step: macro + db movement_fast_slide_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_away ; $20 +turn_away: macro + db movement_turn_away | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_in ; $24 +turn_in: macro + db movement_turn_in | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_turn_waterfall ; $28 +turn_waterfall: macro + db movement_turn_waterfall | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_slow_jump_step ; $2c +slow_jump_step: macro + db movement_slow_jump_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_jump_step ; $30 +jump_step: macro + db movement_jump_step | \1 + endm + +__enum__ = __enum__ + 3 + + enum movement_fast_jump_step ; $34 +fast_jump_step: macro + db movement_fast_jump_step | \1 + endm + +__enum__ = __enum__ + 3 + +; Control + enum movement_remove_sliding ; $38 +remove_sliding: macro + db movement_remove_sliding + endm + + enum movement_set_sliding ; $39 +set_sliding: macro + db movement_set_sliding + endm + + enum movement_remove_fixed_facing ; $3a +remove_fixed_facing: macro + db movement_remove_fixed_facing + endm + + enum movement_fix_facing ; $3b +fix_facing: macro + db movement_fix_facing + endm + + enum movement_show_person ; $3c +show_person: macro + db movement_show_person + endm + + enum movement_hide_person ; $3d +hide_person: macro + db movement_hide_person + endm + +; Sleep + + enum movement_step_sleep ; $3e +step_sleep: macro +if \1 <= 8 + db movement_step_sleep + \1 - 1 +else + db movement_step_sleep + 8, \1 +endc +endm + +__enum__ = __enum__ + 8 + + enum movement_step_end ; $47 +step_end: macro + db movement_step_end + endm + + enum movement_step_48 ; $48 +step_48: macro + db movement_step_48 + db \1 ; ??? + endm + + enum movement_remove_person ; $49 +remove_person: macro + db movement_remove_person + endm + + enum movement_step_loop ; $4a +step_loop: macro + db movement_step_loop + endm + + enum movement_step_4b ; $4b +step_4b: macro + db movement_step_4b + endm + + enum movement_teleport_from ; $4c +teleport_from: macro + db movement_teleport_from + endm + + enum movement_teleport_to ; $4d +teleport_to: macro + db movement_teleport_to + endm + + enum movement_skyfall ; $4e +skyfall: macro + db movement_skyfall + endm + + enum movement_step_dig ; $4f +step_dig: macro + db movement_step_dig + db \1 ; length + endm + + enum movement_step_bump ; $50 +step_bump: macro + db movement_step_bump + endm + + enum movement_fish_got_bite ; $51 +fish_got_bite: macro + db movement_fish_got_bite + endm + + enum movement_fish_cast_rod ; $52 +fish_cast_rod: macro + db movement_fish_cast_rod + endm + + enum movement_hide_emote ; $53 +hide_emote: macro + db movement_hide_emote + endm + + enum movement_show_emote ; $54 +show_emote: macro + db movement_show_emote + endm + + enum movement_step_shake ; $55 +step_shake: macro + db movement_step_shake + db \1 ; displacement + endm + + enum movement_tree_shake ; $56 +tree_shake: macro + db movement_tree_shake + endm + + enum movement_rock_smash ; $57 +rock_smash: macro + db movement_rock_smash + db \1 ; length + endm + + enum movement_return_dig ; $58 +return_dig: macro + db movement_return_dig + db \1 ; length + endm + + enum movement_skyfall_top ; $59 +skyfall_top: macro + db movement_skyfall_top + endm diff --git a/macros/text.asm b/macros/scripts/text.asm index e29f8a511..839f78eb7 100644 --- a/macros/text.asm +++ b/macros/scripts/text.asm @@ -1,131 +1,131 @@ -text EQUS "db $00," ; Start writing text. -next EQUS "db $4e," ; Move a line down. -line EQUS "db $4f," ; Start writing at the bottom line. -page EQUS "db $50," ; Start a new Pokédex page. -para EQUS "db $51," ; Start a new paragraph. -cont EQUS "db $55," ; Scroll to the next line. -done EQUS "db $57" ; End a text box. -prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event). +text EQUS "db \"<START>\"," ; Start writing text. +next EQUS "db \"<NEXT>\"," ; Move a line down. +line EQUS "db \"<LINE>\"," ; Start writing at the bottom line. +page EQUS "db \"@\"," ; Start a new Pokédex page. +para EQUS "db \"<PARA>\"," ; Start a new paragraph. +cont EQUS "db \"<CONT>\"," ; Scroll to the next line. +done EQUS "db \"<DONE>\"" ; End a text box. +prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event). ; TextCommands indexes (see home/text.asm) enum_start $01 - enum TX_RAM + enum TX_RAM ; $01 text_from_ram: MACRO db TX_RAM dw \1 ENDM - enum TX_BCD + enum TX_BCD ; $02 text_bcd: macro db TX_BCD dw \1 db \2 ENDM - enum TX_MOVE + enum TX_MOVE ; $03 text_move: macro db TX_MOVE dw \1 ENDM - enum TX_BOX + enum TX_BOX ; $04 text_box: macro db TX_BOX dw \1 db \2, \3 ENDM - enum TX_LOW + enum TX_LOW ; $05 text_low: macro db TX_LOW endm - enum WAIT_BUTTON + enum WAIT_BUTTON ; $06 text_waitbutton: macro db WAIT_BUTTON endm - enum TX_SCROLL + enum TX_SCROLL ; $07 text_scroll: macro db TX_SCROLL endm - enum START_ASM + enum START_ASM ; $08 start_asm: macro db START_ASM endm - enum TX_NUM + enum TX_NUM ; $09 deciram: macro db TX_NUM dw \1 ; address dn \2, \3 ; bytes, digits endm - enum TX_EXIT + enum TX_EXIT ; $0a interpret_data: macro db TX_EXIT endm - enum TX_SOUND_0B + enum TX_SOUND_0B ; $0b sound_dex_fanfare_50_79: macro db TX_SOUND_0B endm - enum TX_DOTS + enum TX_DOTS ; $0c limited_interpret_data: macro db TX_DOTS db \1 endm - enum TX_LINK_WAIT_BUTTON + enum TX_LINK_WAIT_BUTTON ; $0d link_wait_button: macro db TX_LINK_WAIT_BUTTON endm - enum TX_SOUND_0E + enum TX_SOUND_0E ; $0e sound_dex_fanfare_20_49: macro db TX_SOUND_0E endm - enum TX_SOUND_0F + enum TX_SOUND_0F ; $0f sound_item: macro db TX_SOUND_0F endm - enum TX_SOUND_10 + enum TX_SOUND_10 ; $10 sound_caught_mon: macro db TX_SOUND_10 endm - enum TX_SOUND_11 + enum TX_SOUND_11 ; $11 sound_dex_fanfare_80_109: macro db TX_SOUND_11 endm - enum TX_SOUND_12 + enum TX_SOUND_12 ; $12 sound_fanfare: macro db TX_SOUND_12 endm - enum TX_SOUND_13 + enum TX_SOUND_13 ; $13 sound_slot_machine_start: macro db TX_SOUND_13 endm - enum TX_STRINGBUFFER + enum TX_STRINGBUFFER ; $14 text_buffer: macro db TX_STRINGBUFFER db \1 endm - enum TX_DAY + enum TX_DAY ; $15 current_day: macro db TX_DAY endm - enum TX_FAR + enum TX_FAR ; $16 text_jump: MACRO db TX_FAR dw \1 diff --git a/macros/scripts/trade_anim.asm b/macros/scripts/trade_anim.asm new file mode 100644 index 000000000..4b0291eea --- /dev/null +++ b/macros/scripts/trade_anim.asm @@ -0,0 +1,255 @@ +; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm) + enum_start + + enum tradeanim_next_command ; $00 +tradeanim_next: macro + db tradeanim_next_command +endm + + enum tradeanim_show_givemon_data_command ; $01 +tradeanim_show_givemon_data: macro + db tradeanim_show_givemon_data_command +endm + + enum tradeanim_show_getmon_data_command ; $02 +tradeanim_show_getmon_data: macro + db tradeanim_show_getmon_data_command +endm + + enum tradeanim_enter_link_tube_command ; $03 +tradeanim_enter_link_tube: macro + db tradeanim_enter_link_tube_command +endm + +__enum__ set $5 + + enum tradeanim_exit_link_tube_command ; $05 +tradeanim_exit_link_tube: macro + db tradeanim_exit_link_tube_command +endm + + enum tradeanim_tube_to_ot_command ; $06 +tradeanim_tube_to_ot: macro + db tradeanim_tube_to_ot_command +endm + +__enum__ set $0e + + enum tradeanim_tube_to_player_command ; $0e +tradeanim_tube_to_player: macro + db tradeanim_tube_to_player_command +endm + +__enum__ set $16 + + enum tradeanim_sent_to_ot_text_command ; $16 +tradeanim_sent_to_ot_text: macro + db tradeanim_sent_to_ot_text_command +endm + + enum tradeanim_ot_bids_farewell_command ; $17 +tradeanim_ot_bids_farewell: macro + db tradeanim_ot_bids_farewell_command +endm + + enum tradeanim_take_care_of_text_command ; $18 +tradeanim_take_care_of_text: macro + db tradeanim_take_care_of_text_command +endm + + enum tradeanim_ot_sends_text_1_command ; $19 +tradeanim_ot_sends_text_1: macro + db tradeanim_ot_sends_text_1_command +endm + + enum tradeanim_ot_sends_text_2_command ; $1a +tradeanim_ot_sends_text_2: macro + db tradeanim_ot_sends_text_2_command +endm + + enum tradeanim_setup_givemon_scroll_command ; $1b +tradeanim_setup_givemon_scroll: macro + db tradeanim_setup_givemon_scroll_command +endm + + enum tradeanim_do_givemon_scroll_command ; $1c +tradeanim_do_givemon_scroll: macro + db tradeanim_do_givemon_scroll_command +endm + + enum tradeanim_frontpic_scroll_command ; $1d +tradeanim_frontpic_scroll: macro + db tradeanim_frontpic_scroll_command +endm + + enum tradeanim_textbox_scroll_command ; $1e +tradeanim_textbox_scroll: macro + db tradeanim_textbox_scroll_command +endm + + enum tradeanim_scroll_out_right_command ; $1f +tradeanim_scroll_out_right: macro + db tradeanim_scroll_out_right_command +endm + +__enum__ set $21 + + enum tradeanim_wait_80_command ; $21 +tradeanim_wait_80: macro + db tradeanim_wait_80_command +endm + + enum tradeanim_wait_40_command ; $22 +tradeanim_wait_40: macro + db tradeanim_wait_40_command +endm + + enum tradeanim_rocking_ball_command ; $23 +tradeanim_rocking_ball: macro + db tradeanim_rocking_ball_command +endm + + enum tradeanim_drop_ball_command ; $24 +tradeanim_drop_ball: macro + db tradeanim_drop_ball_command +endm + + enum tradeanim_wait_anim_command ; $25 +tradeanim_wait_anim: macro + db tradeanim_wait_anim_command +endm + +__enum__ set $27 + + enum tradeanim_poof_command ; $27 +tradeanim_poof: macro + db tradeanim_poof_command +endm + + enum tradeanim_bulge_through_tube_command ; $28 +tradeanim_bulge_through_tube: macro + db tradeanim_bulge_through_tube_command +endm + + enum tradeanim_give_trademon_sfx_command ; $29 +tradeanim_give_trademon_sfx: macro + db tradeanim_give_trademon_sfx_command +endm + + enum tradeanim_get_trademon_sfx_command ; $2a +tradeanim_get_trademon_sfx: macro + db tradeanim_get_trademon_sfx_command +endm + + enum tradeanim_end_command ; $2b +tradeanim_end: macro + db tradeanim_end_command +endm + + enum tradeanim_animate_frontpic_command ; $2c +tradeanim_animate_frontpic: macro + db tradeanim_animate_frontpic_command +endm + + enum tradeanim_wait_96_command ; $2d +tradeanim_wait_96: macro + db tradeanim_wait_96_command +endm + + enum tradeanim_wait_80_if_ot_egg_command ; $2e +tradeanim_wait_80_if_ot_egg: macro + db tradeanim_wait_80_if_ot_egg_command +endm + + enum tradeanim_wait_180_if_ot_egg_command ; $2f +tradeanim_wait_180_if_ot_egg: macro + db tradeanim_wait_180_if_ot_egg_command +endm + + +; Mobile + enum_start $01 + + enum mobiletradeanim_showgivemon_command ; $01 +mobiletradeanim_showgivemon: macro + db mobiletradeanim_showgivemon_command +endm + + enum mobiletradeanim_02_command ; $02 +mobiletradeanim_02: macro + db mobiletradeanim_02_command +endm + + enum mobiletradeanim_sendmon_command ; $03 +mobiletradeanim_sendmon: macro + db mobiletradeanim_sendmon_command +endm + +__enum__ set $05 + + enum mobiletradeanim_05_command ; $05 +mobiletradeanim_05: macro + db mobiletradeanim_05_command +endm + + enum mobiletradeanim_06_command ; $06 +mobiletradeanim_06: macro + db mobiletradeanim_06_command +endm + + enum mobiletradeanim_07_command ; $07 +mobiletradeanim_07: macro + db mobiletradeanim_07_command +endm + + enum mobiletradeanim_receivemon_command ; $08 +mobiletradeanim_receivemon: macro + db mobiletradeanim_receivemon_command +endm + +__enum__ set $0b + + enum mobiletradeanim_showgetmon_command ; $0b +mobiletradeanim_showgetmon: macro + db mobiletradeanim_showgetmon_command +endm + + enum mobiletradeanim_end_command ; $0c +mobiletradeanim_end: macro + db mobiletradeanim_end_command +endm + + enum mobiletradeanim_showgtsgivemon_command ; $0d +mobiletradeanim_showgtsgivemon: macro + db mobiletradeanim_showgtsgivemon_command +endm + + enum mobiletradeanim_showgtsgetmon_command ; $0e +mobiletradeanim_showgtsgetmon: macro + db mobiletradeanim_showgtsgetmon_command +endm + + enum mobiletradeanim_0f_command ; $0f +mobiletradeanim_0f: macro + db mobiletradeanim_0f_command +endm + + enum mobiletradeanim_10_command ; $10 +mobiletradeanim_10: macro + db mobiletradeanim_10_command +endm + + enum mobiletradeanim_11_command ; $11 +mobiletradeanim_11: macro + db mobiletradeanim_11_command +endm + + enum mobiletradeanim_12_command ; $12 +mobiletradeanim_12: macro + db mobiletradeanim_12_command +endm + + enum mobiletradeanim_showoddegg_command ; $13 +mobiletradeanim_showoddegg: macro + db mobiletradeanim_showoddegg_command +endm diff --git a/macros/tilesets.asm b/macros/tilesets.asm index 6a233254e..aeb1d8174 100755 --- a/macros/tilesets.asm +++ b/macros/tilesets.asm @@ -1,3 +1,5 @@ +; Used in tilesets/*.asm + tilepal: MACRO ; vram bank, pals x = \1 << OAM_TILE_BANK diff --git a/macros/trade_anim.asm b/macros/trade_anim.asm deleted file mode 100755 index c38dc75d6..000000000 --- a/macros/trade_anim.asm +++ /dev/null @@ -1,255 +0,0 @@ -; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm) - enum_start - - enum tradeanim_next_command -tradeanim_next: macro - db tradeanim_next_command ; 00 -endm - - enum tradeanim_show_givemon_data_command -tradeanim_show_givemon_data: macro - db tradeanim_show_givemon_data_command ; 01 -endm - - enum tradeanim_show_getmon_data_command -tradeanim_show_getmon_data: macro - db tradeanim_show_getmon_data_command ; 02 -endm - - enum tradeanim_enter_link_tube_command -tradeanim_enter_link_tube: macro - db tradeanim_enter_link_tube_command ; 03 -endm - -__enum__ set $5 - - enum tradeanim_exit_link_tube_command -tradeanim_exit_link_tube: macro - db tradeanim_exit_link_tube_command ; 05 -endm - - enum tradeanim_tube_to_ot_command -tradeanim_tube_to_ot: macro - db tradeanim_tube_to_ot_command ; 06 -endm - -__enum__ set $e - - enum tradeanim_tube_to_player_command -tradeanim_tube_to_player: macro - db tradeanim_tube_to_player_command ; 0e -endm - -__enum__ set $16 - - enum tradeanim_sent_to_ot_text_command -tradeanim_sent_to_ot_text: macro - db tradeanim_sent_to_ot_text_command ; 16 -endm - - enum tradeanim_ot_bids_farewell_command -tradeanim_ot_bids_farewell: macro - db tradeanim_ot_bids_farewell_command ; 17 -endm - - enum tradeanim_take_care_of_text_command -tradeanim_take_care_of_text: macro - db tradeanim_take_care_of_text_command ; 18 -endm - - enum tradeanim_ot_sends_text_1_command -tradeanim_ot_sends_text_1: macro - db tradeanim_ot_sends_text_1_command ; 19 -endm - - enum tradeanim_ot_sends_text_2_command -tradeanim_ot_sends_text_2: macro - db tradeanim_ot_sends_text_2_command ; 1a -endm - - enum tradeanim_setup_givemon_scroll_command -tradeanim_setup_givemon_scroll: macro - db tradeanim_setup_givemon_scroll_command ; 1b -endm - - enum tradeanim_do_givemon_scroll_command -tradeanim_do_givemon_scroll: macro - db tradeanim_do_givemon_scroll_command ; 1c -endm - - enum tradeanim_frontpic_scroll_command -tradeanim_frontpic_scroll: macro - db tradeanim_frontpic_scroll_command ; 1d -endm - - enum tradeanim_textbox_scroll_command -tradeanim_textbox_scroll: macro - db tradeanim_textbox_scroll_command ; 1e -endm - - enum tradeanim_scroll_out_right_command -tradeanim_scroll_out_right: macro - db tradeanim_scroll_out_right_command ; 1f -endm - -__enum__ set $21 - - enum tradeanim_wait_80_command -tradeanim_wait_80: macro - db tradeanim_wait_80_command ; 21 -endm - - enum tradeanim_wait_40_command -tradeanim_wait_40: macro - db tradeanim_wait_40_command ; 22 -endm - - enum tradeanim_rocking_ball_command -tradeanim_rocking_ball: macro - db tradeanim_rocking_ball_command ; 23 -endm - - enum tradeanim_drop_ball_command -tradeanim_drop_ball: macro - db tradeanim_drop_ball_command ; 24 -endm - - enum tradeanim_wait_anim_command -tradeanim_wait_anim: macro - db tradeanim_wait_anim_command ; 25 -endm - -__enum__ set $27 - - enum tradeanim_poof_command -tradeanim_poof: macro - db tradeanim_poof_command ; 27 -endm - - enum tradeanim_bulge_through_tube_command -tradeanim_bulge_through_tube: macro - db tradeanim_bulge_through_tube_command ; 28 -endm - - enum tradeanim_give_trademon_sfx_command -tradeanim_give_trademon_sfx: macro - db tradeanim_give_trademon_sfx_command ; 29 -endm - - enum tradeanim_get_trademon_sfx_command -tradeanim_get_trademon_sfx: macro - db tradeanim_get_trademon_sfx_command ; 2a -endm - - enum tradeanim_end_command -tradeanim_end: macro - db tradeanim_end_command ; 2b -endm - - enum tradeanim_animate_frontpic_command -tradeanim_animate_frontpic: macro - db tradeanim_animate_frontpic_command ; 2c -endm - - enum tradeanim_wait_96_command -tradeanim_wait_96: macro - db tradeanim_wait_96_command ; 2d -endm - - enum tradeanim_wait_80_if_ot_egg_command -tradeanim_wait_80_if_ot_egg: macro - db tradeanim_wait_80_if_ot_egg_command ; 2e -endm - - enum tradeanim_wait_180_if_ot_egg_command -tradeanim_wait_180_if_ot_egg: macro - db tradeanim_wait_180_if_ot_egg_command ; 2f -endm - - -; Mobile - enum_start 1 - - enum mobiletradeanim_showgivemon_command -mobiletradeanim_showgivemon: macro - db mobiletradeanim_showgivemon_command ; 01 -endm - - enum mobiletradeanim_02_command -mobiletradeanim_02: macro - db mobiletradeanim_02_command ; 02 -endm - - enum mobiletradeanim_sendmon_command -mobiletradeanim_sendmon: macro - db mobiletradeanim_sendmon_command ; 03 -endm - -__enum__ set $05 - - enum mobiletradeanim_05_command -mobiletradeanim_05: macro - db mobiletradeanim_05_command ; 05 -endm - - enum mobiletradeanim_06_command -mobiletradeanim_06: macro - db mobiletradeanim_06_command ; 06 -endm - - enum mobiletradeanim_07_command -mobiletradeanim_07: macro - db mobiletradeanim_07_command ; 07 -endm - - enum mobiletradeanim_receivemon_command -mobiletradeanim_receivemon: macro - db mobiletradeanim_receivemon_command ; 08 -endm - -__enum__ set $0b - - enum mobiletradeanim_showgetmon_command -mobiletradeanim_showgetmon: macro - db mobiletradeanim_showgetmon_command ; 0b -endm - - enum mobiletradeanim_end_command -mobiletradeanim_end: macro - db mobiletradeanim_end_command ; 0c -endm - - enum mobiletradeanim_showgtsgivemon_command -mobiletradeanim_showgtsgivemon: macro - db mobiletradeanim_showgtsgivemon_command ; 0d -endm - - enum mobiletradeanim_showgtsgetmon_command -mobiletradeanim_showgtsgetmon: macro - db mobiletradeanim_showgtsgetmon_command ; 0e -endm - - enum mobiletradeanim_0f_command -mobiletradeanim_0f: macro - db mobiletradeanim_0f_command ; 0f -endm - - enum mobiletradeanim_10_command -mobiletradeanim_10: macro - db mobiletradeanim_10_command ; 10 -endm - - enum mobiletradeanim_11_command -mobiletradeanim_11: macro - db mobiletradeanim_11_command ; 11 -endm - - enum mobiletradeanim_12_command -mobiletradeanim_12: macro - db mobiletradeanim_12_command ; 12 -endm - - enum mobiletradeanim_showoddegg_command -mobiletradeanim_showoddegg: macro - db mobiletradeanim_showoddegg_command ; 13 -endm diff --git a/macros/trainer.asm b/macros/trainer.asm deleted file mode 100644 index 2e6c61884..000000000 --- a/macros/trainer.asm +++ /dev/null @@ -1,11 +0,0 @@ -trainerclass: MACRO - enum \1 -const_value = 1 -ENDM - -trainer: MACRO - ; flag, group, id, seen text, win text, lost text, talk-again text - dw \1 - db \2, \3 - dw \4, \5, \6, \7 -ENDM diff --git a/macros/wram.asm b/macros/wram.asm index ce53dc5c7..7cead9158 100755 --- a/macros/wram.asm +++ b/macros/wram.asm @@ -1,3 +1,4 @@ +; Used in wram.asm flag_array: MACRO ds ((\1) + 7) / 8 @@ -15,7 +16,7 @@ box_struct: MACRO \1DefExp:: dw \1SpdExp:: dw \1SpcExp:: dw -\1DVs:: ds 2 +\1DVs:: dw \1PP:: ds NUM_MOVES \1Happiness:: db \1PokerusStatus:: db @@ -60,7 +61,7 @@ red_box_struct: MACRO \1DefenseExp:: dw \1SpeedExp:: dw \1SpecialExp:: dw -\1DVs:: ds 2 +\1DVs:: dw \1PP:: ds NUM_MOVES ENDM @@ -81,7 +82,7 @@ battle_struct: MACRO \1Item:: db \1Moves:: ds NUM_MOVES \1MovesEnd:: -\1DVs:: ds 2 +\1DVs:: dw \1PP:: ds NUM_MOVES \1Happiness:: db \1Level:: db @@ -103,7 +104,7 @@ ENDM box: MACRO \1:: -\1Count:: ds 1 +\1Count:: db \1Species:: ds MONS_PER_BOX + 1 \1Mons:: \1Mon1:: box_struct \1Mon1 @@ -115,6 +116,18 @@ box: MACRO ENDM +map_connection_struct: MACRO +\1ConnectedMapGroup:: db +\1ConnectedMapNumber:: db +\1ConnectionStripPointer:: dw +\1ConnectionStripLocation:: dw +\1ConnectionStripLength:: db +\1ConnectedMapWidth:: db +\1ConnectionStripYOffset:: db +\1ConnectionStripXOffset:: db +\1ConnectionWindow:: dw +ENDM + channel_struct: MACRO ; Addreses are Channel1 (c101). \1MusicID:: dw @@ -134,14 +147,14 @@ channel_struct: MACRO \1FrequencyHi:: db \1Pitch:: db ; 0:rest 1-c:note \1Octave:: db ; 7-0 (0 is highest) -\1PitchOffset:: db ; raises existing octaves (to repeat phrases) +\1PitchOffset:: db ; raises existing octaves (to repeat phrases) \1NoteDuration:: db ; frames remaining for the current note \1Field0x16:: ds 1 ; c117 ds 1 ; c118 \1LoopCount:: db \1Tempo:: dw \1Tracks:: db ; hi:left lo:right -\1SFXDutyLoop:: ds 1 ; c11d +\1SFXDutyLoop:: db ; c11d \1VibratoDelayCount:: db ; initialized by \1VibratoDelay \1VibratoDelay:: db ; number of frames a note plays until vibrato starts \1VibratoExtent:: db @@ -149,7 +162,7 @@ channel_struct: MACRO \1PitchWheelTarget:: dw ; frequency endpoint for pitch wheel \1PitchWheelAmount:: db ; c124 \1PitchWheelAmountFraction:: db ; c125 -\1Field0x25:: ds 1 ; c126 +\1Field0x25:: db ; c126 ds 1 ; c127 \1CryPitch:: dw \1Field0x29:: ds 1 @@ -179,22 +192,13 @@ battle_tower_struct: MACRO endm mailmsg: MACRO -\1Message:: ds MAIL_MSG_LENGTH +\1Message:: ds MAIL_MSG_LENGTH \1MessageEnd:: ds 1 -\1Author:: ds PLAYER_NAME_LENGTH +\1Author:: ds PLAYER_NAME_LENGTH \1AuthorNationality:: ds 2 -\1AuthorID:: ds 2 -\1Species:: ds 1 -\1Type:: ds 1 -\1End:: -endm - -hof_mon: MACRO -\1Species:: ds 1 -\1ID:: ds 2 -\1DVs:: ds 2 -\1Level:: ds 1 -\1Nickname:: ds PKMN_NAME_LENGTH +- 1 +\1AuthorID:: dw +\1Species:: db +\1Type:: db \1End:: endm @@ -203,19 +207,27 @@ roam_struct: MACRO \1Level:: db \1MapGroup:: db \1MapNumber:: db -\1HP:: ds 1 -\1DVs:: ds 2 +\1HP:: db +\1DVs:: dw ENDM bugcontestwinner: macro -\1PersonID:: ds 1 -\1Mon:: ds 1 -\1Score:: ds 2 +\1PersonID:: db +\1Mon:: db +\1Score:: dw +endm + +hof_mon: MACRO +\1Species:: db +\1ID:: dw +\1DVs:: dw +\1Level:: db +\1Nickname:: ds PKMN_NAME_LENGTH +- 1 +\1End:: endm hall_of_fame: MACRO -\1:: -\1WinCount:: ds 1 +\1WinCount:: db \1Mon1:: hof_mon \1Mon1 \1Mon2:: hof_mon \1Mon2 \1Mon3:: hof_mon \1Mon3 @@ -225,26 +237,34 @@ hall_of_fame: MACRO \1End:: ds 1 ENDM +link_battle_record: MACRO +\1Name:: ds NAME_LENGTH +- 1 +\1ID:: dw +\1Wins:: dw +\1Losses:: dw +\1Draws:: dw +ENDM + trademon: MACRO -\1Species:: ds 1 ; wc6d0 | wc702 +\1Species:: db ; wc6d0 | wc702 \1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703 -\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e -\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719 -\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724 -\1DVs:: ds 2 ; wc6fd | wc72f -\1ID:: ds 2 ; wc6ff | wc731 -\1CaughtData:: ds 1 ; wc701 | wc733 +\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e +\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719 +\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724 +\1DVs:: dw ; wc6fd | wc72f +\1ID:: dw ; wc6ff | wc731 +\1CaughtData:: db ; wc701 | wc733 \1End:: ENDM move_struct: MACRO -\1Animation:: ds 1 -\1Effect:: ds 1 -\1Power:: ds 1 -\1Type:: ds 1 -\1Accuracy:: ds 1 -\1PP:: ds 1 -\1EffectChance:: ds 1 +\1Animation:: db +\1Effect:: db +\1Power:: db +\1Type:: db +\1Accuracy:: db +\1PP:: db +\1EffectChance:: db endm slot_reel: MACRO @@ -266,109 +286,109 @@ endm object_struct: MACRO \1Struct:: -\1Sprite:: ds 1 -\1MapObjectIndex:: ds 1 -\1SpriteTile:: ds 1 -\1MovementType:: ds 1 -\1Flags:: ds 2 -\1Palette:: ds 1 -\1Walking:: ds 1 -\1Direction:: ds 1 -\1StepType:: ds 1 -\1StepDuration:: ds 1 -\1Action:: ds 1 -\1ObjectStepFrame:: ds 1 -\1Facing:: ds 1 -\1StandingTile:: ds 1 ; collision -\1LastTile:: ds 1 ; collision -\1StandingMapX:: ds 1 -\1StandingMapY:: ds 1 -\1LastMapX:: ds 1 -\1LastMapY:: ds 1 -\1ObjectInitX:: ds 1 -\1ObjectInitY:: ds 1 -\1Radius:: ds 1 -\1SpriteX:: ds 1 -\1SpriteY:: ds 1 -\1SpriteXOffset:: ds 1 -\1SpriteYOffset:: ds 1 -\1MovementByteIndex:: ds 1 -\1Object28:: ds 1 -\1Object29:: ds 1 -\1Object30:: ds 1 -\1Object31:: ds 1 -\1Range:: ds 1 +\1Sprite:: db +\1MapObjectIndex:: db +\1SpriteTile:: db +\1MovementType:: db +\1Flags:: dw +\1Palette:: db +\1Walking:: db +\1Direction:: db +\1StepType:: db +\1StepDuration:: db +\1Action:: db +\1ObjectStepFrame:: db +\1Facing:: db +\1StandingTile:: db ; collision +\1LastTile:: db ; collision +\1StandingMapX:: db +\1StandingMapY:: db +\1LastMapX:: db +\1LastMapY:: db +\1ObjectInitX:: db +\1ObjectInitY:: db +\1Radius:: db +\1SpriteX:: db +\1SpriteY:: db +\1SpriteXOffset:: db +\1SpriteYOffset:: db +\1MovementByteIndex:: db +\1Object28:: ds 1 +\1Object29:: ds 1 +\1Object30:: ds 1 +\1Object31:: ds 1 +\1Range:: db ds 7 \1StructEnd:: ENDM map_object: MACRO \1Object:: -\1ObjectStructID:: ds 1 -\1ObjectSprite:: ds 1 -\1ObjectYCoord:: ds 1 -\1ObjectXCoord:: ds 1 -\1ObjectMovement:: ds 1 -\1ObjectRadius:: ds 1 -\1ObjectHour:: ds 1 -\1ObjectTimeOfDay:: ds 1 -\1ObjectColor:: ds 1 -\1ObjectRange:: ds 1 -\1ObjectScript:: ds 2 -\1ObjectEventFlag:: ds 2 +\1ObjectStructID:: db +\1ObjectSprite:: db +\1ObjectYCoord:: db +\1ObjectXCoord:: db +\1ObjectMovement:: db +\1ObjectRadius:: db +\1ObjectHour:: db +\1ObjectTimeOfDay:: db +\1ObjectColor:: db +\1ObjectRange:: db +\1ObjectScript:: dw +\1ObjectEventFlag:: dw ds 2 endm sprite_anim_struct: MACRO -\1Index:: ds 1 ; 0 -\1FramesetID:: ds 1 ; 1 -\1AnimSeqID:: ds 1 ; 2 -\1TileID:: ds 1 ; 3 -\1XCoord:: ds 1 ; 4 -\1YCoord:: ds 1 ; 5 -\1XOffset:: ds 1 ; 6 -\1YOffset:: ds 1 ; 7 -\1Duration:: ds 1 ; 8 -\1DurationOffset:: ds 1 ; 9 -\1FrameIndex:: ds 1 ; a -\1Sprite0b:: ds 1 -\1Sprite0c:: ds 1 -\1Sprite0d:: ds 1 -\1Sprite0e:: ds 1 -\1Sprite0f:: ds 1 +\1Index:: db +\1FramesetID:: db +\1AnimSeqID:: db +\1TileID:: db +\1XCoord:: db +\1YCoord:: db +\1XOffset:: db +\1YOffset:: db +\1Duration:: db +\1DurationOffset:: db +\1FrameIndex:: db +\1Sprite0b:: ds 1 +\1Sprite0c:: ds 1 +\1Sprite0d:: ds 1 +\1Sprite0e:: ds 1 +\1Sprite0f:: ds 1 ENDM battle_anim_struct: MACRO ; Placeholder until we can figure out what it all means -\1_Index:: ds 1 -\1_Anim01:: ds 1 -\1_Anim02:: ds 1 -\1_FramesetIndex:: ds 1 -\1_FunctionIndex:: ds 1 -\1_Anim05:: ds 1 -\1_TileID:: ds 1 -\1_XCoord:: ds 1 -\1_YCoord:: ds 1 -\1_XOffset:: ds 1 -\1_YOffset:: ds 1 -\1_Anim0b:: ds 1 -\1_Anim0c:: ds 1 -\1_Anim0d:: ds 1 -\1_AnonJumptableIndex:: ds 1 -\1_Anim0f:: ds 1 -\1_Anim10:: ds 1 -\1_Anim11:: ds 1 -\1_Anim12:: ds 1 -\1_Anim13:: ds 1 -\1_Anim14:: ds 1 -\1_Anim15:: ds 1 -\1_Anim16:: ds 1 -\1_Anim17:: ds 1 +\1_Index:: db +\1_Anim01:: ds 1 +\1_Anim02:: ds 1 +\1_FramesetIndex:: db +\1_FunctionIndex:: db +\1_Anim05:: ds 1 +\1_TileID:: db +\1_XCoord:: db +\1_YCoord:: db +\1_XOffset:: db +\1_YOffset:: db +\1_Anim0b:: ds 1 +\1_Anim0c:: ds 1 +\1_Anim0d:: ds 1 +\1_AnonJumptableIndex:: db +\1_Anim0f:: ds 1 +\1_Anim10:: ds 1 +\1_Anim11:: ds 1 +\1_Anim12:: ds 1 +\1_Anim13:: ds 1 +\1_Anim14:: ds 1 +\1_Anim15:: ds 1 +\1_Anim16:: ds 1 +\1_Anim17:: ds 1 endm battle_bg_effect: MACRO -\1_Function:: ds 1 -\1_01:: ds 1 -\1_02:: ds 1 -\1_03:: ds 1 +\1_Function:: db +\1_01:: ds 1 +\1_02:: ds 1 +\1_03:: ds 1 endm |