mirror of
https://github.com/gb-mobile/pokecrystal-mobile-eng.git
synced 2026-04-26 01:15:18 -05:00
Merge branch 'master' into gb-mobile-merged
This commit is contained in:
commit
a68ad57f61
3
.github/workflows/main.yml
vendored
3
.github/workflows/main.yml
vendored
|
|
@ -69,9 +69,8 @@ jobs:
|
|||
|
||||
- name: Update symbols
|
||||
if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }}
|
||||
uses: EndBug/add-and-commit@v7
|
||||
uses: EndBug/add-and-commit@v9
|
||||
with:
|
||||
branch: symbols
|
||||
cwd: "./symbols"
|
||||
add: "*.sym"
|
||||
message: ${{ github.event.commits[0].message }}
|
||||
|
|
|
|||
2
Makefile
2
Makefile
|
|
@ -324,7 +324,7 @@ gfx/mobile/mobile_adapter.2bpp: tools/gfx += --trim-whitespace
|
|||
tools/gfx $(tools/gfx) -d1 -o $@ $@)
|
||||
|
||||
%.gbcpal: %.png
|
||||
$(RGBGFX) -p $@ $<
|
||||
$(RGBGFX) -c embedded -p $@ $<
|
||||
|
||||
%.dimensions: %.png
|
||||
tools/png_dimensions $< $@
|
||||
|
|
|
|||
12
audio.asm
12
audio.asm
|
|
@ -77,23 +77,32 @@ SECTION "Songs 4", ROMX
|
|||
|
||||
INCLUDE "audio/music/viridiancity.asm"
|
||||
INCLUDE "audio/music/celadoncity.asm"
|
||||
|
||||
INCLUDE "audio/music/wildpokemonvictory.asm"
|
||||
INCLUDE "audio/music/successfulcapture.asm"
|
||||
assert BANK(Music_WildPokemonVictory) == BANK(Music_SuccessfulCapture)
|
||||
|
||||
INCLUDE "audio/music/gymleadervictory.asm"
|
||||
INCLUDE "audio/music/mtmoonsquare.asm"
|
||||
INCLUDE "audio/music/gym.asm"
|
||||
INCLUDE "audio/music/pallettown.asm"
|
||||
INCLUDE "audio/music/profoakspokemontalk.asm"
|
||||
INCLUDE "audio/music/profoak.asm"
|
||||
|
||||
INCLUDE "audio/music/lookrival.asm"
|
||||
INCLUDE "audio/music/aftertherivalfight.asm"
|
||||
assert BANK(Music_LookRival) == BANK(Music_AfterTheRivalFight)
|
||||
|
||||
INCLUDE "audio/music/surf.asm"
|
||||
INCLUDE "audio/music/nationalpark.asm"
|
||||
INCLUDE "audio/music/azaleatown.asm"
|
||||
INCLUDE "audio/music/cherrygrovecity.asm"
|
||||
INCLUDE "audio/music/unioncave.asm"
|
||||
|
||||
INCLUDE "audio/music/johtowildbattle.asm"
|
||||
INCLUDE "audio/music/johtowildbattlenight.asm"
|
||||
assert BANK(Music_JohtoWildBattle) == BANK(Music_JohtoWildBattleNight)
|
||||
|
||||
INCLUDE "audio/music/johtotrainerbattle.asm"
|
||||
INCLUDE "audio/music/lookyoungster.asm"
|
||||
INCLUDE "audio/music/tintower.asm"
|
||||
|
|
@ -106,8 +115,11 @@ INCLUDE "audio/music/pokemonmarch.asm"
|
|||
INCLUDE "audio/music/goldsilveropening.asm"
|
||||
INCLUDE "audio/music/goldsilveropening2.asm"
|
||||
INCLUDE "audio/music/lookhiker.asm"
|
||||
|
||||
INCLUDE "audio/music/lookrocket.asm"
|
||||
INCLUDE "audio/music/rockettheme.asm"
|
||||
assert BANK(Music_LookRocket) == BANK(Music_RocketTheme)
|
||||
|
||||
INCLUDE "audio/music/mainmenu.asm"
|
||||
INCLUDE "audio/music/lookkimonogirl.asm"
|
||||
INCLUDE "audio/music/pokeflutechannel.asm"
|
||||
|
|
|
|||
|
|
@ -1398,9 +1398,9 @@ MusicCommands:
|
|||
dw Music_PitchOffset
|
||||
dw MusicE7 ; unused
|
||||
dw MusicE8 ; unused
|
||||
dw Music_TempoRelative
|
||||
dw Music_TempoRelative ; unused
|
||||
dw Music_RestartChannel
|
||||
dw Music_NewSong
|
||||
dw Music_NewSong ; unused
|
||||
dw Music_SFXPriorityOn
|
||||
dw Music_SFXPriorityOff
|
||||
dw MusicEE ; unused
|
||||
|
|
|
|||
|
|
@ -75,9 +75,9 @@ DEF BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
|
|||
const ANIM_OBJ_FROZEN
|
||||
const ANIM_OBJ_MASTER_BALL_SPARKLE
|
||||
const ANIM_OBJ_RECOVER
|
||||
const ANIM_OBJ_THUNDER1
|
||||
const ANIM_OBJ_THUNDER2
|
||||
const ANIM_OBJ_THUNDER3
|
||||
const ANIM_OBJ_THUNDER_CENTER
|
||||
const ANIM_OBJ_THUNDER_LEFT
|
||||
const ANIM_OBJ_THUNDER_RIGHT
|
||||
const ANIM_OBJ_THUNDER_WAVE
|
||||
const ANIM_OBJ_SPARKS_CIRCLE_BIG
|
||||
const ANIM_OBJ_THUNDERBOLT_BALL
|
||||
|
|
@ -306,191 +306,191 @@ DEF NUM_BATTLEANIMFUNCS EQU const_value
|
|||
|
||||
; BattleAnimFrameData indexes (see data/battle_anims/framesets.asm)
|
||||
const_def
|
||||
const BATTLEANIMFRAMESET_00
|
||||
const BATTLEANIMFRAMESET_01
|
||||
const BATTLEANIMFRAMESET_02
|
||||
const BATTLEANIMFRAMESET_03
|
||||
const BATTLEANIMFRAMESET_04
|
||||
const BATTLEANIMFRAMESET_05
|
||||
const BATTLEANIMFRAMESET_06
|
||||
const BATTLEANIMFRAMESET_07
|
||||
const BATTLEANIMFRAMESET_08
|
||||
const BATTLEANIMFRAMESET_09
|
||||
const BATTLEANIMFRAMESET_0A
|
||||
const BATTLEANIMFRAMESET_0B
|
||||
const BATTLEANIMFRAMESET_0C
|
||||
const BATTLEANIMFRAMESET_0D
|
||||
const BATTLEANIMFRAMESET_0E
|
||||
const BATTLEANIMFRAMESET_0F
|
||||
const BATTLEANIMFRAMESET_10
|
||||
const BATTLEANIMFRAMESET_11
|
||||
const BATTLEANIMFRAMESET_12
|
||||
const BATTLEANIMFRAMESET_13
|
||||
const BATTLEANIMFRAMESET_14
|
||||
const BATTLEANIMFRAMESET_15
|
||||
const BATTLEANIMFRAMESET_16
|
||||
const BATTLEANIMFRAMESET_17
|
||||
const BATTLEANIMFRAMESET_18
|
||||
const BATTLEANIMFRAMESET_19
|
||||
const BATTLEANIMFRAMESET_1A
|
||||
const BATTLEANIMFRAMESET_1B
|
||||
const BATTLEANIMFRAMESET_1C
|
||||
const BATTLEANIMFRAMESET_1D
|
||||
const BATTLEANIMFRAMESET_1E
|
||||
const BATTLEANIMFRAMESET_1F
|
||||
const BATTLEANIMFRAMESET_20
|
||||
const BATTLEANIMFRAMESET_21
|
||||
const BATTLEANIMFRAMESET_22
|
||||
const BATTLEANIMFRAMESET_23
|
||||
const BATTLEANIMFRAMESET_24
|
||||
const BATTLEANIMFRAMESET_25
|
||||
const BATTLEANIMFRAMESET_26
|
||||
const BATTLEANIMFRAMESET_27
|
||||
const BATTLEANIMFRAMESET_28
|
||||
const BATTLEANIMFRAMESET_29
|
||||
const BATTLEANIMFRAMESET_2A
|
||||
const BATTLEANIMFRAMESET_2B
|
||||
const BATTLEANIMFRAMESET_2C
|
||||
const BATTLEANIMFRAMESET_2D
|
||||
const BATTLEANIMFRAMESET_2E
|
||||
const BATTLEANIMFRAMESET_2F
|
||||
const BATTLEANIMFRAMESET_30
|
||||
const BATTLEANIMFRAMESET_31
|
||||
const BATTLEANIMFRAMESET_32
|
||||
const BATTLEANIMFRAMESET_33
|
||||
const BATTLEANIMFRAMESET_34
|
||||
const BATTLEANIMFRAMESET_35
|
||||
const BATTLEANIMFRAMESET_36
|
||||
const BATTLEANIMFRAMESET_37
|
||||
const BATTLEANIMFRAMESET_38
|
||||
const BATTLEANIMFRAMESET_39
|
||||
const BATTLEANIMFRAMESET_3A
|
||||
const BATTLEANIMFRAMESET_3B
|
||||
const BATTLEANIMFRAMESET_3C
|
||||
const BATTLEANIMFRAMESET_3D
|
||||
const BATTLEANIMFRAMESET_3E
|
||||
const BATTLEANIMFRAMESET_3F
|
||||
const BATTLEANIMFRAMESET_40
|
||||
const BATTLEANIMFRAMESET_41
|
||||
const BATTLEANIMFRAMESET_42
|
||||
const BATTLEANIMFRAMESET_43
|
||||
const BATTLEANIMFRAMESET_44
|
||||
const BATTLEANIMFRAMESET_45
|
||||
const BATTLEANIMFRAMESET_46
|
||||
const BATTLEANIMFRAMESET_47
|
||||
const BATTLEANIMFRAMESET_48
|
||||
const BATTLEANIMFRAMESET_49
|
||||
const BATTLEANIMFRAMESET_4A
|
||||
const BATTLEANIMFRAMESET_4B
|
||||
const BATTLEANIMFRAMESET_4C
|
||||
const BATTLEANIMFRAMESET_4D
|
||||
const BATTLEANIMFRAMESET_4E
|
||||
const BATTLEANIMFRAMESET_4F
|
||||
const BATTLEANIMFRAMESET_50
|
||||
const BATTLEANIMFRAMESET_51
|
||||
const BATTLEANIMFRAMESET_52
|
||||
const BATTLEANIMFRAMESET_53
|
||||
const BATTLEANIMFRAMESET_54
|
||||
const BATTLEANIMFRAMESET_55
|
||||
const BATTLEANIMFRAMESET_56
|
||||
const BATTLEANIMFRAMESET_57
|
||||
const BATTLEANIMFRAMESET_58
|
||||
const BATTLEANIMFRAMESET_59
|
||||
const BATTLEANIMFRAMESET_5A
|
||||
const BATTLEANIMFRAMESET_5B
|
||||
const BATTLEANIMFRAMESET_5C
|
||||
const BATTLEANIMFRAMESET_5D
|
||||
const BATTLEANIMFRAMESET_5E
|
||||
const BATTLEANIMFRAMESET_5F
|
||||
const BATTLEANIMFRAMESET_60
|
||||
const BATTLEANIMFRAMESET_61
|
||||
const BATTLEANIMFRAMESET_62
|
||||
const BATTLEANIMFRAMESET_63
|
||||
const BATTLEANIMFRAMESET_64
|
||||
const BATTLEANIMFRAMESET_65
|
||||
const BATTLEANIMFRAMESET_66
|
||||
const BATTLEANIMFRAMESET_67
|
||||
const BATTLEANIMFRAMESET_68
|
||||
const BATTLEANIMFRAMESET_69
|
||||
const BATTLEANIMFRAMESET_6A
|
||||
const BATTLEANIMFRAMESET_6B
|
||||
const BATTLEANIMFRAMESET_6C
|
||||
const BATTLEANIMFRAMESET_6D
|
||||
const BATTLEANIMFRAMESET_6E
|
||||
const BATTLEANIMFRAMESET_6F
|
||||
const BATTLEANIMFRAMESET_70
|
||||
const BATTLEANIMFRAMESET_71
|
||||
const BATTLEANIMFRAMESET_72
|
||||
const BATTLEANIMFRAMESET_73
|
||||
const BATTLEANIMFRAMESET_74
|
||||
const BATTLEANIMFRAMESET_75
|
||||
const BATTLEANIMFRAMESET_76
|
||||
const BATTLEANIMFRAMESET_77
|
||||
const BATTLEANIMFRAMESET_78
|
||||
const BATTLEANIMFRAMESET_79
|
||||
const BATTLEANIMFRAMESET_7A
|
||||
const BATTLEANIMFRAMESET_7B
|
||||
const BATTLEANIMFRAMESET_7C
|
||||
const BATTLEANIMFRAMESET_7D
|
||||
const BATTLEANIMFRAMESET_7E
|
||||
const BATTLEANIMFRAMESET_7F
|
||||
const BATTLEANIMFRAMESET_80
|
||||
const BATTLEANIMFRAMESET_81
|
||||
const BATTLEANIMFRAMESET_82
|
||||
const BATTLEANIMFRAMESET_83
|
||||
const BATTLEANIMFRAMESET_84
|
||||
const BATTLEANIMFRAMESET_85
|
||||
const BATTLEANIMFRAMESET_86
|
||||
const BATTLEANIMFRAMESET_87
|
||||
const BATTLEANIMFRAMESET_88
|
||||
const BATTLEANIMFRAMESET_89
|
||||
const BATTLEANIMFRAMESET_8A
|
||||
const BATTLEANIMFRAMESET_8B
|
||||
const BATTLEANIMFRAMESET_8C
|
||||
const BATTLEANIMFRAMESET_8D
|
||||
const BATTLEANIMFRAMESET_8E
|
||||
const BATTLEANIMFRAMESET_8F
|
||||
const BATTLEANIMFRAMESET_90
|
||||
const BATTLEANIMFRAMESET_91
|
||||
const BATTLEANIMFRAMESET_92
|
||||
const BATTLEANIMFRAMESET_93
|
||||
const BATTLEANIMFRAMESET_94
|
||||
const BATTLEANIMFRAMESET_95
|
||||
const BATTLEANIMFRAMESET_96
|
||||
const BATTLEANIMFRAMESET_97
|
||||
const BATTLEANIMFRAMESET_98
|
||||
const BATTLEANIMFRAMESET_99
|
||||
const BATTLEANIMFRAMESET_9A
|
||||
const BATTLEANIMFRAMESET_9B
|
||||
const BATTLEANIMFRAMESET_9C
|
||||
const BATTLEANIMFRAMESET_9D
|
||||
const BATTLEANIMFRAMESET_9E
|
||||
const BATTLEANIMFRAMESET_9F
|
||||
const BATTLEANIMFRAMESET_A0
|
||||
const BATTLEANIMFRAMESET_A1
|
||||
const BATTLEANIMFRAMESET_A2
|
||||
const BATTLEANIMFRAMESET_A3
|
||||
const BATTLEANIMFRAMESET_A4
|
||||
const BATTLEANIMFRAMESET_A5
|
||||
const BATTLEANIMFRAMESET_A6
|
||||
const BATTLEANIMFRAMESET_A7
|
||||
const BATTLEANIMFRAMESET_A8
|
||||
const BATTLEANIMFRAMESET_A9
|
||||
const BATTLEANIMFRAMESET_AA
|
||||
const BATTLEANIMFRAMESET_AB
|
||||
const BATTLEANIMFRAMESET_AC
|
||||
const BATTLEANIMFRAMESET_AD
|
||||
const BATTLEANIMFRAMESET_AE
|
||||
const BATTLEANIMFRAMESET_AF
|
||||
const BATTLEANIMFRAMESET_B0
|
||||
const BATTLEANIMFRAMESET_B1
|
||||
const BATTLEANIMFRAMESET_B2
|
||||
const BATTLEANIMFRAMESET_B3
|
||||
const BATTLEANIMFRAMESET_B4
|
||||
const BATTLEANIMFRAMESET_B5
|
||||
const BATTLEANIMFRAMESET_B6
|
||||
const BATTLEANIMFRAMESET_B7
|
||||
const BATTLEANIMFRAMESET_B8
|
||||
const BATTLEANIMFRAMESET_HIT_BIG
|
||||
const BATTLEANIMFRAMESET_HIT
|
||||
const BATTLEANIMFRAMESET_HIT_SMALL
|
||||
const BATTLEANIMFRAMESET_PUNCH
|
||||
const BATTLEANIMFRAMESET_KICK
|
||||
const BATTLEANIMFRAMESET_PALM
|
||||
const BATTLEANIMFRAMESET_FANG
|
||||
const BATTLEANIMFRAMESET_PUNCH_SHAKE
|
||||
const BATTLEANIMFRAMESET_BALL_POOF
|
||||
const BATTLEANIMFRAMESET_POKE_BALL_1
|
||||
const BATTLEANIMFRAMESET_POKE_BALL_2
|
||||
const BATTLEANIMFRAMESET_POKE_BALL_3
|
||||
const BATTLEANIMFRAMESET_POKE_BALL_4
|
||||
const BATTLEANIMFRAMESET_POKE_BALL_5
|
||||
const BATTLEANIMFRAMESET_DRAGON_RAGE
|
||||
const BATTLEANIMFRAMESET_FLAMETHROWER
|
||||
const BATTLEANIMFRAMESET_EMBER
|
||||
const BATTLEANIMFRAMESET_BURNED
|
||||
const BATTLEANIMFRAMESET_BLIZZARD
|
||||
const BATTLEANIMFRAMESET_ICE
|
||||
const BATTLEANIMFRAMESET_ICE_BEAM
|
||||
const BATTLEANIMFRAMESET_POWDER_SNOW
|
||||
const BATTLEANIMFRAMESET_RAZOR_LEAF_1
|
||||
const BATTLEANIMFRAMESET_RAZOR_LEAF_2
|
||||
const BATTLEANIMFRAMESET_EXPLOSION
|
||||
const BATTLEANIMFRAMESET_BIG_ROCK
|
||||
const BATTLEANIMFRAMESET_SMALL_ROCK
|
||||
const BATTLEANIMFRAMESET_STRENGTH
|
||||
const BATTLEANIMFRAMESET_SKULL_CROSSBONE
|
||||
const BATTLEANIMFRAMESET_ACID
|
||||
const BATTLEANIMFRAMESET_POISON_DROPLET_UNUSED
|
||||
const BATTLEANIMFRAMESET_SLUDGE_BUBBLE
|
||||
const BATTLEANIMFRAMESET_SLUDGE_BUBBLE_BURST
|
||||
const BATTLEANIMFRAMESET_SMALL_BUBBLE
|
||||
const BATTLEANIMFRAMESET_PULSING_BUBBLE
|
||||
const BATTLEANIMFRAMESET_SURF
|
||||
const BATTLEANIMFRAMESET_MUSIC_NOTE_1
|
||||
const BATTLEANIMFRAMESET_MUSIC_NOTE_2
|
||||
const BATTLEANIMFRAMESET_MUSIC_NOTE_3
|
||||
const BATTLEANIMFRAMESET_WATER_GUN_1
|
||||
const BATTLEANIMFRAMESET_WATER_GUN_2
|
||||
const BATTLEANIMFRAMESET_WATER_GUN_3
|
||||
const BATTLEANIMFRAMESET_HYDRO_PUMP
|
||||
const BATTLEANIMFRAMESET_POWDER
|
||||
const BATTLEANIMFRAMESET_BEAM
|
||||
const BATTLEANIMFRAMESET_BEAM_TIP
|
||||
const BATTLEANIMFRAMESET_ICE_BUILDUP
|
||||
const BATTLEANIMFRAMESET_FROZEN
|
||||
const BATTLEANIMFRAMESET_CIRCLING_SPARKLE
|
||||
const BATTLEANIMFRAMESET_THUNDER_CENTER
|
||||
const BATTLEANIMFRAMESET_THUNDER_LEFT
|
||||
const BATTLEANIMFRAMESET_THUNDER_RIGHT
|
||||
const BATTLEANIMFRAMESET_THUNDER_WAVE_DISABLE
|
||||
const BATTLEANIMFRAMESET_THUNDER_WAVE_EXTRA
|
||||
const BATTLEANIMFRAMESET_THUNDERBOLT_SPARKS
|
||||
const BATTLEANIMFRAMESET_THUNDERBOLT_CORE
|
||||
const BATTLEANIMFRAMESET_THUNDERSHOCK_SPARKS
|
||||
const BATTLEANIMFRAMESET_THUNDERSHOCK_CORE
|
||||
const BATTLEANIMFRAMESET_CLAMP
|
||||
const BATTLEANIMFRAMESET_CLAMP_FLIPPED
|
||||
const BATTLEANIMFRAMESET_BITE_1
|
||||
const BATTLEANIMFRAMESET_BITE_2
|
||||
const BATTLEANIMFRAMESET_CUT_DOWN_LEFT
|
||||
const BATTLEANIMFRAMESET_CUT_DOWN_RIGHT
|
||||
const BATTLEANIMFRAMESET_CUT_UP_RIGHT
|
||||
const BATTLEANIMFRAMESET_CUT_LONG_DOWN_LEFT
|
||||
const BATTLEANIMFRAMESET_CUT_LONG_DOWN_RIGHT
|
||||
const BATTLEANIMFRAMESET_CHARGE_ORB_1
|
||||
const BATTLEANIMFRAMESET_ABSORB_CENTER
|
||||
const BATTLEANIMFRAMESET_GUST
|
||||
const BATTLEANIMFRAMESET_VINE_WHIP_1
|
||||
const BATTLEANIMFRAMESET_VINE_WHIP_2
|
||||
const BATTLEANIMFRAMESET_RAZOR_WIND_1
|
||||
const BATTLEANIMFRAMESET_RAZOR_WIND_2
|
||||
const BATTLEANIMFRAMESET_SONICBOOM_JP
|
||||
const BATTLEANIMFRAMESET_WARP
|
||||
const BATTLEANIMFRAMESET_CHARGE_ORB_2
|
||||
const BATTLEANIMFRAMESET_EGG
|
||||
const BATTLEANIMFRAMESET_EGG_WOBBLE
|
||||
const BATTLEANIMFRAMESET_EGG_CRACKED_TOP
|
||||
const BATTLEANIMFRAMESET_EGG_CRACKED_BOTTOM
|
||||
const BATTLEANIMFRAMESET_FOCUS
|
||||
const BATTLEANIMFRAMESET_BIND_1
|
||||
const BATTLEANIMFRAMESET_BIND_2
|
||||
const BATTLEANIMFRAMESET_BIND_3
|
||||
const BATTLEANIMFRAMESET_BIND_4
|
||||
const BATTLEANIMFRAMESET_LEECH_SEED_1
|
||||
const BATTLEANIMFRAMESET_LEECH_SEED_2
|
||||
const BATTLEANIMFRAMESET_LEECH_SEED_3
|
||||
const BATTLEANIMFRAMESET_SOUND_1
|
||||
const BATTLEANIMFRAMESET_SOUND_2
|
||||
const BATTLEANIMFRAMESET_SOUND_3
|
||||
const BATTLEANIMFRAMESET_WAVE
|
||||
const BATTLEANIMFRAMESET_CONFUSE_RAY_1
|
||||
const BATTLEANIMFRAMESET_CONFUSE_RAY_2
|
||||
const BATTLEANIMFRAMESET_LEER
|
||||
const BATTLEANIMFRAMESET_REFLECT
|
||||
const BATTLEANIMFRAMESET_CHICK_1
|
||||
const BATTLEANIMFRAMESET_CHICK_2
|
||||
const BATTLEANIMFRAMESET_AMNESIA_1
|
||||
const BATTLEANIMFRAMESET_AMNESIA_2
|
||||
const BATTLEANIMFRAMESET_AMNESIA_3
|
||||
const BATTLEANIMFRAMESET_ASLEEP
|
||||
const BATTLEANIMFRAMESET_DIG_SAND
|
||||
const BATTLEANIMFRAMESET_DIG_PILE
|
||||
const BATTLEANIMFRAMESET_SAND
|
||||
const BATTLEANIMFRAMESET_STRING_SHOT_1
|
||||
const BATTLEANIMFRAMESET_STRING_SHOT_2
|
||||
const BATTLEANIMFRAMESET_STRING_SHOT_3
|
||||
const BATTLEANIMFRAMESET_PARALYZED
|
||||
const BATTLEANIMFRAMESET_PARALYZED_FLIPPED
|
||||
const BATTLEANIMFRAMESET_HAZE
|
||||
const BATTLEANIMFRAMESET_MIST
|
||||
const BATTLEANIMFRAMESET_HORN
|
||||
const BATTLEANIMFRAMESET_NEEDLE
|
||||
const BATTLEANIMFRAMESET_FLOWER
|
||||
const BATTLEANIMFRAMESET_BARRAGE_BALL
|
||||
const BATTLEANIMFRAMESET_PAY_DAY
|
||||
const BATTLEANIMFRAMESET_HEART
|
||||
const BATTLEANIMFRAMESET_SPINNING_BONE
|
||||
const BATTLEANIMFRAMESET_STAR
|
||||
const BATTLEANIMFRAMESET_SPOON
|
||||
const BATTLEANIMFRAMESET_SPARKLE
|
||||
const BATTLEANIMFRAMESET_SKY_ATTACK
|
||||
const BATTLEANIMFRAMESET_LICK
|
||||
const BATTLEANIMFRAMESET_WITHDRAW_SHELL
|
||||
const BATTLEANIMFRAMESET_SHRINKING_CHARGE_ORB
|
||||
const BATTLEANIMFRAMESET_CONVERSION
|
||||
const BATTLEANIMFRAMESET_SWORD
|
||||
const BATTLEANIMFRAMESET_SPEED_LINE_1
|
||||
const BATTLEANIMFRAMESET_SPEED_LINE_2
|
||||
const BATTLEANIMFRAMESET_SPEED_LINE_3
|
||||
const BATTLEANIMFRAMESET_SEISMIC_TOSS
|
||||
const BATTLEANIMFRAMESET_SHARPEN
|
||||
const BATTLEANIMFRAMESET_DEFENSE_CURL
|
||||
const BATTLEANIMFRAMESET_METRONOME_HAND
|
||||
const BATTLEANIMFRAMESET_AGILITY
|
||||
const BATTLEANIMFRAMESET_COTTON
|
||||
const BATTLEANIMFRAMESET_MILK_BOTTLE
|
||||
const BATTLEANIMFRAMESET_SPIKE
|
||||
const BATTLEANIMFRAMESET_ANGER_VEIN
|
||||
const BATTLEANIMFRAMESET_HEAL_BELL
|
||||
const BATTLEANIMFRAMESET_BATON_PASS
|
||||
const BATTLEANIMFRAMESET_LOCK_ON_1
|
||||
const BATTLEANIMFRAMESET_LOCK_ON_2
|
||||
const BATTLEANIMFRAMESET_LOCK_ON_3
|
||||
const BATTLEANIMFRAMESET_LOCK_ON_4
|
||||
const BATTLEANIMFRAMESET_MIND_READER_1
|
||||
const BATTLEANIMFRAMESET_MIND_READER_2
|
||||
const BATTLEANIMFRAMESET_MIND_READER_3
|
||||
const BATTLEANIMFRAMESET_MIND_READER_4
|
||||
const BATTLEANIMFRAMESET_SAFEGUARD
|
||||
const BATTLEANIMFRAMESET_MEGAPHONE_UNUSED
|
||||
const BATTLEANIMFRAMESET_ITEM_BAG
|
||||
const BATTLEANIMFRAMESET_SPIDER_WEB
|
||||
const BATTLEANIMFRAMESET_UNUSED_CAKE
|
||||
const BATTLEANIMFRAMESET_IMP
|
||||
const BATTLEANIMFRAMESET_IMP_FLIPPED
|
||||
const BATTLEANIMFRAMESET_CHERUB
|
||||
const BATTLEANIMFRAMESET_PENCIL
|
||||
const BATTLEANIMFRAMESET_ENCORE_HAND
|
||||
const BATTLEANIMFRAMESET_ENCORE_HAND_FLIPPED
|
||||
const BATTLEANIMFRAMESET_DESTINY_BOND
|
||||
const BATTLEANIMFRAMESET_MORNING_SUN
|
||||
const BATTLEANIMFRAMESET_GLIMMER
|
||||
const BATTLEANIMFRAMESET_MOONLIGHT
|
||||
const BATTLEANIMFRAMESET_CROSS_CHOP_1
|
||||
const BATTLEANIMFRAMESET_CROSS_CHOP_2
|
||||
const BATTLEANIMFRAMESET_ZAP_CANNON
|
||||
const BATTLEANIMFRAMESET_CURSE_NAIL
|
||||
const BATTLEANIMFRAMESET_FORESIGHT_SHINE
|
||||
const BATTLEANIMFRAMESET_RAPID_SPIN
|
||||
const BATTLEANIMFRAMESET_SWAGGER
|
||||
const BATTLEANIMFRAMESET_MEAN_LOOK
|
||||
const BATTLEANIMFRAMESET_UPSIDE_DOWN_PUNCH
|
||||
const BATTLEANIMFRAMESET_GROWING_SPARKLE
|
||||
const BATTLEANIMFRAMESET_RAIN
|
||||
const BATTLEANIMFRAMESET_PSYCH_UP
|
||||
const BATTLEANIMFRAMESET_SPIRAL_UNUSED
|
||||
const BATTLEANIMFRAMESET_AEROBLAST
|
||||
const BATTLEANIMFRAMESET_SANDSTORM
|
||||
const BATTLEANIMFRAMESET_ENEMYFEET_1ROW
|
||||
const BATTLEANIMFRAMESET_PLAYERHEAD_1ROW
|
||||
const BATTLEANIMFRAMESET_ENEMYFEET_2ROW
|
||||
const BATTLEANIMFRAMESET_PLAYERHEAD_2ROW
|
||||
DEF NUM_BATTLEANIMFRAMESETS EQU const_value
|
||||
|
||||
; BattleAnimOAMData indexes (see data/battle_anims/oam.asm)
|
||||
|
|
@ -713,6 +713,9 @@ DEF NUM_BATTLEANIMFRAMESETS EQU const_value
|
|||
const BATTLEANIMOAMSET_D7
|
||||
DEF NUM_BATTLEANIMOAMSETS EQU const_value
|
||||
|
||||
assert NUM_BATTLEANIMOAMSETS <= FIRST_OAM_CMD, \
|
||||
"BATTLEANIMOAMSET_* constants overlap oam*_command constants"
|
||||
|
||||
; BattleBGEffects indexes (see engine/battle_anims/bg_effects.asm)
|
||||
const_def 1
|
||||
const ANIM_BG_FLASH_INVERTED
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ DEF SPDSPCDV_SHINY EQU $AA
|
|||
const BATTLETYPE_FISH
|
||||
const BATTLETYPE_ROAMING
|
||||
const BATTLETYPE_CONTEST
|
||||
const BATTLETYPE_SHINY
|
||||
const BATTLETYPE_FORCESHINY
|
||||
const BATTLETYPE_TREE
|
||||
const BATTLETYPE_TRAP
|
||||
const BATTLETYPE_FORCEITEM
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ DEF HONOR_ROLL_DATA_LENGTH EQU (PLAYER_NAME_LENGTH - 1) * HONOR_ROLL_ENTRIES
|
|||
const BATTLETOWERACTION_LOADLEVELGROUP
|
||||
const BATTLETOWERACTION_CHECKSAVEFILEISYOURS
|
||||
const BATTLETOWERACTION_0A
|
||||
const BATTLETOWERACTION_CHECKMOBILEEVENT
|
||||
const BATTLETOWERACTION_GSBALL
|
||||
const BATTLETOWERACTION_0C ; more time stuff in SRAM bank 5
|
||||
const BATTLETOWERACTION_0D ; more time stuff in SRAM bank 5
|
||||
const BATTLETOWERACTION_EGGTICKET
|
||||
|
|
@ -46,8 +46,8 @@ DEF HONOR_ROLL_DATA_LENGTH EQU (PLAYER_NAME_LENGTH - 1) * HONOR_ROLL_ENTRIES
|
|||
const BATTLETOWERACTION_SAVEOPTIONS
|
||||
|
||||
; BattleTowerAction return values
|
||||
; - from BATTLETOWERACTION_CHECKMOBILEEVENT
|
||||
DEF MOBILE_EVENT_OBJECT_GS_BALL EQU $b
|
||||
; - from BATTLETOWERACTION_GSBALL
|
||||
DEF GS_BALL_AVAILABLE EQU $b
|
||||
|
||||
; BattleTowerText arguments (see engine/events/battle_tower/trainer_text.asm)
|
||||
const_def 1
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
const ENGINE_CAUGHT_POKERUS
|
||||
const ENGINE_ROCKET_SIGNAL_ON_CH20
|
||||
const ENGINE_CREDITS_SKIP
|
||||
const ENGINE_MAIN_MENU_MOBILE_CHOICES
|
||||
const ENGINE_MOBILE_SYSTEM ; unused
|
||||
; wStatusFlags2
|
||||
const ENGINE_BUG_CONTEST_TIMER
|
||||
const ENGINE_SAFARI_ZONE
|
||||
|
|
|
|||
|
|
@ -509,7 +509,7 @@
|
|||
const EVENT_MET_BUENA
|
||||
const EVENT_GOT_ODD_EGG
|
||||
const EVENT_33F
|
||||
const EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
|
||||
const EVENT_GOT_GS_BALL_FROM_GOLDENROD_POKEMON_CENTER
|
||||
; Unused: next 167 events
|
||||
|
||||
const_next 1000
|
||||
|
|
|
|||
|
|
@ -59,6 +59,14 @@ DEF MAILBOX_CAPACITY EQU 10
|
|||
DEF MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
|
||||
DEF MAIL_STRUCT_LENGTH_JP EQU $2a ; mailmsg_jp struct
|
||||
|
||||
; mail languages
|
||||
const_def
|
||||
const MAIL_LANG_ENGLISH
|
||||
const MAIL_LANG_FRENCH
|
||||
const MAIL_LANG_GERMAN
|
||||
const MAIL_LANG_ITALIAN
|
||||
const MAIL_LANG_SPANISH
|
||||
|
||||
; held item effects
|
||||
const_def
|
||||
const HELD_NONE
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ DEF RELATIVE_ATTRIBUTES EQU 1 << RELATIVE_ATTRIBUTES_F
|
|||
DEF ABSOLUTE_TILE_ID EQU 1 << ABSOLUTE_TILE_ID_F
|
||||
|
||||
; map_object struct members (see macros/ram.asm)
|
||||
; struct initialized by object_event macro (see macros/scripts/maps.asm)
|
||||
rsreset
|
||||
DEF MAPOBJECT_OBJECT_STRUCT_ID rb ; 0
|
||||
DEF MAPOBJECT_SPRITE rb ; 1
|
||||
|
|
@ -104,10 +105,14 @@ DEF MAPOBJECT_Y_COORD rb ; 2
|
|||
DEF MAPOBJECT_X_COORD rb ; 3
|
||||
DEF MAPOBJECT_MOVEMENT rb ; 4
|
||||
DEF MAPOBJECT_RADIUS rb ; 5
|
||||
DEF MAPOBJECT_HOUR rb ; 6
|
||||
DEF MAPOBJECT_HOUR_1 rb ; 6
|
||||
DEF MAPOBJECT_HOUR_2 rb ; 7
|
||||
rsset MAPOBJECT_HOUR_2
|
||||
DEF MAPOBJECT_TIMEOFDAY rb ; 7
|
||||
DEF MAPOBJECT_COLOR rb ; 8
|
||||
DEF MAPOBJECT_RANGE rb ; 9
|
||||
DEF MAPOBJECT_PALETTE rb ; 8
|
||||
rsset MAPOBJECT_PALETTE
|
||||
DEF MAPOBJECT_TYPE rb ; 8
|
||||
DEF MAPOBJECT_SIGHT_RANGE rb ; 9
|
||||
DEF MAPOBJECT_SCRIPT_POINTER rw ; a
|
||||
DEF MAPOBJECT_EVENT_FLAG rw ; c
|
||||
rb_skip 2
|
||||
|
|
@ -115,6 +120,9 @@ DEF MAPOBJECT_LENGTH EQU _RS
|
|||
DEF NUM_OBJECTS EQU 16
|
||||
DEF PLAYER_OBJECT EQU 0
|
||||
|
||||
DEF MAPOBJECT_PALETTE_MASK EQU %11110000
|
||||
DEF MAPOBJECT_TYPE_MASK EQU %00001111
|
||||
|
||||
; SpriteMovementData struct members (see data/sprites/map_objects.asm)
|
||||
rsreset
|
||||
DEF SPRITEMOVEATTR_MOVEMENT rb ; 0
|
||||
|
|
|
|||
|
|
@ -96,4 +96,4 @@ ENDC
|
|||
|
||||
DEF ZIPCODE_MAX_LENGTH EQU 7
|
||||
DEF ZIPCODE_FRAME_RIGHT_MARGIN EQU 1
|
||||
DEF REGION_NAME_MAX_LENGTH EQU 7
|
||||
DEF REGION_NAME_MAX_LENGTH EQU 7
|
||||
|
|
|
|||
|
|
@ -112,7 +112,8 @@ DEF CALLBACK_SIZE EQU 3 ; callback
|
|||
DEF WARP_EVENT_SIZE EQU 5 ; warp_event
|
||||
DEF COORD_EVENT_SIZE EQU 8 ; coord_event
|
||||
DEF BG_EVENT_SIZE EQU 5 ; bg_event
|
||||
DEF OBJECT_EVENT_SIZE EQU 13 ; object_event
|
||||
; An object_event is a map_object without its initial MAPOBJECT_OBJECT_STRUCT_ID or final padding
|
||||
DEF OBJECT_EVENT_SIZE EQU MAPOBJECT_LENGTH - 3 ; 13
|
||||
|
||||
; A coord_event for scene -1 will always activate,
|
||||
; regardless of the map's scene variable value.
|
||||
|
|
|
|||
|
|
@ -19,8 +19,10 @@ DEF USING_EXTERNAL_CLOCK EQU $01
|
|||
DEF USING_INTERNAL_CLOCK EQU $02
|
||||
DEF CONNECTION_NOT_ESTABLISHED EQU $ff
|
||||
|
||||
; length of a patch list (less than any of the signal bytes)
|
||||
DEF SERIAL_PATCH_LIST_LENGTH EQU $fc
|
||||
; length of a patch list
|
||||
DEF SERIAL_PATCH_LIST_LENGTH EQU 200
|
||||
; size of the patch area (offsets into this area may not have special values)
|
||||
DEF SERIAL_PATCH_DATA_SIZE EQU $fc
|
||||
; signals the start of an array of bytes transferred over the link cable
|
||||
DEF SERIAL_PREAMBLE_BYTE EQU $fd
|
||||
; this byte is used when there is no data to send
|
||||
|
|
@ -30,15 +32,17 @@ DEF SERIAL_PATCH_LIST_PART_TERMINATOR EQU $ff
|
|||
; used to replace SERIAL_NO_DATA_BYTE
|
||||
DEF SERIAL_PATCH_REPLACEMENT_BYTE EQU $ff
|
||||
|
||||
DEF SERIAL_PREAMBLE_LENGTH EQU 6
|
||||
DEF SERIAL_RN_PREAMBLE_LENGTH EQU 7
|
||||
DEF SERIAL_RNS_LENGTH EQU 10
|
||||
DEF SERIAL_PREAMBLE_LENGTH EQU 6
|
||||
DEF SERIAL_RN_PREAMBLE_LENGTH EQU 7
|
||||
DEF SERIAL_PATCH_PREAMBLE_LENGTH EQU 3
|
||||
DEF SERIAL_RNS_LENGTH EQU 10
|
||||
|
||||
DEF SERIAL_MAIL_PREAMBLE_BYTE EQU $20
|
||||
DEF SERIAL_MAIL_REPLACEMENT_BYTE EQU $21
|
||||
DEF SERIAL_MAIL_PREAMBLE_LENGTH EQU 5
|
||||
DEF SERIAL_MAIL_PREAMBLE_BYTE EQU $20
|
||||
DEF SERIAL_MAIL_PREAMBLE_LENGTH EQU 5
|
||||
; used to replace SERIAL_NO_DATA_BYTE
|
||||
DEF SERIAL_MAIL_REPLACEMENT_BYTE EQU $21
|
||||
|
||||
; timeout duration after exchanging a byte
|
||||
DEF SERIAL_LINK_BYTE_TIMEOUT EQU $5000
|
||||
DEF SERIAL_LINK_BYTE_TIMEOUT EQU $5000
|
||||
|
||||
DEF MAX_MYSTERY_GIFT_PARTNERS EQU 5
|
||||
DEF MAX_MYSTERY_GIFT_PARTNERS EQU 5
|
||||
|
|
|
|||
|
|
@ -340,3 +340,6 @@ DEF NUM_SPRITE_ANIM_FRAMESETS EQU const_value
|
|||
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_9 ; 8d
|
||||
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_10 ; 8e
|
||||
DEF NUM_SPRITE_ANIM_OAMSETS EQU const_value
|
||||
|
||||
assert NUM_SPRITE_ANIM_OAMSETS <= FIRST_OAM_CMD, \
|
||||
"SPRITE_ANIM_OAMSET_* constants overlap oam*_command constants"
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ DEF NUM_SPRITEDATA_FIELDS EQU _RS
|
|||
const PAL_OW_GREEN ; 2
|
||||
const PAL_OW_BROWN ; 3
|
||||
const PAL_OW_PINK ; 4
|
||||
const PAL_OW_SILVER ; 5
|
||||
const PAL_OW_EMOTE ; 5
|
||||
const PAL_OW_TREE ; 6
|
||||
const PAL_OW_ROCK ; 7
|
||||
|
||||
|
|
@ -32,6 +32,6 @@ DEF NUM_SPRITEDATA_FIELDS EQU _RS
|
|||
const PAL_NPC_GREEN ; a
|
||||
const PAL_NPC_BROWN ; b
|
||||
const PAL_NPC_PINK ; c
|
||||
const PAL_NPC_SILVER ; d
|
||||
const PAL_NPC_EMOTE ; d
|
||||
const PAL_NPC_TREE ; e
|
||||
const PAL_NPC_ROCK ; f
|
||||
|
|
|
|||
|
|
@ -310,3 +310,11 @@ DEF DAYCAREMAN_ACTIVE_F EQU 7
|
|||
; wDayCareLady::
|
||||
DEF DAYCARELADY_HAS_MON_F EQU 0
|
||||
DEF DAYCARELADY_ACTIVE_F EQU 7
|
||||
|
||||
; wUnlockedUnowns::
|
||||
const_def
|
||||
const UNLOCKED_UNOWNS_A_TO_K_F
|
||||
const UNLOCKED_UNOWNS_L_TO_R_F
|
||||
const UNLOCKED_UNOWNS_S_TO_W_F
|
||||
const UNLOCKED_UNOWNS_X_TO_Z_F
|
||||
DEF NUM_UNLOCKED_UNOWN_SETS EQU const_value
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -20,379 +20,379 @@ BattleAnimObjects:
|
|||
; entries correspond to ANIM_OBJ_* constants
|
||||
table_width BATTLEANIMOBJ_LENGTH, BattleAnimObjects
|
||||
; ANIM_OBJ_HIT_BIG_YFIX
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_HIT_BIG, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_HIT_YFIX
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_HIT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_HIT_SMALL_YFIX
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_HIT_SMALL, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_HIT_BIG
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_HIT_BIG, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_HIT
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_HIT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_HIT_SMALL
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_HIT_SMALL, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_PUNCH
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_PUNCH, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_KICK
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_KICK, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_KICK, BATTLEANIMFUNC_KICK, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_PALM
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_PALM, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_FANG
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_FANG, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_PUNCH_SHAKE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_PUNCH_SHAKE, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_EMBER
|
||||
battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_EMBER, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_EMBER, BATTLEANIMFUNC_EMBER, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_DRAGON_RAGE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_DRAGON_RAGE, BATTLEANIMFUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_FLAMETHROWER
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_FLAMETHROWER, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_FIRE_SPIN
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_EMBER, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_FIRE_BLAST
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_FIRE_BLAST, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_FLAMETHROWER, BATTLEANIMFUNC_FIRE_BLAST, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_BURNED
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_BURNED, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_BLIZZARD
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_BLIZZARD, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
; ANIM_OBJ_ICE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_ICE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
; ANIM_OBJ_ICE_BEAM
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_ICE_BEAM, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
; ANIM_OBJ_RAZOR_LEAF
|
||||
battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, ANIM_GFX_PLANT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_RAZOR_LEAF_1, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, ANIM_GFX_PLANT
|
||||
; ANIM_OBJ_POKE_BALL
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_POKEBALL, PAL_BATTLE_OB_RED, ANIM_GFX_POKE_BALL
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_POKE_BALL_1, BATTLEANIMFUNC_POKEBALL, PAL_BATTLE_OB_RED, ANIM_GFX_POKE_BALL
|
||||
; ANIM_OBJ_POKE_BALL_BLOCKED
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_POKEBALL_BLOCKED, PAL_BATTLE_OB_RED, ANIM_GFX_POKE_BALL
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_POKE_BALL_1, BATTLEANIMFUNC_POKEBALL_BLOCKED, PAL_BATTLE_OB_RED, ANIM_GFX_POKE_BALL
|
||||
; ANIM_OBJ_EXPLOSION1
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_RED, ANIM_GFX_EXPLOSION
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_EXPLOSION, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_RED, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_EXPLOSION2
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_RED, ANIM_GFX_EXPLOSION
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_EXPLOSION, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_RED, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_ACID
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_ACID, BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
|
||||
; ANIM_OBJ_SLUDGE
|
||||
battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_SLUDGE, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
|
||||
battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_SLUDGE_BUBBLE, BATTLEANIMFUNC_SLUDGE, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
|
||||
; ANIM_OBJ_BETA_BALL_POOF
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SMOKE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_BALL_POOF, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SMOKE
|
||||
; ANIM_OBJ_BALL_POOF
|
||||
battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SMOKE
|
||||
battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_BALL_POOF, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SMOKE
|
||||
; ANIM_OBJ_BIG_ROCK
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_DROP, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_BIG_ROCK, BATTLEANIMFUNC_DROP, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
; ANIM_OBJ_SMALL_ROCK
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_DROP, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_SMALL_ROCK, BATTLEANIMFUNC_DROP, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
; ANIM_OBJ_STRENGTH
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_STRENGTH, BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
; ANIM_OBJ_SEISMIC_TOSS
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS, PAL_BATTLE_OB_BLUE, ANIM_GFX_GLOBE
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_SEISMIC_TOSS, BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS, PAL_BATTLE_OB_BLUE, ANIM_GFX_GLOBE
|
||||
; ANIM_OBJ_BUBBLE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_BUBBLE, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_SMALL_BUBBLE, BATTLEANIMFUNC_BUBBLE, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
|
||||
; ANIM_OBJ_SURF
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_SURF, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_SURF, BATTLEANIMFUNC_SURF, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
|
||||
; ANIM_OBJ_SING
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_SING, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_MUSIC_NOTE_1, BATTLEANIMFUNC_SING, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
; ANIM_OBJ_WATER_GUN
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_WATER_GUN, PAL_BATTLE_OB_BLUE, ANIM_GFX_WATER
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_WATER_GUN_1, BATTLEANIMFUNC_WATER_GUN, PAL_BATTLE_OB_BLUE, ANIM_GFX_WATER
|
||||
; ANIM_OBJ_HYDRO_PUMP
|
||||
battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_WATER
|
||||
battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_HYDRO_PUMP, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_WATER
|
||||
; ANIM_OBJ_POWDER
|
||||
battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_POWDER, PAL_BATTLE_OB_GREEN, ANIM_GFX_POWDER
|
||||
battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_POWDER, BATTLEANIMFUNC_POWDER, PAL_BATTLE_OB_GREEN, ANIM_GFX_POWDER
|
||||
; ANIM_OBJ_BEAM
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_BEAM, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
; ANIM_OBJ_BEAM_TIP
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_BEAM_TIP, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
; ANIM_OBJ_ICE_BUILDUP
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_ICE_BUILDUP, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
; ANIM_OBJ_FROZEN
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_FROZEN, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
|
||||
; ANIM_OBJ_MASTER_BALL_SPARKLE
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_RECOVER, PAL_BATTLE_OB_BROWN, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_CIRCLING_SPARKLE, BATTLEANIMFUNC_RECOVER, PAL_BATTLE_OB_BROWN, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_RECOVER
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_RECOVER, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BUBBLE
|
||||
; ANIM_OBJ_THUNDER1
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDER2
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDER3
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_SMALL_BUBBLE, BATTLEANIMFUNC_RECOVER, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BUBBLE
|
||||
; ANIM_OBJ_THUNDER_CENTER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_THUNDER_CENTER, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDER_LEFT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_THUNDER_LEFT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDER_RIGHT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_THUNDER_RIGHT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDER_WAVE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_THUNDER_WAVE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_SPARKS_CIRCLE_BIG
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDERBOLT_BALL
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_SPARKS_CIRCLE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDERSHOCK_BALL
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_THUNDER_WAVE_DISABLE, BATTLEANIMFUNC_THUNDER_WAVE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDERBOLT_SPARKS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_THUNDERBOLT_SPARKS, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDERBOLT_CORE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_THUNDERBOLT_CORE, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_THUNDERSHOCK_SPARKS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_THUNDERSHOCK_SPARKS, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_THUNDERSHOCK_CORE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_THUNDERSHOCK_CORE, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_CLAMP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_CLAMP, BATTLEANIMFUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_BITE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_BITE, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_BITE_1, BATTLEANIMFUNC_BITE, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_CUT_DOWN_LEFT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CUT_DOWN_LEFT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_CUT_DOWN_RIGHT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CUT_DOWN_RIGHT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_CUT_UP_RIGHT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CUT_UP_RIGHT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_CUT_LONG_DOWN_LEFT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CUT_LONG_DOWN_LEFT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_CUT_LONG_DOWN_RIGHT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CUT_LONG_DOWN_RIGHT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_SOLAR_BEAM_CHARGE
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_SOLAR_BEAM, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_CHARGE_ORB_1, BATTLEANIMFUNC_SOLAR_BEAM, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
|
||||
; ANIM_OBJ_ABSORB_CENTER
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_ABSORB_CENTER, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
|
||||
; ANIM_OBJ_GUST
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_GUST, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_GUST, BATTLEANIMFUNC_GUST, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
|
||||
; ANIM_OBJ_VINE_WHIP1
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_VINE_WHIP_1, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_VINE_WHIP2
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_VINE_WHIP_2, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_RAZOR_WIND1
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_RAZOR_WIND_1, BATTLEANIMFUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_RAZOR_WIND2
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_RAZOR_WIND_2, BATTLEANIMFUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_SONICBOOM_JP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_SONICBOOM_JP, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_WARP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_WARP, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_ABSORB
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_ABSORB, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_CHARGE_ORB_2, BATTLEANIMFUNC_ABSORB, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
|
||||
; ANIM_OBJ_EGG
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_EGG, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_EGG, BATTLEANIMFUNC_EGG, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
; ANIM_OBJ_FOCUS
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_MOVE_UP, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_FOCUS, BATTLEANIMFUNC_MOVE_UP, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_BIND1
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_WRAP, PAL_BATTLE_OB_GREEN, ANIM_GFX_ROPE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_BIND_1, BATTLEANIMFUNC_WRAP, PAL_BATTLE_OB_GREEN, ANIM_GFX_ROPE
|
||||
; ANIM_OBJ_BIND2
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_WRAP, PAL_BATTLE_OB_GREEN, ANIM_GFX_ROPE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_BIND_3, BATTLEANIMFUNC_WRAP, PAL_BATTLE_OB_GREEN, ANIM_GFX_ROPE
|
||||
; ANIM_OBJ_LEECH_SEED
|
||||
battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, ANIM_GFX_PLANT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_LEECH_SEED_1, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, ANIM_GFX_PLANT
|
||||
; ANIM_OBJ_SOUND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_SOUND, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_SOUND_1, BATTLEANIMFUNC_SOUND, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
; ANIM_OBJ_WAVE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_PSYCHIC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_WAVE, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_PSYCHIC
|
||||
; ANIM_OBJ_CONFUSE_RAY
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_CONFUSE_RAY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_CONFUSE_RAY_1, BATTLEANIMFUNC_CONFUSE_RAY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_LEER
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_LEER, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
; ANIM_OBJ_LEER_TIP
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_BEAM_TIP, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
|
||||
; ANIM_OBJ_SCREEN
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_REFLECT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_REFLECT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_REFLECT
|
||||
; ANIM_OBJ_HARDEN
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_REFLECT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_REFLECT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_REFLECT
|
||||
; ANIM_OBJ_CHICK
|
||||
battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_DIZZY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_CHICK_1, BATTLEANIMFUNC_DIZZY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_AMNESIA
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_AMNESIA, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AMNESIA_1, BATTLEANIMFUNC_AMNESIA, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_ASLEEP
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_SKULL
|
||||
battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_ASLEEP, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_SKULL_CROSSBONE
|
||||
battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_SKULL_CROSSBONE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
|
||||
; ANIM_OBJ_DIG_SAND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_DIG, PAL_BATTLE_OB_BROWN, ANIM_GFX_SAND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_DIG_SAND, BATTLEANIMFUNC_DIG, PAL_BATTLE_OB_BROWN, ANIM_GFX_SAND
|
||||
; ANIM_OBJ_DIG_PILE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BROWN, ANIM_GFX_SAND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_DIG_PILE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BROWN, ANIM_GFX_SAND
|
||||
; ANIM_OBJ_SAND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_SAND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_SAND, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_SAND
|
||||
; ANIM_OBJ_PARALYZED
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_PARALYZED, PAL_BATTLE_OB_YELLOW, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_PARALYZED, BATTLEANIMFUNC_PARALYZED, PAL_BATTLE_OB_YELLOW, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_STRING_SHOT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_STRING, PAL_BATTLE_OB_GRAY, ANIM_GFX_WEB
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_STRING_SHOT_1, BATTLEANIMFUNC_STRING, PAL_BATTLE_OB_GRAY, ANIM_GFX_WEB
|
||||
; ANIM_OBJ_HAZE
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_HAZE, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
; ANIM_OBJ_MIST
|
||||
battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_MIST, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
; ANIM_OBJ_SMOG
|
||||
battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_HAZE, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
; ANIM_OBJ_POISON_GAS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_HAZE, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
; ANIM_OBJ_HORN
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, ANIM_GFX_HORN
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_HORN, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, ANIM_GFX_HORN
|
||||
; ANIM_OBJ_NEEDLE
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_NEEDLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_HORN
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_NEEDLE, BATTLEANIMFUNC_NEEDLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_HORN
|
||||
; ANIM_OBJ_PETAL_DANCE
|
||||
battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_PETAL_DANCE, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER
|
||||
battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_FLOWER, BATTLEANIMFUNC_PETAL_DANCE, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER
|
||||
; ANIM_OBJ_SLUDGE_BOMB
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_BARRAGE_BALL, BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
; ANIM_OBJ_PAY_DAY
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_THIEF_PAYDAY, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_PAY_DAY, BATTLEANIMFUNC_THIEF_PAYDAY, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_SONICBOOM_JP_UNUSED
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_SONICBOOM_JP, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_MIMIC
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_CIRCLING_SPARKLE, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_ATTRACT
|
||||
battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_HEART, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_BONEMERANG
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_BONEMERANG, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_SPINNING_BONE, BATTLEANIMFUNC_BONEMERANG, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_BONE_CLUB
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_SPINNING_BONE, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_BONE_RUSH
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_SPINNING_BONE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_SWIFT
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_STAR, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_KINESIS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_SPOON, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_FLASH
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_SHINY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_SPARKLE, BATTLEANIMFUNC_SHINY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_SHINY
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_SHINY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_SPARKLE, BATTLEANIMFUNC_SHINY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_SKY_ATTACK
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_SKY_ATTACK, PAL_BATTLE_OB_GRAY, ANIM_GFX_SKY_ATTACK
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_SKY_ATTACK, BATTLEANIMFUNC_SKY_ATTACK, PAL_BATTLE_OB_GRAY, ANIM_GFX_SKY_ATTACK
|
||||
; ANIM_OBJ_LICK
|
||||
battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WATER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_LICK, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WATER
|
||||
; ANIM_OBJ_WITHDRAW
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_REFLECT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_WITHDRAW_SHELL, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_REFLECT
|
||||
; ANIM_OBJ_DRAIN
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_SMALL_BUBBLE, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
|
||||
; ANIM_OBJ_GROWTH
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_CHARGE
|
||||
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_SHRINKING_CHARGE_ORB, BATTLEANIMFUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_CHARGE
|
||||
; ANIM_OBJ_CONVERSION2
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_CONVERSION, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_SMOKE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_HAZE, BATTLEANIMFUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||
; ANIM_OBJ_SMOKESCREEN
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_BARRAGE_BALL, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
; ANIM_OBJ_SWORDS_DANCE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_SWORD, BATTLEANIMFUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
|
||||
; ANIM_OBJ_SPEED_LINE
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_SPEED_LINE, PAL_BATTLE_OB_GRAY, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_SPEED_LINE_1, BATTLEANIMFUNC_SPEED_LINE, PAL_BATTLE_OB_GRAY, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_SHARPEN
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHAPES
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_SHARPEN, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHAPES
|
||||
; ANIM_OBJ_DEFENSE_CURL
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHAPES
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_DEFENSE_CURL, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHAPES
|
||||
; ANIM_OBJ_METRONOME_HAND
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_METRONOME_HAND, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_METRONOME_HAND, BATTLEANIMFUNC_METRONOME_HAND, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_METRONOME_SPARKLE
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_CIRCLING_SPARKLE, BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_DISABLE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_THUNDER_WAVE_DISABLE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_AGILITY
|
||||
battleanimobj RELATIVE_X | X_FLIP | PRIORITY, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_AGILITY, PAL_BATTLE_OB_BLUE, ANIM_GFX_WIND
|
||||
battleanimobj RELATIVE_X | X_FLIP | PRIORITY, $88, BATTLEANIMFRAMESET_AGILITY, BATTLEANIMFUNC_AGILITY, PAL_BATTLE_OB_BLUE, ANIM_GFX_WIND
|
||||
; ANIM_OBJ_HEART
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_HEART, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_FLAME_WHEEL
|
||||
battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_EMBER, BATTLEANIMFUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_SACRED_FIRE
|
||||
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_SACRED_FIRE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_FLAMETHROWER, BATTLEANIMFUNC_SACRED_FIRE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_COTTON_SPORE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_COTTON, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_MILK_DRINK
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_MILK_BOTTLE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_ANGER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_ANGER_VEIN, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_HEAL_BELL
|
||||
battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_HEAL_BELL, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_HEAL_BELL_NOTE
|
||||
battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_HEAL_BELL_NOTES, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_MUSIC_NOTE_1, BATTLEANIMFUNC_HEAL_BELL_NOTES, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
; ANIM_OBJ_BATON_PASS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_BATON_PASS, PAL_BATTLE_OB_RED, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_BATON_PASS, BATTLEANIMFUNC_BATON_PASS, PAL_BATTLE_OB_RED, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_LOCK_ON
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_LOCK_ON_1, BATTLEANIMFUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_MIND_READER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_MIND_READER_1, BATTLEANIMFUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_SAFEGUARD
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_SAFEGUARD, BATTLEANIMFUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_PROTECT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_STAR, BATTLEANIMFUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_THIEF
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_THIEF_PAYDAY, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_ITEM_BAG, BATTLEANIMFUNC_THIEF_PAYDAY, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_OCTAZOOKA
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_BARRAGE_BALL, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
|
||||
; ANIM_OBJ_PRESENT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_ITEM_BAG, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_SPIKES
|
||||
battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_SPIKES, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_SPIKE, BATTLEANIMFUNC_SPIKES, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_POWDER_SNOW
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_GRAY, ANIM_GFX_ICE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_POWDER_SNOW, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_GRAY, ANIM_GFX_ICE
|
||||
; ANIM_OBJ_DRAGONBREATH
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_BURNED, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
|
||||
; ANIM_OBJ_CONVERSION
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_CONVERSION, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_CONVERSION, BATTLEANIMFUNC_CONVERSION, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
|
||||
; ANIM_OBJ_SPIDER_WEB
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WEB
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_SPIDER_WEB, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WEB
|
||||
; ANIM_OBJ_CAKE_UNUSED
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_UNUSED_CAKE, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_NIGHTMARE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_DIZZY, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_IMP, BATTLEANIMFUNC_DIZZY, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
; ANIM_OBJ_IN_NIGHTMARE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_IMP_FLIPPED, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
; ANIM_OBJ_LOVELY_KISS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_IMP, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
; ANIM_OBJ_SWEET_KISS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ANGELS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_CHERUB, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ANGELS
|
||||
; ANIM_OBJ_SKETCH
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_GREEN, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_PENCIL, BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_GREEN, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_ENCORE_HAND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_ENCORE_HAND, BATTLEANIMFUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_ENCORE_STAR
|
||||
battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_STAR, BATTLEANIMFUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_DESTINY_BOND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_DESTINY_BOND, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
; ANIM_OBJ_MORNING_SUN
|
||||
battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SHINE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_MORNING_SUN, BATTLEANIMFUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SHINE
|
||||
; ANIM_OBJ_GLIMMER
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHINE
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_GLIMMER, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHINE
|
||||
; ANIM_OBJ_MOONLIGHT
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SHINE
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_MOONLIGHT, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SHINE
|
||||
; ANIM_OBJ_HIDDEN_POWER
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_HIDDEN_POWER, PAL_BATTLE_OB_RED, ANIM_GFX_CHARGE
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_CHARGE_ORB_1, BATTLEANIMFUNC_HIDDEN_POWER, PAL_BATTLE_OB_RED, ANIM_GFX_CHARGE
|
||||
; ANIM_OBJ_CROSS_CHOP1
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CROSS_CHOP_1, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_CROSS_CHOP2
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_CROSS_CHOP_2, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
|
||||
; ANIM_OBJ_SANDSTORM
|
||||
battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_BROWN, ANIM_GFX_POWDER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_SANDSTORM, BATTLEANIMFUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_BROWN, ANIM_GFX_POWDER
|
||||
; ANIM_OBJ_ZAP_CANNON
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_ZAP_CANNON, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
|
||||
; ANIM_OBJ_SPITE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_POWDER, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_IMP, BATTLEANIMFUNC_POWDER, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
|
||||
; ANIM_OBJ_CURSE
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_CURSE, PAL_BATTLE_OB_GRAY, ANIM_GFX_OBJECTS
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_CURSE_NAIL, BATTLEANIMFUNC_CURSE, PAL_BATTLE_OB_GRAY, ANIM_GFX_OBJECTS
|
||||
; ANIM_OBJ_PERISH_SONG
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_PERISH_SONG, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_MUSIC_NOTE_1, BATTLEANIMFUNC_PERISH_SONG, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
; ANIM_OBJ_FORESIGHT
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHINE
|
||||
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_FORESIGHT_SHINE, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHINE
|
||||
; ANIM_OBJ_RAPID_SPIN
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_RAPID_SPIN, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_RAPID_SPIN, BATTLEANIMFUNC_RAPID_SPIN, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
|
||||
; ANIM_OBJ_SWAGGER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_SWAGGER, BATTLEANIMFUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
|
||||
; ANIM_OBJ_BELLY_DRUM_HAND
|
||||
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_PALM, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_BELLY_DRUM_NOTE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_MUSIC_NOTE_1, BATTLEANIMFUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
|
||||
; ANIM_OBJ_MEAN_LOOK
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_PSYCHIC
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_MEAN_LOOK, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_PSYCHIC
|
||||
; ANIM_OBJ_BETA_PURSUIT
|
||||
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_BETA_PURSUIT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_UPSIDE_DOWN_PUNCH, BATTLEANIMFUNC_BETA_PURSUIT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
|
||||
; ANIM_OBJ_SHOOTING_SPARKLE
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_GROWING_SPARKLE, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
|
||||
; ANIM_OBJ_RAIN
|
||||
battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_GRAY, ANIM_GFX_WATER
|
||||
battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_RAIN, BATTLEANIMFUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_GRAY, ANIM_GFX_WATER
|
||||
; ANIM_OBJ_B0
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_ANIM_OBJ_B0, PAL_BATTLE_OB_RED, ANIM_GFX_HAZE
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_MIST, BATTLEANIMFUNC_ANIM_OBJ_B0, PAL_BATTLE_OB_RED, ANIM_GFX_HAZE
|
||||
; ANIM_OBJ_PSYCH_UP
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_PSYCH_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_PSYCH_UP, BATTLEANIMFUNC_PSYCH_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
|
||||
; ANIM_OBJ_ANCIENTPOWER
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_ANCIENT_POWER, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_BIG_ROCK, BATTLEANIMFUNC_ANCIENT_POWER, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
; ANIM_OBJ_AEROBLAST
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_AEROBLAST
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_AEROBLAST, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_AEROBLAST
|
||||
; ANIM_OBJ_SHADOW_BALL
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_BLUE, ANIM_GFX_EGG
|
||||
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_BARRAGE_BALL, BATTLEANIMFUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_BLUE, ANIM_GFX_EGG
|
||||
; ANIM_OBJ_ROCK_SMASH
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_ROCK_SMASH, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_BIG_ROCK, BATTLEANIMFUNC_ROCK_SMASH, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
|
||||
; ANIM_OBJ_FLOWER
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER
|
||||
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_FLOWER, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER
|
||||
; ANIM_OBJ_COTTON
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_COTTON, PAL_BATTLE_OB_RED, ANIM_GFX_MISC
|
||||
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_COTTON, BATTLEANIMFUNC_COTTON, PAL_BATTLE_OB_RED, ANIM_GFX_MISC
|
||||
; ANIM_OBJ_ENEMYFEET_1ROW
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_ENEMYFEET_1ROW, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
|
||||
; ANIM_OBJ_PLAYERHEAD_1ROW
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_PLAYERHEAD_1ROW, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
|
||||
; ANIM_OBJ_ENEMYFEET_2ROW
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_ENEMYFEET_2ROW, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
|
||||
; ANIM_OBJ_PLAYERHEAD_2ROW
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
|
||||
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_PLAYERHEAD_2ROW, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
|
||||
assert_table_length NUM_ANIM_OBJS
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ Unknown_170470:
|
|||
db $27
|
||||
db $42
|
||||
db $24
|
||||
.end
|
||||
|
||||
Unknown_17047e:
|
||||
db $03, 4
|
||||
|
|
|
|||
|
|
@ -63,10 +63,10 @@ EngineFlags:
|
|||
engine_flag wKantoBadges, EARTHBADGE
|
||||
|
||||
; unown sets (see data/wild/unlocked_unowns.asm)
|
||||
engine_flag wUnlockedUnowns, 0 ; A-K
|
||||
engine_flag wUnlockedUnowns, 1 ; L-R
|
||||
engine_flag wUnlockedUnowns, 2 ; S-W
|
||||
engine_flag wUnlockedUnowns, 3 ; X-Z
|
||||
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_A_TO_K_F
|
||||
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_L_TO_R_F
|
||||
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_S_TO_W_F
|
||||
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_X_TO_Z_F
|
||||
engine_flag wUnlockedUnowns, 4 ; unused
|
||||
engine_flag wUnlockedUnowns, 5 ; unused
|
||||
engine_flag wUnlockedUnowns, 6 ; unused
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ SpecialsPointers::
|
|||
add_special StubbedTrainerRankings_Healings
|
||||
add_special RefreshSprites
|
||||
add_special Function1037c2
|
||||
add_special Mobile_DummyReturnFalse
|
||||
add_special CheckMobileAdapterStatusSpecial
|
||||
add_special Function103780
|
||||
add_special Function10387b
|
||||
add_special AskRememberPassword
|
||||
|
|
|
|||
|
|
@ -31,52 +31,52 @@ MACRO connection
|
|||
|
||||
; Calculate tile offsets for source (current) and target maps
|
||||
DEF _src = 0
|
||||
DEF _tgt = (\4) + 3
|
||||
DEF _tgt = (\4) + MAP_CONNECTION_PADDING_WIDTH
|
||||
if _tgt < 0
|
||||
DEF _src = -_tgt
|
||||
DEF _tgt = 0
|
||||
endc
|
||||
|
||||
if !STRCMP("\1", "north")
|
||||
DEF _blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
|
||||
DEF _blk = \3_WIDTH * (\3_HEIGHT - MAP_CONNECTION_PADDING_WIDTH) + _src
|
||||
DEF _map = _tgt
|
||||
DEF _win = (\3_WIDTH + 6) * \3_HEIGHT + 1
|
||||
DEF _win = (\3_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2) * \3_HEIGHT + 1
|
||||
DEF _y = \3_HEIGHT * 2 - 1
|
||||
DEF _x = (\4) * -2
|
||||
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
|
||||
DEF _len = CURRENT_MAP_WIDTH + MAP_CONNECTION_PADDING_WIDTH - (\4)
|
||||
if _len > \3_WIDTH
|
||||
DEF _len = \3_WIDTH
|
||||
endc
|
||||
|
||||
elif !STRCMP("\1", "south")
|
||||
DEF _blk = _src
|
||||
DEF _map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
|
||||
DEF _win = \3_WIDTH + 7
|
||||
DEF _map = (CURRENT_MAP_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2) * (CURRENT_MAP_HEIGHT + MAP_CONNECTION_PADDING_WIDTH) + _tgt
|
||||
DEF _win = \3_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2 + 1
|
||||
DEF _y = 0
|
||||
DEF _x = (\4) * -2
|
||||
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
|
||||
DEF _len = CURRENT_MAP_WIDTH + MAP_CONNECTION_PADDING_WIDTH - (\4)
|
||||
if _len > \3_WIDTH
|
||||
DEF _len = \3_WIDTH
|
||||
endc
|
||||
|
||||
elif !STRCMP("\1", "west")
|
||||
DEF _blk = (\3_WIDTH * _src) + \3_WIDTH - 3
|
||||
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt
|
||||
DEF _win = (\3_WIDTH + 6) * 2 - 6
|
||||
DEF _blk = (\3_WIDTH * _src) + \3_WIDTH - MAP_CONNECTION_PADDING_WIDTH
|
||||
DEF _map = (CURRENT_MAP_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2) * _tgt
|
||||
DEF _win = (\3_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2) * 2 - MAP_CONNECTION_PADDING_WIDTH * 2
|
||||
DEF _y = (\4) * -2
|
||||
DEF _x = \3_WIDTH * 2 - 1
|
||||
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
|
||||
DEF _len = CURRENT_MAP_HEIGHT + MAP_CONNECTION_PADDING_WIDTH - (\4)
|
||||
if _len > \3_HEIGHT
|
||||
DEF _len = \3_HEIGHT
|
||||
endc
|
||||
|
||||
elif !STRCMP("\1", "east")
|
||||
DEF _blk = (\3_WIDTH * _src)
|
||||
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
|
||||
DEF _win = \3_WIDTH + 7
|
||||
DEF _map = (CURRENT_MAP_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2) * _tgt + CURRENT_MAP_WIDTH + MAP_CONNECTION_PADDING_WIDTH
|
||||
DEF _win = \3_WIDTH + MAP_CONNECTION_PADDING_WIDTH * 2 + 1
|
||||
DEF _y = (\4) * -2
|
||||
DEF _x = 0
|
||||
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
|
||||
DEF _len = CURRENT_MAP_HEIGHT + MAP_CONNECTION_PADDING_WIDTH - (\4)
|
||||
if _len > \3_HEIGHT
|
||||
DEF _len = \3_HEIGHT
|
||||
endc
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
BattleAnimations::
|
||||
; entries correspond to constants/move_constants.asm
|
||||
table_width 2, BattleAnimations
|
||||
dw BattleAnim_0
|
||||
dw BattleAnim_Dummy
|
||||
dw BattleAnim_Pound
|
||||
dw BattleAnim_KarateChop
|
||||
dw BattleAnim_Doubleslap
|
||||
|
|
@ -254,9 +254,9 @@ BattleAnimations::
|
|||
dw BattleAnim_Whirlpool
|
||||
dw BattleAnim_BeatUp
|
||||
assert_table_length NUM_ATTACKS + 1
|
||||
dw BattleAnim_252
|
||||
dw BattleAnim_253
|
||||
dw BattleAnim_254
|
||||
dw BattleAnim_Dummy
|
||||
dw BattleAnim_Dummy
|
||||
dw BattleAnim_Dummy
|
||||
dw BattleAnim_SweetScent2
|
||||
assert_table_length $100
|
||||
; $100
|
||||
|
|
@ -284,10 +284,7 @@ BattleAnimations::
|
|||
dw BattleAnim_HitConfusion
|
||||
assert_table_length NUM_BATTLE_ANIMS + 1
|
||||
|
||||
BattleAnim_0:
|
||||
BattleAnim_252:
|
||||
BattleAnim_253:
|
||||
BattleAnim_254:
|
||||
BattleAnim_Dummy:
|
||||
BattleAnim_MirrorMove:
|
||||
anim_ret
|
||||
|
||||
|
|
@ -1243,7 +1240,7 @@ BattleAnim_Thunderpunch:
|
|||
anim_obj ANIM_OBJ_PUNCH_SHAKE, 136, 56, $43
|
||||
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
|
||||
anim_sound 0, 1, SFX_THUNDER
|
||||
anim_obj ANIM_OBJ_THUNDER3, 152, 68, $0
|
||||
anim_obj ANIM_OBJ_THUNDER_RIGHT, 152, 68, $0
|
||||
anim_wait 64
|
||||
anim_ret
|
||||
|
||||
|
|
@ -1283,13 +1280,13 @@ BattleAnim_Thunder:
|
|||
anim_1gfx ANIM_GFX_LIGHTNING
|
||||
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
|
||||
anim_sound 0, 1, SFX_THUNDER
|
||||
anim_obj ANIM_OBJ_THUNDER2, 120, 68, $0
|
||||
anim_obj ANIM_OBJ_THUNDER_LEFT, 120, 68, $0
|
||||
anim_wait 16
|
||||
anim_sound 0, 1, SFX_THUNDER
|
||||
anim_obj ANIM_OBJ_THUNDER3, 152, 68, $0
|
||||
anim_obj ANIM_OBJ_THUNDER_RIGHT, 152, 68, $0
|
||||
anim_wait 16
|
||||
anim_sound 0, 1, SFX_THUNDER
|
||||
anim_obj ANIM_OBJ_THUNDER1, 136, 68, $0
|
||||
anim_obj ANIM_OBJ_THUNDER_CENTER, 136, 68, $0
|
||||
anim_wait 48
|
||||
anim_ret
|
||||
|
||||
|
|
@ -2648,7 +2645,7 @@ BattleAnim_TriAttack:
|
|||
anim_wait 16
|
||||
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4
|
||||
anim_sound 0, 1, SFX_THUNDER
|
||||
anim_obj ANIM_OBJ_THUNDER3, 152, 68, $0
|
||||
anim_obj ANIM_OBJ_THUNDER_RIGHT, 152, 68, $0
|
||||
anim_wait 16
|
||||
anim_ret
|
||||
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ OverworldSprites:
|
|||
overworld_sprite FamicomSpriteGFX, 4, STILL_SPRITE, PAL_OW_RED
|
||||
overworld_sprite FruitTreeSpriteGFX, 4, STILL_SPRITE, PAL_OW_TREE
|
||||
overworld_sprite GoldTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_BROWN
|
||||
overworld_sprite SilverTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_SILVER
|
||||
overworld_sprite SilverTrophySpriteGFX, 4, STILL_SPRITE, PAL_OW_EMOTE
|
||||
overworld_sprite KrisSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE
|
||||
overworld_sprite KrisBikeSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE
|
||||
overworld_sprite KurtOutsideSpriteGFX, 12, STANDING_SPRITE, PAL_OW_BROWN
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
TypeNames:
|
||||
; entries correspond to types (see constants/type_constants.asm)
|
||||
table_width 2, TypeNames
|
||||
|
||||
dw Normal
|
||||
dw Fighting
|
||||
dw Flying
|
||||
|
|
@ -12,17 +13,13 @@ TypeNames:
|
|||
dw Ghost
|
||||
dw Steel
|
||||
assert_table_length UNUSED_TYPES
|
||||
|
||||
rept UNUSED_TYPES_END - UNUSED_TYPES - 1 ; discount CURSE_TYPE
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
dw Normal
|
||||
endr
|
||||
dw CurseType
|
||||
assert_table_length UNUSED_TYPES_END
|
||||
|
||||
dw Fire
|
||||
dw Water
|
||||
dw Grass
|
||||
|
|
|
|||
|
|
@ -7,12 +7,13 @@ endr
|
|||
ENDM
|
||||
|
||||
UnlockedUnownLetterSets:
|
||||
; entries correspond to wUnlockedUnowns bits
|
||||
dw .Set_A_K ; ENGINE_UNLOCKED_UNOWNS_A_TO_K
|
||||
dw .Set_L_R ; ENGINE_UNLOCKED_UNOWNS_L_TO_R
|
||||
dw .Set_S_W ; ENGINE_UNLOCKED_UNOWNS_S_TO_W
|
||||
dw .Set_X_Z ; ENGINE_UNLOCKED_UNOWNS_X_TO_Z
|
||||
.End
|
||||
; entries correspond to UNLOCKED_UNOWNS_* constants
|
||||
table_width 2, UnlockedUnownLetterSets
|
||||
dw .Set_A_K ; UNLOCKED_UNOWNS_A_TO_K_F
|
||||
dw .Set_L_R ; UNLOCKED_UNOWNS_L_TO_R_F
|
||||
dw .Set_S_W ; UNLOCKED_UNOWNS_S_TO_W_F
|
||||
dw .Set_X_Z ; UNLOCKED_UNOWNS_X_TO_Z_F
|
||||
assert_table_length NUM_UNLOCKED_UNOWN_SETS
|
||||
|
||||
.Set_A_K:
|
||||
unown_set A, B, C, D, E, F, G, H, I, J, K
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ Fixes in the [multi-player battle engine](#multi-player-battle-engine) category
|
|||
- [AI makes a false assumption about `CheckTypeMatchup`](#ai-makes-a-false-assumption-about-checktypematchup)
|
||||
- [AI use of Full Heal or Full Restore does not cure Nightmare status](#ai-use-of-full-heal-or-full-restore-does-not-cure-nightmare-status)
|
||||
- [AI use of Full Heal does not cure confusion status](#ai-use-of-full-heal-does-not-cure-confusion-status)
|
||||
- [AI might use its base reward value as an item](#ai-might-use-its-base-reward-value-as-an-item)
|
||||
- [Wild Pokémon can always Teleport regardless of level difference](#wild-pok%C3%A9mon-can-always-teleport-regardless-of-level-difference)
|
||||
- [`RIVAL2` has lower DVs than `RIVAL1`](#rival2-has-lower-dvs-than-rival1)
|
||||
- [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect)
|
||||
|
|
@ -614,10 +615,15 @@ This bug affects Attract, Curse, Foresight, Mean Look, Mimic, Nightmare, Spider
|
|||
```diff
|
||||
CheckHiddenOpponent:
|
||||
-; BUG: Lock-On and Mind Reader don't always bypass Fly and Dig (see docs/bugs_and_glitches.md)
|
||||
- ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
||||
- call GetBattleVar
|
||||
- and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||
+ xor a
|
||||
+ ld a, BATTLE_VARS_SUBSTATUS5_OPP
|
||||
+ call GetBattleVar
|
||||
+ cpl
|
||||
+ and 1 << SUBSTATUS_LOCK_ON
|
||||
+ ret z
|
||||
+
|
||||
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
||||
call GetBattleVar
|
||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||
ret
|
||||
```
|
||||
|
||||
|
|
@ -1450,6 +1456,33 @@ Pryce's dialog ("That BADGE will raise the SPECIAL stats of POKéMON.") implies
|
|||
ret
|
||||
```
|
||||
|
||||
### AI might use its base reward value as an item
|
||||
|
||||
In the `AI_TryItem` routine, an item pointer is set to `wEnemyTrainerItem1` and then increments to `wEnemyTrainerItem2` to see if either of the AI's items are in the `AI_Items` list. However, if the AI has used its first item (or its first one is `ITEM_NONE`) and hasn't used its second item, the item pointer can increment from `wEnemyTrainerItem2` to `wEnemyTrainerBaseReward`. If the value at this address then matches an item in the `AI_Items` list, the AI could mistakenly use it.
|
||||
|
||||
**Fix:** Edit `AI_TryItem` in [engine/battle/ai/items.asm](https://github.com/pret/pokecrystal/blob/master/engine/battle/ai/items.asm):
|
||||
|
||||
```diff
|
||||
AI_TryItem:
|
||||
...
|
||||
ld a, [wTrainerClass]
|
||||
dec a
|
||||
ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH
|
||||
ld bc, NUM_TRAINER_ATTRIBUTES
|
||||
call AddNTimes
|
||||
ld b, h
|
||||
ld c, l
|
||||
ld hl, AI_Items
|
||||
-; BUG: AI might use its base reward value as an item (see docs/bugs_and_glitches.md)
|
||||
- ld de, wEnemyTrainerItem1
|
||||
.loop
|
||||
+ ld de, wEnemyTrainerItem1
|
||||
ld a, [hl]
|
||||
and a
|
||||
inc a
|
||||
ret z
|
||||
```
|
||||
|
||||
|
||||
### Wild Pokémon can always Teleport regardless of level difference
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ These are parts of the code that do not work *incorrectly*, like [bugs and glitc
|
|||
- [The 6-bit caught level can only record up to level 63](#the-6-bit-caught-level-can-only-record-up-to-level-63)
|
||||
- [Identical sine wave code and data is repeated five times](#identical-sine-wave-code-and-data-is-repeated-five-times)
|
||||
- [`GetForestTreeFrame` works, but it's still bad](#getforesttreeframe-works-but-its-still-bad)
|
||||
- [The overworld scripting engine assumes no more than 127 banks](#the-overworld-scripting-engine-assumes-no-more-than-127-banks)
|
||||
|
||||
|
||||
## Pic banks are offset by `PICS_FIX`
|
||||
|
|
@ -816,3 +817,36 @@ Edit `GetForestTreeFrame`:
|
|||
+ add a
|
||||
ret
|
||||
```
|
||||
|
||||
|
||||
## The overworld scripting engine assumes no more than 127 banks
|
||||
|
||||
The `CallCallback` and `ExitScriptSubroutine` functions in [engine/overworld/scripting.asm](https://github.com/pret/pokecrystal/blob/master/engine/overworld/scripting.asm) use the highest bit of the bank value, to store whether a certain script stack position should be treated as a return from a callback. However, it seems it was opted to explicitly use the `endcallback` command for this purpose, instead.
|
||||
|
||||
As such, this bit serves no purpose but to make map scripts living in the higher banks of mappers such as Japanese Crystal's MBC30 crash for weird reasons.
|
||||
|
||||
**Fix:**
|
||||
|
||||
Remove the bit mask for the bank value in `ExitScriptSubroutine`:
|
||||
|
||||
```diff
|
||||
ExitScriptSubroutine:
|
||||
...
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
- and $7f
|
||||
ld [wScriptBank], a
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
```
|
||||
|
||||
And in `CallCallback`:
|
||||
|
||||
```diff
|
||||
CallCallback::
|
||||
- ld a, [wScriptBank]
|
||||
- or $80
|
||||
- ld [wScriptBank], a
|
||||
jp ScriptCall
|
||||
```
|
||||
|
|
|
|||
|
|
@ -175,6 +175,7 @@ AI_TryItem:
|
|||
ld b, h
|
||||
ld c, l
|
||||
ld hl, AI_Items
|
||||
; BUG: AI might use its base reward value as an item (see docs/bugs_and_glitches.md)
|
||||
ld de, wEnemyTrainerItem1
|
||||
.loop
|
||||
ld a, [hl]
|
||||
|
|
|
|||
|
|
@ -3682,7 +3682,7 @@ TryToRunAwayFromBattle:
|
|||
jp z, .cant_escape
|
||||
cp BATTLETYPE_CELEBI
|
||||
jp z, .cant_escape
|
||||
cp BATTLETYPE_SHINY
|
||||
cp BATTLETYPE_FORCESHINY
|
||||
jp z, .cant_escape
|
||||
cp BATTLETYPE_SUICUNE
|
||||
jp z, .cant_escape
|
||||
|
|
@ -6108,7 +6108,7 @@ LoadEnemyMon:
|
|||
|
||||
; Forced shiny battle type
|
||||
; Used by Red Gyarados at Lake of Rage
|
||||
cp BATTLETYPE_SHINY
|
||||
cp BATTLETYPE_FORCESHINY
|
||||
jr nz, .GenerateDVs
|
||||
|
||||
ld b, ATKDEFDV_SHINY ; $ea
|
||||
|
|
@ -6476,7 +6476,7 @@ CheckUnownLetter:
|
|||
inc e
|
||||
inc e
|
||||
ld a, e
|
||||
cp UnlockedUnownLetterSets.End - UnlockedUnownLetterSets
|
||||
cp NUM_UNLOCKED_UNOWN_SETS * 2
|
||||
jr c, .loop
|
||||
|
||||
; Hasn't been unlocked, or the letter is invalid
|
||||
|
|
@ -8350,7 +8350,7 @@ CheckPayDay:
|
|||
|
||||
ShowLinkBattleParticipantsAfterEnd:
|
||||
farcall StubbedTrainerRankings_LinkBattles
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
ld a, [wCurOTMon]
|
||||
ld hl, wOTPartyMon1Status
|
||||
call GetPartyLocation
|
||||
|
|
@ -8396,7 +8396,7 @@ DisplayLinkBattleResult:
|
|||
.store_result
|
||||
hlcoord 6, 8
|
||||
call PlaceString
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
ld c, 200
|
||||
call DelayFrames
|
||||
|
||||
|
|
|
|||
|
|
@ -4161,14 +4161,14 @@ RaiseStat:
|
|||
add hl, bc
|
||||
ld b, [hl]
|
||||
inc b
|
||||
ld a, $d
|
||||
ld a, MAX_STAT_LEVEL
|
||||
cp b
|
||||
jp c, .cant_raise_stat
|
||||
ld a, [wLoweredStat]
|
||||
and $f0
|
||||
jr z, .got_num_stages
|
||||
inc b
|
||||
ld a, $d
|
||||
ld a, MAX_STAT_LEVEL
|
||||
cp b
|
||||
jr nc, .got_num_stages
|
||||
ld b, a
|
||||
|
|
@ -4176,7 +4176,7 @@ RaiseStat:
|
|||
ld [hl], b
|
||||
push hl
|
||||
ld a, c
|
||||
cp $5
|
||||
cp ACCURACY
|
||||
jr nc, .done_calcing_stats
|
||||
ld hl, wBattleMonStats + 1
|
||||
ld de, wPlayerStats
|
||||
|
|
@ -4684,7 +4684,7 @@ LowerStat:
|
|||
.got_num_stages
|
||||
ld [hl], b
|
||||
ld a, c
|
||||
cp 5
|
||||
cp ACCURACY
|
||||
jr nc, .accuracy_evasion
|
||||
|
||||
push hl
|
||||
|
|
@ -4955,7 +4955,7 @@ SetBattleDraw:
|
|||
|
||||
BattleCommand_ForceSwitch:
|
||||
ld a, [wBattleType]
|
||||
cp BATTLETYPE_SHINY
|
||||
cp BATTLETYPE_FORCESHINY
|
||||
jp z, .fail
|
||||
cp BATTLETYPE_TRAP
|
||||
jp z, .fail
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
BattleCommand_Teleport:
|
||||
ld a, [wBattleType]
|
||||
cp BATTLETYPE_SHINY
|
||||
cp BATTLETYPE_FORCESHINY
|
||||
jr z, .failed
|
||||
cp BATTLETYPE_TRAP
|
||||
jr z, .failed
|
||||
|
|
|
|||
|
|
@ -20,11 +20,11 @@ ShowPlayerMonsRemaining:
|
|||
ld de, wPartyCount
|
||||
call StageBallTilesData
|
||||
; ldpixel wPlaceBallsX, 12, 12
|
||||
ld a, 12 * 8
|
||||
ld a, 12 * TILE_WIDTH
|
||||
ld hl, wPlaceBallsX
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld a, 8
|
||||
ld a, TILE_WIDTH
|
||||
ld [wPlaceBallsDirection], a
|
||||
ld hl, wShadowOAMSprite00
|
||||
jp LoadTrainerHudOAM
|
||||
|
|
@ -36,10 +36,10 @@ ShowOTTrainerMonsRemaining:
|
|||
call StageBallTilesData
|
||||
; ldpixel wPlaceBallsX, 9, 4
|
||||
ld hl, wPlaceBallsX
|
||||
ld a, 9 * 8
|
||||
ld a, 9 * TILE_WIDTH
|
||||
ld [hli], a
|
||||
ld [hl], 4 * 8
|
||||
ld a, -8
|
||||
ld [hl], 4 * TILE_WIDTH
|
||||
ld a, -TILE_WIDTH
|
||||
ld [wPlaceBallsDirection], a
|
||||
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
|
||||
jp LoadTrainerHudOAM
|
||||
|
|
@ -182,10 +182,10 @@ LinkBattle_TrainerHuds:
|
|||
ld de, wPartyCount
|
||||
call StageBallTilesData
|
||||
ld hl, wPlaceBallsX
|
||||
ld a, 10 * 8
|
||||
ld a, 10 * TILE_WIDTH
|
||||
ld [hli], a
|
||||
ld [hl], 8 * 8
|
||||
ld a, 8
|
||||
ld [hl], 8 * TILE_WIDTH
|
||||
ld a, TILE_WIDTH
|
||||
ld [wPlaceBallsDirection], a
|
||||
ld hl, wShadowOAMSprite00
|
||||
call LoadTrainerHudOAM
|
||||
|
|
@ -194,9 +194,9 @@ LinkBattle_TrainerHuds:
|
|||
ld de, wOTPartyCount
|
||||
call StageBallTilesData
|
||||
ld hl, wPlaceBallsX
|
||||
ld a, 10 * 8
|
||||
ld a, 10 * TILE_WIDTH
|
||||
ld [hli], a
|
||||
ld [hl], 13 * 8
|
||||
ld [hl], 13 * TILE_WIDTH
|
||||
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
|
||||
jp LoadTrainerHudOAM
|
||||
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ InitBattleAnimBuffer:
|
|||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, (-10 * 8) + 4
|
||||
ld a, (-10 * TILE_WIDTH) + 4
|
||||
sub d
|
||||
ld [wBattleAnimTempXCoord], a
|
||||
ld a, [hli]
|
||||
|
|
@ -251,7 +251,7 @@ InitBattleAnimBuffer:
|
|||
ld a, [wBattleAnimTempFixY]
|
||||
cp $ff
|
||||
jr nz, .check_kinesis_softboiled_milkdrink
|
||||
ld a, 5 * 8
|
||||
ld a, 5 * TILE_WIDTH
|
||||
add d
|
||||
jr .done
|
||||
|
||||
|
|
@ -270,7 +270,7 @@ InitBattleAnimBuffer:
|
|||
jr nz, .no_sub
|
||||
.do_sub
|
||||
pop af
|
||||
sub 1 * 8
|
||||
sub 1 * TILE_WIDTH
|
||||
jr .done
|
||||
|
||||
.no_sub
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ DoBattleAnimFrame:
|
|||
|
||||
.Jumptable:
|
||||
; entries correspond to BATTLEANIMFUNC_* constants
|
||||
table_width 2, DoBattleAnimFrame.Jumptable
|
||||
dw BattleAnimFunction_Null
|
||||
dw BattleAnimFunction_MoveFromUserToTarget
|
||||
dw BattleAnimFunction_MoveFromUserToTargetAndDisappear
|
||||
|
|
@ -93,6 +94,7 @@ DoBattleAnimFrame:
|
|||
dw BattleAnimFunction_AncientPower
|
||||
dw BattleAnimFunction_RockSmash
|
||||
dw BattleAnimFunction_Cotton
|
||||
assert_table_length NUM_BATTLEANIMFUNCS
|
||||
|
||||
BattleAnimFunction_Null:
|
||||
call BattleAnim_AnonJumptable
|
||||
|
|
@ -301,14 +303,14 @@ BattleAnimFunction_PokeBall:
|
|||
add hl, bc
|
||||
add [hl]
|
||||
ld [hl], a
|
||||
ld a, BATTLEANIMFRAMESET_0B
|
||||
ld a, BATTLEANIMFRAMESET_POKE_BALL_3
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ret
|
||||
|
||||
.three
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_09
|
||||
ld a, BATTLEANIMFRAMESET_POKE_BALL_1
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_VAR1
|
||||
add hl, bc
|
||||
|
|
@ -338,13 +340,13 @@ BattleAnimFunction_PokeBall:
|
|||
sub $4
|
||||
ld [hl], a
|
||||
ret nz
|
||||
ld a, BATTLEANIMFRAMESET_0C
|
||||
ld a, BATTLEANIMFRAMESET_POKE_BALL_4
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ret
|
||||
|
||||
.six
|
||||
ld a, BATTLEANIMFRAMESET_0D
|
||||
ld a, BATTLEANIMFRAMESET_POKE_BALL_5
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_JUMPTABLE_INDEX
|
||||
add hl, bc
|
||||
|
|
@ -356,7 +358,7 @@ BattleAnimFunction_PokeBall:
|
|||
|
||||
.seven
|
||||
call GetBallAnimPal
|
||||
ld a, BATTLEANIMFRAMESET_0A
|
||||
ld a, BATTLEANIMFRAMESET_POKE_BALL_2
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld hl, BATTLEANIMSTRUCT_VAR2
|
||||
|
|
@ -493,7 +495,7 @@ BattleAnimFunction_Ember:
|
|||
|
||||
.three
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_0F
|
||||
ld a, BATTLEANIMFRAMESET_FLAMETHROWER
|
||||
call ReinitBattleAnimFrameset
|
||||
.four
|
||||
ret
|
||||
|
|
@ -731,7 +733,7 @@ BattleAnimFunction_FireBlast:
|
|||
ld [hl], a
|
||||
cp $7
|
||||
jr z, .seven
|
||||
ld a, BATTLEANIMFRAMESET_11
|
||||
ld a, BATTLEANIMFRAMESET_BURNED
|
||||
call ReinitBattleAnimFrameset
|
||||
ret
|
||||
|
||||
|
|
@ -750,7 +752,7 @@ BattleAnimFunction_FireBlast:
|
|||
|
||||
.set_up_eight
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_10
|
||||
ld a, BATTLEANIMFRAMESET_EMBER
|
||||
call ReinitBattleAnimFrameset
|
||||
.eight
|
||||
ld hl, BATTLEANIMSTRUCT_VAR1
|
||||
|
|
@ -839,7 +841,7 @@ BattleAnimFunction_RazorLeaf:
|
|||
add hl, bc
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld a, BATTLEANIMFRAMESET_17
|
||||
ld a, BATTLEANIMFRAMESET_RAZOR_LEAF_2
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
add hl, bc
|
||||
|
|
@ -935,7 +937,7 @@ BattleAnimFunction_RazorLeaf:
|
|||
ret
|
||||
|
||||
.three
|
||||
ld a, BATTLEANIMFRAMESET_16
|
||||
ld a, BATTLEANIMFRAMESET_RAZOR_LEAF_1
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_OAMFLAGS
|
||||
add hl, bc
|
||||
|
|
@ -1012,7 +1014,7 @@ BattleAnimFunction_RockSmash:
|
|||
and $40
|
||||
rlca
|
||||
rlca
|
||||
add BATTLEANIMFRAMESET_19
|
||||
add BATTLEANIMFRAMESET_BIG_ROCK
|
||||
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
|
@ -1091,7 +1093,7 @@ BattleAnimFunction_Bubble:
|
|||
ld hl, BATTLEANIMSTRUCT_VAR1
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
ld a, BATTLEANIMFRAMESET_22
|
||||
ld a, BATTLEANIMFRAMESET_PULSING_BUBBLE
|
||||
call ReinitBattleAnimFrameset
|
||||
.two
|
||||
ld hl, BATTLEANIMSTRUCT_XCOORD
|
||||
|
|
@ -1241,8 +1243,8 @@ BattleAnimFunction_Sing:
|
|||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
add hl, bc
|
||||
ld a, BATTLEANIMFRAMESET_24
|
||||
add [hl] ; BATTLEANIMFRAMESET_25 BATTLEANIMFRAMESET_26
|
||||
ld a, BATTLEANIMFRAMESET_MUSIC_NOTE_1
|
||||
add [hl] ; BATTLEANIMFRAMESET_MUSIC_NOTE_2 BATTLEANIMFRAMESET_MUSIC_NOTE_3
|
||||
call ReinitBattleAnimFrameset
|
||||
|
||||
.one
|
||||
|
|
@ -1299,7 +1301,7 @@ BattleAnimFunction_WaterGun:
|
|||
|
||||
.run_down
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_28
|
||||
ld a, BATTLEANIMFRAMESET_WATER_GUN_2
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_YOFFSET
|
||||
add hl, bc
|
||||
|
|
@ -1323,7 +1325,7 @@ BattleAnimFunction_WaterGun:
|
|||
|
||||
.splash
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_29
|
||||
ld a, BATTLEANIMFRAMESET_WATER_GUN_3
|
||||
call ReinitBattleAnimFrameset
|
||||
.three
|
||||
ret
|
||||
|
|
@ -1441,7 +1443,7 @@ BattleAnimFunction_ThunderWave:
|
|||
|
||||
.one
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_35
|
||||
ld a, BATTLEANIMFRAMESET_THUNDER_WAVE_EXTRA
|
||||
call ReinitBattleAnimFrameset
|
||||
.zero
|
||||
.two
|
||||
|
|
@ -1587,11 +1589,11 @@ BattleAnimFunction_Bite:
|
|||
ld [hl], a
|
||||
bit 7, a
|
||||
jr nz, .flipped2
|
||||
ld a, BATTLEANIMFRAMESET_3D
|
||||
ld a, BATTLEANIMFRAMESET_BITE_2
|
||||
jr .got_frameset
|
||||
|
||||
.flipped2
|
||||
ld a, BATTLEANIMFRAMESET_3C
|
||||
ld a, BATTLEANIMFRAMESET_BITE_1
|
||||
.got_frameset
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_VAR1
|
||||
|
|
@ -1842,8 +1844,8 @@ BattleAnimFunction_Wrap:
|
|||
ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
inc a ; BATTLEANIMFRAMESET_53
|
||||
; BATTLEANIMFRAMESET_55
|
||||
inc a ; BATTLEANIMFRAMESET_BIND_2
|
||||
; BATTLEANIMFRAMESET_BIND_4
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld hl, BATTLEANIMSTRUCT_VAR1 ; Unused?
|
||||
|
|
@ -1878,7 +1880,7 @@ BattleAnimFunction_LeechSeed:
|
|||
|
||||
.sprout
|
||||
ld [hl], $40
|
||||
ld a, BATTLEANIMFRAMESET_57
|
||||
ld a, BATTLEANIMFRAMESET_LEECH_SEED_2
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ret
|
||||
|
|
@ -1894,7 +1896,7 @@ BattleAnimFunction_LeechSeed:
|
|||
|
||||
.flutter
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_58
|
||||
ld a, BATTLEANIMFRAMESET_LEECH_SEED_3
|
||||
call ReinitBattleAnimFrameset
|
||||
.three
|
||||
ret
|
||||
|
|
@ -2195,7 +2197,7 @@ BattleAnimFunction_Egg:
|
|||
|
||||
.seven
|
||||
; Switches Softboiled frameset to egg wobbling
|
||||
ld a, BATTLEANIMFRAMESET_4E ; Egg wobbling
|
||||
ld a, BATTLEANIMFRAMESET_EGG_WOBBLE ; Egg wobbling
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ret
|
||||
|
|
@ -2216,7 +2218,7 @@ BattleAnimFunction_Egg:
|
|||
|
||||
.nine
|
||||
; First Softboiled ANIM_OBJ_EGG turns into the bottom half frameset
|
||||
ld a, BATTLEANIMFRAMESET_50 ; Cracked egg bottom
|
||||
ld a, BATTLEANIMFRAMESET_EGG_CRACKED_BOTTOM ; Cracked egg bottom
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_YOFFSET
|
||||
add hl, bc
|
||||
|
|
@ -2226,7 +2228,7 @@ BattleAnimFunction_Egg:
|
|||
|
||||
.eleven
|
||||
; Second Softboiled ANIM_OBJ_EGG
|
||||
ld a, BATTLEANIMFRAMESET_4F ; Cracked egg top
|
||||
ld a, BATTLEANIMFRAMESET_EGG_CRACKED_TOP ; Cracked egg top
|
||||
call ReinitBattleAnimFrameset
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld hl, BATTLEANIMSTRUCT_VAR1
|
||||
|
|
@ -2317,7 +2319,7 @@ BattleAnimFunction_MoveUp:
|
|||
|
||||
BattleAnimFunction_Sound:
|
||||
; Moves object back and forth in one of three angles using a sine behavior and disappear after 8 frames. Used in Growl, Snore and Kinesis
|
||||
; Obj Param: Used to define object angle. How much to increase from base frameset, which is hardcoded as BATTLEANIMFRAMESET_59
|
||||
; Obj Param: Used to define object angle. How much to increase from base frameset, which is hardcoded as BATTLEANIMFRAMESET_SOUND_1
|
||||
call BattleAnim_AnonJumptable
|
||||
.anon_dw
|
||||
dw .zero
|
||||
|
|
@ -2341,8 +2343,8 @@ BattleAnimFunction_Sound:
|
|||
ld [hl], $8 ; duration
|
||||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
add hl, bc
|
||||
ld a, BATTLEANIMFRAMESET_59
|
||||
add [hl] ; BATTLEANIMFRAMESET_5A BATTLEANIMFRAMESET_5B
|
||||
ld a, BATTLEANIMFRAMESET_SOUND_1
|
||||
add [hl] ; BATTLEANIMFRAMESET_SOUND_2 BATTLEANIMFRAMESET_SOUND_3
|
||||
call ReinitBattleAnimFrameset
|
||||
ret
|
||||
|
||||
|
|
@ -2418,7 +2420,7 @@ BattleAnimFunction_ConfuseRay:
|
|||
and $80
|
||||
rlca
|
||||
ld [hl], a
|
||||
add BATTLEANIMFRAMESET_5D ; BATTLEANIMFRAMESET_5E
|
||||
add BATTLEANIMFRAMESET_CONFUSE_RAY_1 ; BATTLEANIMFRAMESET_CONFUSE_RAY_2
|
||||
call ReinitBattleAnimFrameset
|
||||
ret
|
||||
|
||||
|
|
@ -2541,7 +2543,7 @@ BattleAnimFunction_Dizzy:
|
|||
|
||||
BattleAnimFunction_Amnesia:
|
||||
; Creates 3 objects based on Obj Param
|
||||
; Obj Param: How much to increase from base frameset, which is hardcoded as BATTLEANIMFRAMESET_63
|
||||
; Obj Param: How much to increase from base frameset, which is hardcoded as BATTLEANIMFRAMESET_AMNESIA_1
|
||||
; anim_incobj is used to DeInit object (used by Present)
|
||||
call BattleAnim_AnonJumptable
|
||||
.anon_dw
|
||||
|
|
@ -2554,7 +2556,7 @@ BattleAnimFunction_Amnesia:
|
|||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
add BATTLEANIMFRAMESET_63 ; BATTLEANIMFRAMESET_64 BATTLEANIMFRAMESET_65
|
||||
add BATTLEANIMFRAMESET_AMNESIA_1 ; BATTLEANIMFRAMESET_AMNESIA_2 BATTLEANIMFRAMESET_AMNESIA_3
|
||||
call ReinitBattleAnimFrameset
|
||||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
add hl, bc
|
||||
|
|
@ -2642,7 +2644,7 @@ BattleAnimFunction_String:
|
|||
add hl, bc
|
||||
set OAM_Y_FLIP, [hl]
|
||||
.not_param_zero
|
||||
add BATTLEANIMFRAMESET_6A ; BATTLEANIMFRAMESET_6B BATTLEANIMFRAMESET_6C
|
||||
add BATTLEANIMFRAMESET_STRING_SHOT_1 ; BATTLEANIMFRAMESET_STRING_SHOT_2 BATTLEANIMFRAMESET_STRING_SHOT_3
|
||||
call ReinitBattleAnimFrameset
|
||||
.one
|
||||
ret
|
||||
|
|
@ -2683,7 +2685,7 @@ BattleAnimFunction_Paralyzed:
|
|||
xor $ff
|
||||
inc a
|
||||
ld [hl], a
|
||||
ld a, BATTLEANIMFRAMESET_6E
|
||||
ld a, BATTLEANIMFRAMESET_PARALYZED_FLIPPED
|
||||
call ReinitBattleAnimFrameset
|
||||
ret
|
||||
|
||||
|
|
@ -3539,7 +3541,7 @@ BattleAnimFunction_SpeedLine:
|
|||
add hl, bc
|
||||
ld a, [hl]
|
||||
and $7f
|
||||
add BATTLEANIMFRAMESET_81 ; BATTLEANIMFRAMESET_82 BATTLEANIMFRAMESET_83
|
||||
add BATTLEANIMFRAMESET_SPEED_LINE_1 ; BATTLEANIMFRAMESET_SPEED_LINE_2 BATTLEANIMFRAMESET_SPEED_LINE_3
|
||||
call ReinitBattleAnimFrameset
|
||||
.one
|
||||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
|
|
@ -3558,7 +3560,7 @@ BattleAnimFunction_SpeedLine:
|
|||
ret
|
||||
|
||||
BattleAnimFunction_Sludge:
|
||||
; Object moves upward for $c frames and switches to FRAMESET_20
|
||||
; Object moves upward for $c frames and switches to BATTLEANIMFRAMESET_SLUDGE_BUBBLE_BURST
|
||||
call BattleAnim_AnonJumptable
|
||||
.anon_dw
|
||||
dw .zero
|
||||
|
|
@ -3583,7 +3585,7 @@ BattleAnimFunction_Sludge:
|
|||
|
||||
.done
|
||||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld a, BATTLEANIMFRAMESET_20
|
||||
ld a, BATTLEANIMFRAMESET_SLUDGE_BUBBLE_BURST
|
||||
call ReinitBattleAnimFrameset
|
||||
.two
|
||||
ld hl, BATTLEANIMSTRUCT_YOFFSET
|
||||
|
|
@ -3771,8 +3773,8 @@ BattleAnimFunction_HealBellNotes:
|
|||
call BattleAnim_IncAnonJumptableIndex
|
||||
ld hl, BATTLEANIMSTRUCT_PARAM
|
||||
add hl, bc
|
||||
ld a, BATTLEANIMFRAMESET_24
|
||||
add [hl] ; BATTLEANIMFRAMESET_25 BATTLEANIMFRAMESET_26
|
||||
ld a, BATTLEANIMFRAMESET_MUSIC_NOTE_1
|
||||
add [hl] ; BATTLEANIMFRAMESET_MUSIC_NOTE_2 BATTLEANIMFRAMESET_MUSIC_NOTE_3
|
||||
call ReinitBattleAnimFrameset
|
||||
.one
|
||||
ld hl, BATTLEANIMSTRUCT_YOFFSET
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ Function170139:
|
|||
; easy chat messages
|
||||
ld a, BANK(sEZChatBeginBattleMessage)
|
||||
call OpenSRAM
|
||||
ld hl, sEZChatBeginBattleMessage
|
||||
ld hl, sEZChatBattleMessages
|
||||
ld bc, EASY_CHAT_MESSAGE_LENGTH * 3
|
||||
call CopyBytes
|
||||
call CloseSRAM
|
||||
|
|
@ -249,7 +249,7 @@ RunBattleTowerTrainer:
|
|||
jr nz, .lost
|
||||
|
||||
farcall StubbedTrainerRankings_BattleTowerWins
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
|
||||
ld a, BANK(sNrOfBeatenBattleTowerTrainers)
|
||||
call OpenSRAM
|
||||
|
|
@ -513,7 +513,7 @@ Function17042c:
|
|||
ld a, [hli]
|
||||
and a
|
||||
jr z, .empty
|
||||
cp 15
|
||||
cp (Unknown_170470.end - Unknown_170470) + 1
|
||||
jr nc, .copy_data
|
||||
|
||||
push hl
|
||||
|
|
@ -526,7 +526,7 @@ Function17042c:
|
|||
pop hl
|
||||
|
||||
; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
|
||||
; with Unknown17047e, and exit the inner loop.
|
||||
; with Unknown_17047e, and exit the inner loop.
|
||||
cp b
|
||||
jr c, .copy_data
|
||||
jr z, .copy_data
|
||||
|
|
@ -534,9 +534,9 @@ Function17042c:
|
|||
|
||||
.empty
|
||||
; If a == 0 and b >= $fc, overwrite the current trainer's data with
|
||||
; Unknown17047e, and exit the inner loop.
|
||||
; Unknown_17047e, and exit the inner loop.
|
||||
ld a, b
|
||||
cp $fc
|
||||
cp NUM_POKEMON + 1
|
||||
jr nc, .copy_data
|
||||
|
||||
.next_iteration
|
||||
|
|
@ -901,7 +901,7 @@ BattleTowerAction:
|
|||
dw LoadBattleTowerLevelGroup
|
||||
dw BattleTower_CheckSaveFileExistsAndIsYours
|
||||
dw BattleTowerAction_0A
|
||||
dw CheckMobileEventIndex
|
||||
dw BattleTowerAction_GSBall
|
||||
dw BattleTowerAction_0C
|
||||
dw BattleTowerAction_0D
|
||||
dw BattleTowerAction_EggTicket
|
||||
|
|
@ -1212,10 +1212,10 @@ BattleTowerAction_0A:
|
|||
call MaxVolume
|
||||
ret
|
||||
|
||||
CheckMobileEventIndex: ; something to do with GS Ball
|
||||
ld a, BANK(sMobileEventIndex)
|
||||
BattleTowerAction_GSBall:
|
||||
ld a, BANK(sGSBallFlag)
|
||||
call OpenSRAM
|
||||
ld a, [sMobileEventIndex]
|
||||
ld a, [sGSBallFlag]
|
||||
ld [wScriptVar], a
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ if DEF(_CRYSTAL11)
|
|||
maskbits BATTLETOWER_NUM_UNIQUE_TRAINERS
|
||||
cp BATTLETOWER_NUM_UNIQUE_TRAINERS
|
||||
else
|
||||
; Crystal 1.0 used the wrong constant here, so only the first 21
|
||||
; trainers in BattleTowerTrainers can be sampled.
|
||||
; BUG: Crystal 1.0 used the wrong constant here, so only the first
|
||||
; 21 trainers in BattleTowerTrainers can be sampled.
|
||||
maskbits BATTLETOWER_NUM_UNIQUE_MON
|
||||
cp BATTLETOWER_NUM_UNIQUE_MON
|
||||
endc
|
||||
|
|
|
|||
|
|
@ -10,10 +10,9 @@ BattleTowerText::
|
|||
;if DEF(_CRYSTAL11)
|
||||
; ld hl, wBT_OTTrainerClass
|
||||
;else
|
||||
; BUG ALERT
|
||||
; Instead of loading the Trainer Class, this routine
|
||||
; loads the 6th character in the Trainer's name, then
|
||||
; uses it to get the gender of the trainer.
|
||||
; BUG: Instead of loading the trainer class,
|
||||
; Crystal 1.0 loads the 6th character in the trainer's
|
||||
; name, then uses it to get the trainer's gender.
|
||||
; As a consequence, the enemy trainer's dialog will
|
||||
; always be sampled from the female array.
|
||||
; ld hl, wBT_OTName + NAME_LENGTH_JAPANESE - 1
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ FlyToAnim:
|
|||
ld [hl], SPRITE_ANIM_SEQ_FLY_TO
|
||||
ld hl, SPRITEANIMSTRUCT_VAR4
|
||||
add hl, bc
|
||||
ld [hl], 11 * 8
|
||||
ld [hl], 11 * TILE_WIDTH
|
||||
ld a, 64
|
||||
ld [wFrameCounter], a
|
||||
.loop
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ _UnownPrinter:
|
|||
ldh a, [hJoyPressed]
|
||||
vc_patch Forbid_printing_Unown
|
||||
if DEF(_CRYSTAL11_VC)
|
||||
and 0
|
||||
and NO_INPUT
|
||||
else
|
||||
and A_BUTTON
|
||||
endc
|
||||
|
|
|
|||
|
|
@ -681,7 +681,7 @@ Slots_InitReelTiles:
|
|||
ld [hl], d
|
||||
ld hl, REEL_X_COORD
|
||||
add hl, bc
|
||||
ld [hl], 6 * 8
|
||||
ld [hl], 6 * TILE_WIDTH
|
||||
call .OAM
|
||||
|
||||
ld bc, wReel2
|
||||
|
|
@ -699,7 +699,7 @@ Slots_InitReelTiles:
|
|||
ld [hl], d
|
||||
ld hl, REEL_X_COORD
|
||||
add hl, bc
|
||||
ld [hl], 10 * 8
|
||||
ld [hl], 10 * TILE_WIDTH
|
||||
call .OAM
|
||||
|
||||
ld bc, wReel3
|
||||
|
|
@ -717,7 +717,7 @@ Slots_InitReelTiles:
|
|||
ld [hl], d
|
||||
ld hl, REEL_X_COORD
|
||||
add hl, bc
|
||||
ld [hl], 14 * 8
|
||||
ld [hl], 14 * TILE_WIDTH
|
||||
call .OAM
|
||||
ret
|
||||
|
||||
|
|
@ -785,7 +785,7 @@ Slots_UpdateReelPositionAndOAM:
|
|||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wCurReelXCoord], a
|
||||
ld a, 10 * 8
|
||||
ld a, 10 * TILE_WIDTH
|
||||
ld [wCurReelYCoord], a
|
||||
ld hl, REEL_POSITION
|
||||
add hl, bc
|
||||
|
|
@ -2019,7 +2019,7 @@ Slots_AnimateGolem:
|
|||
jr c, .play_sound
|
||||
dec [hl]
|
||||
ld e, a
|
||||
ld d, 14 * 8
|
||||
ld d, 14 * TILE_WIDTH
|
||||
farcall BattleAnim_Sine_e
|
||||
ld a, e
|
||||
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
||||
|
|
@ -2046,7 +2046,7 @@ Slots_AnimateGolem:
|
|||
ld a, [hl]
|
||||
inc [hl]
|
||||
inc [hl]
|
||||
cp 9 * 8
|
||||
cp 9 * TILE_WIDTH
|
||||
jr nc, .restart
|
||||
and $3
|
||||
ret nz
|
||||
|
|
@ -2090,7 +2090,7 @@ Slots_AnimateChansey:
|
|||
add hl, bc
|
||||
ld a, [hl]
|
||||
inc [hl]
|
||||
cp 13 * 8
|
||||
cp 13 * TILE_WIDTH
|
||||
jr z, .limit
|
||||
and $f
|
||||
ret nz
|
||||
|
|
|
|||
|
|
@ -882,7 +882,7 @@ InitCGBPals::
|
|||
ldh [rVBK], a
|
||||
ld a, 1 << rBGPI_AUTO_INCREMENT
|
||||
ldh [rBGPI], a
|
||||
ld c, 4 * 8
|
||||
ld c, 4 * TILE_WIDTH
|
||||
.bgpals_loop
|
||||
ld a, LOW(PALRGB_WHITE)
|
||||
ldh [rBGPD], a
|
||||
|
|
@ -892,7 +892,7 @@ InitCGBPals::
|
|||
jr nz, .bgpals_loop
|
||||
ld a, 1 << rOBPI_AUTO_INCREMENT
|
||||
ldh [rOBPI], a
|
||||
ld c, 4 * 8
|
||||
ld c, 4 * TILE_WIDTH
|
||||
.obpals_loop
|
||||
ld a, LOW(PALRGB_WHITE)
|
||||
ldh [rOBPD], a
|
||||
|
|
|
|||
|
|
@ -88,11 +88,11 @@ Mobile_InitAnimatedMonIcon:
|
|||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld a, 6 * 8
|
||||
ld a, 6 * TILE_WIDTH
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, 16 * 8
|
||||
ld a, 16 * TILE_WIDTH
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
|
|
@ -105,11 +105,11 @@ Mobile_InitPartyMenuBGPal71:
|
|||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld a, 3 * 8
|
||||
ld a, 3 * TILE_WIDTH
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, 9 * 8
|
||||
ld a, 9 * TILE_WIDTH
|
||||
ld [hl], a
|
||||
ld a, c
|
||||
ld [wc608], a
|
||||
|
|
@ -234,8 +234,8 @@ MoveList_InitAnimatedMonIcon:
|
|||
ld [wCurIcon], a
|
||||
xor a
|
||||
call GetIconGFX
|
||||
ld d, 3 * 8 + 2 ; depixel 3, 4, 2, 4
|
||||
ld e, 4 * 8 + 4
|
||||
ld d, 3 * TILE_WIDTH + 2 ; depixel 3, 4, 2, 4
|
||||
ld e, 4 * TILE_WIDTH + 4
|
||||
ld a, SPRITE_ANIM_INDEX_PARTY_MON
|
||||
call _InitSpriteAnimStruct
|
||||
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
|
||||
|
|
|
|||
|
|
@ -380,7 +380,7 @@ AnimSeq_SlotsChanseyEgg:
|
|||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp 15 * 8
|
||||
cp 15 * TILE_WIDTH
|
||||
jr c, .move_right
|
||||
call DeinitializeSprite
|
||||
ld a, $4
|
||||
|
|
@ -682,7 +682,7 @@ AnimSeq_FlyLeaf:
|
|||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp -9 * 8
|
||||
cp -9 * TILE_WIDTH
|
||||
jr nc, .delete_leaf
|
||||
inc [hl]
|
||||
inc [hl]
|
||||
|
|
@ -711,7 +711,7 @@ AnimSeq_FlyTo:
|
|||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp 10 * 8 + 4
|
||||
cp 10 * TILE_WIDTH + 4
|
||||
ret z
|
||||
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ endc
|
|||
|
||||
ld hl, wLinkData
|
||||
ld de, wOTPartyData
|
||||
ld bc, SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + 1 + PARTY_LENGTH + 1 + (REDMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + 3
|
||||
ld bc, SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + (1 + PARTY_LENGTH + 1) + (REDMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + 3
|
||||
vc_hook Wireless_ExchangeBytes_Gen2toGen1_party_structs
|
||||
call Serial_ExchangeBytes
|
||||
ld a, SERIAL_NO_DATA_BYTE
|
||||
|
|
@ -98,7 +98,7 @@ endc
|
|||
|
||||
ld hl, wPlayerPatchLists
|
||||
ld de, wOTPatchLists
|
||||
ld bc, 200
|
||||
ld bc, SERIAL_PATCH_LIST_LENGTH
|
||||
vc_hook Wireless_ExchangeBytes_Gen2toGen1_patch_lists
|
||||
call Serial_ExchangeBytes
|
||||
|
||||
|
|
@ -122,11 +122,11 @@ endc
|
|||
jp nc, ExitLinkCommunications
|
||||
|
||||
ld de, wLinkData
|
||||
ld bc, NAME_LENGTH + 1 + PARTY_LENGTH + 1 + (REDMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + 3
|
||||
ld bc, NAME_LENGTH + (1 + PARTY_LENGTH + 1) + (REDMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + 3
|
||||
call Link_CopyOTData
|
||||
|
||||
ld de, wOTPatchLists
|
||||
ld hl, wLinkPatchList1
|
||||
ld hl, wTimeCapsulePlayerData
|
||||
ld c, 2
|
||||
.loop
|
||||
ld a, [de]
|
||||
|
|
@ -152,11 +152,11 @@ endc
|
|||
jr .loop
|
||||
|
||||
.next
|
||||
ld hl, wLinkPatchList2
|
||||
ld hl, wTimeCapsulePlayerData + SERIAL_PATCH_DATA_SIZE
|
||||
dec c
|
||||
jr nz, .loop
|
||||
|
||||
ld hl, wLinkPlayerName
|
||||
ld hl, wLinkData
|
||||
ld de, wOTPlayerName
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyBytes
|
||||
|
|
@ -247,7 +247,7 @@ endc
|
|||
ldh [rIE], a
|
||||
|
||||
ld hl, wLinkBattleRNPreamble
|
||||
ld de, wEnemyMon
|
||||
ld de, wOTLinkBattleRNData
|
||||
ld bc, SERIAL_RN_PREAMBLE_LENGTH + SERIAL_RNS_LENGTH
|
||||
vc_hook Wireless_ExchangeBytes_RNG_state
|
||||
call Serial_ExchangeBytes
|
||||
|
|
@ -256,7 +256,7 @@ endc
|
|||
|
||||
ld hl, wLinkData
|
||||
ld de, wOTPartyData
|
||||
ld bc, SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + 1 + PARTY_LENGTH + 1 + 2 + (PARTYMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + 3
|
||||
ld bc, SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + (1 + PARTY_LENGTH + 1) + 2 + (PARTYMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH + 3
|
||||
vc_hook Wireless_ExchangeBytes_party_structs
|
||||
call Serial_ExchangeBytes
|
||||
ld a, SERIAL_NO_DATA_BYTE
|
||||
|
|
@ -264,7 +264,7 @@ endc
|
|||
|
||||
ld hl, wPlayerPatchLists
|
||||
ld de, wOTPatchLists
|
||||
ld bc, 200
|
||||
ld bc, SERIAL_PATCH_LIST_LENGTH
|
||||
vc_hook Wireless_ExchangeBytes_patch_lists
|
||||
call Serial_ExchangeBytes
|
||||
|
||||
|
|
@ -276,8 +276,8 @@ endc
|
|||
ld bc, wLinkPlayerMailEnd - wLinkPlayerMail
|
||||
vc_hook Wireless_ExchangeBytes_mail
|
||||
call ExchangeBytes
|
||||
|
||||
.not_trading
|
||||
|
||||
xor a
|
||||
ldh [rIF], a
|
||||
ld a, (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
|
||||
|
|
@ -293,8 +293,8 @@ endc
|
|||
ld bc, NAME_LENGTH + 1 + PARTY_LENGTH + 1 + 2 + (PARTYMON_STRUCT_LENGTH + NAME_LENGTH * 2) * PARTY_LENGTH
|
||||
call Link_CopyOTData
|
||||
|
||||
ld de, wPlayerTrademon
|
||||
ld hl, wLinkPatchList1
|
||||
ld de, wOTPatchLists
|
||||
ld hl, wLinkPlayerData
|
||||
ld c, 2
|
||||
.loop1
|
||||
ld a, [de]
|
||||
|
|
@ -320,7 +320,7 @@ endc
|
|||
jr .loop1
|
||||
|
||||
.next1
|
||||
ld hl, wLinkPatchList2
|
||||
ld hl, wLinkPlayerData + SERIAL_PATCH_DATA_SIZE
|
||||
dec c
|
||||
jr nz, .loop1
|
||||
|
||||
|
|
@ -339,10 +339,14 @@ endc
|
|||
cp SERIAL_MAIL_PREAMBLE_BYTE
|
||||
jr z, .loop3
|
||||
dec hl
|
||||
|
||||
ld de, wLinkOTMail
|
||||
ld bc, wLinkDataEnd - wLinkOTMail ; should be wLinkOTMailEnd - wLinkOTMail
|
||||
call CopyBytes
|
||||
ld hl, wLinkOTMail
|
||||
|
||||
; Replace SERIAL_MAIL_REPLACEMENT_BYTE with SERIAL_NO_DATA_BYTE across all mail
|
||||
; message bodies.
|
||||
ld hl, wLinkOTMailMessages
|
||||
ld bc, (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
|
||||
.loop4
|
||||
ld a, [hl]
|
||||
|
|
@ -355,7 +359,8 @@ endc
|
|||
ld a, b
|
||||
or c
|
||||
jr nz, .loop4
|
||||
ld de, wOTPlayerMailPatchSet
|
||||
|
||||
ld de, wLinkOTMailPatchSet
|
||||
.loop5
|
||||
ld a, [de]
|
||||
inc de
|
||||
|
|
@ -406,7 +411,7 @@ endc
|
|||
.fix_mail_loop
|
||||
push bc
|
||||
push de
|
||||
farcall IsMailEuropean
|
||||
farcall ParseMailLanguage
|
||||
ld a, c
|
||||
or a
|
||||
jr z, .next
|
||||
|
|
@ -434,7 +439,7 @@ endc
|
|||
ld [de], a
|
||||
|
||||
.skip_mail
|
||||
ld hl, wLinkPlayerName
|
||||
ld hl, wLinkData
|
||||
ld de, wOTPlayerName
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyBytes
|
||||
|
|
@ -615,6 +620,7 @@ FixDataForLinkTransfer:
|
|||
dec b
|
||||
jr nz, .preamble_loop
|
||||
|
||||
; Initialize random seed, making sure special bytes are omitted
|
||||
assert wLinkBattleRNPreamble + SERIAL_RN_PREAMBLE_LENGTH == wLinkBattleRNs
|
||||
ld b, SERIAL_RNS_LENGTH
|
||||
.rn_loop
|
||||
|
|
@ -625,60 +631,66 @@ FixDataForLinkTransfer:
|
|||
dec b
|
||||
jr nz, .rn_loop
|
||||
|
||||
; Clear the patch list
|
||||
ld hl, wPlayerPatchLists
|
||||
ld a, SERIAL_PREAMBLE_BYTE
|
||||
rept SERIAL_PATCH_PREAMBLE_LENGTH
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
|
||||
ld b, 200
|
||||
endr
|
||||
ld b, SERIAL_PATCH_LIST_LENGTH
|
||||
xor a
|
||||
.loop1
|
||||
.clear_loop
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .loop1
|
||||
jr nz, .clear_loop
|
||||
|
||||
ld hl, (wLinkData + SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + 1 + PARTY_LENGTH + 1) - 1
|
||||
ld de, wPlayerPatchLists + 10 ; ???
|
||||
; Loop through all the patchable link data
|
||||
ld hl, wLinkData + SERIAL_PREAMBLE_LENGTH + NAME_LENGTH + (1 + PARTY_LENGTH + 1) - 1
|
||||
ld de, wPlayerPatchLists + SERIAL_RNS_LENGTH ; ???
|
||||
lb bc, 0, 0
|
||||
.loop2
|
||||
.patch_loop
|
||||
; Check if we've gone over the entire area
|
||||
inc c
|
||||
ld a, c
|
||||
cp SERIAL_PATCH_LIST_LENGTH + 1
|
||||
jr z, .next1
|
||||
cp SERIAL_PATCH_DATA_SIZE + 1
|
||||
jr z, .data1_done
|
||||
|
||||
; If we're processing the second patch area, check if we've reached the end
|
||||
ld a, b
|
||||
dec a
|
||||
jr nz, .next2
|
||||
jr nz, .process
|
||||
push bc
|
||||
ld a, [wLinkMode]
|
||||
cp LINK_TIMECAPSULE
|
||||
ld b, REDMON_STRUCT_LENGTH * PARTY_LENGTH - SERIAL_PATCH_LIST_LENGTH + 1
|
||||
jr z, .got_value
|
||||
ld b, 2 + PARTYMON_STRUCT_LENGTH * PARTY_LENGTH - SERIAL_PATCH_LIST_LENGTH + 1
|
||||
.got_value
|
||||
ld b, REDMON_STRUCT_LENGTH * PARTY_LENGTH - SERIAL_PATCH_DATA_SIZE + 1
|
||||
jr z, .got_size
|
||||
ld b, 2 + PARTYMON_STRUCT_LENGTH * PARTY_LENGTH - SERIAL_PATCH_DATA_SIZE + 1
|
||||
.got_size
|
||||
ld a, c
|
||||
cp b
|
||||
pop bc
|
||||
jr z, .done
|
||||
.next2
|
||||
jr z, .data2_done
|
||||
|
||||
.process
|
||||
; Replace the "no data" byte, and record it in the array
|
||||
inc hl
|
||||
ld a, [hl]
|
||||
cp SERIAL_NO_DATA_BYTE
|
||||
jr nz, .loop2
|
||||
jr nz, .patch_loop
|
||||
ld a, c
|
||||
ld [de], a
|
||||
inc de
|
||||
ld [hl], SERIAL_PATCH_REPLACEMENT_BYTE
|
||||
jr .loop2
|
||||
jr .patch_loop
|
||||
|
||||
.next1
|
||||
.data1_done
|
||||
ld a, SERIAL_PATCH_LIST_PART_TERMINATOR
|
||||
ld [de], a
|
||||
inc de
|
||||
lb bc, 1, 0
|
||||
jr .loop2
|
||||
jr .patch_loop
|
||||
|
||||
.done
|
||||
.data2_done
|
||||
ld a, SERIAL_PATCH_LIST_PART_TERMINATOR
|
||||
ld [de], a
|
||||
ret
|
||||
|
|
@ -857,11 +869,11 @@ Link_PrepPartyData_Gen2:
|
|||
ld de, wLinkData
|
||||
ld a, SERIAL_PREAMBLE_BYTE
|
||||
ld b, SERIAL_PREAMBLE_LENGTH
|
||||
.loop1
|
||||
.preamble_loop
|
||||
ld [de], a
|
||||
inc de
|
||||
dec b
|
||||
jr nz, .loop1
|
||||
jr nz, .preamble_loop
|
||||
|
||||
ld hl, wPlayerName
|
||||
ld bc, NAME_LENGTH
|
||||
|
|
@ -893,7 +905,7 @@ Link_PrepPartyData_Gen2:
|
|||
ret nz
|
||||
|
||||
; Fill 5 bytes at wLinkPlayerMailPreamble with $20
|
||||
ld de, wLinkPlayerMailPreamble
|
||||
ld de, wLinkPlayerMail
|
||||
ld a, SERIAL_MAIL_PREAMBLE_BYTE
|
||||
call Link_CopyMailPreamble
|
||||
|
||||
|
|
@ -902,7 +914,7 @@ Link_PrepPartyData_Gen2:
|
|||
call OpenSRAM
|
||||
ld hl, sPartyMail
|
||||
ld b, PARTY_LENGTH
|
||||
.loop2
|
||||
.message_loop
|
||||
push bc
|
||||
ld bc, MAIL_MSG_LENGTH + 1
|
||||
call CopyBytes
|
||||
|
|
@ -910,11 +922,12 @@ Link_PrepPartyData_Gen2:
|
|||
add hl, bc
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop2
|
||||
jr nz, .message_loop
|
||||
|
||||
; Copy the mail data to wLinkPlayerMailMetadata
|
||||
ld hl, sPartyMail
|
||||
ld b, PARTY_LENGTH
|
||||
.loop3
|
||||
.metadata_loop
|
||||
push bc
|
||||
ld bc, MAIL_MSG_LENGTH + 1
|
||||
add hl, bc
|
||||
|
|
@ -922,29 +935,31 @@ Link_PrepPartyData_Gen2:
|
|||
call CopyBytes
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop3
|
||||
jr nz, .metadata_loop
|
||||
|
||||
; Translate the messages if necessary
|
||||
ld b, PARTY_LENGTH
|
||||
ld de, sPartyMail
|
||||
ld hl, wLinkPlayerMailMessages
|
||||
.loop4
|
||||
.translate_loop
|
||||
push bc
|
||||
push hl
|
||||
push de
|
||||
push hl
|
||||
farcall IsMailEuropean
|
||||
farcall ParseMailLanguage
|
||||
pop de
|
||||
ld a, c
|
||||
or a
|
||||
jr z, .next
|
||||
sub $3
|
||||
or a ; MAIL_LANG_ENGLISH
|
||||
jr z, .translate_next
|
||||
sub MAIL_LANG_ITALIAN
|
||||
jr nc, .italian_spanish
|
||||
farcall ConvertFrenchGermanMailToEnglish
|
||||
jr .next
|
||||
jr .translate_next
|
||||
.italian_spanish
|
||||
cp $2
|
||||
jr nc, .next
|
||||
cp (MAIL_LANG_SPANISH + 1) - MAIL_LANG_ITALIAN
|
||||
jr nc, .translate_next
|
||||
farcall ConvertSpanishItalianMailToEnglish
|
||||
.next
|
||||
.translate_next
|
||||
pop de
|
||||
ld hl, MAIL_STRUCT_LENGTH
|
||||
add hl, de
|
||||
|
|
@ -955,41 +970,42 @@ Link_PrepPartyData_Gen2:
|
|||
add hl, bc
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop4
|
||||
jr nz, .translate_loop
|
||||
call CloseSRAM
|
||||
|
||||
; The SERIAL_NO_DATA_BYTE value isn't allowed anywhere in message text
|
||||
ld hl, wLinkPlayerMailMessages
|
||||
ld bc, (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
|
||||
.loop5
|
||||
.message_patch_loop
|
||||
ld a, [hl]
|
||||
cp SERIAL_NO_DATA_BYTE
|
||||
jr nz, .skip2
|
||||
jr nz, .message_patch_skip
|
||||
ld [hl], SERIAL_MAIL_REPLACEMENT_BYTE
|
||||
.skip2
|
||||
.message_patch_skip
|
||||
inc hl
|
||||
dec bc
|
||||
ld a, b
|
||||
or c
|
||||
jr nz, .loop5
|
||||
jr nz, .message_patch_loop
|
||||
|
||||
; Calculate the patch offsets for the mail metadata
|
||||
ld hl, wLinkPlayerMailMetadata
|
||||
ld de, wLinkPlayerMailPatchSet
|
||||
ld b, (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1)) * PARTY_LENGTH
|
||||
ld c, 0
|
||||
.loop6
|
||||
.metadata_patch_loop
|
||||
inc c
|
||||
ld a, [hl]
|
||||
cp SERIAL_NO_DATA_BYTE
|
||||
jr nz, .skip3
|
||||
jr nz, .metadata_patch_skip
|
||||
ld [hl], SERIAL_PATCH_REPLACEMENT_BYTE
|
||||
ld a, c
|
||||
ld [de], a
|
||||
inc de
|
||||
.skip3
|
||||
.metadata_patch_skip
|
||||
inc hl
|
||||
dec b
|
||||
jr nz, .loop6
|
||||
|
||||
jr nz, .metadata_patch_loop
|
||||
ld a, SERIAL_PATCH_LIST_PART_TERMINATOR
|
||||
ld [de], a
|
||||
ret
|
||||
|
|
@ -1193,7 +1209,7 @@ Link_CopyRandomNumbers:
|
|||
ldh a, [hSerialConnectionStatus]
|
||||
cp USING_INTERNAL_CLOCK
|
||||
ret z
|
||||
ld hl, wEnemyMonSpecies
|
||||
ld hl, wOTLinkBattleRNData
|
||||
call Link_FindFirstNonControlCharacter_AllowZero
|
||||
ld de, wLinkBattleRNs
|
||||
ld c, 10
|
||||
|
|
@ -2018,7 +2034,7 @@ LinkTrade:
|
|||
.save
|
||||
farcall SaveAfterLinkTrade
|
||||
farcall StubbedTrainerRankings_Trades
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
ld c, 40
|
||||
call DelayFrames
|
||||
hlcoord 0, 12
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ endc
|
|||
jp z, .LinkCanceled
|
||||
cp MG_OKAY
|
||||
jp nz, .CommunicationError
|
||||
ld a, [wMysteryGiftGameVersion]
|
||||
ld a, [wMysteryGiftPartnerGameVersion]
|
||||
cp POKEMON_PIKACHU_2_VERSION
|
||||
jr z, .skip_checks
|
||||
call .CheckAlreadyGotFiveGiftsToday
|
||||
|
|
@ -92,17 +92,17 @@ endc
|
|||
ld a, [wMysteryGiftPartnerBackupItem]
|
||||
and a
|
||||
jp nz, .FriendNotReady
|
||||
ld a, [wMysteryGiftGameVersion]
|
||||
ld a, [wMysteryGiftPartnerGameVersion]
|
||||
cp POKEMON_PIKACHU_2_VERSION
|
||||
jr z, .skip_append_save
|
||||
call .AddMysteryGiftPartnerID
|
||||
ld a, [wMysteryGiftGameVersion]
|
||||
ld a, [wMysteryGiftPartnerGameVersion]
|
||||
cp RESERVED_GAME_VERSION
|
||||
jr z, .skip_append_save
|
||||
call .SaveMysteryGiftTrainerName
|
||||
farcall RestoreMobileEventIndex
|
||||
farcall RestoreGSBallFlag
|
||||
farcall StubbedTrainerRankings_MysteryGift
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
.skip_append_save
|
||||
ld a, [wMysteryGiftPartnerSentDeco]
|
||||
and a
|
||||
|
|
@ -307,7 +307,7 @@ endc
|
|||
ldh a, [hMGRole]
|
||||
cp IR_SENDER
|
||||
jr z, SenderExchangeMysteryGiftDataPayloads
|
||||
; receiver
|
||||
|
||||
ld hl, hMGExchangedByte
|
||||
ld b, 1
|
||||
call TryReceivingIRDataBlock
|
||||
|
|
@ -522,7 +522,7 @@ EndOrContinueMysteryGiftIRCommunication:
|
|||
ldh a, [hMGRole]
|
||||
cp IR_SENDER
|
||||
jr z, .sender
|
||||
; receiver
|
||||
|
||||
call BeginReceivingIRCommunication
|
||||
jr nz, EndOrContinueMysteryGiftIRCommunication
|
||||
jp ReceiverExchangeMysteryGiftDataPayloads
|
||||
|
|
@ -563,7 +563,7 @@ ExchangeNameCardData:
|
|||
ldh a, [hMGRole]
|
||||
cp IR_SENDER
|
||||
jr z, .sender
|
||||
; receiver
|
||||
|
||||
; Receive the data payload
|
||||
call ReceiveNameCardDataPayload
|
||||
jp nz, EndNameCardIRCommunication
|
||||
|
|
@ -1748,7 +1748,7 @@ StageDataForNameCard:
|
|||
ld a, [sCrystalData + 0]
|
||||
ld [de], a
|
||||
inc de
|
||||
ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
|
||||
ld a, BANK(sEZChatIntroductionMessage) ; aka BANK(sEZChatMessages) ; MBC30 bank used by JP Crystal; inaccessible by MBC3
|
||||
call OpenSRAM
|
||||
ld hl, sPhoneNumber ; address of MBC30 bank
|
||||
ld bc, PHONE_NUMBER_LENGTH
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ NewGame:
|
|||
ld [wDebugFlags], a
|
||||
call ResetWRAM
|
||||
call NewGame_ClearTilemapEtc
|
||||
call AreYouABoyOrAreYouAGirl
|
||||
call PlayerProfileSetup
|
||||
call OakSpeech
|
||||
call InitializeWorld
|
||||
|
||||
|
|
@ -77,17 +77,16 @@ NewGame:
|
|||
ldh [hMapEntryMethod], a
|
||||
jp FinishContinueFunction
|
||||
|
||||
AreYouABoyOrAreYouAGirl:
|
||||
PlayerProfileSetup:
|
||||
call InitSRAMZipcode
|
||||
|
||||
farcall Mobile_AlwaysReturnNotCarry ; mobile
|
||||
farcall CheckMobileAdapterStatus ; mobile
|
||||
jr c, .ok
|
||||
farcall InitGender
|
||||
ret
|
||||
|
||||
.ok
|
||||
ld c, 0
|
||||
farcall InitMobileProfile ; mobile
|
||||
farcall InitMobileProfile
|
||||
ret
|
||||
|
||||
InitSRAMZipcode:
|
||||
|
|
@ -236,7 +235,7 @@ endc
|
|||
|
||||
farcall DeletePartyMonMail
|
||||
|
||||
farcall DeleteMobileEventIndex
|
||||
farcall ClearGSBallFlag
|
||||
|
||||
call ResetGameTime
|
||||
ret
|
||||
|
|
@ -416,12 +415,9 @@ PostCreditsSpawn:
|
|||
ldh [hMapEntryMethod], a
|
||||
ret
|
||||
|
||||
Continue_MobileAdapterMenu:
|
||||
farcall Mobile_AlwaysReturnNotCarry ; mobile check
|
||||
Continue_MobileAdapterMenu: ; unused
|
||||
farcall CheckMobileAdapterStatus
|
||||
ret nc
|
||||
|
||||
; the rest of this stuff is never reached because
|
||||
; the previous function returns with carry not set
|
||||
ld hl, wd479
|
||||
bit 1, [hl]
|
||||
ret nz
|
||||
|
|
@ -971,10 +967,10 @@ Intro_PlacePlayerSprite:
|
|||
.sprites
|
||||
db 4
|
||||
; y pxl, x pxl, tile offset
|
||||
db 9 * 8 + 4, 9 * 8, 0
|
||||
db 9 * 8 + 4, 10 * 8, 1
|
||||
db 10 * 8 + 4, 9 * 8, 2
|
||||
db 10 * 8 + 4, 10 * 8, 3
|
||||
db 9 * TILE_WIDTH + 4, 9 * TILE_WIDTH, 0
|
||||
db 9 * TILE_WIDTH + 4, 10 * TILE_WIDTH, 1
|
||||
db 10 * TILE_WIDTH + 4, 9 * TILE_WIDTH, 2
|
||||
db 10 * TILE_WIDTH + 4, 10 * TILE_WIDTH, 3
|
||||
|
||||
|
||||
const_def
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ MainMenu_GetWhichMenu:
|
|||
; jr .ok
|
||||
|
||||
hlcoord 1, 14
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
jr nc, .ok
|
||||
|
||||
ld a, $7
|
||||
|
|
@ -234,7 +234,7 @@ MainMenu_GetWhichMenu:
|
|||
.ok
|
||||
; jr .ok2
|
||||
hlcoord 1, 14
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
jr nc, .ok2
|
||||
|
||||
ld a, $7
|
||||
|
|
@ -259,7 +259,7 @@ MainMenu_GetWhichMenu:
|
|||
; jr .ok3
|
||||
|
||||
hlcoord 1, 14
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
jr nc, .ok3
|
||||
|
||||
ld a, $7
|
||||
|
|
@ -275,7 +275,7 @@ MainMenu_GetWhichMenu:
|
|||
|
||||
.ok3
|
||||
hlcoord 1, 14
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
jr nc, .ok4
|
||||
|
||||
ld a, $7
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ NamingScreenJoypadLoop:
|
|||
depixel 10, 3
|
||||
call NamingScreen_IsTargetBox
|
||||
jr nz, .got_cursor_position
|
||||
ld d, 8 * 8
|
||||
ld d, 8 * TILE_WIDTH
|
||||
.got_cursor_position
|
||||
ld a, SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
|
||||
call InitSpriteAnimStruct
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ MoveMonWOMail_InsertMon_SaveGame:
|
|||
call SaveBackupPokemonData
|
||||
call SaveBackupChecksum
|
||||
farcall BackupPartyMonMail
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
farcall SaveRTC
|
||||
call LoadBox
|
||||
call ResumeGameLogic
|
||||
|
|
@ -161,17 +161,17 @@ AddHallOfFameEntry:
|
|||
ld bc, wHallOfFamePokemonListEnd - wHallOfFamePokemonList + 1
|
||||
call CopyBytes
|
||||
call CloseSRAM
|
||||
; This vc_hook causes the Virtual Console to set [sMobileEventIndex] and [sMobileEventIndexBackup]
|
||||
; to MOBILE_EVENT_OBJECT_GS_BALL, which enables you to get the GS Ball, take it to Kurt, and
|
||||
; encounter Celebi. It assumes that sMobileEventIndex and sMobileEventIndexBackup are at their
|
||||
; This vc_hook causes the Virtual Console to set [sGSBallFlag] and [sGSBallFlagBackup]
|
||||
; to GS_BALL_AVAILABLE, which enables you to get the GS Ball, take it to Kurt, and
|
||||
; encounter Celebi. It assumes that sGSBallFlag and sGSBallFlagBackup are at their
|
||||
; original addresses.
|
||||
vc_hook Enable_GS_Ball_mobile_event
|
||||
vc_assert BANK(sMobileEventIndex) == $1 && sMobileEventIndex == $be3c, \
|
||||
"sMobileEventIndex is no longer located at 01:be3c."
|
||||
vc_assert BANK(sMobileEventIndexBackup) == $1 && sMobileEventIndexBackup == $be44, \
|
||||
"sMobileEventIndexBackup is no longer located at 01:be44."
|
||||
vc_assert MOBILE_EVENT_OBJECT_GS_BALL == $0b, \
|
||||
"MOBILE_EVENT_OBJECT_GS_BALL is no longer equal to $0b."
|
||||
vc_assert BANK(sGSBallFlag) == $1 && sGSBallFlag == $be3c, \
|
||||
"sGSBallFlag is no longer located at 01:be3c."
|
||||
vc_assert BANK(sGSBallFlagBackup) == $1 && sGSBallFlagBackup == $be44, \
|
||||
"sGSBallFlagBackup is no longer located at 01:be44."
|
||||
vc_assert GS_BALL_AVAILABLE == $b, \
|
||||
"GS_BALL_AVAILABLE is no longer equal to $b."
|
||||
ret
|
||||
|
||||
SaveGameData:
|
||||
|
|
@ -281,7 +281,7 @@ _SaveGameData:
|
|||
call SaveBackupChecksum
|
||||
call UpdateStackTop
|
||||
farcall BackupPartyMonMail
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
farcall SaveRTC
|
||||
; ld a, BANK(sBattleTowerChallengeState)
|
||||
; call OpenSRAM
|
||||
|
|
@ -367,7 +367,7 @@ ErasePreviousSave:
|
|||
call SaveData
|
||||
call Function14d6c
|
||||
call Function14d83
|
||||
call Function14d93
|
||||
call DisableMobileStadium
|
||||
; the stack stuff here doesn't happen in the japanese version
|
||||
; doesn't have anything to do with mobile though so that should probably stay here
|
||||
ld a, BANK(sStackTop)
|
||||
|
|
@ -408,27 +408,27 @@ EraseHallOfFame:
|
|||
jp CloseSRAM
|
||||
|
||||
InitDefaultEZChatMsgs:
|
||||
ld a, BANK(sEZChatIntroductionMessage)
|
||||
ld a, BANK(sEZChatMessages)
|
||||
call OpenSRAM
|
||||
ld hl, .Data
|
||||
ld de, sEZChatIntroductionMessage
|
||||
ld bc, 4 * (2 * 4) ; words
|
||||
ld de, sEZChatMessages
|
||||
ld bc, 4 * EASY_CHAT_MESSAGE_LENGTH ; words
|
||||
call CopyBytes
|
||||
jp CloseSRAM
|
||||
|
||||
.Data:
|
||||
; introduction
|
||||
dw $020d, $0500 ; `HELLO` `!`
|
||||
dw $020e, $0501 ; `GOOD-BYE` `!!`
|
||||
db $0d, EZCHAT_GREETINGS, $00, EZCHAT_EXCLAMATIONS
|
||||
db $0e, EZCHAT_GREETINGS, $01, EZCHAT_EXCLAMATIONS
|
||||
; begin battle
|
||||
dw $0629, $0503 ; `READY` `?`
|
||||
dw $0d0d, $0401 ; `LET'S` `GO!`
|
||||
db $29, EZCHAT_CONVERSATION, $03, EZCHAT_EXCLAMATIONS
|
||||
db $0d, EZCHAT_FAREWELLS, $01, EZCHAT_BATTLE
|
||||
; win battle
|
||||
dw $053d, $0500 ; `YAY` `!`
|
||||
dw $0404, $0501 ; `I WIN` `!!`
|
||||
db $3d, EZCHAT_EXCLAMATIONS, $00, EZCHAT_EXCLAMATIONS
|
||||
db $04, EZCHAT_BATTLE, $01, EZCHAT_EXCLAMATIONS
|
||||
; lose battle
|
||||
dw $050f, $0505 ; `URGH` `...!`
|
||||
dw $0638, $0504 ; `NO WAY` `...`
|
||||
db $0f, EZCHAT_EXCLAMATIONS, $05, EZCHAT_EXCLAMATIONS
|
||||
db $38, EZCHAT_CONVERSATION, $04, EZCHAT_EXCLAMATIONS
|
||||
|
||||
EraseBattleTowerStatus: ; Call_005_4d09 in crystal jp
|
||||
; ld a, BANK(sBattleTowerChallengeState)
|
||||
|
|
@ -487,11 +487,11 @@ Function14d83:
|
|||
call CloseSRAM
|
||||
ret
|
||||
|
||||
Function14d93: ; unreferenced
|
||||
ld a, 7 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
|
||||
DisableMobileStadium: ; unreferenced
|
||||
ld a, BANK(sMobileStadiumFlag)
|
||||
call OpenSRAM
|
||||
xor a
|
||||
ld [$a000], a ; address of MBC30 bank
|
||||
ld [sMobileStadiumFlag], a
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
|
|
@ -628,7 +628,7 @@ TryLoadSaveFile:
|
|||
call LoadPokemonData
|
||||
call LoadBox
|
||||
farcall RestorePartyMonMail
|
||||
farcall RestoreMobileEventIndex
|
||||
farcall RestoreGSBallFlag
|
||||
farcall RestoreMysteryGift
|
||||
call ValidateBackupSave
|
||||
call SaveBackupOptions
|
||||
|
|
@ -645,7 +645,7 @@ TryLoadSaveFile:
|
|||
call LoadBackupPokemonData
|
||||
call LoadBox
|
||||
farcall RestorePartyMonMail
|
||||
farcall RestoreMobileEventIndex
|
||||
farcall RestoreGSBallFlag
|
||||
farcall RestoreMysteryGift
|
||||
call ValidateSave
|
||||
call SaveOptions
|
||||
|
|
|
|||
|
|
@ -546,10 +546,10 @@ TryObjectEvent:
|
|||
|
||||
ldh a, [hLastTalked]
|
||||
call GetMapObject
|
||||
ld hl, MAPOBJECT_COLOR
|
||||
ld hl, MAPOBJECT_TYPE
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and %00001111
|
||||
and MAPOBJECT_TYPE_MASK
|
||||
|
||||
; BUG: TryObjectEvent arbitrary code execution (see docs/bugs_and_glitches.md)
|
||||
push bc
|
||||
|
|
|
|||
|
|
@ -880,12 +880,12 @@ MovementFunction_Shadow:
|
|||
add hl, de
|
||||
ld a, [hl]
|
||||
maskbits NUM_DIRECTIONS
|
||||
ld d, 1 * 8 + 6
|
||||
ld d, 1 * TILE_WIDTH + 6
|
||||
cp DOWN
|
||||
jr z, .ok
|
||||
cp UP
|
||||
jr z, .ok
|
||||
ld d, 1 * 8 + 4
|
||||
ld d, 1 * TILE_WIDTH + 4
|
||||
.ok
|
||||
ld hl, OBJECT_SPRITE_Y_OFFSET
|
||||
add hl, bc
|
||||
|
|
@ -909,7 +909,7 @@ MovementFunction_Emote:
|
|||
ld [hl], 0
|
||||
ld hl, OBJECT_SPRITE_Y_OFFSET
|
||||
add hl, bc
|
||||
ld [hl], -2 * 8
|
||||
ld [hl], -2 * TILE_WIDTH
|
||||
ld hl, OBJECT_SPRITE_X_OFFSET
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
|
|
@ -2034,7 +2034,7 @@ SpawnShadow:
|
|||
|
||||
.ShadowObject:
|
||||
; vtile, palette, movement
|
||||
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SHADOW
|
||||
db $00, PAL_OW_EMOTE, SPRITEMOVEDATA_SHADOW
|
||||
|
||||
SpawnStrengthBoulderDust:
|
||||
push bc
|
||||
|
|
@ -2046,7 +2046,7 @@ SpawnStrengthBoulderDust:
|
|||
|
||||
.BoulderDustObject:
|
||||
; vtile, palette, movement
|
||||
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_BOULDERDUST
|
||||
db $00, PAL_OW_EMOTE, SPRITEMOVEDATA_BOULDERDUST
|
||||
|
||||
SpawnEmote:
|
||||
push bc
|
||||
|
|
@ -2058,7 +2058,7 @@ SpawnEmote:
|
|||
|
||||
.EmoteObject:
|
||||
; vtile, palette, movement
|
||||
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_EMOTE
|
||||
db $00, PAL_OW_EMOTE, SPRITEMOVEDATA_EMOTE
|
||||
|
||||
ShakeGrass:
|
||||
push bc
|
||||
|
|
@ -2085,7 +2085,7 @@ ShakeScreen:
|
|||
|
||||
.ScreenShakeObject:
|
||||
; vtile, palette, movement
|
||||
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SCREENSHAKE
|
||||
db $00, PAL_OW_EMOTE, SPRITEMOVEDATA_SCREENSHAKE
|
||||
|
||||
DespawnEmote:
|
||||
push bc
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ SpawnPlayer:
|
|||
call PlayerSpawn_ConvertCoords
|
||||
ld a, PLAYER_OBJECT
|
||||
call GetMapObject
|
||||
ld hl, MAPOBJECT_COLOR
|
||||
ld hl, MAPOBJECT_PALETTE
|
||||
add hl, bc
|
||||
ln e, PAL_NPC_RED, OBJECTTYPE_SCRIPT
|
||||
ld a, [wPlayerSpriteSetupFlags]
|
||||
|
|
@ -188,10 +188,10 @@ CopyMapObjectToObjectStruct:
|
|||
call GetSpritePalette
|
||||
ld [wTempObjectCopyPalette], a
|
||||
|
||||
ld hl, MAPOBJECT_COLOR
|
||||
ld hl, MAPOBJECT_PALETTE
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and $f0
|
||||
and MAPOBJECT_PALETTE_MASK
|
||||
jr z, .skip_color_override
|
||||
swap a
|
||||
and PALETTE_MASK
|
||||
|
|
@ -203,7 +203,7 @@ CopyMapObjectToObjectStruct:
|
|||
ld a, [hl]
|
||||
ld [wTempObjectCopyMovement], a
|
||||
|
||||
ld hl, MAPOBJECT_RANGE
|
||||
ld hl, MAPOBJECT_SIGHT_RANGE
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wTempObjectCopyRange], a
|
||||
|
|
|
|||
|
|
@ -2555,10 +2555,10 @@ Pokedex_GetArea:
|
|||
|
||||
.PlayerOAM:
|
||||
; y pxl, x pxl, tile offset
|
||||
db -1 * 8, -1 * 8, 0 ; top left
|
||||
db -1 * 8, 0 * 8, 1 ; top right
|
||||
db 0 * 8, -1 * 8, 2 ; bottom left
|
||||
db 0 * 8, 0 * 8, 3 ; bottom right
|
||||
db -1 * TILE_WIDTH, -1 * TILE_WIDTH, 0 ; top left
|
||||
db -1 * TILE_WIDTH, 0 * TILE_WIDTH, 1 ; top right
|
||||
db 0 * TILE_WIDTH, -1 * TILE_WIDTH, 2 ; bottom left
|
||||
db 0 * TILE_WIDTH, 0 * TILE_WIDTH, 3 ; bottom right
|
||||
db $80 ; terminator
|
||||
|
||||
.CheckPlayerLocation:
|
||||
|
|
|
|||
|
|
@ -779,9 +779,9 @@ EggHatch_CrackShell:
|
|||
ret nc
|
||||
swap a
|
||||
srl a
|
||||
add 9 * 8 + 4
|
||||
add 9 * TILE_WIDTH + 4
|
||||
ld d, a
|
||||
ld e, 11 * 8
|
||||
ld e, 11 * TILE_WIDTH
|
||||
ld a, SPRITE_ANIM_INDEX_EGG_CRACK
|
||||
call InitSpriteAnimStruct
|
||||
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
||||
|
|
@ -838,7 +838,7 @@ Hatch_InitShellFragments:
|
|||
|
||||
MACRO shell_fragment
|
||||
; y tile, y pxl, x tile, x pxl, frameset offset, ???
|
||||
db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5 - SPRITE_ANIM_FRAMESET_EGG_HATCH_1, \6
|
||||
db (\1 * TILE_WIDTH) % $100 + \2, (\3 * TILE_WIDTH) % $100 + \4, \5 - SPRITE_ANIM_FRAMESET_EGG_HATCH_1, \6
|
||||
ENDM
|
||||
|
||||
.SpriteData:
|
||||
|
|
|
|||
|
|
@ -1,29 +1,24 @@
|
|||
IsMailEuropean:
|
||||
; return 1 if French
|
||||
; return 2 if German
|
||||
; return 3 if Italian
|
||||
; return 4 if Spanish
|
||||
; return 0 if none of the above
|
||||
ld c, $0
|
||||
ParseMailLanguage:
|
||||
ld c, MAIL_LANG_ENGLISH
|
||||
ld hl, sPartyMon1MailNationality - sPartyMon1Mail
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
cp "E"
|
||||
ret nz
|
||||
ld a, [hli]
|
||||
inc c
|
||||
inc c ; MAIL_LANG_FRENCH
|
||||
cp "F"
|
||||
ret z
|
||||
inc c
|
||||
inc c ; MAIL_LANG_GERMAN
|
||||
cp "G"
|
||||
ret z
|
||||
inc c
|
||||
inc c ; MAIL_LANG_ITALIAN
|
||||
cp "I"
|
||||
ret z
|
||||
inc c
|
||||
inc c ; MAIL_LANG_SPANISH
|
||||
cp "S"
|
||||
ret z
|
||||
ld c, $0
|
||||
ld c, MAIL_LANG_ENGLISH
|
||||
ret
|
||||
|
||||
; The regular font.
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ HealPartyMon:
|
|||
ret
|
||||
|
||||
ComputeHPBarPixels:
|
||||
; e = bc * (6 * 8) / de
|
||||
; e = bc * HP_BAR_LENGTH_PX / de
|
||||
ld a, b
|
||||
or c
|
||||
jr z, .zero
|
||||
|
|
@ -64,7 +64,7 @@ ComputeHPBarPixels:
|
|||
ldh [hMultiplicand + 1], a
|
||||
ld a, c
|
||||
ldh [hMultiplicand + 2], a
|
||||
ld a, 6 * 8
|
||||
ld a, HP_BAR_LENGTH_PX
|
||||
ldh [hMultiplier], a
|
||||
call Multiply
|
||||
; We need de to be under 256 because hDivisor is only 1 byte.
|
||||
|
|
|
|||
|
|
@ -31,14 +31,14 @@ ReadAnyMail:
|
|||
push de
|
||||
ld a, BANK(sPartyMail)
|
||||
call OpenSRAM
|
||||
farcall IsMailEuropean
|
||||
farcall ParseMailLanguage
|
||||
call CloseSRAM
|
||||
ld a, c
|
||||
ld de, StandardEnglishFont
|
||||
or a
|
||||
or a ; MAIL_LANG_ENGLISH
|
||||
jr z, .got_font
|
||||
ld de, FrenchGermanFont
|
||||
sub $3
|
||||
sub MAIL_LANG_ITALIAN
|
||||
jr c, .got_font
|
||||
ld de, SpanishItalianFont
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ ReadAnyMail:
|
|||
jr z, .loop
|
||||
vc_patch Forbid_printing_mail
|
||||
if DEF(_CRYSTAL11_VC)
|
||||
and 0
|
||||
and NO_INPUT
|
||||
else
|
||||
and START
|
||||
endc
|
||||
|
|
|
|||
|
|
@ -430,7 +430,7 @@ StatsScreen_InitUpperHalf:
|
|||
hlcoord 14, 0
|
||||
call PrintLevel
|
||||
ld hl, .NicknamePointers
|
||||
call GetNicknamenamePointer
|
||||
call GetNicknamePointer
|
||||
call CopyNickname
|
||||
hlcoord 8, 2
|
||||
call PlaceString
|
||||
|
|
@ -791,7 +791,7 @@ LoadBluePage:
|
|||
ld de, wTempMonID
|
||||
call PrintNum
|
||||
ld hl, .OTNamePointers
|
||||
call GetNicknamenamePointer
|
||||
call GetNicknamePointer
|
||||
call CopyNickname
|
||||
farcall CorrectNickErrors
|
||||
hlcoord 2, 13
|
||||
|
|
@ -1159,7 +1159,7 @@ CopyNickname:
|
|||
pop de
|
||||
ret
|
||||
|
||||
GetNicknamenamePointer:
|
||||
GetNicknamePointer:
|
||||
ld a, [wMonType]
|
||||
add a
|
||||
ld c, a
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ CheckObjectVisibility::
|
|||
ret
|
||||
|
||||
CheckObjectTime::
|
||||
ld hl, MAPOBJECT_HOUR
|
||||
ld hl, MAPOBJECT_HOUR_1
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
|
|
@ -264,10 +264,10 @@ CheckObjectTime::
|
|||
db NITE
|
||||
|
||||
.check_hour
|
||||
ld hl, MAPOBJECT_HOUR
|
||||
ld hl, MAPOBJECT_HOUR_1
|
||||
add hl, bc
|
||||
ld d, [hl]
|
||||
ld hl, MAPOBJECT_TIMEOFDAY
|
||||
ld hl, MAPOBJECT_HOUR_2
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
ld hl, hHours
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ Serial_ExchangeBytes::
|
|||
dec hl
|
||||
cp SERIAL_PREAMBLE_BYTE
|
||||
jr nz, .loop
|
||||
xor a
|
||||
xor a ; FALSE
|
||||
ldh [hSerialIgnoringInitialData], a
|
||||
jr .loop
|
||||
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ _CheckTrainerBattle::
|
|||
jr z, .next
|
||||
|
||||
; Is a trainer
|
||||
ld hl, MAPOBJECT_COLOR
|
||||
ld hl, MAPOBJECT_TYPE
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
and $f
|
||||
and MAPOBJECT_TYPE_MASK
|
||||
cp OBJECTTYPE_TRAINER
|
||||
jr nz, .next
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ _CheckTrainerBattle::
|
|||
jr nc, .next
|
||||
|
||||
; ...within their sight range
|
||||
ld hl, MAPOBJECT_RANGE
|
||||
ld hl, MAPOBJECT_SIGHT_RANGE
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp b
|
||||
|
|
|
|||
|
|
@ -3431,9 +3431,9 @@ Function111664:
|
|||
Function111686:
|
||||
xor a
|
||||
ldh [rTAC], a
|
||||
ld c, $ff
|
||||
ld c, LOW(rIE)
|
||||
ldh a, [c]
|
||||
and $f3
|
||||
and ~(1 << SERIAL | 1 << TIMER)
|
||||
ldh [c], a
|
||||
ld a, [wMobileSDK_PacketBuffer + 1]
|
||||
ld [wc86a], a
|
||||
|
|
|
|||
|
|
@ -402,3 +402,6 @@ DEF happinesschecknpc EQUS "HappinessCheckScript"
|
|||
|
||||
; constants/sprite_constants.asm
|
||||
DEF SPRITE_BUENA EQUS "SPRITE_BEAUTY"
|
||||
|
||||
DEF PAL_NPC_SILVER EQUS "PAL_NPC_EMOTE"
|
||||
DEF PAL_OW_SILVER EQUS "PAL_OW_EMOTE"
|
||||
|
|
|
|||
|
|
@ -330,18 +330,20 @@ MACRO object_struct
|
|||
ENDM
|
||||
|
||||
MACRO map_object
|
||||
\1ObjectStructID:: db
|
||||
\1ObjectSprite:: db
|
||||
\1ObjectYCoord:: db
|
||||
\1ObjectXCoord:: db
|
||||
\1ObjectMovement:: db
|
||||
\1ObjectRadius:: db
|
||||
\1ObjectHour:: db
|
||||
\1ObjectTimeOfDay:: db
|
||||
\1ObjectColor:: db
|
||||
\1ObjectRange:: db
|
||||
\1ObjectScript:: dw
|
||||
\1ObjectEventFlag:: dw
|
||||
\1ObjectStructID:: db
|
||||
\1ObjectSprite:: db
|
||||
\1ObjectYCoord:: db
|
||||
\1ObjectXCoord:: db
|
||||
\1ObjectMovement:: db
|
||||
\1ObjectRadius:: db
|
||||
\1ObjectHour1:: db
|
||||
\1ObjectHour2::
|
||||
\1ObjectTimeOfDay:: db
|
||||
\1ObjectPalette::
|
||||
\1ObjectType:: db
|
||||
\1ObjectSightRange:: db
|
||||
\1ObjectScript:: dw
|
||||
\1ObjectEventFlag:: dw
|
||||
ds 2
|
||||
ENDM
|
||||
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ ENDM
|
|||
const tempo_relative_cmd ; $e9
|
||||
MACRO tempo_relative
|
||||
db tempo_relative_cmd
|
||||
bigdw \1 ; tempo adjustment
|
||||
db \1 ; tempo adjustment
|
||||
ENDM
|
||||
|
||||
const restart_channel_cmd ; $ea
|
||||
|
|
@ -204,7 +204,7 @@ ENDM
|
|||
const new_song_cmd ; $eb
|
||||
MACRO new_song
|
||||
db new_song_cmd
|
||||
bigdw \1 ; id
|
||||
dw \1 ; id
|
||||
ENDM
|
||||
|
||||
const sfx_priority_on_cmd ; $ec
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ MACRO anim_obj
|
|||
else
|
||||
; LEGACY: Support the tile+offset format
|
||||
db \1 ; object
|
||||
db (\2) * 8 + (\3) ; x_tile, x
|
||||
db (\4) * 8 + (\5) ; y_tile, y
|
||||
db (\2) * TILE_WIDTH + (\3) ; x_tile, x
|
||||
db (\4) * TILE_WIDTH + (\5) ; y_tile, y
|
||||
db \6 ; param
|
||||
endc
|
||||
ENDM
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ MACRO object_event
|
|||
; * if h1 == h2, the object_event will always appear
|
||||
; * if h1 == -1, h2 is treated as a time-of-day value:
|
||||
; a combo of MORN, DAY, and/or NITE, or -1 to always appear
|
||||
;\9: color: a PAL_NPC_* constant, or 0 for sprite default
|
||||
;\9: palette: a PAL_NPC_* constant, or 0 for sprite default
|
||||
;\<10>: function: a OBJECTTYPE_* constant
|
||||
;\<11>: sight range: applies to OBJECTTYPE_TRAINER
|
||||
;\<12>: script pointer
|
||||
|
|
|
|||
|
|
@ -36,3 +36,5 @@ ENDM
|
|||
MACRO oamdelete
|
||||
db oamdelete_command
|
||||
ENDM
|
||||
|
||||
DEF FIRST_OAM_CMD EQU LOW(const_value + 1)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ BattleTowerOutside_MapScripts:
|
|||
callback MAPCALLBACK_OBJECTS, BattleTowerOutsideShowCiviliansCallback
|
||||
|
||||
BattleTowerOutsideDoorsCallback:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .doorsopen;$7CE6
|
||||
changeblock 8, 8, $2C
|
||||
endcallback
|
||||
|
|
@ -22,7 +22,7 @@ BattleTowerOutsideDoorsCallback:
|
|||
endcallback
|
||||
|
||||
BattleTowerOutsideShowCiviliansCallback:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iffalse .nomobile
|
||||
clearevent EVENT_BATTLE_TOWER_OPEN_CIVILIANS
|
||||
|
||||
|
|
@ -30,7 +30,7 @@ BattleTowerOutsideShowCiviliansCallback:
|
|||
endcallback
|
||||
|
||||
BattleTowerOutsideYoungsterScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer BattleTowerOutsideYoungsterText_NotYetOpen
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ BattleTowerOutsideYoungsterScript:
|
|||
jumptextfaceplayer BattleTowerOutsideYoungsterText_Mobile
|
||||
|
||||
BattleTowerOutsideBeautyScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer BattleTowerOutsideBeautyText_NotYetOpen
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ BattleTowerOutsideSailorScript:
|
|||
jumptextfaceplayer BattleTowerOutsideSailorText_Mobile
|
||||
|
||||
BattleTowerOutsideSign:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptext BattleTowerOutsideSignText_NotYetOpen
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ BattleTowerOutsideSign:
|
|||
jumptext BattleTowerOutsideSignText
|
||||
|
||||
BattleTowerOutsideDoor:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptext BattleTowerOutsideText_DoorsClosed
|
||||
|
||||
|
|
|
|||
|
|
@ -254,8 +254,8 @@ BurnedTowerB1F_MapEvents:
|
|||
object_event 7, 3, SPRITE_RAIKOU, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
|
||||
object_event 12, 3, SPRITE_ENTEI, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
|
||||
object_event 10, 4, SPRITE_SUICUNE, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
|
||||
object_event 7, 3, SPRITE_RAIKOU, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
|
||||
object_event 12, 3, SPRITE_ENTEI, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
|
||||
object_event 10, 4, SPRITE_SUICUNE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
|
||||
object_event 7, 3, SPRITE_RAIKOU, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_EMOTE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
|
||||
object_event 12, 3, SPRITE_ENTEI, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_EMOTE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
|
||||
object_event 10, 4, SPRITE_SUICUNE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_EMOTE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
|
||||
object_event 16, 4, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, BurnedTowerB1FTMEndure, EVENT_BURNED_TOWER_B1F_TM_ENDURE
|
||||
object_event 10, 12, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, BurnedTowerB1FEusine, EVENT_EUSINE_IN_BURNED_TOWER
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ CeruleanPokecenter1FNurseScript:
|
|||
jumpstd PokecenterNurseScript
|
||||
|
||||
CeruleanPokecenter1FSuperNerdScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer CeruleanPokecenter1FSuperNerdText
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ CianwoodGymGuideScript:
|
|||
end
|
||||
|
||||
CianwoodPokecenter1FSuperNerdScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer CianwoodPokecenter1FPreMobileText
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ DayCareEggCheckCallback:
|
|||
DayCareManScript_Inside:
|
||||
faceplayer
|
||||
opentext
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iffalse .AlreadyHaveOddEgg
|
||||
checkevent EVENT_GOT_ODD_EGG
|
||||
iftrue .AlreadyHaveOddEgg
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ EcruteakPokecenter1FNurseScript:
|
|||
jumpstd PokecenterNurseScript
|
||||
|
||||
EcruteakPokecenter1FPokefanMScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer EcruteakPokecenter1FPokefanMText
|
||||
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ ElmAfterTheftScript:
|
|||
writetext ElmAfterTheftText5
|
||||
promptbutton
|
||||
setevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
|
||||
setflag ENGINE_MAIN_MENU_MOBILE_CHOICES
|
||||
setflag ENGINE_MOBILE_SYSTEM
|
||||
setmapscene ROUTE_29, SCENE_ROUTE29_CATCH_TUTORIAL
|
||||
clearevent EVENT_ROUTE_30_YOUNGSTER_JOEY
|
||||
setevent EVENT_ROUTE_30_BATTLE
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ TrainerGuitaristClyde:
|
|||
|
||||
.Script:
|
||||
endifjustbattled
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
opentext
|
||||
writetext GuitaristClydeAfterBattleText
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
object_const_def
|
||||
const GOLDENRODPOKECENTER1F_NURSE
|
||||
const GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST
|
||||
const GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST
|
||||
const GOLDENRODPOKECENTER1F_SUPER_NERD ; $04
|
||||
const GOLDENRODPOKECENTER1F_LASS2 ; $05
|
||||
const GOLDENRODPOKECENTER1F_YOUNGSTER
|
||||
|
|
@ -35,7 +35,7 @@ GoldenrodPokecenter1F_MapScripts:
|
|||
end
|
||||
|
||||
.prepareMap
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile ; $5067
|
||||
moveobject GOLDENRODPOKECENTER1F_LASS2, 16, 9 ; this is 71 in jp crystal???
|
||||
moveobject GOLDENRODPOKECENTER1F_GRAMPS, 0, 7
|
||||
|
|
@ -247,7 +247,7 @@ scenejmp02: ; 568B5
|
|||
sjump PlayerHasEggTicket.receivedOddEgg ; $A968
|
||||
|
||||
GoldenrodPokecenter1F_NewsMachineScript:
|
||||
special Mobile_DummyReturnFalse ; 568B9
|
||||
special CheckMobileAdapterStatusSpecial ; 568B9
|
||||
iftrue .mobileEnabled ; $C268
|
||||
jumptext GoldenrodPokecomCenterNewsMachineNotYetText ; $1F76
|
||||
.mobileEnabled
|
||||
|
|
@ -319,48 +319,48 @@ Unreferenced:
|
|||
end
|
||||
|
||||
GoldenrodPokecenter1F_GSBallSceneLeft:
|
||||
setval $0B ; 56940 (load mobile event index)
|
||||
setval BATTLETOWERACTION_GSBALL ; 56940 (load mobile event index)
|
||||
special BattleTowerAction
|
||||
iffalse GoldenrodPokecenter1F_GSBallSceneRight.nogsball ; $9769
|
||||
checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER ; 340
|
||||
checkevent EVENT_GOT_GS_BALL_FROM_GOLDENROD_POKEMON_CENTER ; 340
|
||||
iftrue GoldenrodPokecenter1F_GSBallSceneRight.nogsball ; $9769
|
||||
moveobject GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST, 12, 11
|
||||
moveobject GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST, 12, 11
|
||||
sjump GoldenrodPokecenter1F_GSBallSceneRight.gsball ; 6769
|
||||
|
||||
GoldenrodPokecenter1F_GSBallSceneRight:
|
||||
setval $0B ; 56955 (load mobile event index)
|
||||
setval BATTLETOWERACTION_GSBALL ; 56955 (load mobile event index)
|
||||
special BattleTowerAction
|
||||
iffalse .nogsball ; $9769
|
||||
checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER ; 340
|
||||
checkevent EVENT_GOT_GS_BALL_FROM_GOLDENROD_POKEMON_CENTER ; 340
|
||||
iftrue .nogsball ; $9769
|
||||
moveobject GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST, 13, 11
|
||||
moveobject GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST, 13, 11
|
||||
|
||||
.gsball ; 56769
|
||||
disappear GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST
|
||||
appear GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST
|
||||
disappear GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST
|
||||
appear GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST
|
||||
playmusic MUSIC_SHOW_ME_AROUND
|
||||
applymovement GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST, GoldenrodPokeCenter1FLinkReceptionistApproachPlayerMovement ; $0F6A
|
||||
applymovement GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST, GoldenrodPokeCenter1FLinkReceptionistApproachPlayerMovement ; $0F6A
|
||||
turnobject PLAYER, UP
|
||||
opentext
|
||||
writetext GoldenrodPokeCenter1FLinkReceptionistPleaseAcceptGSBallText
|
||||
waitbutton
|
||||
verbosegiveitem GS_BALL
|
||||
setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
|
||||
setevent EVENT_GOT_GS_BALL_FROM_GOLDENROD_POKEMON_CENTER
|
||||
setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
|
||||
writetext GoldenrodPokeCenter1FLinkReceptionistPleaseDoComeAgainText
|
||||
waitbutton
|
||||
closetext
|
||||
applymovement GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST, GoldenrodPokeCenter1FLinkReceptionistWalkBackMovement ; $196A
|
||||
applymovement GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST, GoldenrodPokeCenter1FLinkReceptionistWalkBackMovement ; $196A
|
||||
special RestartMapMusic
|
||||
moveobject GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST, 16, 8
|
||||
disappear GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST
|
||||
appear GOLDENRODPOKECENTER1F_LINK_RECEPTIONIST
|
||||
moveobject GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST, 16, 8
|
||||
disappear GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST
|
||||
appear GOLDENRODPOKECENTER1F_PCC_TRADE_CORNER_RECEPTIONIST
|
||||
|
||||
.nogsball
|
||||
end
|
||||
|
||||
GoldenrodPokecenter1FSuperNerdScript:
|
||||
special Mobile_DummyReturnFalse ; 56998
|
||||
special CheckMobileAdapterStatusSpecial ; 56998
|
||||
iftrue .mobile ; $A169
|
||||
jumptextfaceplayer GoldenrodPokecenter1FMobileOffSuperNerdText ; $E071
|
||||
|
||||
|
|
@ -368,7 +368,7 @@ GoldenrodPokecenter1FSuperNerdScript:
|
|||
jumptextfaceplayer GoldenrodPokecenter1FMobileOnSuperNerdText ; $1E72
|
||||
|
||||
GoldenrodPokecenter1FLass2Script:
|
||||
special Mobile_DummyReturnFalse ; 569A4
|
||||
special CheckMobileAdapterStatusSpecial ; 569A4
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer GoldenrodPokecenter1FMobileOffLassText ; $AD72
|
||||
|
||||
|
|
@ -395,7 +395,7 @@ GoldenrodPokecenter1FLass2Script:
|
|||
jumptextfaceplayer GoldenrodPokecenter1FMobileOnLassText2 ; $2373
|
||||
|
||||
GoldenrodPokecenter1FYoungsterScript:
|
||||
special Mobile_DummyReturnFalse ; 569D6
|
||||
special CheckMobileAdapterStatusSpecial ; 569D6
|
||||
iftrue .mobile ; $DF69
|
||||
jumptextfaceplayer GoldenrodPokecenter1FMobileOffYoungsterText ; $5473
|
||||
|
||||
|
|
@ -403,7 +403,7 @@ GoldenrodPokecenter1FYoungsterScript:
|
|||
jumptextfaceplayer GoldenrodPokecenter1FMobileOnYoungsterText ; $1074
|
||||
|
||||
GoldenrodPokecenter1FTeacherScript:
|
||||
special Mobile_DummyReturnFalse ; 569E2
|
||||
special CheckMobileAdapterStatusSpecial ; 569E2
|
||||
iftrue .mobile ; $EB69
|
||||
jumptextfaceplayer GoldenrodPokecenter1FMobileOffTeacherText ; $8273
|
||||
|
||||
|
|
@ -411,7 +411,7 @@ GoldenrodPokecenter1FTeacherScript:
|
|||
jumptextfaceplayer GoldenrodPokecenter1FMobileOnTeacherText ; $3274
|
||||
|
||||
GoldenrodPokecenter1FRockerScript:
|
||||
special Mobile_DummyReturnFalse ; 569EE
|
||||
special CheckMobileAdapterStatusSpecial ; 569EE
|
||||
iftrue .mobile ; $F769
|
||||
jumptextfaceplayer GoldenrodPokecenter1FMobileOffRockerText ; $D073
|
||||
|
||||
|
|
@ -419,7 +419,7 @@ GoldenrodPokecenter1FRockerScript:
|
|||
jumptextfaceplayer GoldenrodPokecenter1FMobileOnRockerText ; $5474
|
||||
|
||||
GoldenrodPokecenter1FGrampsScript:
|
||||
special Mobile_DummyReturnFalse ; 569FD
|
||||
special CheckMobileAdapterStatusSpecial ; 569FD
|
||||
iftrue .mobile ; $066A
|
||||
jumptextfaceplayer GoldenrodPokecenter1FMobileOffGrampsText ; $D674
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ RedGyarados:
|
|||
cry GYARADOS
|
||||
closetext
|
||||
loadwildmon GYARADOS, 30
|
||||
loadvar VAR_BATTLETYPE, BATTLETYPE_SHINY
|
||||
loadvar VAR_BATTLETYPE, BATTLETYPE_FORCESHINY
|
||||
startbattle
|
||||
ifequal LOSE, .NotBeaten
|
||||
disappear LAKEOFRAGE_GYARADOS
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ OlivineLighthouseSign:
|
|||
jumptext OlivineLighthouseSignText
|
||||
|
||||
OlivineCityBattleTowerSign:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptext OlivineCityBattleTowerSignPreMobileText
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ LinkReceptionistScript_Trade:
|
|||
writetext Text_TradeReceptionistIntro
|
||||
yesorno
|
||||
iffalse .Cancel
|
||||
special Mobile_DummyReturnFalse ; always returns false
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iffalse .NoMobile
|
||||
writetext Text_TradeReceptionistMobile
|
||||
special AskMobileOrCable
|
||||
|
|
@ -175,7 +175,7 @@ LinkReceptionistScript_Battle:
|
|||
writetext Text_BattleReceptionistIntro
|
||||
yesorno
|
||||
iffalse .Cancel
|
||||
special Mobile_DummyReturnFalse ; always returns false
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iffalse .NoMobile
|
||||
writetext Text_BattleReceptionistMobile
|
||||
special AskMobileOrCable
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ Route40_MapScripts:
|
|||
callback MAPCALLBACK_OBJECTS, Route40MonicaCallback
|
||||
|
||||
Route40MonicaCallback:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iffalse .nomobile
|
||||
clearevent EVENT_BATTLE_TOWER_OPEN_CIVILIANS
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ Route40Lass1Script:
|
|||
jumptextfaceplayer Route40Lass1Text
|
||||
|
||||
Route40PokefanMScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer Route40PokefanMText
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ Route40BattleTowerGate_MapScripts:
|
|||
callback MAPCALLBACK_OBJECTS, RouteBattleTowerGateShowSailorCallback
|
||||
|
||||
RouteBattleTowerGateShowSailorCallback:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iffalse .nomobile
|
||||
clearevent EVENT_BATTLE_TOWER_OPEN_CIVILIANS
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ Route40BattleTowerGateRockerScript:
|
|||
jumptextfaceplayer Route40BattleTowerGateUnusedText3
|
||||
|
||||
Route40BattleTowerGateTwinScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer Route40BattleTowerGateUnusedText1
|
||||
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ RuinsOfAlphResearchCenterScientist2Script:
|
|||
end
|
||||
|
||||
.GotAllUnown:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
writetext RuinsOfAlphResearchCenterUnusedText1 ; 5141
|
||||
waitbutton
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ SaffronPokecenter1FNurseScript:
|
|||
jumpstd PokecenterNurseScript
|
||||
|
||||
SaffronPokecenter1FTeacherScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer SaffronPokecenter1FTeacherText
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ VioletPokecenter1F_ElmsAideScript:
|
|||
sjump .AskTakeEgg
|
||||
|
||||
VioletPokecenter1FGameboyKidScript:
|
||||
special Mobile_DummyReturnFalse
|
||||
special CheckMobileAdapterStatusSpecial
|
||||
iftrue .mobile
|
||||
jumptextfaceplayer VioletPokecenterGameboyKidPreMobileText
|
||||
|
||||
|
|
|
|||
|
|
@ -407,9 +407,9 @@ Function11c1b9:
|
|||
|
||||
Function11c254:
|
||||
push af
|
||||
ld a, BANK(sEZChatIntroductionMessage)
|
||||
ld a, BANK(sEZChatMessages)
|
||||
call OpenSRAM
|
||||
ld hl, sEZChatIntroductionMessage
|
||||
ld hl, sEZChatMessages
|
||||
pop af
|
||||
; a * 4 * 2
|
||||
sla a
|
||||
|
|
@ -419,7 +419,7 @@ Function11c254:
|
|||
ld b, 0
|
||||
add hl, bc
|
||||
ld de, wEZChatWords
|
||||
ld bc, EZCHAT_WORD_COUNT * 2
|
||||
ld bc, EASY_CHAT_MESSAGE_LENGTH
|
||||
call CopyBytes
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
|
@ -528,8 +528,8 @@ EZChat_MasterLoop:
|
|||
depixel 3, 1, 2, 5
|
||||
ld a, SPRITE_ANIM_INDEX_EZCHAT_CURSOR
|
||||
call InitSpriteAnimStruct
|
||||
depixel 8, 1, 2, 5
|
||||
|
||||
depixel 8, 1, 2, 5
|
||||
ld a, SPRITE_ANIM_INDEX_EZCHAT_CURSOR
|
||||
call InitSpriteAnimStruct
|
||||
ld hl, SPRITEANIMSTRUCT_VAR1
|
||||
|
|
@ -2242,9 +2242,9 @@ EZChatMenu_MessageTypeMenu: ; Message Type Menu Controls (Intro/Battle Start/Win
|
|||
ld a, [hl]
|
||||
and a
|
||||
jr nz, .clicksound
|
||||
ld a, BANK(sEZChatIntroductionMessage)
|
||||
ld a, BANK(sEZChatMessages)
|
||||
call OpenSRAM
|
||||
ld hl, sEZChatIntroductionMessage
|
||||
ld hl, sEZChatMessages
|
||||
ld a, [wMenuCursorY]
|
||||
dec a
|
||||
sla a
|
||||
|
|
@ -2254,7 +2254,7 @@ EZChatMenu_MessageTypeMenu: ; Message Type Menu Controls (Intro/Battle Start/Win
|
|||
ld b, 0
|
||||
add hl, bc
|
||||
ld de, wEZChatWords
|
||||
ld c, EZCHAT_WORD_COUNT * 2
|
||||
ld c, EASY_CHAT_MESSAGE_LENGTH
|
||||
.save_message
|
||||
ld a, [de]
|
||||
ld [hli], a
|
||||
|
|
@ -3144,12 +3144,12 @@ AnimateEZChatCursor: ; EZChat cursor drawing code, extends all the way down to r
|
|||
ret
|
||||
|
||||
.nine
|
||||
ld d, -13 * 8
|
||||
ld d, -13 * TILE_WIDTH
|
||||
ld a, SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_7 ; $2c
|
||||
jr .eight_nine_load
|
||||
|
||||
.eight
|
||||
ld d, 2 * 8
|
||||
ld d, 2 * TILE_WIDTH
|
||||
ld a, SPRITE_ANIM_FRAMESET_EZCHAT_CURSOR_6 ; $2b
|
||||
.eight_nine_load
|
||||
push de
|
||||
|
|
@ -3161,7 +3161,7 @@ AnimateEZChatCursor: ; EZChat cursor drawing code, extends all the way down to r
|
|||
ld e, a
|
||||
sla a
|
||||
add e
|
||||
add 8 * 8
|
||||
add 8 * TILE_WIDTH
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld [hld], a
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ Function8b35d: ; unreferenced
|
|||
|
||||
Function8b363: ; unreferenced
|
||||
push bc
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
pop bc
|
||||
ret
|
||||
|
||||
|
|
|
|||
|
|
@ -2430,14 +2430,14 @@ Unknown_100feb:
|
|||
db -1 ; end
|
||||
|
||||
Unknown_100ff3:
|
||||
macro_100fc0 wdc41, 1
|
||||
macro_100fc0 wPlayerName, NAME_LENGTH
|
||||
macro_100fc0 wPlayerName, NAME_LENGTH
|
||||
macro_100fc0 wPlayerID, 2
|
||||
macro_100fc0 wSecretID, 2
|
||||
macro_100fc0 wPlayerGender, 1
|
||||
macro_100fc0 sPhoneNumber, PHONE_NUMBER_LENGTH
|
||||
macro_100fc0 sEZChatIntroductionMessage, EASY_CHAT_MESSAGE_LENGTH * 4
|
||||
macro_100fc0 wdc41, 1
|
||||
macro_100fc0 wPlayerName, NAME_LENGTH
|
||||
macro_100fc0 wPlayerName, NAME_LENGTH
|
||||
macro_100fc0 wPlayerID, 2
|
||||
macro_100fc0 wSecretID, 2
|
||||
macro_100fc0 wPlayerGender, 1
|
||||
macro_100fc0 sPhoneNumber, PHONE_NUMBER_LENGTH
|
||||
macro_100fc0 sEZChatMessages, EASY_CHAT_MESSAGE_LENGTH * 4
|
||||
db -1 ; end
|
||||
|
||||
Unknown_10102c:
|
||||
|
|
@ -5189,7 +5189,7 @@ Function102423:
|
|||
ret nc
|
||||
farcall SaveAfterLinkTrade
|
||||
farcall StubbedTrainerRankings_Trades
|
||||
farcall BackupMobileEventIndex
|
||||
farcall BackupGSBallFlag
|
||||
ld hl, wcd4b
|
||||
set 1, [hl]
|
||||
ld a, 0
|
||||
|
|
@ -7390,7 +7390,7 @@ MenuData_103648:
|
|||
db "CABLE@" ; "ケーブル@"
|
||||
|
||||
Function103654:
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
bit 7, c
|
||||
jr nz, .asm_103666
|
||||
ld hl, wcd2a
|
||||
|
|
@ -7405,7 +7405,7 @@ Function103654:
|
|||
ret
|
||||
|
||||
Mobile_SelectThreeMons:
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
bit 7, c
|
||||
jr z, .asm_10369b
|
||||
ld hl, MobileBattleMustPickThreeMonText
|
||||
|
|
@ -7665,8 +7665,7 @@ MobileBattleNoTimeLeftForLinkingText:
|
|||
text_end
|
||||
|
||||
MobileCheckRemainingBattleTime:
|
||||
; Returns carry if less than one minute remains
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
bit 7, c
|
||||
jr nz, .ok
|
||||
farcall MobileBattleGetRemainingTime
|
||||
|
|
@ -7714,7 +7713,7 @@ PickThreeMonForMobileBattleText:
|
|||
text_end
|
||||
|
||||
Function10387b:
|
||||
farcall Mobile_AlwaysReturnNotCarry
|
||||
farcall CheckMobileAdapterStatus
|
||||
bit 7, c
|
||||
ret nz
|
||||
farcall MobileBattleGetRemainingTime
|
||||
|
|
|
|||
|
|
@ -512,15 +512,15 @@ CalculateTrainerRankingsChecksum:
|
|||
pop bc
|
||||
ret
|
||||
|
||||
BackupMobileEventIndex:
|
||||
ld a, BANK(sMobileEventIndex)
|
||||
BackupGSBallFlag:
|
||||
ld a, BANK(sGSBallFlag)
|
||||
call OpenSRAM
|
||||
ld a, [sMobileEventIndex]
|
||||
ld a, [sGSBallFlag]
|
||||
push af
|
||||
ld a, BANK(sMobileEventIndexBackup)
|
||||
ld a, BANK(sGSBallFlagBackup)
|
||||
call OpenSRAM
|
||||
pop af
|
||||
ld [sMobileEventIndexBackup], a
|
||||
ld [sGSBallFlagBackup], a
|
||||
call CloseSRAM
|
||||
; ret
|
||||
|
||||
|
|
@ -535,15 +535,15 @@ BackupMobileEventIndex:
|
|||
call CloseSRAM;$2fad
|
||||
ret
|
||||
|
||||
RestoreMobileEventIndex:
|
||||
ld a, BANK(sMobileEventIndexBackup)
|
||||
RestoreGSBallFlag:
|
||||
ld a, BANK(sGSBallFlagBackup)
|
||||
call OpenSRAM
|
||||
ld a, [sMobileEventIndexBackup]
|
||||
ld a, [sGSBallFlagBackup]
|
||||
push af
|
||||
ld a, BANK(sMobileEventIndex)
|
||||
ld a, BANK(sGSBallFlag)
|
||||
call OpenSRAM
|
||||
pop af
|
||||
ld [sMobileEventIndex], a
|
||||
ld [sGSBallFlag], a
|
||||
call CloseSRAM
|
||||
; ret
|
||||
|
||||
|
|
@ -569,11 +569,11 @@ VerifyTrainerRankingsChecksum:
|
|||
cp [hl]
|
||||
ret
|
||||
|
||||
DeleteMobileEventIndex: ; after Call_041_6208 in jp
|
||||
ld a, BANK(sMobileEventIndex)
|
||||
ClearGSBallFlag:
|
||||
ld a, BANK(sGSBallFlag)
|
||||
call OpenSRAM
|
||||
xor a
|
||||
ld [sMobileEventIndex], a
|
||||
ld [sGSBallFlag], a
|
||||
call CloseSRAM
|
||||
; ret
|
||||
|
||||
|
|
@ -826,54 +826,51 @@ endr
|
|||
|
||||
; functions related to the cable club and various NPC scripts referencing communications
|
||||
|
||||
Mobile_DummyReturnFalse:
|
||||
call Function106331
|
||||
CheckMobileAdapterStatusSpecial:
|
||||
call CheckMobileAdapterStatus
|
||||
ld a, c
|
||||
ld [wScriptVar], a
|
||||
ret
|
||||
|
||||
Stubbed_Function106314:
|
||||
SetMobileAdapterStatus:
|
||||
; ret
|
||||
ld a, BANK(s4_b000)
|
||||
ld a, BANK(sMobileAdapterStatus)
|
||||
call OpenSRAM
|
||||
ld a, c
|
||||
cpl
|
||||
ld [s4_b000], a
|
||||
ld [sMobileAdapterStatus], a
|
||||
call CloseSRAM
|
||||
ld a, BANK(s7_a800)
|
||||
ld a, BANK(sMobileAdapterStatus2)
|
||||
call OpenSRAM
|
||||
ld a, c
|
||||
ld [s7_a800], a
|
||||
ld [sMobileAdapterStatus2], a
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
Mobile_AlwaysReturnNotCarry:
|
||||
CheckMobileAdapterStatus: ; unused
|
||||
; or a
|
||||
; ret
|
||||
|
||||
Function106331:
|
||||
; called by Mobile_DummyReturnFalse in Crystal-J
|
||||
; check ~[4:b000] == [7:a800]
|
||||
ld a, BANK(s4_b000)
|
||||
ld a, BANK(sMobileAdapterStatus)
|
||||
call OpenSRAM
|
||||
ld a, [s4_b000]
|
||||
ld a, [sMobileAdapterStatus]
|
||||
cpl
|
||||
ld b, a
|
||||
call CloseSRAM
|
||||
ld a, BANK(s7_a800)
|
||||
ld a, BANK(sMobileAdapterStatus2)
|
||||
call OpenSRAM
|
||||
ld a, [s7_a800]
|
||||
ld a, [sMobileAdapterStatus2]
|
||||
ld c, a
|
||||
call CloseSRAM
|
||||
ld a, c
|
||||
cp b
|
||||
jr nz, .nope
|
||||
|
||||
; check [s7_a800] != 0
|
||||
; check [sMobileAdapterStatus2] != 0
|
||||
and a
|
||||
jr z, .nope
|
||||
|
||||
; check !([s7_a800] & %01110000)
|
||||
; check !([sMobileAdapterStatus2] & %01110000)
|
||||
and %10001111
|
||||
cp c
|
||||
jr nz, .nope
|
||||
|
|
@ -929,7 +926,7 @@ Function106392:
|
|||
ret
|
||||
|
||||
.asm_1063a2
|
||||
call Mobile_AlwaysReturnNotCarry
|
||||
call CheckMobileAdapterStatus
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .asm_1063b4
|
||||
|
|
@ -1004,14 +1001,14 @@ Function106403:
|
|||
or c
|
||||
inc a
|
||||
ld c, a
|
||||
call Stubbed_Function106314
|
||||
call SetMobileAdapterStatus
|
||||
ld a, [wMobileCommsJumptableIndex]
|
||||
inc a
|
||||
ld [wMobileCommsJumptableIndex], a
|
||||
ret
|
||||
|
||||
.asm_106426
|
||||
call Mobile_AlwaysReturnNotCarry
|
||||
call CheckMobileAdapterStatus
|
||||
ld a, c
|
||||
and a
|
||||
jr z, .asm_106435
|
||||
|
|
@ -1022,7 +1019,7 @@ Function106403:
|
|||
|
||||
.asm_106435
|
||||
ld c, $0
|
||||
call Stubbed_Function106314
|
||||
call SetMobileAdapterStatus
|
||||
ld a, [wMobileCommsJumptableIndex]
|
||||
inc a
|
||||
ld [wMobileCommsJumptableIndex], a
|
||||
|
|
@ -1075,13 +1072,13 @@ Function106464::
|
|||
Function10649b: ; unreferenced
|
||||
ld a, [wTextboxFrame]
|
||||
maskbits NUM_FRAMES
|
||||
ld bc, 6 * LEN_1BPP_TILE
|
||||
ld bc, TEXTBOX_FRAME_TILES * LEN_1BPP_TILE
|
||||
ld hl, Frames
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, vTiles2 tile "┌" ; $79
|
||||
ld c, 6 ; "┌" to "┘"
|
||||
ld c, TEXTBOX_FRAME_TILES ; "┌" to "┘"
|
||||
ld b, BANK(Frames)
|
||||
call Function1064c3
|
||||
ld hl, vTiles2 tile " " ; $7f
|
||||
|
|
|
|||
|
|
@ -1516,9 +1516,9 @@ MobileTradeAnim_AnimateSentPulse:
|
|||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp -1 * 8 - 6
|
||||
cp -1 * TILE_WIDTH - 6
|
||||
jr z, .delete
|
||||
sub 1 * 8
|
||||
sub 1 * TILE_WIDTH
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
|
|
@ -1530,9 +1530,9 @@ MobileTradeAnim_AnimateOTPulse:
|
|||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp 9 * 8 + 2
|
||||
cp 9 * TILE_WIDTH + 2
|
||||
ret z
|
||||
add 1 * 8
|
||||
add 1 * TILE_WIDTH
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
|
|
|
|||
|
|
@ -7454,10 +7454,10 @@ Function11b3d9:
|
|||
jr .loop1
|
||||
|
||||
.skip
|
||||
ld b, 14 * 8
|
||||
ld b, 14 * TILE_WIDTH
|
||||
|
||||
.load_sprites
|
||||
ld a, 2 * 8 + 5
|
||||
ld a, 2 * TILE_WIDTH + 5
|
||||
add b
|
||||
pop hl
|
||||
ld [hli], a
|
||||
|
|
@ -7474,7 +7474,7 @@ Function11b3d9:
|
|||
jr z, .version2
|
||||
|
||||
.version1
|
||||
ld a, 19 * 8 + 3
|
||||
ld a, 19 * TILE_WIDTH + 3
|
||||
ld [hli], a
|
||||
ld a, [wcd4c]
|
||||
add $3c
|
||||
|
|
@ -7485,7 +7485,7 @@ Function11b3d9:
|
|||
ret
|
||||
|
||||
.version2
|
||||
ld a, 19 * 8 + 3
|
||||
ld a, 19 * TILE_WIDTH + 3
|
||||
ld [hli], a
|
||||
ld a, $39
|
||||
ld [hli], a
|
||||
|
|
|
|||
|
|
@ -867,8 +867,8 @@ INCBIN "gfx/mobile/stadium2_n64.2bpp"
|
|||
|
||||
Stadium2N64Tilemap:
|
||||
;if DEF(_CRYSTAL11)
|
||||
; Crystal 1.1 corrupted this tilemap by treating $0a bytes as Unix newlines,
|
||||
; and converting them to $0d $0a Windows newlines.
|
||||
; BUG: Crystal 1.1 corrupted this tilemap by treating $0a bytes as
|
||||
; Unix newlines, and converting them to $0d $0a Windows newlines.
|
||||
;INCBIN "gfx/mobile/stadium2_n64_corrupt.tilemap"
|
||||
;else
|
||||
INCBIN "gfx/mobile/stadium2_n64.tilemap"
|
||||
|
|
|
|||
|
|
@ -3028,7 +3028,7 @@ IncCrashCheckPointer_SaveChecksum:
|
|||
inc_crash_check_pointer_farcall SaveChecksum
|
||||
|
||||
IncCrashCheckPointer_SaveTrainerRankingsChecksum:
|
||||
inc_crash_check_pointer_farcall UpdateTrainerRankingsChecksum2, BackupMobileEventIndex
|
||||
inc_crash_check_pointer_farcall UpdateTrainerRankingsChecksum2, BackupGSBallFlag
|
||||
|
||||
Function17e3e0:
|
||||
call IncCrashCheckPointer
|
||||
|
|
@ -3919,7 +3919,7 @@ Function17f1d0:
|
|||
call Function17f4f6
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld a, $1
|
||||
ld a, BANK(wNamedObjectIndex)
|
||||
ldh [rSVBK], a
|
||||
ld [wNamedObjectIndex], a
|
||||
call GetPokemonName
|
||||
|
|
|
|||
24
ram/sram.asm
24
ram/sram.asm
|
|
@ -136,11 +136,11 @@ sHallOfFameEnd::
|
|||
|
||||
SECTION "SRAM Crystal Data", SRAM
|
||||
|
||||
sMobileEventIndex:: db
|
||||
sGSBallFlag:: db
|
||||
|
||||
sCrystalData:: ds wCrystalDataEnd - wCrystalData
|
||||
|
||||
sMobileEventIndexBackup:: db
|
||||
sGSBallFlagBackup:: db
|
||||
|
||||
|
||||
SECTION "SRAM Battle Tower", SRAM
|
||||
|
|
@ -204,10 +204,14 @@ SECTION "Boxes 8-14", SRAM
|
|||
SECTION "SRAM Mobile 1", SRAM
|
||||
|
||||
ds $7 ; former location of sCrystalData
|
||||
|
||||
sEZChatMessages::
|
||||
sEZChatIntroductionMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
sEZChatBeginBattleMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
sEZChatWinBattleMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
sEZChatLoseBattleMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
sEZChatBattleMessages::
|
||||
sEZChatBeginBattleMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
sEZChatWinBattleMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
sEZChatLoseBattleMessage:: ds EASY_CHAT_MESSAGE_LENGTH
|
||||
|
||||
sCardFolderPasscode:: ds 4
|
||||
sCardFolderData:: ds CARD_FOLDER_ENTRY_LENGTH * NUM_CARD_FOLDER_ENTRIES ; a03b
|
||||
sPhoneNumber:: ds PHONE_NUMBER_LENGTH
|
||||
|
|
@ -217,12 +221,12 @@ s4_a60e:: ds 2
|
|||
ds 496
|
||||
sMobileBattleTimer:: ds 3
|
||||
ds 797
|
||||
s4_b000:: ds 1
|
||||
sMobileAdapterStatus:: db
|
||||
|
||||
|
||||
SECTION "SRAM Mobile 2", SRAM
|
||||
|
||||
sMobileEventIndexJP:: db ; JP: location of sMobileEventIndex
|
||||
sGSBallFlagJP:: db
|
||||
|
||||
sTrainerRankings::
|
||||
sTrainerRankingGameTimeHOF:: ds 4
|
||||
|
|
@ -270,7 +274,7 @@ sTrainerRankingBugContestScore:: ds 2
|
|||
sTrainerRankingsChecksum:: ds 2
|
||||
sTrainerRankingsEnd::
|
||||
|
||||
sMobileEventIndexBackupJP:: db ; JP: location of sMobileEventIndexBackup
|
||||
sGSBallFlagBackupJP:: db
|
||||
|
||||
sTrainerRankingsBackup:: ds sTrainerRankingsEnd - sTrainerRankings
|
||||
|
||||
|
|
@ -388,8 +392,8 @@ s6_a006:: ds $1000
|
|||
SECTION "SRAM Mobile 4", SRAM
|
||||
|
||||
; Bank 7 in bank 6??
|
||||
s7_a000:: db
|
||||
sMobileStadiumFlag:: db
|
||||
s7_a001:: ds $799
|
||||
s7_a800:: ds $800
|
||||
sMobileAdapterStatus2:: ds $800
|
||||
s7_b000:: ds $fea
|
||||
s7_bfea:: ds 1
|
||||
|
|
|
|||
41
ram/wram.asm
41
ram/wram.asm
|
|
@ -617,8 +617,8 @@ wBattleEnd::
|
|||
SECTION UNION "Miscellaneous", WRAM0
|
||||
|
||||
; link patch lists
|
||||
wPlayerPatchLists:: ds 200
|
||||
wOTPatchLists:: ds 200
|
||||
wPlayerPatchLists:: ds SERIAL_PATCH_LIST_LENGTH
|
||||
wOTPatchLists:: ds SERIAL_PATCH_LIST_LENGTH
|
||||
|
||||
|
||||
SECTION UNION "Miscellaneous", WRAM0
|
||||
|
|
@ -756,7 +756,8 @@ if DEF(_CRYSTAL11)
|
|||
wPokedexStatus:: db
|
||||
wPokedexDataEnd::
|
||||
else
|
||||
wPokedexDataEnd:: ds 1
|
||||
wPokedexDataEnd::
|
||||
ds 1
|
||||
endc
|
||||
ds 2
|
||||
|
||||
|
|
@ -1018,10 +1019,6 @@ for n, 1, PARTY_LENGTH + 1
|
|||
wTimeCapsulePartyMon{d:n}Nickname:: ds MON_NAME_LENGTH
|
||||
endr
|
||||
|
||||
NEXTU
|
||||
; link patch lists
|
||||
wLinkPatchList1:: ds SERIAL_PATCH_LIST_LENGTH
|
||||
wLinkPatchList2:: ds SERIAL_PATCH_LIST_LENGTH
|
||||
ENDU
|
||||
|
||||
|
||||
|
|
@ -1046,13 +1043,14 @@ wLinkPlayerMail::
|
|||
wLinkPlayerMailPreamble:: ds SERIAL_MAIL_PREAMBLE_LENGTH
|
||||
wLinkPlayerMailMessages:: ds (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
|
||||
wLinkPlayerMailMetadata:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1)) * PARTY_LENGTH
|
||||
wLinkPlayerMailPatchSet:: ds 103
|
||||
wLinkPlayerMailPatchSet:: ds 100 + SERIAL_PATCH_PREAMBLE_LENGTH
|
||||
wLinkPlayerMailEnd::
|
||||
ds 10
|
||||
wLinkOTMail::
|
||||
wLinkOTMailMessages:: ds (MAIL_MSG_LENGTH + 1) * PARTY_LENGTH
|
||||
wLinkOTMailMetadata:: ds (MAIL_STRUCT_LENGTH - (MAIL_MSG_LENGTH + 1)) * PARTY_LENGTH
|
||||
wOTPlayerMailPatchSet:: ds 103 + SERIAL_MAIL_PREAMBLE_LENGTH
|
||||
wLinkOTMailPatchSet:: ds 100 + SERIAL_PATCH_PREAMBLE_LENGTH
|
||||
wLinkOTMailPadding:: ds SERIAL_MAIL_PREAMBLE_LENGTH
|
||||
wLinkOTMailEnd::
|
||||
ds 10
|
||||
|
||||
|
|
@ -1091,7 +1089,7 @@ ENDU
|
|||
ds 138
|
||||
|
||||
wMysteryGiftPartnerData::
|
||||
wMysteryGiftGameVersion:: db
|
||||
wMysteryGiftPartnerGameVersion:: db
|
||||
wMysteryGiftPartnerID:: dw
|
||||
wMysteryGiftPartnerName:: ds NAME_LENGTH
|
||||
wMysteryGiftPartnerDexCaught:: db
|
||||
|
|
@ -1105,7 +1103,7 @@ wMysteryGiftPartnerDataEnd::
|
|||
ds 60
|
||||
|
||||
wMysteryGiftPlayerData::
|
||||
ds 1
|
||||
wMysteryGiftPlayerGameVersion:: db
|
||||
wMysteryGiftPlayerID:: dw
|
||||
wMysteryGiftPlayerName:: ds NAME_LENGTH
|
||||
wMysteryGiftPlayerDexCaught:: db
|
||||
|
|
@ -1596,8 +1594,10 @@ wPrevDexEntryJumptableIndex:: db
|
|||
if DEF(_CRYSTAL11)
|
||||
wPrevDexEntryBackup:: db
|
||||
else
|
||||
wPrevDexEntryBackup::
|
||||
wPokedexStatus:: db
|
||||
; BUG: Crystal 1.0 reused the same byte in WRAM for
|
||||
; wPokedexStatus and wPrevDexEntryBackup.
|
||||
wPokedexStatus::
|
||||
wPrevDexEntryBackup:: db
|
||||
endc
|
||||
wUnusedPokedexByte:: db
|
||||
|
||||
|
|
@ -2057,8 +2057,15 @@ wSwitchItemBuffer:: ds 2 ; may store 1 or 2 bytes
|
|||
SECTION UNION "Miscellaneous WRAM 1", WRAMX
|
||||
|
||||
; switching pokemon in party
|
||||
; may store NAME_LENGTH, PARTYMON_STRUCT_LENGTH, or MAIL_STRUCT_LENGTH bytes
|
||||
wSwitchMonBuffer:: ds 48
|
||||
; may store a name, partymon, or mail
|
||||
wSwitchMonBuffer::
|
||||
UNION
|
||||
ds NAME_LENGTH
|
||||
NEXTU
|
||||
ds PARTYMON_STRUCT_LENGTH
|
||||
NEXTU
|
||||
ds MAIL_STRUCT_LENGTH
|
||||
ENDU
|
||||
|
||||
|
||||
SECTION UNION "Miscellaneous WRAM 1", WRAMX
|
||||
|
|
@ -2694,11 +2701,15 @@ ENDU
|
|||
wTempEnemyMonSpecies:: db
|
||||
wTempBattleMonSpecies:: db
|
||||
|
||||
UNION
|
||||
wOTLinkBattleRNData:: ds SERIAL_RN_PREAMBLE_LENGTH + SERIAL_RNS_LENGTH
|
||||
NEXTU
|
||||
wEnemyMon:: battle_struct wEnemyMon
|
||||
wEnemyMonBaseStats:: ds NUM_EXP_STATS
|
||||
wEnemyMonCatchRate:: db
|
||||
wEnemyMonBaseExp:: db
|
||||
wEnemyMonEnd::
|
||||
ENDU
|
||||
|
||||
wBattleMode::
|
||||
; 0: overworld
|
||||
|
|
|
|||
34
tools/dupeframes.py
Executable file
34
tools/dupeframes.py
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Usage: python dupeframes.py
|
||||
|
||||
Check for duplicate frames in Pokemon sprites (gfx/pokemon/*/front.png).
|
||||
"""
|
||||
|
||||
import sys
|
||||
import glob
|
||||
|
||||
import png
|
||||
|
||||
def check_duplicate_frames(filename):
|
||||
with open(filename, 'rb') as file:
|
||||
width, height, rows = png.Reader(file).asRGBA8()[:3]
|
||||
rows = list(rows)
|
||||
if height % width:
|
||||
print(f'{filename} is not a vertical strip of square frames!', file=sys.stderr)
|
||||
return
|
||||
num_frames = height // width
|
||||
frames = [rows[i*width:(i+1)*width] for i in range(num_frames)]
|
||||
for i in range(num_frames):
|
||||
for j in range(i + 1, num_frames):
|
||||
if frames[i] == frames[j]:
|
||||
print(f'{filename}: frame {j} is a duplicate of frame {i}', file=sys.stderr)
|
||||
|
||||
def main():
|
||||
for filename in sorted(glob.glob('gfx/pokemon/*/front.png')):
|
||||
check_duplicate_frames(filename)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -38,17 +38,25 @@ function register_bank(amount) {
|
|||
printf "Bank %3d: %5d/16384 (%.2f%%)\n", bank_num, amount, amount * 100 / 16384
|
||||
}
|
||||
}
|
||||
function register_bank_str(str) {
|
||||
if (str ~ /\$[0-9A-F]+/) {
|
||||
register_bank(strtonum("0x" substr(str, 2)))
|
||||
} else {
|
||||
printf "Malformed number? \"%s\" does not start with '$'\n", str
|
||||
}
|
||||
}
|
||||
|
||||
rom_bank && toupper($0) ~ /^[ \t]*EMPTY$/ {
|
||||
# Empty bank
|
||||
register_bank(16384)
|
||||
}
|
||||
rom_bank && toupper($0) ~ /^[ \t]*SLACK:[ \t]/ {
|
||||
if ($2 ~ /\$[0-9A-F]+/) {
|
||||
register_bank(strtonum("0x" substr($2, 2)))
|
||||
} else {
|
||||
printf "Malformed slack line? \"%s\" does not start with '$'\n", $2
|
||||
}
|
||||
# Old (rgbds <=0.6.0) end-of-bank free space
|
||||
register_bank_str($2)
|
||||
}
|
||||
rom_bank && toupper($0) ~ /^[ \t]*TOTAL EMPTY:[ \t]/ {
|
||||
# New (rgbds >=0.6.1) total free space
|
||||
register_bank_str($3)
|
||||
}
|
||||
|
||||
END {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "common.h"
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
void parse_args(int argc, char *argv[], bool *strict) {
|
||||
struct option long_options[] = {
|
||||
{"strict", no_argument, 0, 's'},
|
||||
|
|
@ -40,31 +42,47 @@ void scan_file(const char *filename, bool strict) {
|
|||
fclose(f);
|
||||
contents[size] = '\0';
|
||||
|
||||
for (char *ptr = contents; ptr && ptr - contents < size; ptr++) {
|
||||
bool is_incbin = false, is_include = false;
|
||||
for (char *ptr = contents; ptr && ptr < contents + size; ptr++) {
|
||||
ptr = strpbrk(ptr, ";\"Ii");
|
||||
if (!ptr) {
|
||||
break;
|
||||
}
|
||||
switch (*ptr) {
|
||||
case ';':
|
||||
ptr = strchr(ptr, '\n');
|
||||
if (!ptr) {
|
||||
fprintf(stderr, "%s: no newline at end of file\n", filename);
|
||||
}
|
||||
break;
|
||||
case '"':
|
||||
ptr++;
|
||||
ptr = strchr(ptr, '"');
|
||||
if (ptr) {
|
||||
// Skip comments until the end of the line
|
||||
ptr += strcspn(ptr + 1, "\r\n");
|
||||
if (*ptr) {
|
||||
ptr++;
|
||||
} else {
|
||||
fprintf(stderr, "%s: unterminated string\n", filename);
|
||||
}
|
||||
break;
|
||||
|
||||
case '"':
|
||||
// Skip string literal until the closing quote
|
||||
ptr += strcspn(ptr + 1, "\"");
|
||||
if (*ptr) {
|
||||
ptr++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'I':
|
||||
case 'i':
|
||||
is_incbin = !strncmp(ptr, "INCBIN", 6) || !strncmp(ptr, "incbin", 6);
|
||||
is_include = !strncmp(ptr, "INCLUDE", 7) || !strncmp(ptr, "include", 7);
|
||||
/* empty statement between the label and the variable declaration */;
|
||||
// Check that an INCLUDE/INCBIN starts as its own token
|
||||
char before = ptr > contents ? *(ptr - 1) : '\n';
|
||||
if (!isspace((unsigned)before) && before != ':') {
|
||||
break;
|
||||
}
|
||||
bool is_incbin = !strncmp(ptr, "INCBIN", 6) || !strncmp(ptr, "incbin", 6);
|
||||
bool is_include = !strncmp(ptr, "INCLUDE", 7) || !strncmp(ptr, "include", 7);
|
||||
if (is_incbin || is_include) {
|
||||
ptr = strchr(ptr, '"');
|
||||
if (ptr) {
|
||||
// Check that an INCLUDE/INCBIN ends as its own token
|
||||
ptr += is_include ? 7 : 6;
|
||||
if (!isspace((unsigned)*ptr) && *ptr != '"') {
|
||||
break;
|
||||
}
|
||||
ptr += strspn(ptr, " \t");
|
||||
if (*ptr == '"') {
|
||||
// Print the file path and recursively scan INCLUDEs
|
||||
ptr++;
|
||||
char *include_path = ptr;
|
||||
size_t length = strcspn(ptr, "\"");
|
||||
|
|
@ -74,6 +92,12 @@ void scan_file(const char *filename, bool strict) {
|
|||
if (is_include) {
|
||||
scan_file(include_path, strict);
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "%s: no file path after INC%s\n", filename, is_include ? "LUDE" : "BIN");
|
||||
// Continue to process a comment
|
||||
if (*ptr == ';') {
|
||||
ptr--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user