From e48a401290e794854880f06fc230a369f37e6b9b Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Thu, 14 Dec 2017 00:36:24 -0500 Subject: [PATCH] Reorganize macros --- battle/moves/moves.asm | 3 +- battle/objects/data.asm | 762 +++++------------ battle/objects/gfx_headers.asm | 5 +- constants/effect_command_constants.asm | 3 +- constants/map_dimension_constants.asm | 15 + constants/trainer_constants.asm | 5 + data/unown_words.asm | 67 ++ engine/battle_start.asm | 36 +- engine/card_flip.asm | 1 - engine/pokegear.asm | 2 +- engine/prof_oaks_pc.asm | 44 +- engine/radio.asm | 1 - engine/timeofdaypals.asm | 20 +- engine/unown_puzzle.asm | 3 +- engine/unowndex.asm | 69 +- event/unown.asm | 2 - gfx/pics/animation.asm | 26 +- gfx/pics/pic_pointers.asm | 1002 +++++++++++------------ gfx/pics/unown_pic_pointers.asm | 104 +-- gfx/trainer_pic_pointers.asm | 134 +-- home.asm | 7 +- {data => home}/hm_moves.asm | 7 +- home/text.asm | 7 +- home/time.asm | 3 - macros.asm | 323 +------- macros/basestats.asm | 2 + macros/code.asm | 55 ++ macros/color.asm | 15 + macros/coords.asm | 51 ++ macros/data.asm | 121 +++ macros/map.asm | 211 ----- macros/mobile.asm | 2 - macros/pic.asm | 4 - macros/rst.asm | 12 + macros/{sound.asm => scripts/audio.asm} | 0 macros/{ => scripts}/event.asm | 0 macros/scripts/gfx_anim.asm | 46 ++ macros/scripts/maps.asm | 104 +++ macros/{ => scripts}/move_anim.asm | 0 macros/{ => scripts}/movement.asm | 0 macros/{ => scripts}/text.asm | 0 macros/{ => scripts}/trade_anim.asm | 0 macros/tilesets.asm | 2 + macros/trainer.asm | 11 - macros/wram.asm | 267 +++--- maps/map_headers.asm | 18 +- maps/second_map_headers.asm | 87 ++ sram.asm | 8 +- 48 files changed, 1637 insertions(+), 2030 deletions(-) create mode 100644 data/unown_words.asm rename {data => home}/hm_moves.asm (62%) create mode 100644 macros/code.asm create mode 100644 macros/color.asm create mode 100644 macros/coords.asm create mode 100644 macros/data.asm delete mode 100644 macros/map.asm delete mode 100644 macros/mobile.asm delete mode 100644 macros/pic.asm rename macros/{sound.asm => scripts/audio.asm} (100%) rename macros/{ => scripts}/event.asm (100%) create mode 100644 macros/scripts/gfx_anim.asm create mode 100644 macros/scripts/maps.asm rename macros/{ => scripts}/move_anim.asm (100%) rename macros/{ => scripts}/movement.asm (100%) rename macros/{ => scripts}/text.asm (100%) rename macros/{ => scripts}/trade_anim.asm (100%) mode change 100755 => 100644 delete mode 100644 macros/trainer.asm diff --git a/battle/moves/moves.asm b/battle/moves/moves.asm index 43ba6f10d..b576fbaff 100644 --- a/battle/moves/moves.asm +++ b/battle/moves/moves.asm @@ -1,4 +1,3 @@ -Moves: ; 41afb ; Characteristics of each move. move: MACRO @@ -11,6 +10,8 @@ move: MACRO db \7 percent ; effect chance ENDM +Moves: ; 41afb +; entries correspond to constants/move_constants.asm move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0 move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0 diff --git a/battle/objects/data.asm b/battle/objects/data.asm index fca986f68..8117d8495 100755 --- a/battle/objects/data.asm +++ b/battle/objects/data.asm @@ -1,4 +1,6 @@ -BattleAnimObjects: ; ccb56 +ABSOLUTE_X EQU $00 +RELATIVE_X EQU $01 + battleanimobj: MACRO db \1 ; flags ; bit 7: priority @@ -14,572 +16,194 @@ battleanimobj: MACRO db \6 ; tile offset endm -ABSOLUTE_X EQU $00 -RELATIVE_X EQU $01 - - -; ANIM_OBJ_00 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_01 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_02 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_03 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_04 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_05 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_06 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_07 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_08 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_09 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_0A - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_0B - battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_0C - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_0D - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_0E - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_0F - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_BURNED - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_BLIZZARD - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a - -; ANIM_OBJ_12 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a - -; ANIM_OBJ_ICE_BEAM - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a - -; ANIM_OBJ_RAZOR_LEAF - battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06 - -; ANIM_OBJ_POKE_BALL - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b - -; ANIM_OBJ_POKE_BALL_BLOCKED - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b - -; ANIM_OBJ_17 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 - -; ANIM_OBJ_18 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 - -; ANIM_OBJ_19 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c - -; ANIM_OBJ_1A - battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c - -; ANIM_OBJ_1B - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 - -; ANIM_OBJ_BALL_POOF - battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 - -; ANIM_OBJ_1D - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 - -; ANIM_OBJ_1E - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 - -; ANIM_OBJ_1F - battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09 - -; ANIM_OBJ_20 - battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21 - -; ANIM_OBJ_BUBBLE - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d - -; ANIM_OBJ_22 - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d - -; ANIM_OBJ_23 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e - -; ANIM_OBJ_24 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04 - -; ANIM_OBJ_25 - battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04 - -; ANIM_OBJ_26 - battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f - -; ANIM_OBJ_27 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 - -; ANIM_OBJ_28 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 - -; ANIM_OBJ_ICE_BUILDUP - battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a - -; ANIM_OBJ_FROZEN - battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a - -; ANIM_OBJ_MASTER_BALL_SPARKLE - battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11 - -; ANIM_OBJ_2C - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d - -; ANIM_OBJ_2D - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_2E - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_2F - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_30 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_31 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_LIGHTNING_BOLT - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 - -; ANIM_OBJ_33 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_34 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 - -; ANIM_OBJ_35 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_36 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_37 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_38 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_39 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_3A - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_3B - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_3C - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12 - -; ANIM_OBJ_3D - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12 - -; ANIM_OBJ_GUST - battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13 - -; ANIM_OBJ_3F - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_40 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_41 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_42 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_43 - battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_44 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_ABSORB - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12 - -; ANIM_OBJ_46 - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15 - -; ANIM_OBJ_47 - battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_48 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 - -; ANIM_OBJ_49 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 - -; ANIM_OBJ_LEECH_SEED - battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06 - -; ANIM_OBJ_4B - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e - -; ANIM_OBJ_4C - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17 - -; ANIM_OBJ_4D - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_4E - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 - -; ANIM_OBJ_4F - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 - -; ANIM_OBJ_50 - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18 - -; ANIM_OBJ_51 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 - -; ANIM_OBJ_CHICK - battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19 - -; ANIM_OBJ_53 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19 - -; ANIM_OBJ_54 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19 - -; ANIM_OBJ_SKULL - battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c - -; ANIM_OBJ_56 - battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a - -; ANIM_OBJ_57 - battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a - -; ANIM_OBJ_58 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a - -; ANIM_OBJ_PARALYZED - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19 - -; ANIM_OBJ_5A - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b - -; ANIM_OBJ_HAZE - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c - -; ANIM_OBJ_MIST - battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c - -; ANIM_OBJ_SMOG - battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c - -; ANIM_OBJ_POISON_GAS - battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c - -; ANIM_OBJ_HORN - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d - -; ANIM_OBJ_60 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d - -; ANIM_OBJ_61 - battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e - -; ANIM_OBJ_62 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15 - -; ANIM_OBJ_63 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19 - -; ANIM_OBJ_64 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_65 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11 - -; ANIM_OBJ_66 - battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23 - -; ANIM_OBJ_67 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_68 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_69 - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_6A - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23 - -; ANIM_OBJ_6B - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_6C - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_6D - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_SKY_ATTACK_FEAROW - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20 - -; ANIM_OBJ_LICK - battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04 - -; ANIM_OBJ_WITHDRAW - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 - -; ANIM_OBJ_71 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d - -; ANIM_OBJ_72 - battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12 - -; ANIM_OBJ_73 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08 - -; ANIM_OBJ_74 - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c - -; ANIM_OBJ_75 - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15 - -; ANIM_OBJ_76 - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14 - -; ANIM_OBJ_77 - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11 - -; ANIM_OBJ_78 - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 - -; ANIM_OBJ_79 - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 - -; ANIM_OBJ_7A - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_7B - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_7C - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_7D - battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13 - -; ANIM_OBJ_HEART - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23 - -; ANIM_OBJ_7F - battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_80 - battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_COTTON_SPORE - battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_82 - battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_83 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_84 - battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f - -; ANIM_OBJ_85 - battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e - -; ANIM_OBJ_86 - battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f - -; ANIM_OBJ_87 - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_88 - battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_89 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_8A - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23 - -; ANIM_OBJ_8B - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19 - -; ANIM_OBJ_8C - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15 - -; ANIM_OBJ_8D - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19 - -; ANIM_OBJ_SPIKES - battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f - -; ANIM_OBJ_8F - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a - -; ANIM_OBJ_90 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03 - -; ANIM_OBJ_91 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08 - -; ANIM_OBJ_92 - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b - -; ANIM_OBJ_93 - battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23 - -; ANIM_OBJ_94 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25 - -; ANIM_OBJ_95 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25 - -; ANIM_OBJ_96 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25 - -; ANIM_OBJ_97 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25 - -; ANIM_OBJ_98 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23 - -; ANIM_OBJ_99 - battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23 - -; ANIM_OBJ_9A - battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23 - -; ANIM_OBJ_9B - battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25 - -; ANIM_OBJ_9C - battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24 - -; ANIM_OBJ_9D - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 - -; ANIM_OBJ_9E - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24 - -; ANIM_OBJ_9F - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12 - -; ANIM_OBJ_A0 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_A1 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 - -; ANIM_OBJ_A2 - battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f - -; ANIM_OBJ_A3 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05 - -; ANIM_OBJ_A4 - battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25 - -; ANIM_OBJ_A5 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23 - -; ANIM_OBJ_PERISH_SONG - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e - -; ANIM_OBJ_A7 - battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 - -; ANIM_OBJ_A8 - battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13 - -; ANIM_OBJ_A9 - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13 - -; ANIM_OBJ_AA - battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_AB - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e - -; ANIM_OBJ_AC - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17 - -; ANIM_OBJ_AD - battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01 - -; ANIM_OBJ_AE - battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11 - -; ANIM_OBJ_AF - battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04 - -; ANIM_OBJ_B0 - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c - -; ANIM_OBJ_B1 - battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19 - -; ANIM_OBJ_B2 - battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09 - -; ANIM_OBJ_B3 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27 - -; ANIM_OBJ_B4 - battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15 - -; ANIM_OBJ_B5 - battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09 - -; ANIM_OBJ_FLOWER - battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e - -; ANIM_OBJ_COTTON - battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f - -; ANIM_OBJ_PLAYERFEETFOLLOW - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 - -; ANIM_OBJ_ENEMYFEETFOLLOW - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 - -; ANIM_OBJ_BA - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 - -; ANIM_OBJ_BB - battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 - +BattleAnimObjects: ; ccb56 +; entries correspond to ANIM_OBJ_* constants + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_00 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_01 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_02 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_03 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_04 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_05 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_06 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_07 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_08 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_09 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_0A + battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0B + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0C + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0D + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0E + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0F + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_BURNED + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_BLIZZARD + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_12 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BEAM + battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_RAZOR_LEAF + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL_BLOCKED + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_17 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_18 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_19 + battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_1A + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_1B + battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_BALL_POOF + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1D + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1E + battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1F + battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21 ; ANIM_OBJ_20 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_BUBBLE + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_22 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_23 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_24 + battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_25 + battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f ; ANIM_OBJ_26 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_27 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_28 + battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BUILDUP + battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_FROZEN + battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11 ; ANIM_OBJ_MASTER_BALL_SPARKLE + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d ; ANIM_OBJ_2C + battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2D + battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2E + battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2F + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_30 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_31 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_LIGHTNING_BOLT + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_33 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_34 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_35 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_36 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_37 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_38 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_39 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3A + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3B + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3C + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3D + battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_GUST + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_3F + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_40 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_41 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_42 + battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_43 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_44 + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_ABSORB + battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_46 + battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_47 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_48 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_49 + battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_LEECH_SEED + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_4B + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17 ; ANIM_OBJ_4C + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_4D + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4E + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4F + battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18 ; ANIM_OBJ_50 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_51 + battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_CHICK + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_53 + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_54 + battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_SKULL + battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_56 + battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_57 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a ; ANIM_OBJ_58 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_PARALYZED + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_5A + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_HAZE + battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_MIST + battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_SMOG + battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_POISON_GAS + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_HORN + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_60 + battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_61 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_62 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19 ; ANIM_OBJ_63 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_64 + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_65 + battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_66 + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_67 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_68 + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_69 + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_6A + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_6B + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6C + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6D + battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20 ; ANIM_OBJ_SKY_ATTACK_FEAROW + battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_LICK + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_WITHDRAW + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_71 + battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12 ; ANIM_OBJ_72 + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_73 + battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_74 + battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_75 + battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_76 + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_77 + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_78 + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_79 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_7A + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_7B + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_7C + battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13 ; ANIM_OBJ_7D + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_HEART + battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_7F + battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_80 + battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_COTTON_SPORE + battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_82 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_83 + battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f ; ANIM_OBJ_84 + battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_85 + battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_86 + battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_87 + battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_88 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_89 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_8A + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_8B + battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_8C + battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19 ; ANIM_OBJ_8D + battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_SPIKES + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a ; ANIM_OBJ_8F + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_90 + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_91 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_92 + battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_93 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_94 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_95 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_96 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25 ; ANIM_OBJ_97 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23 ; ANIM_OBJ_98 + battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_99 + battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_9A + battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_9B + battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9C + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_9D + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9E + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12 ; ANIM_OBJ_9F + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A0 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A1 + battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f ; ANIM_OBJ_A2 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_A3 + battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_A4 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_A5 + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_PERISH_SONG + battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_A7 + battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A8 + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A9 + battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AA + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_AB + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17 ; ANIM_OBJ_AC + battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AD + battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_AE + battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_AF + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c ; ANIM_OBJ_B0 + battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_B1 + battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B2 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27 ; ANIM_OBJ_B3 + battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15 ; ANIM_OBJ_B4 + battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B5 + battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_FLOWER + battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_COTTON + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_PLAYERFEETFOLLOW + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_ENEMYFEETFOLLOW + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_BA + battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_BB ; ccfbe diff --git a/battle/objects/gfx_headers.asm b/battle/objects/gfx_headers.asm index 60164918b..901144ec7 100755 --- a/battle/objects/gfx_headers.asm +++ b/battle/objects/gfx_headers.asm @@ -1,12 +1,11 @@ - -AnimObjGFX: ; cfcf6 - object_gfx: MACRO ; # tiles, label db \1 dba \2 ENDM +AnimObjGFX: ; cfcf6 +; entries correspond to ANIM_GFX_* constants object_gfx 0, AnimObj00GFX object_gfx 21, AnimObjHitGFX object_gfx 6, AnimObjCutGFX diff --git a/constants/effect_command_constants.asm b/constants/effect_command_constants.asm index 0d86e66a1..bc752262f 100644 --- a/constants/effect_command_constants.asm +++ b/constants/effect_command_constants.asm @@ -1,10 +1,9 @@ -; BattleCommandPointers indexes (see battle/effect_commands.asm) - 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 diff --git a/constants/map_dimension_constants.asm b/constants/map_dimension_constants.asm index df93fb796..7f668ba1c 100644 --- a/constants/map_dimension_constants.asm +++ b/constants/map_dimension_constants.asm @@ -1,3 +1,18 @@ +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 group ids ; `newgroup` indexes are for: ; - MapGroupPointers (see maps/map_headers.asm) diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index 49a0df454..f2b6a3ec8 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -1,3 +1,8 @@ +trainerclass: MACRO + enum \1 +const_value = 1 +ENDM + ; trainer class ids ; `trainerclass` indexes are for: ; - TrainerClassAttributes (see trainers/attributes.asm) diff --git a/data/unown_words.asm b/data/unown_words.asm new file mode 100644 index 000000000..a36dea6d1 --- /dev/null +++ b/data/unown_words.asm @@ -0,0 +1,67 @@ +unownword: macro +x = 1 + rept STRLEN(\1) + db STRSUB(\1, x, 1) - $40 +x = x + 1 + endr + db -1 +endm + +UnownWords: ; fba5a +; entries correspond to Unown forms + dw UnownWord1 + dw UnownWord1 + dw UnownWord2 + dw UnownWord3 + dw UnownWord4 + dw UnownWord5 + dw UnownWord6 + dw UnownWord7 + dw UnownWord8 + dw UnownWord9 + dw UnownWord10 + dw UnownWord11 + dw UnownWord12 + dw UnownWord13 + dw UnownWord14 + dw UnownWord15 + dw UnownWord16 + dw UnownWord17 + dw UnownWord18 + dw UnownWord19 + dw UnownWord20 + dw UnownWord21 + dw UnownWord22 + dw UnownWord23 + dw UnownWord24 + dw UnownWord25 + dw UnownWord26 +; fba90 + +UnownWord1: unownword "ANGRY" +UnownWord2: unownword "BEAR" +UnownWord3: unownword "CHASE" +UnownWord4: unownword "DIRECT" +UnownWord5: unownword "ENGAGE" +UnownWord6: unownword "FIND" +UnownWord7: unownword "GIVE" +UnownWord8: unownword "HELP" +UnownWord9: unownword "INCREASE" +UnownWord10: unownword "JOIN" +UnownWord11: unownword "KEEP" +UnownWord12: unownword "LAUGH" +UnownWord13: unownword "MAKE" +UnownWord14: unownword "NUZZLE" +UnownWord15: unownword "OBSERVE" +UnownWord16: unownword "PERFORM" +UnownWord17: unownword "QUICKEN" +UnownWord18: unownword "REASSURE" +UnownWord19: unownword "SEARCH" +UnownWord20: unownword "TELL" +UnownWord21: unownword "UNDO" +UnownWord22: unownword "VANISH" +UnownWord23: unownword "WANT" +UnownWord24: unownword "XXXXX" +UnownWord25: unownword "YIELD" +UnownWord26: unownword "ZOOM" +; fbb32 diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 7a16c3b82..9546980c2 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -363,19 +363,6 @@ StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d) ld [wcf64], a ret -spintable_entry: MACRO - db \1 - dw .wedge\2 - dwcoord \3, \4 -ENDM - -; quadrants - const_def - const UPPER_LEFT - const UPPER_RIGHT - const LOWER_LEFT - const LOWER_RIGHT - StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f) xor a ld [hBGMapMode], a @@ -412,7 +399,19 @@ endr ret ; 8c490 (23:4490) +; quadrants + const_def + const UPPER_LEFT + const UPPER_RIGHT + const LOWER_LEFT + const LOWER_RIGHT + .spintable ; 8c490 +spintable_entry: MACRO + db \1 + dw .wedge\2 + dwcoord \3, \4 +ENDM spintable_entry UPPER_LEFT, 1, 1, 6 spintable_entry UPPER_LEFT, 2, 0, 3 spintable_entry UPPER_LEFT, 3, 1, 0 @@ -797,12 +796,6 @@ StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7) sine_wave $100 ; 8c768 -zoombox: macro -; width, height, start y, start x - db \1, \2 - dwcoord \3, \4 -endm - StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768) callba Function5602 ld de, .boxes @@ -835,6 +828,11 @@ StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768) ; 8c792 (23:4792) .boxes ; 8c792 +zoombox: macro +; width, height, start y, start x + db \1, \2 + dwcoord \3, \4 +endm zoombox 4, 2, 8, 8 zoombox 6, 4, 7, 7 zoombox 8, 6, 6, 6 diff --git a/engine/card_flip.asm b/engine/card_flip.asm index 063d5324f..ccb72c6ac 100755 --- a/engine/card_flip.asm +++ b/engine/card_flip.asm @@ -1415,7 +1415,6 @@ else endc endm - cardflip_cursor 11, 2, .Impossible cardflip_cursor 12, 2, .Impossible cardflip_cursor 13, 2, .PokeGroupPair diff --git a/engine/pokegear.asm b/engine/pokegear.asm index 561ece400..4e38cf917 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -2340,11 +2340,11 @@ HasVisitedSpawn: ; 91c50 Flypoints: ; 91c5e ; landmark, spawn point - const_def flypoint: MACRO const FLY_\1 db \2, SPAWN_\1 ENDM + const_def ; Johto flypoint NEW_BARK, NEW_BARK_TOWN flypoint CHERRYGROVE, CHERRYGROVE_CITY diff --git a/engine/prof_oaks_pc.asm b/engine/prof_oaks_pc.asm index 05ff2b691..69949940b 100755 --- a/engine/prof_oaks_pc.asm +++ b/engine/prof_oaks_pc.asm @@ -1,4 +1,3 @@ - ProfOaksPC: ; 0x265d3 ld hl, OakPCText1 call MenuTextBox @@ -100,31 +99,26 @@ endr ret OakRatings: ; 0x2667f -oakrating: MACRO - db \1 - dw \2, \3 -endm - ; if you caught at most this many, play this sound, load this text - oakrating 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01 - oakrating 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02 - oakrating 34, SFX_DEX_FANFARE_20_49, OakRating03 - oakrating 49, SFX_DEX_FANFARE_20_49, OakRating04 - oakrating 64, SFX_DEX_FANFARE_50_79, OakRating05 - oakrating 79, SFX_DEX_FANFARE_50_79, OakRating06 - oakrating 94, SFX_DEX_FANFARE_80_109, OakRating07 - oakrating 109, SFX_DEX_FANFARE_80_109, OakRating08 - oakrating 124, SFX_CAUGHT_MON, OakRating09 - oakrating 139, SFX_CAUGHT_MON, OakRating10 - oakrating 154, SFX_DEX_FANFARE_140_169, OakRating11 - oakrating 169, SFX_DEX_FANFARE_140_169, OakRating12 - oakrating 184, SFX_DEX_FANFARE_170_199, OakRating13 - oakrating 199, SFX_DEX_FANFARE_170_199, OakRating14 - oakrating 214, SFX_DEX_FANFARE_200_229, OakRating15 - oakrating 229, SFX_DEX_FANFARE_200_229, OakRating16 - oakrating 239, SFX_DEX_FANFARE_230_PLUS, OakRating17 - oakrating 248, SFX_DEX_FANFARE_230_PLUS, OakRating18 - oakrating 255, SFX_DEX_FANFARE_230_PLUS, OakRating19 + dbww 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01 + dbww 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02 + dbww 34, SFX_DEX_FANFARE_20_49, OakRating03 + dbww 49, SFX_DEX_FANFARE_20_49, OakRating04 + dbww 64, SFX_DEX_FANFARE_50_79, OakRating05 + dbww 79, SFX_DEX_FANFARE_50_79, OakRating06 + dbww 94, SFX_DEX_FANFARE_80_109, OakRating07 + dbww 109, SFX_DEX_FANFARE_80_109, OakRating08 + dbww 124, SFX_CAUGHT_MON, OakRating09 + dbww 139, SFX_CAUGHT_MON, OakRating10 + dbww 154, SFX_DEX_FANFARE_140_169, OakRating11 + dbww 169, SFX_DEX_FANFARE_140_169, OakRating12 + dbww 184, SFX_DEX_FANFARE_170_199, OakRating13 + dbww 199, SFX_DEX_FANFARE_170_199, OakRating14 + dbww 214, SFX_DEX_FANFARE_200_229, OakRating15 + dbww 229, SFX_DEX_FANFARE_200_229, OakRating16 + dbww 239, SFX_DEX_FANFARE_230_PLUS, OakRating17 + dbww 248, SFX_DEX_FANFARE_230_PLUS, OakRating18 + dbww 255, SFX_DEX_FANFARE_230_PLUS, OakRating19 OakPCText1: ; 0x266de text_jump _OakPCText1 diff --git a/engine/radio.asm b/engine/radio.asm index feded7616..58e953e55 100644 --- a/engine/radio.asm +++ b/engine/radio.asm @@ -1578,7 +1578,6 @@ BuenasPassword4: .greater_than_11 call Random maskbits NUM_PASSWORD_CATEGORIES - and x cp NUM_PASSWORD_CATEGORIES jr nc, .greater_than_11 ; Store it in the high nybble of e. diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index 263a83fc1..90ff9141c 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -196,10 +196,6 @@ endr ret ; 8c0e5 -brightlevel: MACRO - db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4 -ENDM - ReplaceTimeOfDayPals: ; 8c0e5 ld hl, .BrightnessLevels ld a, [wMapTimeOfDay] @@ -230,14 +226,14 @@ ReplaceTimeOfDayPals: ; 8c0e5 ; 8c10f (23:410f) .BrightnessLevels: ; 8c10f - brightlevel 3, 2, 1, 0 - brightlevel 1, 1, 1, 1 - brightlevel 2, 2, 2, 2 - brightlevel 0, 0, 0, 0 - brightlevel 3, 3, 3, 3 - brightlevel 3, 2, 1, 0 - brightlevel 3, 2, 1, 0 - brightlevel 3, 2, 1, 0 + dc 3, 2, 1, 0 + dc 1, 1, 1, 1 + dc 2, 2, 2, 2 + dc 0, 0, 0, 0 + dc 3, 3, 3, 3 + dc 3, 2, 1, 0 + dc 3, 2, 1, 0 + dc 3, 2, 1, 0 ; 8c117 GetTimePalette: ; 8c117 diff --git a/engine/unown_puzzle.asm b/engine/unown_puzzle.asm index a1fed2520..9f20ccb3e 100755 --- a/engine/unown_puzzle.asm +++ b/engine/unown_puzzle.asm @@ -1,7 +1,8 @@ -puzcoord EQUS "* 6 +" PUZZLE_BORDER EQU $ee PUZZLE_VOID EQU $ef +puzcoord EQUS "* 6 +" + UnownPuzzle: ; e1190 ld a, [hInMenu] push af diff --git a/engine/unowndex.asm b/engine/unowndex.asm index 007dd9790..6d14f8b3c 100755 --- a/engine/unowndex.asm +++ b/engine/unowndex.asm @@ -19,7 +19,6 @@ UpdateUnownDex: ; fba18 ret ; fba2e - PrintUnownWord: ; fba2e (3e:7a2e) hlcoord 4, 15 ld bc, 12 @@ -49,70 +48,4 @@ PrintUnownWord: ; fba2e (3e:7a2e) jr .loop ; fba5a (3e:7a5a) -UnownWords: ; fba5a - dw UnownWord1 - dw UnownWord1 - dw UnownWord2 - dw UnownWord3 - dw UnownWord4 - dw UnownWord5 - dw UnownWord6 - dw UnownWord7 - dw UnownWord8 - dw UnownWord9 - dw UnownWord10 - dw UnownWord11 - dw UnownWord12 - dw UnownWord13 - dw UnownWord14 - dw UnownWord15 - dw UnownWord16 - dw UnownWord17 - dw UnownWord18 - dw UnownWord19 - dw UnownWord20 - dw UnownWord21 - dw UnownWord22 - dw UnownWord23 - dw UnownWord24 - dw UnownWord25 - dw UnownWord26 -; fba90 - -unownword: macro -x = 1 - rept STRLEN(\1) - db STRSUB(\1, x, 1) - $40 -x = x + 1 - endr - db -1 -endm - - -UnownWord1: unownword "ANGRY" -UnownWord2: unownword "BEAR" -UnownWord3: unownword "CHASE" -UnownWord4: unownword "DIRECT" -UnownWord5: unownword "ENGAGE" -UnownWord6: unownword "FIND" -UnownWord7: unownword "GIVE" -UnownWord8: unownword "HELP" -UnownWord9: unownword "INCREASE" -UnownWord10: unownword "JOIN" -UnownWord11: unownword "KEEP" -UnownWord12: unownword "LAUGH" -UnownWord13: unownword "MAKE" -UnownWord14: unownword "NUZZLE" -UnownWord15: unownword "OBSERVE" -UnownWord16: unownword "PERFORM" -UnownWord17: unownword "QUICKEN" -UnownWord18: unownword "REASSURE" -UnownWord19: unownword "SEARCH" -UnownWord20: unownword "TELL" -UnownWord21: unownword "UNDO" -UnownWord22: unownword "VANISH" -UnownWord23: unownword "WANT" -UnownWord24: unownword "XXXXX" -UnownWord25: unownword "YIELD" -UnownWord26: unownword "ZOOM" -; fbb32 +INCLUDE "data/unown_words.asm" diff --git a/event/unown.asm b/event/unown.asm index efd4c74f5..1be858bd6 100644 --- a/event/unown.asm +++ b/event/unown.asm @@ -1,5 +1,3 @@ - - SpecialHoOhChamber: ; 0x8addb ld hl, PartySpecies ld a, [hl] diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm index aa32fbe94..2f348fbfb 100644 --- a/gfx/pics/animation.asm +++ b/gfx/pics/animation.asm @@ -1,6 +1,5 @@ ; Pic animation arrangement. - AnimateMon_Slow_Normal: ; d0000 hlcoord 12, 0 ld a, [wBattleMode] @@ -53,23 +52,18 @@ AnimateMon_Unused: ; d003a ret ; d0042 - -POKEANIM: MACRO +pokeanim: MACRO rept _NARG - ; Workaround for a bug where macro args can't come after the start of a symbol if !def(\1_POKEANIM) \1_POKEANIM equs "PokeAnim_\1_" endc - db (\1_POKEANIM - PokeAnim_SetupCommands) / 2 shift endr - db (PokeAnim_Finish_ - PokeAnim_SetupCommands) / 2 ENDM - PokeAnims: ; d0042 dw .Slow dw .Normal @@ -81,15 +75,15 @@ PokeAnims: ; d0042 dw .Egg1 dw .Egg2 -.Slow: POKEANIM StereoCry, Setup2, Play -.Normal: POKEANIM StereoCry, Setup, Play -.Menu: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play -.Trade: POKEANIM Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play -.Evolve: POKEANIM Extra, Play, SetWait, Wait, CryNoWait, Setup, Play -.Hatch: POKEANIM Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play -.Unused: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play -.Egg1: POKEANIM Setup, Play -.Egg2: POKEANIM Extra, Play +.Slow: pokeanim StereoCry, Setup2, Play +.Normal: pokeanim StereoCry, Setup, Play +.Menu: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Extra, Play +.Trade: pokeanim Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play +.Evolve: pokeanim Extra, Play, SetWait, Wait, CryNoWait, Setup, Play +.Hatch: pokeanim Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play +.Unused: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Extra, Play +.Egg1: pokeanim Setup, Play +.Egg2: pokeanim Extra, Play AnimateFrontpic: ; d008e diff --git a/gfx/pics/pic_pointers.asm b/gfx/pics/pic_pointers.asm index 2a6a2699a..58631e09a 100644 --- a/gfx/pics/pic_pointers.asm +++ b/gfx/pics/pic_pointers.asm @@ -1,511 +1,511 @@ PicPointers:: ; entries correspond to constants/pokemon_constants.asm, two apiece - add_pic BulbasaurFrontpic - add_pic BulbasaurBackpic - add_pic IvysaurFrontpic - add_pic IvysaurBackpic - add_pic VenusaurFrontpic - add_pic VenusaurBackpic - add_pic CharmanderFrontpic - add_pic CharmanderBackpic - add_pic CharmeleonFrontpic - add_pic CharmeleonBackpic - add_pic CharizardFrontpic - add_pic CharizardBackpic - add_pic SquirtleFrontpic - add_pic SquirtleBackpic - add_pic WartortleFrontpic - add_pic WartortleBackpic - add_pic BlastoiseFrontpic - add_pic BlastoiseBackpic - add_pic CaterpieFrontpic - add_pic CaterpieBackpic - add_pic MetapodFrontpic - add_pic MetapodBackpic - add_pic ButterfreeFrontpic - add_pic ButterfreeBackpic - add_pic WeedleFrontpic - add_pic WeedleBackpic - add_pic KakunaFrontpic - add_pic KakunaBackpic - add_pic BeedrillFrontpic - add_pic BeedrillBackpic - add_pic PidgeyFrontpic - add_pic PidgeyBackpic - add_pic PidgeottoFrontpic - add_pic PidgeottoBackpic - add_pic PidgeotFrontpic - add_pic PidgeotBackpic - add_pic RattataFrontpic - add_pic RattataBackpic - add_pic RaticateFrontpic - add_pic RaticateBackpic - add_pic SpearowFrontpic - add_pic SpearowBackpic - add_pic FearowFrontpic - add_pic FearowBackpic - add_pic EkansFrontpic - add_pic EkansBackpic - add_pic ArbokFrontpic - add_pic ArbokBackpic - add_pic PikachuFrontpic - add_pic PikachuBackpic - add_pic RaichuFrontpic - add_pic RaichuBackpic - add_pic SandshrewFrontpic - add_pic SandshrewBackpic - add_pic SandslashFrontpic - add_pic SandslashBackpic - add_pic NidoranFFrontpic - add_pic NidoranFBackpic - add_pic NidorinaFrontpic - add_pic NidorinaBackpic - add_pic NidoqueenFrontpic - add_pic NidoqueenBackpic - add_pic NidoranMFrontpic - add_pic NidoranMBackpic - add_pic NidorinoFrontpic - add_pic NidorinoBackpic - add_pic NidokingFrontpic - add_pic NidokingBackpic - add_pic ClefairyFrontpic - add_pic ClefairyBackpic - add_pic ClefableFrontpic - add_pic ClefableBackpic - add_pic VulpixFrontpic - add_pic VulpixBackpic - add_pic NinetalesFrontpic - add_pic NinetalesBackpic - add_pic JigglypuffFrontpic - add_pic JigglypuffBackpic - add_pic WigglytuffFrontpic - add_pic WigglytuffBackpic - add_pic ZubatFrontpic - add_pic ZubatBackpic - add_pic GolbatFrontpic - add_pic GolbatBackpic - add_pic OddishFrontpic - add_pic OddishBackpic - add_pic GloomFrontpic - add_pic GloomBackpic - add_pic VileplumeFrontpic - add_pic VileplumeBackpic - add_pic ParasFrontpic - add_pic ParasBackpic - add_pic ParasectFrontpic - add_pic ParasectBackpic - add_pic VenonatFrontpic - add_pic VenonatBackpic - add_pic VenomothFrontpic - add_pic VenomothBackpic - add_pic DiglettFrontpic - add_pic DiglettBackpic - add_pic DugtrioFrontpic - add_pic DugtrioBackpic - add_pic MeowthFrontpic - add_pic MeowthBackpic - add_pic PersianFrontpic - add_pic PersianBackpic - add_pic PsyduckFrontpic - add_pic PsyduckBackpic - add_pic GolduckFrontpic - add_pic GolduckBackpic - add_pic MankeyFrontpic - add_pic MankeyBackpic - add_pic PrimeapeFrontpic - add_pic PrimeapeBackpic - add_pic GrowlitheFrontpic - add_pic GrowlitheBackpic - add_pic ArcanineFrontpic - add_pic ArcanineBackpic - add_pic PoliwagFrontpic - add_pic PoliwagBackpic - add_pic PoliwhirlFrontpic - add_pic PoliwhirlBackpic - add_pic PoliwrathFrontpic - add_pic PoliwrathBackpic - add_pic AbraFrontpic - add_pic AbraBackpic - add_pic KadabraFrontpic - add_pic KadabraBackpic - add_pic AlakazamFrontpic - add_pic AlakazamBackpic - add_pic MachopFrontpic - add_pic MachopBackpic - add_pic MachokeFrontpic - add_pic MachokeBackpic - add_pic MachampFrontpic - add_pic MachampBackpic - add_pic BellsproutFrontpic - add_pic BellsproutBackpic - add_pic WeepinbellFrontpic - add_pic WeepinbellBackpic - add_pic VictreebelFrontpic - add_pic VictreebelBackpic - add_pic TentacoolFrontpic - add_pic TentacoolBackpic - add_pic TentacruelFrontpic - add_pic TentacruelBackpic - add_pic GeodudeFrontpic - add_pic GeodudeBackpic - add_pic GravelerFrontpic - add_pic GravelerBackpic - add_pic GolemFrontpic - add_pic GolemBackpic - add_pic PonytaFrontpic - add_pic PonytaBackpic - add_pic RapidashFrontpic - add_pic RapidashBackpic - add_pic SlowpokeFrontpic - add_pic SlowpokeBackpic - add_pic SlowbroFrontpic - add_pic SlowbroBackpic - add_pic MagnemiteFrontpic - add_pic MagnemiteBackpic - add_pic MagnetonFrontpic - add_pic MagnetonBackpic - add_pic FarfetchDFrontpic - add_pic FarfetchDBackpic - add_pic DoduoFrontpic - add_pic DoduoBackpic - add_pic DodrioFrontpic - add_pic DodrioBackpic - add_pic SeelFrontpic - add_pic SeelBackpic - add_pic DewgongFrontpic - add_pic DewgongBackpic - add_pic GrimerFrontpic - add_pic GrimerBackpic - add_pic MukFrontpic - add_pic MukBackpic - add_pic ShellderFrontpic - add_pic ShellderBackpic - add_pic CloysterFrontpic - add_pic CloysterBackpic - add_pic GastlyFrontpic - add_pic GastlyBackpic - add_pic HaunterFrontpic - add_pic HaunterBackpic - add_pic GengarFrontpic - add_pic GengarBackpic - add_pic OnixFrontpic - add_pic OnixBackpic - add_pic DrowzeeFrontpic - add_pic DrowzeeBackpic - add_pic HypnoFrontpic - add_pic HypnoBackpic - add_pic KrabbyFrontpic - add_pic KrabbyBackpic - add_pic KinglerFrontpic - add_pic KinglerBackpic - add_pic VoltorbFrontpic - add_pic VoltorbBackpic - add_pic ElectrodeFrontpic - add_pic ElectrodeBackpic - add_pic ExeggcuteFrontpic - add_pic ExeggcuteBackpic - add_pic ExeggutorFrontpic - add_pic ExeggutorBackpic - add_pic CuboneFrontpic - add_pic CuboneBackpic - add_pic MarowakFrontpic - add_pic MarowakBackpic - add_pic HitmonleeFrontpic - add_pic HitmonleeBackpic - add_pic HitmonchanFrontpic - add_pic HitmonchanBackpic - add_pic LickitungFrontpic - add_pic LickitungBackpic - add_pic KoffingFrontpic - add_pic KoffingBackpic - add_pic WeezingFrontpic - add_pic WeezingBackpic - add_pic RhyhornFrontpic - add_pic RhyhornBackpic - add_pic RhydonFrontpic - add_pic RhydonBackpic - add_pic ChanseyFrontpic - add_pic ChanseyBackpic - add_pic TangelaFrontpic - add_pic TangelaBackpic - add_pic KangaskhanFrontpic - add_pic KangaskhanBackpic - add_pic HorseaFrontpic - add_pic HorseaBackpic - add_pic SeadraFrontpic - add_pic SeadraBackpic - add_pic GoldeenFrontpic - add_pic GoldeenBackpic - add_pic SeakingFrontpic - add_pic SeakingBackpic - add_pic StaryuFrontpic - add_pic StaryuBackpic - add_pic StarmieFrontpic - add_pic StarmieBackpic - add_pic MrMimeFrontpic - add_pic MrMimeBackpic - add_pic ScytherFrontpic - add_pic ScytherBackpic - add_pic JynxFrontpic - add_pic JynxBackpic - add_pic ElectabuzzFrontpic - add_pic ElectabuzzBackpic - add_pic MagmarFrontpic - add_pic MagmarBackpic - add_pic PinsirFrontpic - add_pic PinsirBackpic - add_pic TaurosFrontpic - add_pic TaurosBackpic - add_pic MagikarpFrontpic - add_pic MagikarpBackpic - add_pic GyaradosFrontpic - add_pic GyaradosBackpic - add_pic LaprasFrontpic - add_pic LaprasBackpic - add_pic DittoFrontpic - add_pic DittoBackpic - add_pic EeveeFrontpic - add_pic EeveeBackpic - add_pic VaporeonFrontpic - add_pic VaporeonBackpic - add_pic JolteonFrontpic - add_pic JolteonBackpic - add_pic FlareonFrontpic - add_pic FlareonBackpic - add_pic PorygonFrontpic - add_pic PorygonBackpic - add_pic OmanyteFrontpic - add_pic OmanyteBackpic - add_pic OmastarFrontpic - add_pic OmastarBackpic - add_pic KabutoFrontpic - add_pic KabutoBackpic - add_pic KabutopsFrontpic - add_pic KabutopsBackpic - add_pic AerodactylFrontpic - add_pic AerodactylBackpic - add_pic SnorlaxFrontpic - add_pic SnorlaxBackpic - add_pic ArticunoFrontpic - add_pic ArticunoBackpic - add_pic ZapdosFrontpic - add_pic ZapdosBackpic - add_pic MoltresFrontpic - add_pic MoltresBackpic - add_pic DratiniFrontpic - add_pic DratiniBackpic - add_pic DragonairFrontpic - add_pic DragonairBackpic - add_pic DragoniteFrontpic - add_pic DragoniteBackpic - add_pic MewtwoFrontpic - add_pic MewtwoBackpic - add_pic MewFrontpic - add_pic MewBackpic - add_pic ChikoritaFrontpic - add_pic ChikoritaBackpic - add_pic BayleefFrontpic - add_pic BayleefBackpic - add_pic MeganiumFrontpic - add_pic MeganiumBackpic - add_pic CyndaquilFrontpic - add_pic CyndaquilBackpic - add_pic QuilavaFrontpic - add_pic QuilavaBackpic - add_pic TyphlosionFrontpic - add_pic TyphlosionBackpic - add_pic TotodileFrontpic - add_pic TotodileBackpic - add_pic CroconawFrontpic - add_pic CroconawBackpic - add_pic FeraligatrFrontpic - add_pic FeraligatrBackpic - add_pic SentretFrontpic - add_pic SentretBackpic - add_pic FurretFrontpic - add_pic FurretBackpic - add_pic HoothootFrontpic - add_pic HoothootBackpic - add_pic NoctowlFrontpic - add_pic NoctowlBackpic - add_pic LedybaFrontpic - add_pic LedybaBackpic - add_pic LedianFrontpic - add_pic LedianBackpic - add_pic SpinarakFrontpic - add_pic SpinarakBackpic - add_pic AriadosFrontpic - add_pic AriadosBackpic - add_pic CrobatFrontpic - add_pic CrobatBackpic - add_pic ChinchouFrontpic - add_pic ChinchouBackpic - add_pic LanturnFrontpic - add_pic LanturnBackpic - add_pic PichuFrontpic - add_pic PichuBackpic - add_pic CleffaFrontpic - add_pic CleffaBackpic - add_pic IgglybuffFrontpic - add_pic IgglybuffBackpic - add_pic TogepiFrontpic - add_pic TogepiBackpic - add_pic TogeticFrontpic - add_pic TogeticBackpic - add_pic NatuFrontpic - add_pic NatuBackpic - add_pic XatuFrontpic - add_pic XatuBackpic - add_pic MareepFrontpic - add_pic MareepBackpic - add_pic FlaaffyFrontpic - add_pic FlaaffyBackpic - add_pic AmpharosFrontpic - add_pic AmpharosBackpic - add_pic BellossomFrontpic - add_pic BellossomBackpic - add_pic MarillFrontpic - add_pic MarillBackpic - add_pic AzumarillFrontpic - add_pic AzumarillBackpic - add_pic SudowoodoFrontpic - add_pic SudowoodoBackpic - add_pic PolitoedFrontpic - add_pic PolitoedBackpic - add_pic HoppipFrontpic - add_pic HoppipBackpic - add_pic SkiploomFrontpic - add_pic SkiploomBackpic - add_pic JumpluffFrontpic - add_pic JumpluffBackpic - add_pic AipomFrontpic - add_pic AipomBackpic - add_pic SunkernFrontpic - add_pic SunkernBackpic - add_pic SunfloraFrontpic - add_pic SunfloraBackpic - add_pic YanmaFrontpic - add_pic YanmaBackpic - add_pic WooperFrontpic - add_pic WooperBackpic - add_pic QuagsireFrontpic - add_pic QuagsireBackpic - add_pic EspeonFrontpic - add_pic EspeonBackpic - add_pic UmbreonFrontpic - add_pic UmbreonBackpic - add_pic MurkrowFrontpic - add_pic MurkrowBackpic - add_pic SlowkingFrontpic - add_pic SlowkingBackpic - add_pic MisdreavusFrontpic - add_pic MisdreavusBackpic + dba_pic BulbasaurFrontpic + dba_pic BulbasaurBackpic + dba_pic IvysaurFrontpic + dba_pic IvysaurBackpic + dba_pic VenusaurFrontpic + dba_pic VenusaurBackpic + dba_pic CharmanderFrontpic + dba_pic CharmanderBackpic + dba_pic CharmeleonFrontpic + dba_pic CharmeleonBackpic + dba_pic CharizardFrontpic + dba_pic CharizardBackpic + dba_pic SquirtleFrontpic + dba_pic SquirtleBackpic + dba_pic WartortleFrontpic + dba_pic WartortleBackpic + dba_pic BlastoiseFrontpic + dba_pic BlastoiseBackpic + dba_pic CaterpieFrontpic + dba_pic CaterpieBackpic + dba_pic MetapodFrontpic + dba_pic MetapodBackpic + dba_pic ButterfreeFrontpic + dba_pic ButterfreeBackpic + dba_pic WeedleFrontpic + dba_pic WeedleBackpic + dba_pic KakunaFrontpic + dba_pic KakunaBackpic + dba_pic BeedrillFrontpic + dba_pic BeedrillBackpic + dba_pic PidgeyFrontpic + dba_pic PidgeyBackpic + dba_pic PidgeottoFrontpic + dba_pic PidgeottoBackpic + dba_pic PidgeotFrontpic + dba_pic PidgeotBackpic + dba_pic RattataFrontpic + dba_pic RattataBackpic + dba_pic RaticateFrontpic + dba_pic RaticateBackpic + dba_pic SpearowFrontpic + dba_pic SpearowBackpic + dba_pic FearowFrontpic + dba_pic FearowBackpic + dba_pic EkansFrontpic + dba_pic EkansBackpic + dba_pic ArbokFrontpic + dba_pic ArbokBackpic + dba_pic PikachuFrontpic + dba_pic PikachuBackpic + dba_pic RaichuFrontpic + dba_pic RaichuBackpic + dba_pic SandshrewFrontpic + dba_pic SandshrewBackpic + dba_pic SandslashFrontpic + dba_pic SandslashBackpic + dba_pic NidoranFFrontpic + dba_pic NidoranFBackpic + dba_pic NidorinaFrontpic + dba_pic NidorinaBackpic + dba_pic NidoqueenFrontpic + dba_pic NidoqueenBackpic + dba_pic NidoranMFrontpic + dba_pic NidoranMBackpic + dba_pic NidorinoFrontpic + dba_pic NidorinoBackpic + dba_pic NidokingFrontpic + dba_pic NidokingBackpic + dba_pic ClefairyFrontpic + dba_pic ClefairyBackpic + dba_pic ClefableFrontpic + dba_pic ClefableBackpic + dba_pic VulpixFrontpic + dba_pic VulpixBackpic + dba_pic NinetalesFrontpic + dba_pic NinetalesBackpic + dba_pic JigglypuffFrontpic + dba_pic JigglypuffBackpic + dba_pic WigglytuffFrontpic + dba_pic WigglytuffBackpic + dba_pic ZubatFrontpic + dba_pic ZubatBackpic + dba_pic GolbatFrontpic + dba_pic GolbatBackpic + dba_pic OddishFrontpic + dba_pic OddishBackpic + dba_pic GloomFrontpic + dba_pic GloomBackpic + dba_pic VileplumeFrontpic + dba_pic VileplumeBackpic + dba_pic ParasFrontpic + dba_pic ParasBackpic + dba_pic ParasectFrontpic + dba_pic ParasectBackpic + dba_pic VenonatFrontpic + dba_pic VenonatBackpic + dba_pic VenomothFrontpic + dba_pic VenomothBackpic + dba_pic DiglettFrontpic + dba_pic DiglettBackpic + dba_pic DugtrioFrontpic + dba_pic DugtrioBackpic + dba_pic MeowthFrontpic + dba_pic MeowthBackpic + dba_pic PersianFrontpic + dba_pic PersianBackpic + dba_pic PsyduckFrontpic + dba_pic PsyduckBackpic + dba_pic GolduckFrontpic + dba_pic GolduckBackpic + dba_pic MankeyFrontpic + dba_pic MankeyBackpic + dba_pic PrimeapeFrontpic + dba_pic PrimeapeBackpic + dba_pic GrowlitheFrontpic + dba_pic GrowlitheBackpic + dba_pic ArcanineFrontpic + dba_pic ArcanineBackpic + dba_pic PoliwagFrontpic + dba_pic PoliwagBackpic + dba_pic PoliwhirlFrontpic + dba_pic PoliwhirlBackpic + dba_pic PoliwrathFrontpic + dba_pic PoliwrathBackpic + dba_pic AbraFrontpic + dba_pic AbraBackpic + dba_pic KadabraFrontpic + dba_pic KadabraBackpic + dba_pic AlakazamFrontpic + dba_pic AlakazamBackpic + dba_pic MachopFrontpic + dba_pic MachopBackpic + dba_pic MachokeFrontpic + dba_pic MachokeBackpic + dba_pic MachampFrontpic + dba_pic MachampBackpic + dba_pic BellsproutFrontpic + dba_pic BellsproutBackpic + dba_pic WeepinbellFrontpic + dba_pic WeepinbellBackpic + dba_pic VictreebelFrontpic + dba_pic VictreebelBackpic + dba_pic TentacoolFrontpic + dba_pic TentacoolBackpic + dba_pic TentacruelFrontpic + dba_pic TentacruelBackpic + dba_pic GeodudeFrontpic + dba_pic GeodudeBackpic + dba_pic GravelerFrontpic + dba_pic GravelerBackpic + dba_pic GolemFrontpic + dba_pic GolemBackpic + dba_pic PonytaFrontpic + dba_pic PonytaBackpic + dba_pic RapidashFrontpic + dba_pic RapidashBackpic + dba_pic SlowpokeFrontpic + dba_pic SlowpokeBackpic + dba_pic SlowbroFrontpic + dba_pic SlowbroBackpic + dba_pic MagnemiteFrontpic + dba_pic MagnemiteBackpic + dba_pic MagnetonFrontpic + dba_pic MagnetonBackpic + dba_pic FarfetchDFrontpic + dba_pic FarfetchDBackpic + dba_pic DoduoFrontpic + dba_pic DoduoBackpic + dba_pic DodrioFrontpic + dba_pic DodrioBackpic + dba_pic SeelFrontpic + dba_pic SeelBackpic + dba_pic DewgongFrontpic + dba_pic DewgongBackpic + dba_pic GrimerFrontpic + dba_pic GrimerBackpic + dba_pic MukFrontpic + dba_pic MukBackpic + dba_pic ShellderFrontpic + dba_pic ShellderBackpic + dba_pic CloysterFrontpic + dba_pic CloysterBackpic + dba_pic GastlyFrontpic + dba_pic GastlyBackpic + dba_pic HaunterFrontpic + dba_pic HaunterBackpic + dba_pic GengarFrontpic + dba_pic GengarBackpic + dba_pic OnixFrontpic + dba_pic OnixBackpic + dba_pic DrowzeeFrontpic + dba_pic DrowzeeBackpic + dba_pic HypnoFrontpic + dba_pic HypnoBackpic + dba_pic KrabbyFrontpic + dba_pic KrabbyBackpic + dba_pic KinglerFrontpic + dba_pic KinglerBackpic + dba_pic VoltorbFrontpic + dba_pic VoltorbBackpic + dba_pic ElectrodeFrontpic + dba_pic ElectrodeBackpic + dba_pic ExeggcuteFrontpic + dba_pic ExeggcuteBackpic + dba_pic ExeggutorFrontpic + dba_pic ExeggutorBackpic + dba_pic CuboneFrontpic + dba_pic CuboneBackpic + dba_pic MarowakFrontpic + dba_pic MarowakBackpic + dba_pic HitmonleeFrontpic + dba_pic HitmonleeBackpic + dba_pic HitmonchanFrontpic + dba_pic HitmonchanBackpic + dba_pic LickitungFrontpic + dba_pic LickitungBackpic + dba_pic KoffingFrontpic + dba_pic KoffingBackpic + dba_pic WeezingFrontpic + dba_pic WeezingBackpic + dba_pic RhyhornFrontpic + dba_pic RhyhornBackpic + dba_pic RhydonFrontpic + dba_pic RhydonBackpic + dba_pic ChanseyFrontpic + dba_pic ChanseyBackpic + dba_pic TangelaFrontpic + dba_pic TangelaBackpic + dba_pic KangaskhanFrontpic + dba_pic KangaskhanBackpic + dba_pic HorseaFrontpic + dba_pic HorseaBackpic + dba_pic SeadraFrontpic + dba_pic SeadraBackpic + dba_pic GoldeenFrontpic + dba_pic GoldeenBackpic + dba_pic SeakingFrontpic + dba_pic SeakingBackpic + dba_pic StaryuFrontpic + dba_pic StaryuBackpic + dba_pic StarmieFrontpic + dba_pic StarmieBackpic + dba_pic MrMimeFrontpic + dba_pic MrMimeBackpic + dba_pic ScytherFrontpic + dba_pic ScytherBackpic + dba_pic JynxFrontpic + dba_pic JynxBackpic + dba_pic ElectabuzzFrontpic + dba_pic ElectabuzzBackpic + dba_pic MagmarFrontpic + dba_pic MagmarBackpic + dba_pic PinsirFrontpic + dba_pic PinsirBackpic + dba_pic TaurosFrontpic + dba_pic TaurosBackpic + dba_pic MagikarpFrontpic + dba_pic MagikarpBackpic + dba_pic GyaradosFrontpic + dba_pic GyaradosBackpic + dba_pic LaprasFrontpic + dba_pic LaprasBackpic + dba_pic DittoFrontpic + dba_pic DittoBackpic + dba_pic EeveeFrontpic + dba_pic EeveeBackpic + dba_pic VaporeonFrontpic + dba_pic VaporeonBackpic + dba_pic JolteonFrontpic + dba_pic JolteonBackpic + dba_pic FlareonFrontpic + dba_pic FlareonBackpic + dba_pic PorygonFrontpic + dba_pic PorygonBackpic + dba_pic OmanyteFrontpic + dba_pic OmanyteBackpic + dba_pic OmastarFrontpic + dba_pic OmastarBackpic + dba_pic KabutoFrontpic + dba_pic KabutoBackpic + dba_pic KabutopsFrontpic + dba_pic KabutopsBackpic + dba_pic AerodactylFrontpic + dba_pic AerodactylBackpic + dba_pic SnorlaxFrontpic + dba_pic SnorlaxBackpic + dba_pic ArticunoFrontpic + dba_pic ArticunoBackpic + dba_pic ZapdosFrontpic + dba_pic ZapdosBackpic + dba_pic MoltresFrontpic + dba_pic MoltresBackpic + dba_pic DratiniFrontpic + dba_pic DratiniBackpic + dba_pic DragonairFrontpic + dba_pic DragonairBackpic + dba_pic DragoniteFrontpic + dba_pic DragoniteBackpic + dba_pic MewtwoFrontpic + dba_pic MewtwoBackpic + dba_pic MewFrontpic + dba_pic MewBackpic + dba_pic ChikoritaFrontpic + dba_pic ChikoritaBackpic + dba_pic BayleefFrontpic + dba_pic BayleefBackpic + dba_pic MeganiumFrontpic + dba_pic MeganiumBackpic + dba_pic CyndaquilFrontpic + dba_pic CyndaquilBackpic + dba_pic QuilavaFrontpic + dba_pic QuilavaBackpic + dba_pic TyphlosionFrontpic + dba_pic TyphlosionBackpic + dba_pic TotodileFrontpic + dba_pic TotodileBackpic + dba_pic CroconawFrontpic + dba_pic CroconawBackpic + dba_pic FeraligatrFrontpic + dba_pic FeraligatrBackpic + dba_pic SentretFrontpic + dba_pic SentretBackpic + dba_pic FurretFrontpic + dba_pic FurretBackpic + dba_pic HoothootFrontpic + dba_pic HoothootBackpic + dba_pic NoctowlFrontpic + dba_pic NoctowlBackpic + dba_pic LedybaFrontpic + dba_pic LedybaBackpic + dba_pic LedianFrontpic + dba_pic LedianBackpic + dba_pic SpinarakFrontpic + dba_pic SpinarakBackpic + dba_pic AriadosFrontpic + dba_pic AriadosBackpic + dba_pic CrobatFrontpic + dba_pic CrobatBackpic + dba_pic ChinchouFrontpic + dba_pic ChinchouBackpic + dba_pic LanturnFrontpic + dba_pic LanturnBackpic + dba_pic PichuFrontpic + dba_pic PichuBackpic + dba_pic CleffaFrontpic + dba_pic CleffaBackpic + dba_pic IgglybuffFrontpic + dba_pic IgglybuffBackpic + dba_pic TogepiFrontpic + dba_pic TogepiBackpic + dba_pic TogeticFrontpic + dba_pic TogeticBackpic + dba_pic NatuFrontpic + dba_pic NatuBackpic + dba_pic XatuFrontpic + dba_pic XatuBackpic + dba_pic MareepFrontpic + dba_pic MareepBackpic + dba_pic FlaaffyFrontpic + dba_pic FlaaffyBackpic + dba_pic AmpharosFrontpic + dba_pic AmpharosBackpic + dba_pic BellossomFrontpic + dba_pic BellossomBackpic + dba_pic MarillFrontpic + dba_pic MarillBackpic + dba_pic AzumarillFrontpic + dba_pic AzumarillBackpic + dba_pic SudowoodoFrontpic + dba_pic SudowoodoBackpic + dba_pic PolitoedFrontpic + dba_pic PolitoedBackpic + dba_pic HoppipFrontpic + dba_pic HoppipBackpic + dba_pic SkiploomFrontpic + dba_pic SkiploomBackpic + dba_pic JumpluffFrontpic + dba_pic JumpluffBackpic + dba_pic AipomFrontpic + dba_pic AipomBackpic + dba_pic SunkernFrontpic + dba_pic SunkernBackpic + dba_pic SunfloraFrontpic + dba_pic SunfloraBackpic + dba_pic YanmaFrontpic + dba_pic YanmaBackpic + dba_pic WooperFrontpic + dba_pic WooperBackpic + dba_pic QuagsireFrontpic + dba_pic QuagsireBackpic + dba_pic EspeonFrontpic + dba_pic EspeonBackpic + dba_pic UmbreonFrontpic + dba_pic UmbreonBackpic + dba_pic MurkrowFrontpic + dba_pic MurkrowBackpic + dba_pic SlowkingFrontpic + dba_pic SlowkingBackpic + dba_pic MisdreavusFrontpic + dba_pic MisdreavusBackpic ; Unown pics have their own table. See UnownPicPointers dbw -1, -1 dbw -1, -1 - add_pic WobbuffetFrontpic - add_pic WobbuffetBackpic - add_pic GirafarigFrontpic - add_pic GirafarigBackpic - add_pic PinecoFrontpic - add_pic PinecoBackpic - add_pic ForretressFrontpic - add_pic ForretressBackpic - add_pic DunsparceFrontpic - add_pic DunsparceBackpic - add_pic GligarFrontpic - add_pic GligarBackpic - add_pic SteelixFrontpic - add_pic SteelixBackpic - add_pic SnubbullFrontpic - add_pic SnubbullBackpic - add_pic GranbullFrontpic - add_pic GranbullBackpic - add_pic QwilfishFrontpic - add_pic QwilfishBackpic - add_pic ScizorFrontpic - add_pic ScizorBackpic - add_pic ShuckleFrontpic - add_pic ShuckleBackpic - add_pic HeracrossFrontpic - add_pic HeracrossBackpic - add_pic SneaselFrontpic - add_pic SneaselBackpic - add_pic TeddiursaFrontpic - add_pic TeddiursaBackpic - add_pic UrsaringFrontpic - add_pic UrsaringBackpic - add_pic SlugmaFrontpic - add_pic SlugmaBackpic - add_pic MagcargoFrontpic - add_pic MagcargoBackpic - add_pic SwinubFrontpic - add_pic SwinubBackpic - add_pic PiloswineFrontpic - add_pic PiloswineBackpic - add_pic CorsolaFrontpic - add_pic CorsolaBackpic - add_pic RemoraidFrontpic - add_pic RemoraidBackpic - add_pic OctilleryFrontpic - add_pic OctilleryBackpic - add_pic DelibirdFrontpic - add_pic DelibirdBackpic - add_pic MantineFrontpic - add_pic MantineBackpic - add_pic SkarmoryFrontpic - add_pic SkarmoryBackpic - add_pic HoundourFrontpic - add_pic HoundourBackpic - add_pic HoundoomFrontpic - add_pic HoundoomBackpic - add_pic KingdraFrontpic - add_pic KingdraBackpic - add_pic PhanpyFrontpic - add_pic PhanpyBackpic - add_pic DonphanFrontpic - add_pic DonphanBackpic - add_pic Porygon2Frontpic - add_pic Porygon2Backpic - add_pic StantlerFrontpic - add_pic StantlerBackpic - add_pic SmeargleFrontpic - add_pic SmeargleBackpic - add_pic TyrogueFrontpic - add_pic TyrogueBackpic - add_pic HitmontopFrontpic - add_pic HitmontopBackpic - add_pic SmoochumFrontpic - add_pic SmoochumBackpic - add_pic ElekidFrontpic - add_pic ElekidBackpic - add_pic MagbyFrontpic - add_pic MagbyBackpic - add_pic MiltankFrontpic - add_pic MiltankBackpic - add_pic BlisseyFrontpic - add_pic BlisseyBackpic - add_pic RaikouFrontpic - add_pic RaikouBackpic - add_pic EnteiFrontpic - add_pic EnteiBackpic - add_pic SuicuneFrontpic - add_pic SuicuneBackpic - add_pic LarvitarFrontpic - add_pic LarvitarBackpic - add_pic PupitarFrontpic - add_pic PupitarBackpic - add_pic TyranitarFrontpic - add_pic TyranitarBackpic - add_pic LugiaFrontpic - add_pic LugiaBackpic - add_pic HoOhFrontpic - add_pic HoOhBackpic - add_pic CelebiFrontpic - add_pic CelebiBackpic + dba_pic WobbuffetFrontpic + dba_pic WobbuffetBackpic + dba_pic GirafarigFrontpic + dba_pic GirafarigBackpic + dba_pic PinecoFrontpic + dba_pic PinecoBackpic + dba_pic ForretressFrontpic + dba_pic ForretressBackpic + dba_pic DunsparceFrontpic + dba_pic DunsparceBackpic + dba_pic GligarFrontpic + dba_pic GligarBackpic + dba_pic SteelixFrontpic + dba_pic SteelixBackpic + dba_pic SnubbullFrontpic + dba_pic SnubbullBackpic + dba_pic GranbullFrontpic + dba_pic GranbullBackpic + dba_pic QwilfishFrontpic + dba_pic QwilfishBackpic + dba_pic ScizorFrontpic + dba_pic ScizorBackpic + dba_pic ShuckleFrontpic + dba_pic ShuckleBackpic + dba_pic HeracrossFrontpic + dba_pic HeracrossBackpic + dba_pic SneaselFrontpic + dba_pic SneaselBackpic + dba_pic TeddiursaFrontpic + dba_pic TeddiursaBackpic + dba_pic UrsaringFrontpic + dba_pic UrsaringBackpic + dba_pic SlugmaFrontpic + dba_pic SlugmaBackpic + dba_pic MagcargoFrontpic + dba_pic MagcargoBackpic + dba_pic SwinubFrontpic + dba_pic SwinubBackpic + dba_pic PiloswineFrontpic + dba_pic PiloswineBackpic + dba_pic CorsolaFrontpic + dba_pic CorsolaBackpic + dba_pic RemoraidFrontpic + dba_pic RemoraidBackpic + dba_pic OctilleryFrontpic + dba_pic OctilleryBackpic + dba_pic DelibirdFrontpic + dba_pic DelibirdBackpic + dba_pic MantineFrontpic + dba_pic MantineBackpic + dba_pic SkarmoryFrontpic + dba_pic SkarmoryBackpic + dba_pic HoundourFrontpic + dba_pic HoundourBackpic + dba_pic HoundoomFrontpic + dba_pic HoundoomBackpic + dba_pic KingdraFrontpic + dba_pic KingdraBackpic + dba_pic PhanpyFrontpic + dba_pic PhanpyBackpic + dba_pic DonphanFrontpic + dba_pic DonphanBackpic + dba_pic Porygon2Frontpic + dba_pic Porygon2Backpic + dba_pic StantlerFrontpic + dba_pic StantlerBackpic + dba_pic SmeargleFrontpic + dba_pic SmeargleBackpic + dba_pic TyrogueFrontpic + dba_pic TyrogueBackpic + dba_pic HitmontopFrontpic + dba_pic HitmontopBackpic + dba_pic SmoochumFrontpic + dba_pic SmoochumBackpic + dba_pic ElekidFrontpic + dba_pic ElekidBackpic + dba_pic MagbyFrontpic + dba_pic MagbyBackpic + dba_pic MiltankFrontpic + dba_pic MiltankBackpic + dba_pic BlisseyFrontpic + dba_pic BlisseyBackpic + dba_pic RaikouFrontpic + dba_pic RaikouBackpic + dba_pic EnteiFrontpic + dba_pic EnteiBackpic + dba_pic SuicuneFrontpic + dba_pic SuicuneBackpic + dba_pic LarvitarFrontpic + dba_pic LarvitarBackpic + dba_pic PupitarFrontpic + dba_pic PupitarBackpic + dba_pic TyranitarFrontpic + dba_pic TyranitarBackpic + dba_pic LugiaFrontpic + dba_pic LugiaBackpic + dba_pic HoOhFrontpic + dba_pic HoOhBackpic + dba_pic CelebiFrontpic + dba_pic CelebiBackpic dbw -1, -1 ; unused dbw -1, -1 ; unused - add_pic EggPic + dba_pic EggPic dbw -1, -1 ; unused diff --git a/gfx/pics/unown_pic_pointers.asm b/gfx/pics/unown_pic_pointers.asm index c5072c903..1ae0da6b6 100644 --- a/gfx/pics/unown_pic_pointers.asm +++ b/gfx/pics/unown_pic_pointers.asm @@ -1,54 +1,54 @@ UnownPicPointers:: ; entries correspond to Unown letters, two apiece - add_pic UnownAFrontpic - add_pic UnownABackpic - add_pic UnownBFrontpic - add_pic UnownBBackpic - add_pic UnownCFrontpic - add_pic UnownCBackpic - add_pic UnownDFrontpic - add_pic UnownDBackpic - add_pic UnownEFrontpic - add_pic UnownEBackpic - add_pic UnownFFrontpic - add_pic UnownFBackpic - add_pic UnownGFrontpic - add_pic UnownGBackpic - add_pic UnownHFrontpic - add_pic UnownHBackpic - add_pic UnownIFrontpic - add_pic UnownIBackpic - add_pic UnownJFrontpic - add_pic UnownJBackpic - add_pic UnownKFrontpic - add_pic UnownKBackpic - add_pic UnownLFrontpic - add_pic UnownLBackpic - add_pic UnownMFrontpic - add_pic UnownMBackpic - add_pic UnownNFrontpic - add_pic UnownNBackpic - add_pic UnownOFrontpic - add_pic UnownOBackpic - add_pic UnownPFrontpic - add_pic UnownPBackpic - add_pic UnownQFrontpic - add_pic UnownQBackpic - add_pic UnownRFrontpic - add_pic UnownRBackpic - add_pic UnownSFrontpic - add_pic UnownSBackpic - add_pic UnownTFrontpic - add_pic UnownTBackpic - add_pic UnownUFrontpic - add_pic UnownUBackpic - add_pic UnownVFrontpic - add_pic UnownVBackpic - add_pic UnownWFrontpic - add_pic UnownWBackpic - add_pic UnownXFrontpic - add_pic UnownXBackpic - add_pic UnownYFrontpic - add_pic UnownYBackpic - add_pic UnownZFrontpic - add_pic UnownZBackpic + dba_pic UnownAFrontpic + dba_pic UnownABackpic + dba_pic UnownBFrontpic + dba_pic UnownBBackpic + dba_pic UnownCFrontpic + dba_pic UnownCBackpic + dba_pic UnownDFrontpic + dba_pic UnownDBackpic + dba_pic UnownEFrontpic + dba_pic UnownEBackpic + dba_pic UnownFFrontpic + dba_pic UnownFBackpic + dba_pic UnownGFrontpic + dba_pic UnownGBackpic + dba_pic UnownHFrontpic + dba_pic UnownHBackpic + dba_pic UnownIFrontpic + dba_pic UnownIBackpic + dba_pic UnownJFrontpic + dba_pic UnownJBackpic + dba_pic UnownKFrontpic + dba_pic UnownKBackpic + dba_pic UnownLFrontpic + dba_pic UnownLBackpic + dba_pic UnownMFrontpic + dba_pic UnownMBackpic + dba_pic UnownNFrontpic + dba_pic UnownNBackpic + dba_pic UnownOFrontpic + dba_pic UnownOBackpic + dba_pic UnownPFrontpic + dba_pic UnownPBackpic + dba_pic UnownQFrontpic + dba_pic UnownQBackpic + dba_pic UnownRFrontpic + dba_pic UnownRBackpic + dba_pic UnownSFrontpic + dba_pic UnownSBackpic + dba_pic UnownTFrontpic + dba_pic UnownTBackpic + dba_pic UnownUFrontpic + dba_pic UnownUBackpic + dba_pic UnownVFrontpic + dba_pic UnownVBackpic + dba_pic UnownWFrontpic + dba_pic UnownWBackpic + dba_pic UnownXFrontpic + dba_pic UnownXBackpic + dba_pic UnownYFrontpic + dba_pic UnownYBackpic + dba_pic UnownZFrontpic + dba_pic UnownZBackpic diff --git a/gfx/trainer_pic_pointers.asm b/gfx/trainer_pic_pointers.asm index fb1fe0755..201b44200 100644 --- a/gfx/trainer_pic_pointers.asm +++ b/gfx/trainer_pic_pointers.asm @@ -1,69 +1,69 @@ TrainerPicPointers:: ; entries correspond to trainer classes (see constants/trainer_constants.asm) - add_pic FalknerPic - add_pic WhitneyPic - add_pic BugsyPic - add_pic MortyPic - add_pic PrycePic - add_pic JasminePic - add_pic ChuckPic - add_pic ClairPic - add_pic Rival1Pic - add_pic PokemonProfPic - add_pic WillPic - add_pic CalPic - add_pic BrunoPic - add_pic KarenPic - add_pic KogaPic - add_pic ChampionPic - add_pic BrockPic - add_pic MistyPic - add_pic LtSurgePic - add_pic ScientistPic - add_pic ErikaPic - add_pic YoungsterPic - add_pic SchoolboyPic - add_pic BirdKeeperPic - add_pic LassPic - add_pic JaninePic - add_pic CooltrainermPic - add_pic CooltrainerfPic - add_pic BeautyPic - add_pic PokemaniacPic - add_pic GruntmPic - add_pic GentlemanPic - add_pic SkierPic - add_pic TeacherPic - add_pic SabrinaPic - add_pic BugCatcherPic - add_pic FisherPic - add_pic SwimmermPic - add_pic SwimmerfPic - add_pic SailorPic - add_pic SuperNerdPic - add_pic Rival2Pic - add_pic GuitaristPic - add_pic HikerPic - add_pic BikerPic - add_pic BlainePic - add_pic BurglarPic - add_pic FirebreatherPic - add_pic JugglerPic - add_pic BlackbeltTPic - add_pic ExecutivemPic - add_pic PsychicTPic - add_pic PicnickerPic - add_pic CamperPic - add_pic ExecutivefPic - add_pic SagePic - add_pic MediumPic - add_pic BoarderPic - add_pic PokefanmPic - add_pic KimonoGirlPic - add_pic TwinsPic - add_pic PokefanfPic - add_pic RedPic - add_pic BluePic - add_pic OfficerPic - add_pic GruntfPic - add_pic MysticalmanPic + dba_pic FalknerPic + dba_pic WhitneyPic + dba_pic BugsyPic + dba_pic MortyPic + dba_pic PrycePic + dba_pic JasminePic + dba_pic ChuckPic + dba_pic ClairPic + dba_pic Rival1Pic + dba_pic PokemonProfPic + dba_pic WillPic + dba_pic CalPic + dba_pic BrunoPic + dba_pic KarenPic + dba_pic KogaPic + dba_pic ChampionPic + dba_pic BrockPic + dba_pic MistyPic + dba_pic LtSurgePic + dba_pic ScientistPic + dba_pic ErikaPic + dba_pic YoungsterPic + dba_pic SchoolboyPic + dba_pic BirdKeeperPic + dba_pic LassPic + dba_pic JaninePic + dba_pic CooltrainermPic + dba_pic CooltrainerfPic + dba_pic BeautyPic + dba_pic PokemaniacPic + dba_pic GruntmPic + dba_pic GentlemanPic + dba_pic SkierPic + dba_pic TeacherPic + dba_pic SabrinaPic + dba_pic BugCatcherPic + dba_pic FisherPic + dba_pic SwimmermPic + dba_pic SwimmerfPic + dba_pic SailorPic + dba_pic SuperNerdPic + dba_pic Rival2Pic + dba_pic GuitaristPic + dba_pic HikerPic + dba_pic BikerPic + dba_pic BlainePic + dba_pic BurglarPic + dba_pic FirebreatherPic + dba_pic JugglerPic + dba_pic BlackbeltTPic + dba_pic ExecutivemPic + dba_pic PsychicTPic + dba_pic PicnickerPic + dba_pic CamperPic + dba_pic ExecutivefPic + dba_pic SagePic + dba_pic MediumPic + dba_pic BoarderPic + dba_pic PokefanmPic + dba_pic KimonoGirlPic + dba_pic TwinsPic + dba_pic PokefanfPic + dba_pic RedPic + dba_pic BluePic + dba_pic OfficerPic + dba_pic GruntfPic + dba_pic MysticalmanPic diff --git a/home.asm b/home.asm index 670f63f95..68d0fe70f 100644 --- a/home.asm +++ b/home.asm @@ -1035,13 +1035,8 @@ IsHM:: ; 34df ret ; 34e7 -IsHMMove:: ; 34e7 - ld hl, HMMoves - ld de, 1 - jp IsInArray - -INCLUDE "data/hm_moves.asm" +INCLUDE "home/hm_moves.asm" GetMoveName:: ; 34f8 diff --git a/data/hm_moves.asm b/home/hm_moves.asm similarity index 62% rename from data/hm_moves.asm rename to home/hm_moves.asm index ac9f1f542..082005186 100644 --- a/data/hm_moves.asm +++ b/home/hm_moves.asm @@ -1,6 +1,11 @@ ; HM moves can't be forgotten -HMMoves: ; 34f0 +IsHMMove:: ; 34e7 + ld hl, .HMMoves + ld de, 1 + jp IsInArray + +.HMMoves: ; 34f0 db CUT db FLY db SURF diff --git a/home/text.asm b/home/text.asm index a70424048..c78a9c0be 100644 --- a/home/text.asm +++ b/home/text.asm @@ -8,9 +8,6 @@ TEXTBOX_INNERX EQU TEXTBOX_X + 1 TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT TEXTBOX_INNERY EQU TEXTBOX_Y + 2 -TEXTBOX_PAL EQU 7 - - ClearBox:: ; fb6 ; Fill a c*b box at hl with blank tiles. @@ -51,7 +48,7 @@ ClearTileMap:: ; fc8 ClearScreen:: ; fdb - ld a, TEXTBOX_PAL + ld a, PAL_BG_TEXT hlcoord 0, 0, AttrMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call ByteFill @@ -133,7 +130,7 @@ TextBoxPalette:: ; 1024 inc b inc c inc c - ld a, TEXTBOX_PAL + ld a, PAL_BG_TEXT .col push bc push hl diff --git a/home/time.asm b/home/time.asm index 338168752..abdd34fe2 100644 --- a/home/time.asm +++ b/home/time.asm @@ -49,19 +49,16 @@ GetClock:: ; 5b7 ld [hl], RTC_S ld a, [de] maskbits 60 - and x ld [hRTCSeconds], a ld [hl], RTC_M ld a, [de] maskbits 60 - and x ld [hRTCMinutes], a ld [hl], RTC_H ld a, [de] maskbits 24 - and x ld [hRTCHours], a ld [hl], RTC_DL diff --git a/macros.asm b/macros.asm index 9b7bdf78c..7bd0d6c4d 100644 --- a/macros.asm +++ b/macros.asm @@ -1,320 +1,25 @@ INCLUDE "macros/enum.asm" -INCLUDE "macros/basestats.asm" -INCLUDE "macros/event.asm" -INCLUDE "macros/sound.asm" -INCLUDE "macros/text.asm" INCLUDE "macros/charmap.asm" -INCLUDE "macros/move_anim.asm" -INCLUDE "macros/movement.asm" -INCLUDE "macros/map.asm" -INCLUDE "macros/pic.asm" INCLUDE "macros/predef.asm" INCLUDE "macros/rst.asm" -INCLUDE "macros/mobile.asm" -INCLUDE "macros/trainer.asm" -INCLUDE "macros/trade_anim.asm" +INCLUDE "macros/data.asm" +INCLUDE "macros/code.asm" +INCLUDE "macros/coords.asm" +INCLUDE "macros/color.asm" +INCLUDE "macros/basestats.asm" INCLUDE "macros/tilesets.asm" -RGB: MACRO -rept _NARG / 3 - dw ((\3) << 10) + ((\2) << 5) + (\1) - shift - shift - shift -endr - ENDM +INCLUDE "macros/scripts/audio.asm" +INCLUDE "macros/scripts/maps.asm" +INCLUDE "macros/scripts/event.asm" +INCLUDE "macros/scripts/text.asm" +INCLUDE "macros/scripts/movement.asm" +INCLUDE "macros/scripts/move_anim.asm" +INCLUDE "macros/scripts/trade_anim.asm" +INCLUDE "macros/scripts/gfx_anim.asm" percent EQUS "* $ff / 100" - -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 - rept _NARG / 2 - db (\1) << 4 + (\2) - 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 - -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 - -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 - -; pic animations -frame: MACRO - db \1 -x = \2 -IF _NARG > 2 -rept _NARG +- 2 -x = x | (1 << (\3 + 1)) - shift -endr -endc - db x - ENDM -setrepeat: MACRO - db $fe - db \1 - ENDM -dorepeat: MACRO - db $fd - db \1 - ENDM -endanim: MACRO - db $ff - ENDM - - -delanim: MACRO - db $fc - ENDM -dorestart: MACRO - db $fe - 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 - tiles EQUS "* $10" -tile EQUS "+ $10 *" - -partymon: MACRO - db \1 - db \2 - db \3, \4, \5, \6 - dw \7 - dt \8 -rept 8 - shift -endr -rept 5 - bigdw \1 - shift -endr - db \1, \2 - db \3, \4, \5, \6 -rept 6 - shift -endr - db \1 - db \2, \3, \4 - db \5 - db \6, \7 -rept 7 - shift -endr -rept 7 - bigdw \1 - shift -endr - db \1 -ENDM - -palettes EQUS "* 8" -palette EQUS "+ 8 *" - -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," - -dbpixel: MACRO -if _NARG >= 4 - db \1 * 8 + \3, \2 * 8 + \4 -else - db \1 * 8, \2 * 8 -endc -endm - -bgcoord: MACRO -IF _NARG >= 4 - ld \1, \3 * $20 + \2 + \4 -ELSE - ld \1, \3 * $20 + \2 + VBGMap0 -ENDC -ENDM - -hlbgcoord EQUS "bgcoord hl," -debgcoord EQUS "bgcoord de," -bcbgcoord EQUS "bgcoord bc," -bgrows EQUS "* $20" - -palred EQUS "$0001 *" -palgreen EQUS "$0020 *" -palblue EQUS "$0400 *" - -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 - -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 - -maskbits: macro -; returns to x -; usage in rejection sampling -; .loop -; call Random -; maskbits 30 -; and x -; cp 30 -; jr nc, .loop - -x = 1 -rept 8 -IF \1 > x -x = (x + 1) * 2 +- 1 -ENDC -endr -endm - -homecall: MACRO - ld a, [hROMBank] - push af - ld a, BANK(\1) - rst Bankswitch - - call \1 - - pop af - rst Bankswitch -ENDM - +tile EQUS "+ $10 *" diff --git a/macros/basestats.asm b/macros/basestats.asm index f3e98b64a..1aa4f39c6 100644 --- a/macros/basestats.asm +++ b/macros/basestats.asm @@ -1,3 +1,5 @@ +; Used in data/base_stats/*.asm + define: macro if !def(\1) \1 equs \2 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/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 similarity index 100% rename from macros/sound.asm rename to macros/scripts/audio.asm diff --git a/macros/event.asm b/macros/scripts/event.asm similarity index 100% rename from macros/event.asm rename to macros/scripts/event.asm diff --git a/macros/scripts/gfx_anim.asm b/macros/scripts/gfx_anim.asm new file mode 100644 index 000000000..e0a56cc23 --- /dev/null +++ b/macros/scripts/gfx_anim.asm @@ -0,0 +1,46 @@ +; pic+sprite 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 + +; used for sprites + enum delanim_command ; fc +delanim: macro + 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 + +; used for sprites + enum dorestart_command ; fe +dorestart: macro + db dorestart_command + endm diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm new file mode 100644 index 000000000..010506544 --- /dev/null +++ b/macros/scripts/maps.asm @@ -0,0 +1,104 @@ +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 + + +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 similarity index 100% rename from macros/move_anim.asm rename to macros/scripts/move_anim.asm diff --git a/macros/movement.asm b/macros/scripts/movement.asm similarity index 100% rename from macros/movement.asm rename to macros/scripts/movement.asm diff --git a/macros/text.asm b/macros/scripts/text.asm similarity index 100% rename from macros/text.asm rename to macros/scripts/text.asm diff --git a/macros/trade_anim.asm b/macros/scripts/trade_anim.asm old mode 100755 new mode 100644 similarity index 100% rename from macros/trade_anim.asm rename to macros/scripts/trade_anim.asm 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/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..c70da2a74 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 @@ -134,14 +135,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 +150,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 +180,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 +195,28 @@ 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 +226,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 +275,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 diff --git a/maps/map_headers.asm b/maps/map_headers.asm index 5145fdda1..3b2607e31 100644 --- a/maps/map_headers.asm +++ b/maps/map_headers.asm @@ -1,3 +1,20 @@ +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 + MapGroupPointers:: ; pointers to the first map header of each map group dw MapGroup_Olivine ; 1 @@ -27,7 +44,6 @@ MapGroupPointers:: dw MapGroup_Saffron ; 25 dw MapGroup_Cherrygrove ; 26 - MapGroup_Olivine: map_header OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE diff --git a/maps/second_map_headers.asm b/maps/second_map_headers.asm index ab35a7f76..f4162226f 100644 --- a/maps/second_map_headers.asm +++ b/maps/second_map_headers.asm @@ -1,3 +1,90 @@ +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 + + map_header_2 NewBarkTown, NEW_BARK_TOWN, $5, WEST | EAST connection west, ROUTE_29, Route29, 0, 0, 9, NEW_BARK_TOWN connection east, ROUTE_27, Route27, 0, 0, 9, NEW_BARK_TOWN diff --git a/sram.asm b/sram.asm index 22b377b3c..5853cd61c 100644 --- a/sram.asm +++ b/sram.asm @@ -130,13 +130,7 @@ sLinkBattleStats:: ; b260 sLinkBattleWins:: ds 2 sLinkBattleLosses:: ds 2 ; b262 sLinkBattleDraws:: ds 2 ; b264 -link_battle_record: MACRO -\1Name:: ds NAME_LENGTH +- 1 -\1ID:: ds 2 -\1Wins:: ds 2 -\1Losses:: ds 2 -\1Draws:: ds 2 -endm + sLinkBattleRecord:: sLinkBattleRecord1:: link_battle_record sLinkBattleRecord1 sLinkBattleRecord2:: link_battle_record sLinkBattleRecord2