Merge pull request #524 from AsparagusEduardo/pokefirered_pokeemeraldSync

Sync with pokeemerald
This commit is contained in:
GriffinR
2022-07-30 09:07:28 -04:00
committed by GitHub
169 changed files with 5951 additions and 5003 deletions
+10 -10
View File
@@ -183,7 +183,7 @@
.byte \battler .byte \battler
.endm .endm
.macro atk24 ptr:req .macro checkteamslost ptr:req
.byte 0x24 .byte 0x24
.4byte \ptr .4byte \ptr
.endm .endm
@@ -503,7 +503,7 @@
.byte \battler .byte \battler
.endm .endm
.macro atk57 .macro endlinkbattle
.byte 0x57 .byte 0x57
.endm .endm
@@ -539,7 +539,7 @@
.4byte \addr .4byte \addr
.endm .endm
.macro atk5E battler:req .macro updatebattlermoves battler:req
.byte 0x5e .byte 0x5e
.byte \battler .byte \battler
.endm .endm
@@ -1259,8 +1259,8 @@
various \battler, VARIOUS_GET_MOVE_TARGET various \battler, VARIOUS_GET_MOVE_TARGET
.endm .endm
.macro various4 battler:req .macro getbattlerfainted battler:req
various \battler, 4 various \battler, VARIOUS_GET_BATTLER_FAINTED
.endm .endm
.macro resetintimidatetracebits battler:req .macro resetintimidatetracebits battler:req
@@ -1271,8 +1271,8 @@
various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.endm .endm
.macro various7 battler:req .macro resetplayerfainted battler:req
various \battler, 7 various \battler, VARIOUS_RESET_PLAYER_FAINTED
.endm .endm
.macro various8 battler:req .macro various8 battler:req
@@ -1288,11 +1288,11 @@
.endm .endm
.macro checkpokeflute battler:req .macro checkpokeflute battler:req
various \battler, 11 various \battler, VARIOUS_CHECK_POKEFLUTE
.endm .endm
.macro waitfanfare battler:req .macro waitfanfare battler:req
various \battler, 12 various \battler, VARIOUS_WAIT_FANFARE
.endm .endm
@ helpful macros @ helpful macros
@@ -1301,7 +1301,7 @@
.endm .endm
.macro setmoveeffect effect:req .macro setmoveeffect effect:req
setbyte cEFFECT_CHOOSER \effect setbyte cEFFECT_CHOOSER, \effect
.endm .endm
.macro chosenstatus1animation battler:req, status:req .macro chosenstatus1animation battler:req, status:req
+2 -2
View File
@@ -737,7 +737,7 @@ AI_CheckViability::
if_effect EFFECT_PSYCH_UP, AI_CV_PsychUp if_effect EFFECT_PSYCH_UP, AI_CV_PsychUp
if_effect EFFECT_MIRROR_COAT, AI_CV_MirrorCoat if_effect EFFECT_MIRROR_COAT, AI_CV_MirrorCoat
if_effect EFFECT_SKULL_BASH, AI_CV_ChargeUpMove if_effect EFFECT_SKULL_BASH, AI_CV_ChargeUpMove
if_effect EFFECT_SOLARBEAM, AI_CV_ChargeUpMove if_effect EFFECT_SOLAR_BEAM, AI_CV_ChargeUpMove
if_effect EFFECT_SEMI_INVULNERABLE, AI_CV_SemiInvulnerable if_effect EFFECT_SEMI_INVULNERABLE, AI_CV_SemiInvulnerable
if_effect EFFECT_SOFTBOILED, AI_CV_Heal if_effect EFFECT_SOFTBOILED, AI_CV_Heal
if_effect EFFECT_FAKE_OUT, AI_CV_FakeOut if_effect EFFECT_FAKE_OUT, AI_CV_FakeOut
@@ -3097,7 +3097,7 @@ AI_HPAware_DiscouragedEffectsWhenLowHP::
.byte EFFECT_BELLY_DRUM .byte EFFECT_BELLY_DRUM
.byte EFFECT_PSYCH_UP .byte EFFECT_PSYCH_UP
.byte EFFECT_MIRROR_COAT .byte EFFECT_MIRROR_COAT
.byte EFFECT_SOLARBEAM .byte EFFECT_SOLAR_BEAM
.byte EFFECT_ERUPTION .byte EFFECT_ERUPTION
.byte EFFECT_TICKLE .byte EFFECT_TICKLE
.byte EFFECT_COSMIC_POWER .byte EFFECT_COSMIC_POWER
+32 -32
View File
@@ -5591,46 +5591,46 @@ SolarBeamAbsorbEffect::
return return
SolarBeamUnleash:: SolarBeamUnleash::
call SetSolarbeamBg call SetSolarBeamBg
panse_1B SE_M_SOLAR_BEAM, 192, 63, 2, 0 panse_1B SE_M_SOLAR_BEAM, 192, 63, 2, 0
createvisualtask AnimTask_CreateSmallSolarbeamOrbs, 5, createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5,
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1
delay 4 delay 4
createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 10, RGB(25, 31, 0) createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 10, RGB(25, 31, 0)
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2
delay 4 delay 4
createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 65, 1 createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 65, 1
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 5 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 5
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6
delay 4 delay 4
call SolarBeamUnleash1 call SolarBeamUnleash1
call SolarBeamUnleash1 call SolarBeamUnleash1
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_BlendSelected, 10, 4, 1, 10, 0, RGB(25, 31, 0) createvisualtask AnimTask_BlendSelected, 10, 4, 1, 10, 0, RGB(25, 31, 0)
call UnsetSolarbeamBg call UnsetSolarBeamBg
goto SolarBeamEnd goto SolarBeamEnd
SolarBeamUnleash1:: SolarBeamUnleash1::
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 5 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 5
delay 4 delay 4
createsprite gSolarbeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6
delay 4 delay 4
return return
@@ -10407,29 +10407,29 @@ UnsetSkyBg::
waitbgfadein waitbgfadein
return return
SetSolarbeamBg:: SetSolarBeamBg::
createvisualtask AnimTask_IsContest, 2, createvisualtask AnimTask_IsContest, 2,
jumpargeq 7, 1, SetSolarbeamBgContest jumpargeq 7, 1, SetSolarBeamBgContest
createvisualtask AnimTask_IsTargetPlayerSide, 2, createvisualtask AnimTask_IsTargetPlayerSide, 2,
jumpargeq 7, 0, SetSolarbeamBgOpponent jumpargeq 7, 0, SetSolarBeamBgOpponent
goto SetSolarbeamBgPlayer goto SetSolarBeamBgPlayer
SetSolarbeamBgContinue:: SetSolarBeamBgContinue::
waitbgfadein waitbgfadein
return return
SetSolarbeamBgContest:: SetSolarBeamBgContest::
fadetobg BG_SOLARBEAM_CONTESTS fadetobg BG_SOLAR_BEAM_CONTESTS
goto SetSolarbeamBgContinue goto SetSolarBeamBgContinue
SetSolarbeamBgPlayer:: SetSolarBeamBgPlayer::
fadetobg BG_SOLARBEAM_PLAYER fadetobg BG_SOLAR_BEAM_PLAYER
goto SetSolarbeamBgContinue goto SetSolarBeamBgContinue
SetSolarbeamBgOpponent:: SetSolarBeamBgOpponent::
fadetobg BG_SOLARBEAM_OPPONENT fadetobg BG_SOLAR_BEAM_OPPONENT
goto SetSolarbeamBgContinue goto SetSolarBeamBgContinue
UnsetSolarbeamBg:: UnsetSolarBeamBg::
restorebg restorebg
waitbgfadein waitbgfadein
return return
+65 -65
View File
@@ -171,7 +171,7 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectFutureSight .4byte BattleScript_EffectFutureSight
.4byte BattleScript_EffectGust .4byte BattleScript_EffectGust
.4byte BattleScript_EffectFlinchMinimizeHit .4byte BattleScript_EffectFlinchMinimizeHit
.4byte BattleScript_EffectSolarbeam .4byte BattleScript_EffectSolarBeam
.4byte BattleScript_EffectThunder .4byte BattleScript_EffectThunder
.4byte BattleScript_EffectTeleport .4byte BattleScript_EffectTeleport
.4byte BattleScript_EffectBeatUp .4byte BattleScript_EffectBeatUp
@@ -495,7 +495,7 @@ BattleScript_EffectStatUp::
BattleScript_EffectStatUpAfterAtkCanceler:: BattleScript_EffectStatUpAfterAtkCanceler::
attackstring attackstring
ppreduce ppreduce
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_StatUpEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_StatUpEnd
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpAttackAnim jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpAttackAnim
pause 0x20 pause 0x20
goto BattleScript_StatUpPrintString goto BattleScript_StatUpPrintString
@@ -542,7 +542,7 @@ BattleScript_EffectStatDown::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring attackstring
ppreduce ppreduce
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_StatDownEnd statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_StatDownEnd
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 2, BattleScript_StatDownDoAnim jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 2, BattleScript_StatDownDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_StatDownEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 3, BattleScript_StatDownEnd
pause 0x20 pause 0x20
@@ -1503,17 +1503,17 @@ BattleScript_CurseTrySpeed::
attackanimation attackanimation
waitanimation waitanimation
setstatchanger STAT_SPEED, 1, TRUE setstatchanger STAT_SPEED, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseTryAttack statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseTryAttack
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_CurseTryAttack:: BattleScript_CurseTryAttack::
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseTryDefence statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseTryDefence
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_CurseTryDefence:: BattleScript_CurseTryDefence::
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CurseEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_CurseEnd:: BattleScript_CurseEnd::
@@ -1625,7 +1625,7 @@ BattleScript_EffectSwagger::
attackanimation attackanimation
waitanimation waitanimation
setstatchanger STAT_ATK, 2, FALSE setstatchanger STAT_ATK, 2, FALSE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_SwaggerTryConfuse statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SwaggerTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SwaggerTryConfuse jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SwaggerTryConfuse
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -1703,7 +1703,7 @@ BattleScript_EffectBatonPass::
attackcanceler attackcanceler
attackstring attackstring
ppreduce ppreduce
jumpifcantswitch BS_ATTACKER | ATK4F_DONT_CHECK_STATUSES, BattleScript_ButItFailed jumpifcantswitch BS_ATTACKER | SWITCH_IGNORE_ESCAPE_PREVENTION, BattleScript_ButItFailed
attackanimation attackanimation
waitanimation waitanimation
openpartyscreen BS_ATTACKER, BattleScript_ButItFailed openpartyscreen BS_ATTACKER, BattleScript_ButItFailed
@@ -1820,7 +1820,7 @@ BattleScript_EffectSkullBash::
setbyte sTWOTURN_STRINGID, 2 setbyte sTWOTURN_STRINGID, 2
call BattleScriptFirstChargingTurn call BattleScriptFirstChargingTurn
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_SkullBashEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_SkullBashEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SkullBashEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SkullBashEnd
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -1908,18 +1908,18 @@ BattleScript_EffectFlinchMinimizeHit::
setbyte sDMG_MULTIPLIER, 2 setbyte sDMG_MULTIPLIER, 2
goto BattleScript_FlinchEffect goto BattleScript_FlinchEffect
BattleScript_EffectSolarbeam:: BattleScript_EffectSolarBeam::
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarBeamDecideTurn
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarBeamDecideTurn
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, 96, BattleScript_SolarbeamOnFirstTurn jumpifhalfword CMP_COMMON_BITS, gBattleWeather, 96, BattleScript_SolarBeamOnFirstTurn
BattleScript_SolarbeamDecideTurn:: BattleScript_SolarBeamDecideTurn::
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
setbyte sTWOTURN_STRINGID, 1 setbyte sTWOTURN_STRINGID, 1
call BattleScriptFirstChargingTurn call BattleScriptFirstChargingTurn
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_SolarbeamOnFirstTurn:: BattleScript_SolarBeamOnFirstTurn::
orword gHitMarker, HITMARKER_CHARGING orword gHitMarker, HITMARKER_CHARGING
setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER setmoveeffect MOVE_EFFECT_CHARGING | MOVE_EFFECT_AFFECTS_USER
seteffectprimary seteffectprimary
@@ -2028,7 +2028,7 @@ BattleScript_EffectDefenseCurl::
ppreduce ppreduce
setdefensecurlbit setdefensecurlbit
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DefenseCurlDoStatUpAnim statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DefenseCurlDoStatUpAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpPrintString jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_StatUpPrintString
attackanimation attackanimation
waitanimation waitanimation
@@ -2170,7 +2170,7 @@ BattleScript_EffectFlatter::
attackanimation attackanimation
waitanimation waitanimation
setstatchanger STAT_SPATK, 1, FALSE setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_FlatterTryConfuse statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_FlatterTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_FlatterTryConfuse jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_FlatterTryConfuse
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -2223,17 +2223,17 @@ BattleScript_EffectMemento::
waitanimation waitanimation
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_MementoSubstituteInvulnerable jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_MementoSubstituteInvulnerable
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_ONLY_MULTIPLE playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_ATK, 2, TRUE setstatchanger STAT_ATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_MementoSkipStatDown1 statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_MementoSkipStatDown1
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_MementoSkipStatDown1 jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_MementoSkipStatDown1
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_MementoSkipStatDown1:: BattleScript_MementoSkipStatDown1::
playstatchangeanimation BS_TARGET, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_SPATK, 2, TRUE setstatchanger STAT_SPATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_MementoSkipStatDown2 statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_MementoSkipStatDown2
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_MementoSkipStatDown2 jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_MementoSkipStatDown2
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
@@ -2667,17 +2667,17 @@ BattleScript_TickleDoMoveAnim::
attackanimation attackanimation
waitanimation waitanimation
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE setstatchanger STAT_ATK, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_TickleTryLowerDef statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TickleTryLowerDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleTryLowerDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_TickleTryLowerDef:: BattleScript_TickleTryLowerDef::
playstatchangeanimation BS_TARGET, BIT_DEF, ATK48_STAT_NEGATIVE playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE
setstatchanger STAT_DEF, 1, TRUE setstatchanger STAT_DEF, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_TickleEnd statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_TickleEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_TickleEnd
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
@@ -2703,13 +2703,13 @@ BattleScript_CosmicPowerDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0 playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CosmicPowerTrySpDef statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CosmicPowerTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerTrySpDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_CosmicPowerTrySpDef:: BattleScript_CosmicPowerTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CosmicPowerEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CosmicPowerEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
@@ -2732,13 +2732,13 @@ BattleScript_BulkUpDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0 playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BulkUpTryDef statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BulkUpTryDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpTryDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_BulkUpTryDef:: BattleScript_BulkUpTryDef::
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BulkUpEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BulkUpEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
@@ -2757,13 +2757,13 @@ BattleScript_CalmMindDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0 playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0
setstatchanger STAT_SPATK, 1, FALSE setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CalmMindTrySpDef statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CalmMindTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindTrySpDef jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_CalmMindTrySpDef:: BattleScript_CalmMindTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CalmMindEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_CalmMindEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
@@ -2789,13 +2789,13 @@ BattleScript_DragonDanceDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0 playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DragonDanceTrySpeed statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DragonDanceTrySpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceTrySpeed jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_DragonDanceTrySpeed:: BattleScript_DragonDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE setstatchanger STAT_SPEED, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DragonDanceEnd statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_DragonDanceEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceEnd jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
@@ -2837,7 +2837,7 @@ BattleScript_GiveExp::
end2 end2
BattleScript_HandleFaintedMon:: BattleScript_HandleFaintedMon::
atk24 BattleScript_LinkBattleHandleFaint checkteamslost BattleScript_LinkBattleHandleFaint
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd
jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother
jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_PLAYER_FAINTED, BattleScript_FaintedMonTryChooseAnother jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_PLAYER_FAINTED, BattleScript_FaintedMonTryChooseAnother
@@ -2862,7 +2862,7 @@ BattleScript_FaintedMonTryChooseAnother::
yesnobox yesnobox
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_FaintedMonChooseAnother jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_FaintedMonChooseAnother
setatktoplayer0 setatktoplayer0
openpartyscreen BS_ATTACKER | OPEN_PARTY_ALLOW_CANCEL, BattleScript_FaintedMonChooseAnother openpartyscreen BS_ATTACKER | PARTY_SCREEN_OPTIONAL, BattleScript_FaintedMonChooseAnother
switchhandleorder BS_ATTACKER, 2 switchhandleorder BS_ATTACKER, 2
jumpifbyte CMP_EQUAL, gBattleCommunication, 6, BattleScript_FaintedMonChooseAnother jumpifbyte CMP_EQUAL, gBattleCommunication, 6, BattleScript_FaintedMonChooseAnother
atknameinbuff1 atknameinbuff1
@@ -2892,7 +2892,7 @@ BattleScript_FaintedMonChooseAnother::
hidepartystatussummary BS_FAINTED hidepartystatussummary BS_FAINTED
switchinanim BS_FAINTED, 0 switchinanim BS_FAINTED, 0
waitstate waitstate
various7 BS_ATTACKER resetplayerfainted BS_ATTACKER
switchineffects BS_FAINTED switchineffects BS_FAINTED
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd
cancelallactions cancelallactions
@@ -2900,10 +2900,10 @@ BattleScript_FaintedMonEnd::
end2 end2
BattleScript_LinkBattleHandleFaint:: BattleScript_LinkBattleHandleFaint::
openpartyscreen BS_UNKNOWN_5, BattleScript_LinkBattleHandleFaintStart openpartyscreen BS_FAINTED_LINK_MULTIPLE_1, BattleScript_LinkBattleHandleFaintStart
BattleScript_LinkBattleHandleFaintStart:: BattleScript_LinkBattleHandleFaintStart::
switchhandleorder BS_FAINTED, 0 switchhandleorder BS_FAINTED, 0
openpartyscreen BS_UNKNOWN_6, BattleScript_LinkBattleFaintedMonEnd openpartyscreen BS_FAINTED_LINK_MULTIPLE_2, BattleScript_LinkBattleFaintedMonEnd
switchhandleorder BS_FAINTED, 0 switchhandleorder BS_FAINTED, 0
BattleScript_LinkBattleFaintedMonLoop:: BattleScript_LinkBattleFaintedMonLoop::
switchhandleorder BS_FAINTED, 2 switchhandleorder BS_FAINTED, 2
@@ -2996,7 +2996,7 @@ BattleScript_BattleTowerLostLostSkipDouble::
BattleScript_LinkBattleWonOrLost:: BattleScript_LinkBattleWonOrLost::
printstring STRINGID_BATTLEEND printstring STRINGID_BATTLEEND
waitmessage 0x40 waitmessage 0x40
atk57 endlinkbattle
waitmessage 0x40 waitmessage 0x40
end2 end2
@@ -3112,7 +3112,7 @@ BattleScript_PursuitDmgOnSwitchOut::
waitmessage 0x40 waitmessage 0x40
tryfaintmon BS_TARGET, 0, NULL tryfaintmon BS_TARGET, 0, NULL
moveendfromto 3, 6 moveendfromto 3, 6
various4 BS_TARGET getbattlerfainted BS_TARGET
jumpifbyte CMP_EQUAL, gBattleCommunication, 0, BattleScript_PursuitSwitchRivalSkip jumpifbyte CMP_EQUAL, gBattleCommunication, 0, BattleScript_PursuitSwitchRivalSkip
setbyte sGIVEEXP_STATE, 0 setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET getexp BS_TARGET
@@ -3182,19 +3182,19 @@ BattleScript_DamagingWeatherLoop::
jumpifword CMP_EQUAL, gBattleMoveDamage, NULL, BattleScript_DamagingWeatherContinuesEnd jumpifword CMP_EQUAL, gBattleMoveDamage, NULL, BattleScript_DamagingWeatherContinuesEnd
printfromtable gSandstormHailDmgStringIds printfromtable gSandstormHailDmgStringIds
waitmessage 0x40 waitmessage 0x40
orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
effectivenesssound effectivenesssound
hitanimation BS_ATTACKER hitanimation BS_ATTACKER
healthbarupdate BS_ATTACKER healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL tryfaintmon BS_ATTACKER, 0, NULL
atk24 BattleScript_DamagingWeatherContinuesEnd checkteamslost BattleScript_DamagingWeatherContinuesEnd
BattleScript_DamagingWeatherContinuesEnd:: BattleScript_DamagingWeatherContinuesEnd::
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_WeatherDamageEndedBattle jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_WeatherDamageEndedBattle
addbyte gBattleCommunication, 1 addbyte gBattleCommunication, 1
jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
BattleScript_WeatherDamageEndedBattle:: BattleScript_WeatherDamageEndedBattle::
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE
end2 end2
BattleScript_SandStormHailEnds:: BattleScript_SandStormHailEnds::
@@ -3427,27 +3427,27 @@ BattleScript_AllStatsUpAtk::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0 playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0
setstatchanger STAT_ATK, 1, FALSE setstatchanger STAT_ATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpDef statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_AllStatsUpDef:: BattleScript_AllStatsUpDef::
setstatchanger STAT_DEF, 1, FALSE setstatchanger STAT_DEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpeed statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpeed
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_AllStatsUpSpeed:: BattleScript_AllStatsUpSpeed::
setstatchanger STAT_SPEED, 1, FALSE setstatchanger STAT_SPEED, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpAtk statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpAtk
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_AllStatsUpSpAtk:: BattleScript_AllStatsUpSpAtk::
setstatchanger STAT_SPATK, 1, FALSE setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpDef statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpSpDef
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_AllStatsUpSpDef:: BattleScript_AllStatsUpSpDef::
setstatchanger STAT_SPDEF, 1, FALSE setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpRet statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_AllStatsUpRet
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_AllStatsUpRet:: BattleScript_AllStatsUpRet::
@@ -3499,7 +3499,7 @@ BattleScript_DoFutureAttackHit::
resultmessage resultmessage
waitmessage 0x40 waitmessage 0x40
tryfaintmon BS_TARGET, 0, NULL tryfaintmon BS_TARGET, 0, NULL
atk24 BattleScript_FutureAttackEnd checkteamslost BattleScript_FutureAttackEnd
BattleScript_FutureAttackEnd:: BattleScript_FutureAttackEnd::
moveendcase 0 moveendcase 0
moveendfromto 11, 14 moveendfromto 11, 14
@@ -3584,17 +3584,17 @@ BattleScript_PrintMonIsRooted::
BattleScript_AtkDefDown:: BattleScript_AtkDefDown::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE | ATK48_DONT_CHECK_LOWER playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS | STAT_CHANGE_CANT_PREVENT
playstatchangeanimation BS_ATTACKER, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_DONT_CHECK_LOWER playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
setstatchanger STAT_ATK, 1, TRUE setstatchanger STAT_ATK, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_AtkDefDownAtkFail statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_AtkDefDownAtkFail
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_AtkDefDownAtkFail jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_AtkDefDownAtkFail
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
BattleScript_AtkDefDownAtkFail:: BattleScript_AtkDefDownAtkFail::
playstatchangeanimation BS_ATTACKER, BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_DONT_CHECK_LOWER playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_CANT_PREVENT
setstatchanger STAT_DEF, 1, TRUE setstatchanger STAT_DEF, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_AtkDefDownDefFail statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_AtkDefDownDefFail
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_AtkDefDownDefFail jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_AtkDefDownDefFail
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
@@ -3627,7 +3627,7 @@ BattleScript_MagicCoatBounce::
pause 0x20 pause 0x20
printstring STRINGID_PKMNMOVEBOUNCED printstring STRINGID_PKMNMOVEBOUNCED
waitmessage 0x40 waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
setmagiccoattarget BS_ATTACKER setmagiccoattarget BS_ATTACKER
return return
@@ -3638,7 +3638,7 @@ BattleScript_SnatchedMove::
playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL playanimation BS_TARGET, B_ANIM_SNATCH_MOVE, NULL
printstring STRINGID_PKMNSNATCHEDMOVE printstring STRINGID_PKMNSNATCHEDMOVE
waitmessage 0x40 waitmessage 0x40
orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP
swapattackerwithtarget swapattackerwithtarget
return return
@@ -3654,9 +3654,9 @@ BattleScript_OneHitKOMsg::
BattleScript_SAtkDown2:: BattleScript_SAtkDown2::
setbyte sSTAT_ANIM_PLAYED, 0 setbyte sSTAT_ANIM_PLAYED, 0
playstatchangeanimation BS_ATTACKER, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_DONT_CHECK_LOWER playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_CANT_PREVENT
setstatchanger STAT_SPATK, 2, TRUE setstatchanger STAT_SPATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_SAtkDown2End statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_SAtkDown2End
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SAtkDown2End jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 2, BattleScript_SAtkDown2End
printfromtable gStatDownStringIds printfromtable gStatDownStringIds
waitmessage 0x40 waitmessage 0x40
@@ -3678,7 +3678,7 @@ BattleScript_MoveUsedIsAsleep::
goto BattleScript_MoveEnd goto BattleScript_MoveEnd
BattleScript_MoveUsedWokeUp:: BattleScript_MoveUsedWokeUp::
bicword gHitMarker, HITMARKER_x10 bicword gHitMarker, HITMARKER_WAKE_UP_CLEAR
printfromtable gWokeUpStringIds printfromtable gWokeUpStringIds
waitmessage 0x40 waitmessage 0x40
updatestatusicon BS_ATTACKER updatestatusicon BS_ATTACKER
@@ -3700,7 +3700,7 @@ BattleScript_DoTurnDmg::
healthbarupdate BS_ATTACKER healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER, 0, NULL tryfaintmon BS_ATTACKER, 0, NULL
atk24 BattleScript_DoTurnDmgEnd checkteamslost BattleScript_DoTurnDmgEnd
BattleScript_DoTurnDmgEnd:: BattleScript_DoTurnDmgEnd::
end2 end2
@@ -4009,7 +4009,7 @@ BattleScript_IntimidateActivationAnimLoop::
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidateAbilityFail jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidateAbilityFail
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidateAbilityFail jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidateAbilityFail
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidateAbilityFail jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidateAbilityFail
statbuffchange STAT_CHANGE_BS_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_IntimidateFail statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_IntimidateFail
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_IntimidateFail jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 1, BattleScript_IntimidateFail
setgraphicalstatchangevalues setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -4355,7 +4355,7 @@ BattleScript_SelectingNotAllowedMoveChoiceItem::
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
endselectionscript endselectionscript
BattleScript_HangedOnMsg:: BattleScript_FocusBandActivates::
playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL playanimation BS_TARGET, B_ANIM_HANGED_ON, NULL
printstring STRINGID_PKMNHUNGONWITHX printstring STRINGID_PKMNHUNGONWITHX
waitmessage 0x40 waitmessage 0x40
@@ -4377,7 +4377,7 @@ BattleScript_BerryConfuseHealEnd2::
BattleScript_BerryStatRaiseEnd2:: BattleScript_BerryStatRaiseEnd2::
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
statbuffchange STAT_CHANGE_BS_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BerryStatRaiseDoStatUp statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BerryStatRaiseDoStatUp
BattleScript_BerryStatRaiseDoStatUp:: BattleScript_BerryStatRaiseDoStatUp::
setbyte cMULTISTRING_CHOOSER, 4 setbyte cMULTISTRING_CHOOSER, 4
call BattleScript_StatUp call BattleScript_StatUp
+1 -1
View File
@@ -99,7 +99,7 @@ BattleScript_CaughtPokemonDone::
BattleScript_OldMan_Pokedude_CaughtMessage:: BattleScript_OldMan_Pokedude_CaughtMessage::
printstring STRINGID_GOTCHAPKMNCAUGHT2 printstring STRINGID_GOTCHAPKMNCAUGHT2
setbyte gBattleOutcome, B_OUTCOME_CAUGHT setbyte gBattleOutcome, B_OUTCOME_CAUGHT
atk57 endlinkbattle
finishturn finishturn
BattleScript_ShakeBallThrow:: BattleScript_ShakeBallThrow::

Before

Width:  |  Height:  |  Size: 218 B

After

Width:  |  Height:  |  Size: 218 B

+1 -1
View File
@@ -153,7 +153,7 @@ $(UNUSEDGFXDIR)/color_frames.4bpp: %.4bpp: %.png
$(BATINTGFXDIR)/unused_window2bar.4bpp: %.4bpp: %.png $(BATINTGFXDIR)/unused_window2bar.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 5 $(GFX) $< $@ -num_tiles 5
$(BATINTGFXDIR)/unk_battlebox.4bpp: %.4bpp: %.png $(BATINTGFXDIR)/level_up_banner.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 36 $(GFX) $< $@ -num_tiles 36
$(BATINTGFXDIR)/window.gbapal: $(BATINTGFXDIR)/window1.gbapal $(BATINTGFXDIR)/window2.gbapal $(BATINTGFXDIR)/window.gbapal: $(BATINTGFXDIR)/window1.gbapal $(BATINTGFXDIR)/window2.gbapal
+46 -41
View File
@@ -4,6 +4,7 @@
#include <limits.h> #include <limits.h>
#include "global.h" #include "global.h"
#include "constants/battle.h" #include "constants/battle.h"
#include "constants/battle_script_commands.h"
#include "battle_util.h" #include "battle_util.h"
#include "battle_script_commands.h" #include "battle_script_commands.h"
#include "battle_main.h" #include "battle_main.h"
@@ -23,18 +24,25 @@
#define GET_BATTLER_SIDE(battler)((GetBattlerPosition(battler) & BIT_SIDE)) #define GET_BATTLER_SIDE(battler)((GetBattlerPosition(battler) & BIT_SIDE))
#define GET_BATTLER_SIDE2(battler)((GET_BATTLER_POSITION(battler) & BIT_SIDE)) #define GET_BATTLER_SIDE2(battler)((GET_BATTLER_POSITION(battler) & BIT_SIDE))
// Used to exclude moves learned temporarily by Transform or Mimic
#define MOVE_IS_PERMANENT(battler, moveSlot) \
(!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) \
&& !(gDisableStructs[battler].mimickedMoves & gBitTable[moveSlot]))
#define TRAINER_OPPONENT_3FE 0x3FE #define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00 #define TRAINER_OPPONENT_C00 0xC00
#define TRAINER_LINK_OPPONENT 0x800 #define TRAINER_LINK_OPPONENT 0x800
#define SECRET_BASE_OPPONENT 0x400 #define SECRET_BASE_OPPONENT 0x400
// Battle Actions
// These determine what each battler will do in a turn
#define B_ACTION_USE_MOVE 0 #define B_ACTION_USE_MOVE 0
#define B_ACTION_USE_ITEM 1 #define B_ACTION_USE_ITEM 1
#define B_ACTION_SWITCH 2 #define B_ACTION_SWITCH 2
#define B_ACTION_RUN 3 #define B_ACTION_RUN 3
#define B_ACTION_SAFARI_WATCH_CAREFULLY 4 #define B_ACTION_SAFARI_WATCH_CAREFULLY 4
#define B_ACTION_SAFARI_BALL 5 #define B_ACTION_SAFARI_BALL 5
#define B_ACTION_SAFARI_BAIT 6 #define B_ACTION_SAFARI_BAIT 6
#define B_ACTION_SAFARI_GO_NEAR 7 #define B_ACTION_SAFARI_GO_NEAR 7
#define B_ACTION_SAFARI_RUN 8 #define B_ACTION_SAFARI_RUN 8
#define B_ACTION_OLDMAN_THROW 9 #define B_ACTION_OLDMAN_THROW 9
@@ -47,26 +55,17 @@
#define MAX_TRAINER_ITEMS 4 #define MAX_TRAINER_ITEMS 4
// array entries for battle communication #define MOVE_TARGET_SELECTED 0
#define MULTIUSE_STATE 0x0 #define MOVE_TARGET_DEPENDS (1 << 0)
#define CURSOR_POSITION 0x1 #define MOVE_TARGET_USER_OR_SELECTED (1 << 1)
#define TASK_ID 0x1 // task Id and cursor position share the same field #define MOVE_TARGET_RANDOM (1 << 2)
#define SPRITES_INIT_STATE1 0x1 // shares the Id as well #define MOVE_TARGET_BOTH (1 << 3)
#define SPRITES_INIT_STATE2 0x2 #define MOVE_TARGET_USER (1 << 4)
#define MOVE_EFFECT_BYTE 0x3 #define MOVE_TARGET_FOES_AND_ALLY (1 << 5)
#define ACTIONS_CONFIRMED_COUNT 0x4 #define MOVE_TARGET_OPPONENTS_FIELD (1 << 6)
#define MULTISTRING_CHOOSER 0x5
#define MSG_DISPLAY 0x7
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
#define MOVE_TARGET_SELECTED 0x0 // For the second argument of GetMoveTarget, when no target override is needed
#define MOVE_TARGET_DEPENDS 0x1 #define NO_TARGET_OVERRIDE 0
#define MOVE_TARGET_USER_OR_SELECTED 0x2
#define MOVE_TARGET_RANDOM 0x4
#define MOVE_TARGET_BOTH 0x8
#define MOVE_TARGET_USER 0x10
#define MOVE_TARGET_FOES_AND_ALLY 0x20
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
struct TrainerMonNoItemDefaultMoves struct TrainerMonNoItemDefaultMoves
{ {
@@ -159,7 +158,7 @@ struct DisableStruct
/*0x16*/ u8 isFirstTurn; /*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17; /*0x17*/ u8 unk17;
/*0x18*/ u8 truantCounter : 1; /*0x18*/ u8 truantCounter : 1;
/*0x18*/ u8 truantSwitchInHack : 1; // unused? /*0x18*/ u8 truantSwitchInHack : 1; // Unused here, but used in pokeemerald
/*0x18*/ u8 unk18_a_2 : 2; /*0x18*/ u8 unk18_a_2 : 2;
/*0x18*/ u8 mimickedMoves : 4; /*0x18*/ u8 mimickedMoves : 4;
/*0x19*/ u8 rechargeTimer; /*0x19*/ u8 rechargeTimer;
@@ -209,14 +208,14 @@ extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
struct SpecialStatus struct SpecialStatus
{ {
u8 statLowered : 1; // 0x1 u8 statLowered:1; // 0x1
u8 lightningRodRedirected : 1; // 0x2 u8 lightningRodRedirected:1; // 0x2
u8 restoredBattlerSprite: 1; // 0x4 u8 restoredBattlerSprite:1; // 0x4
u8 intimidatedMon : 1; // 0x8 u8 intimidatedMon:1; // 0x8
u8 traced : 1; // 0x10 u8 traced:1; // 0x10
u8 ppNotAffectedByPressure : 1; u8 ppNotAffectedByPressure:1;
u8 flag40 : 1; u8 faintedHasReplacement:1;
u8 focusBanded : 1; u8 focusBanded:1;
u8 field1[3]; u8 field1[3];
s32 dmg; s32 dmg;
s32 physicalDmg; s32 physicalDmg;
@@ -455,17 +454,23 @@ struct BattleStruct
extern struct BattleStruct *gBattleStruct; extern struct BattleStruct *gBattleStruct;
#define GET_MOVE_TYPE(move, typeArg) \ #define F_DYNAMIC_TYPE_1 (1 << 6)
{ \ #define F_DYNAMIC_TYPE_2 (1 << 7)
if (gBattleStruct->dynamicMoveType) \ #define DYNAMIC_TYPE_MASK (F_DYNAMIC_TYPE_1 - 1)
typeArg = gBattleStruct->dynamicMoveType & 0x3F; \
else \ #define GET_MOVE_TYPE(move, typeArg) \
typeArg = gBattleMoves[move].type; \ { \
if (gBattleStruct->dynamicMoveType) \
typeArg = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; \
else \
typeArg = gBattleMoves[move].type; \
} }
#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY) #define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
#define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY) #define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0)) #define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0))
#define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type)) #define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type))
#define SET_BATTLER_TYPE(battlerId, type) \ #define SET_BATTLER_TYPE(battlerId, type) \
{ \ { \
@@ -492,7 +497,7 @@ struct BattleScripting
u8 animArg1; u8 animArg1;
u8 animArg2; u8 animArg2;
u16 tripleKickPower; u16 tripleKickPower;
u8 atk49_state; u8 moveendState;
u8 battlerWithAbility; u8 battlerWithAbility;
u8 multihitMoveEffect; u8 multihitMoveEffect;
u8 battler; u8 battler;
@@ -500,11 +505,11 @@ struct BattleScripting
u8 animTargetsHit; u8 animTargetsHit;
u8 statChanger; u8 statChanger;
bool8 statAnimPlayed; bool8 statAnimPlayed;
u8 atk23_state; u8 getexpState;
u8 battleStyle; u8 battleStyle;
u8 atk6C_state; u8 drawlvlupboxState;
u8 learnMoveState; u8 learnMoveState;
u8 field_20; u8 pursuitDoublesAttacker;
u8 reshowMainState; u8 reshowMainState;
u8 reshowHelperState; u8 reshowHelperState;
u8 field_23; u8 field_23;
@@ -605,8 +610,8 @@ extern u8 *gLinkBattleRecvBuffer;
struct MonSpritesGfx struct MonSpritesGfx
{ {
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon void *firstDecompressed; // ptr to the decompressed sprite of the first pokemon
void* sprites[MAX_BATTLERS_COUNT]; void *sprites[MAX_BATTLERS_COUNT];
struct SpriteTemplate templates[MAX_BATTLERS_COUNT]; struct SpriteTemplate templates[MAX_BATTLERS_COUNT];
struct SpriteFrameImage images[MAX_BATTLERS_COUNT][4]; struct SpriteFrameImage images[MAX_BATTLERS_COUNT][4];
u8 field_F4[0x80]; // unused u8 field_F4[0x80]; // unused
+2 -2
View File
@@ -165,8 +165,8 @@ extern const union AnimCmd *const gMusicNotesAnimTable[];
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
void AnimMovePowderParticle(struct Sprite *); void AnimMovePowderParticle(struct Sprite *);
void AnimPowerAbsorptionOrb(struct Sprite *); void AnimPowerAbsorptionOrb(struct Sprite *);
void AnimSolarbeamBigOrb(struct Sprite *); void AnimSolarBeamBigOrb(struct Sprite *);
void AnimSolarbeamSmallOrb(struct Sprite *); void AnimSolarBeamSmallOrb(struct Sprite *);
void AnimAbsorptionOrb(struct Sprite *); void AnimAbsorptionOrb(struct Sprite *);
void AnimHyperBeamOrb(struct Sprite *); void AnimHyperBeamOrb(struct Sprite *);
void AnimSporeParticle(struct Sprite *); void AnimSporeParticle(struct Sprite *);
+34 -17
View File
@@ -68,17 +68,34 @@ enum
REQUEST_TOUGH_RIBBON_BATTLE, REQUEST_TOUGH_RIBBON_BATTLE,
}; };
#define RESET_ACTION_MOVE_SELECTION 0 // Special arguments for Battle Controller functions.
#define RESET_ACTION_SELECTION 1
#define RESET_MOVE_SELECTION 2
#define BALL_NO_SHAKES 0 enum { // Values given to the emit functions to choose gBattleBufferA or gBattleBufferB
#define BALL_1_SHAKE 1 BUFFER_A,
#define BALL_2_SHAKES 2 BUFFER_B
#define BALL_3_SHAKES_FAIL 3 };
#define BALL_3_SHAKES_SUCCESS 4
#define BALL_TRAINER_BLOCK 5 enum {
#define BALL_GHOST_DODGE 6 RESET_ACTION_MOVE_SELECTION,
RESET_ACTION_SELECTION,
RESET_MOVE_SELECTION,
};
enum {
BALL_NO_SHAKES,
BALL_1_SHAKE,
BALL_2_SHAKES,
BALL_3_SHAKES_FAIL,
BALL_3_SHAKES_SUCCESS,
BALL_TRAINER_BLOCK,
BALL_GHOST_DODGE,
};
enum {
LINK_STANDBY_MSG_STOP_BOUNCE,
LINK_STANDBY_STOP_BOUNCE_ONLY,
LINK_STANDBY_MSG_ONLY,
};
#define RET_VALUE_LEVELLED_UP 11 #define RET_VALUE_LEVELLED_UP 11
@@ -149,7 +166,7 @@ enum
CONTROLLER_STATUSXOR, CONTROLLER_STATUSXOR,
CONTROLLER_DATATRANSFER, CONTROLLER_DATATRANSFER,
CONTROLLER_DMA3TRANSFER, CONTROLLER_DMA3TRANSFER,
CONTROLLER_31, CONTROLLER_PLAYBGM,
CONTROLLER_32, CONTROLLER_32,
CONTROLLER_TWORETURNVALUES, CONTROLLER_TWORETURNVALUES,
CONTROLLER_CHOSENMONRETURNVALUE, CONTROLLER_CHOSENMONRETURNVALUE,
@@ -173,7 +190,7 @@ enum
CONTROLLER_BATTLEANIMATION, CONTROLLER_BATTLEANIMATION,
CONTROLLER_LINKSTANDBYMSG, CONTROLLER_LINKSTANDBYMSG,
CONTROLLER_RESETACTIONMOVESELECTION, CONTROLLER_RESETACTIONMOVESELECTION,
CONTROLLER_55, CONTROLLER_ENDLINKBATTLE,
/*new controllers should go here*/ /*new controllers should go here*/
CONTROLLER_TERMINATOR_NOP, CONTROLLER_TERMINATOR_NOP,
CONTROLLER_CMDS_COUNT CONTROLLER_CMDS_COUNT
@@ -193,7 +210,7 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data); void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
void BtlController_EmitLoadMonSprite(u8 bufferId); void BtlController_EmitLoadMonSprite(u8 bufferId);
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1); void BtlController_EmitReturnMonToBall(u8 bufferId, bool8 skipAnim);
void BtlController_EmitDrawTrainerPic(u8 bufferId); void BtlController_EmitDrawTrainerPic(u8 bufferId);
void BtlController_EmitTrainerSlide(u8 bufferId); void BtlController_EmitTrainerSlide(u8 bufferId);
void BtlController_EmitTrainerSlideBack(u8 bufferId); void BtlController_EmitTrainerSlideBack(u8 bufferId);
@@ -205,7 +222,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1); void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1);
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4); void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4);
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue); void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints); void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
@@ -216,7 +233,7 @@ void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1); void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b); void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
void BtlController_EmitHitAnimation(u8 bufferId); void BtlController_EmitHitAnimation(u8 bufferId);
void BtlController_EmitCmd42(u8 bufferId); void BtlController_EmitCantSwitch(u8 bufferId);
void BtlController_EmitPlaySE(u8 bufferId, u16 songId); void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId); void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId);
void BtlController_EmitFaintingCry(u8 bufferId); void BtlController_EmitFaintingCry(u8 bufferId);
@@ -227,9 +244,9 @@ void BtlController_EmitHidePartyStatusSummary(u8 bufferId);
void BtlController_EmitEndBounceEffect(u8 bufferId); void BtlController_EmitEndBounceEffect(u8 bufferId);
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument); void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1); void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 mode);
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId); void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
void BtlController_EmitCmd55(u8 bufferId, u8 arg1); void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome);
// player controller // player controller
void PlayerDummy(void); void PlayerDummy(void);
+2 -2
View File
@@ -69,9 +69,9 @@ void VBlankCB_Battle(void);
void SpriteCB_VsLetterDummy(struct Sprite *sprite); void SpriteCB_VsLetterDummy(struct Sprite *sprite);
void SpriteCB_VsLetterInit(struct Sprite *sprite); void SpriteCB_VsLetterInit(struct Sprite *sprite);
void CB2_InitEndLinkBattle(void); void CB2_InitEndLinkBattle(void);
u32 GetBattleBgAttribute(u8 arrayId, u8 caseId); u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId);
void SpriteCB_EnemyMon(struct Sprite *sprite); void SpriteCB_EnemyMon(struct Sprite *sprite);
void SpriteCallbackDummy2(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite);
void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
+9 -9
View File
@@ -208,12 +208,12 @@ struct BattleMsgData
}; };
void BufferStringBattle(u16 stringID); void BufferStringBattle(u16 stringID);
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src); u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src);
u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst);
void BattleHandleAddTextPrinter(const u8* text, u8 arg1); void BattleHandleAddTextPrinter(const u8 *text, u8 arg1);
void SetPpNumbersPaletteInMoveSelection(void); void SetPpNumbersPaletteInMoveSelection(void);
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp); u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
void BattlePutTextOnWindow(const u8* text, u8 windowId_flags); void BattlePutTextOnWindow(const u8 *text, u8 windowId_flags);
bool8 BattleStringShouldBeColored(u16); bool8 BattleStringShouldBeColored(u16);
extern struct BattleMsgData *gBattleMsgDataPtr; extern struct BattleMsgData *gBattleMsgDataPtr;
@@ -225,11 +225,11 @@ extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
extern const u8* const gBattleStringsTable[]; extern const u8 *const gBattleStringsTable[];
extern const u8* const gStatNamesTable[]; extern const u8 *const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8 *const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[]; extern const u8 *const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[]; extern const u8 *const gStatNamesTable2[];
extern const u16 gMissStringIds[]; extern const u16 gMissStringIds[];
extern const u16 gTrappingMoves[]; extern const u16 gTrappingMoves[];
+11 -13
View File
@@ -3,23 +3,21 @@
#include "global.h" #include "global.h"
#define STAT_CHANGE_WORKED 0 // Arguments for 'flags' in HandleBattleWindow
#define STAT_CHANGE_DIDNT_WORK 1 #define WINDOW_CLEAR (1 << 0)
#define WINDOW_BG1 (1 << 7)
#define WINDOW_CLEAR 0x1
#define WINDOW_x80 0x80
void SetMoveEffect(bool8 primary, u8 certain);
bool8 UproarWakeUpCheck(u8 battlerId);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
u8 TypeCalc(u16 move, u8 attacker, u8 defender);
void AI_CalcDmg(u8 attacker, u8 defender); void AI_CalcDmg(u8 attacker, u8 defender);
bool32 IsMonGettingExpSentOut(void); u8 TypeCalc(u16 move, u8 attacker, u8 defender);
void BattleCreateYesNoCursorAt(void); u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
void BattleDestroyYesNoCursorAt(void);
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
u8 GetBattlerTurnOrderNum(u8 battlerId); u8 GetBattlerTurnOrderNum(u8 battlerId);
void SetMoveEffect(bool8 primary, u8 certain);
bool32 IsMonGettingExpSentOut(void);
void BattleDestroyYesNoCursorAt(void);
void BattleCreateYesNoCursorAt(void);
void BufferMoveToLearnIntoBattleTextBuff2(void); void BufferMoveToLearnIntoBattleTextBuff2(void);
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
bool8 UproarWakeUpCheck(u8 battlerId);
extern void (* const gBattleScriptingCommandsTable[])(void); extern void (* const gBattleScriptingCommandsTable[])(void);
+1 -1
View File
@@ -197,7 +197,7 @@ extern const u8 BattleScript_BerryPPHealEnd2[];
extern const u8 BattleScript_ItemHealHP_End2[]; extern const u8 BattleScript_ItemHealHP_End2[];
extern const u8 BattleScript_ItemHealHP_Ret[]; extern const u8 BattleScript_ItemHealHP_Ret[];
extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
extern const u8 BattleScript_HangedOnMsg[]; extern const u8 BattleScript_FocusBandActivates[];
extern const u8 BattleScript_BerryConfuseHealEnd2[]; extern const u8 BattleScript_BerryConfuseHealEnd2[];
extern const u8 BattleScript_BerryStatRaiseEnd2[]; extern const u8 BattleScript_BerryStatRaiseEnd2[];
extern const u8 BattleScript_BerryFocusEnergyEnd2[]; extern const u8 BattleScript_BerryFocusEnergyEnd2[];
+208 -7
View File
@@ -1,8 +1,6 @@
#ifndef GUARD_BATTLE_STRING_IDS_H #ifndef GUARD_BATTLE_STRING_IDS_H
#define GUARD_BATTLE_STRING_IDS_H #define GUARD_BATTLE_STRING_IDS_H
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
#define STRINGID_INTROMSG 0 #define STRINGID_INTROMSG 0
#define STRINGID_INTROSENDOUT 1 #define STRINGID_INTROSENDOUT 1
#define STRINGID_RETURNMON 2 #define STRINGID_RETURNMON 2
@@ -213,10 +211,10 @@
#define STRINGID_STATROSE 210 #define STRINGID_STATROSE 210
#define STRINGID_STATHARSHLY 211 #define STRINGID_STATHARSHLY 211
#define STRINGID_STATFELL 212 #define STRINGID_STATFELL 212
#define STRINGID_PKMNSSTATCHANGED 213 #define STRINGID_ATTACKERSSTATROSE 213
#define STRINGID_PKMNSSTATCHANGED2 214 #define STRINGID_DEFENDERSSTATROSE 214
#define STRINGID_PKMNSSTATCHANGED3 215 #define STRINGID_ATTACKERSSTATFELL 215
#define STRINGID_PKMNSSTATCHANGED4 216 #define STRINGID_DEFENDERSSTATFELL 216
#define STRINGID_CRITICALHIT 217 #define STRINGID_CRITICALHIT 217
#define STRINGID_ONEHITKO 218 #define STRINGID_ONEHITKO 218
#define STRINGID_123POOF 219 #define STRINGID_123POOF 219
@@ -325,7 +323,7 @@
#define STRINGID_SOOTHINGAROMA 322 #define STRINGID_SOOTHINGAROMA 322
#define STRINGID_ITEMSCANTBEUSEDNOW 323 #define STRINGID_ITEMSCANTBEUSEDNOW 323
#define STRINGID_FORXCOMMAYZ 324 #define STRINGID_FORXCOMMAYZ 324
#define STRINGID_USINGXTHEYOFZN 325 #define STRINGID_USINGITEMSTATOFPKMNROSE 325
#define STRINGID_PKMNUSEDXTOGETPUMPED 326 #define STRINGID_PKMNUSEDXTOGETPUMPED 326
#define STRINGID_PKMNSXMADEYUSELESS 327 #define STRINGID_PKMNSXMADEYUSELESS 327
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 #define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
@@ -389,4 +387,207 @@
#define BATTLESTRINGS_COUNT 374 #define BATTLESTRINGS_COUNT 374
// This is the string id that gBattleStringsTable starts with.
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
// and are instead handled explicitly by BufferStringBattle.
#define BATTLESTRINGS_TABLE_START STRINGID_TRAINER1LOSETEXT
// The below IDs are all indexes into battle message tables,
// used to determine which of a set of messages to print.
// They are assigned to the MULTISTRING_CHOOSER byte of gBattleCommunication
// and read when e.g. the command printfromtable is used.
// gStatUpStringIds
#define B_MSG_ATTACKER_STAT_ROSE 0
#define B_MSG_DEFENDER_STAT_ROSE 1
#define B_MSG_STAT_WONT_INCREASE 2
#define B_MSG_STAT_ROSE_EMPTY 3
#define B_MSG_STAT_ROSE_ITEM 4
#define B_MSG_USED_DIRE_HIT 5
// gStatDownStringIds
#define B_MSG_ATTACKER_STAT_FELL 0
#define B_MSG_DEFENDER_STAT_FELL 1
#define B_MSG_STAT_WONT_DECREASE 2
#define B_MSG_STAT_FELL_EMPTY 3
// gMissStringIds
#define B_MSG_MISSED 0
#define B_MSG_PROTECTED 1
#define B_MSG_AVOIDED_ATK 2
#define B_MSG_AVOIDED_DMG 3
#define B_MSG_GROUND_MISS 4
// gAbsorbDrainStringIds
#define B_MSG_ABSORB 0
#define B_MSG_ABSORB_OOZE 1
// gLeechSeedStringIds
#define B_MSG_LEECH_SEED_SET 0
#define B_MSG_LEECH_SEED_MISS 1
#define B_MSG_LEECH_SEED_FAIL 2
#define B_MSG_LEECH_SEED_DRAIN 3
#define B_MSG_LEECH_SEED_OOZE 4
// gFirstTurnOfTwoStringIds
#define B_MSG_TURN1_RAZOR_WIND 0
#define B_MSG_TURN1_SOLAR_BEAM 1
#define B_MSG_TURN1_SKULL_BASH 2
#define B_MSG_TURN1_SKY_ATTACK 3
#define B_MSG_TURN1_FLY 4
#define B_MSG_TURN1_DIG 5
#define B_MSG_TURN1_DIVE 6
#define B_MSG_TURN1_BOUNCE 7
// gMoveWeatherChangeStringIds
#define B_MSG_STARTED_RAIN 0
#define B_MSG_STARTED_DOWNPOUR 1
#define B_MSG_WEATHER_FAILED 2
#define B_MSG_STARTED_SANDSTORM 3
#define B_MSG_STARTED_SUNLIGHT 4
#define B_MSG_STARTED_HAIL 5
// gRainContinuesStringIds
#define B_MSG_RAIN_CONTINUES 0
#define B_MSG_DOWNPOUR_CONTINUES 1
#define B_MSG_RAIN_STOPPED 2
// gSandStormHailContinuesStringIds / gSandStormHailDmgStringIds/ gSandStormHailEndStringIds
#define B_MSG_SANDSTORM 0
#define B_MSG_HAIL 1
// gReflectLightScreenSafeguardStringIds
#define B_MSG_SIDE_STATUS_FAILED 0
#define B_MSG_SET_REFLECT_SINGLE 1
#define B_MSG_SET_REFLECT_DOUBLE 2
#define B_MSG_SET_LIGHTSCREEN_SINGLE 3
#define B_MSG_SET_LIGHTSCREEN_DOUBLE 4
#define B_MSG_SET_SAFEGUARD 5
// gProtectLikeUsedStringIds
#define B_MSG_PROTECTED_ITSELF 0
#define B_MSG_BRACED_ITSELF 1
#define B_MSG_PROTECT_FAILED 2
// gRestUsedStringIds
#define B_MSG_REST 0
#define B_MSG_REST_STATUSED 1
// gWokeUpStringIds
#define B_MSG_WOKE_UP 0
#define B_MSG_WOKE_UP_UPROAR 1
// gUproarAwakeStringIds
#define B_MSG_CANT_SLEEP_UPROAR 0
#define B_MSG_UPROAR_KEPT_AWAKE 1
#define B_MSG_STAYED_AWAKE_USING 2
// gUproarOverTurnStringIds
#define B_MSG_UPROAR_CONTINUES 0
#define B_MSG_UPROAR_ENDS 1
// gStockpileUsedStringIds
#define B_MSG_STOCKPILED 0
#define B_MSG_CANT_STOCKPILE 1
// gSwallowFailStringIds
#define B_MSG_SWALLOW_FAILED 0
#define B_MSG_SWALLOW_FULL_HP 1
// gKOFailedStringIds
#define B_MSG_KO_MISS 0
#define B_MSG_KO_UNAFFECTED 1
// gMistUsedStringIds
#define B_MSG_SET_MIST 0
#define B_MSG_MIST_FAILED 1
// gFocusEnergyUsedStringIds
#define B_MSG_GETTING_PUMPED 0
#define B_MSG_FOCUS_ENERGY_FAILED 1
// gTransformUsedStringIds
#define B_MSG_TRANSFORMED 0
#define B_MSG_TRANSFORM_FAILED 1
// gSubstituteUsedStringIds
#define B_MSG_SET_SUBSTITUTE 0
#define B_MSG_SUBSTITUTE_FAILED 1
// gPartyStatusHealStringIds
#define B_MSG_BELL 0
#define B_MSG_BELL_SOUNDPROOF_ATTACKER 1
#define B_MSG_BELL_SOUNDPROOF_PARTNER 2
#define B_MSG_BELL_BOTH_SOUNDPROOF 3
#define B_MSG_SOOTHING_AROMA 4
// gFutureMoveUsedStringIds
#define B_MSG_FUTURE_SIGHT 0
#define B_MSG_DOOM_DESIRE 1
// gItemSwapStringIds
#define B_MSG_ITEM_SWAP_TAKEN 0
#define B_MSG_ITEM_SWAP_GIVEN 1
#define B_MSG_ITEM_SWAP_BOTH 2
// gSportsUsedStringIds
#define B_MSG_WEAKEN_ELECTRIC 0
#define B_MSG_WEAKEN_FIRE 1
// gCaughtMonStringIds
#define B_MSG_SENT_SOMEONES_PC 0
#define B_MSG_SENT_BILLS_PC 1
#define B_MSG_SOMEONES_BOX_FULL 2
#define B_MSG_BILLS_BOX_FULL 3
// gInobedientStringIds
#define B_MSG_LOAFING 0
#define B_MSG_WONT_OBEY 1
#define B_MSG_TURNED_AWAY 2
#define B_MSG_PRETEND_NOT_NOTICE 3
#define B_MSG_INCAPABLE_OF_POWER 4
// For randomly selecting a disobey string
// Skips the one used for Battle Palace
#define NUM_LOAF_STRINGS 4
// gSafariGetNearStringIds
#define B_MSG_CREPT_CLOSER 0
#define B_MSG_CANT_GET_CLOSER 1
// gSafariPokeblockResultStringIds
#define B_MSG_MON_CURIOUS 0
#define B_MSG_MON_ENTHRALLED 1
#define B_MSG_MON_IGNORED 2
// gFlashFireStringIds
#define B_MSG_FLASH_FIRE_BOOST 0
#define B_MSG_FLASH_FIRE_NO_BOOST 1
// gBerryEffectStringIds
#define B_MSG_CURED_PROBLEM 0
#define B_MSG_NORMALIZED_STATUS 1
// gNoEscapeStringIds
#define B_MSG_CANT_ESCAPE 0
#define B_MSG_DONT_LEAVE_BIRCH 1
#define B_MSG_PREVENTS_ESCAPE 2
#define B_MSG_CANT_ESCAPE_2 3
#define B_MSG_ATTACKER_CANT_ESCAPE 4
// gGotPoisonedStringIds / gGotParalyzedStringIds / gFellAsleepStringIds
// gGotBurnedStringIds / gGotFrozenStringIds / gAttractUsedStringIds
#define B_MSG_STATUSED 0
#define B_MSG_STATUSED_BY_ABILITY 1
// gBRNPreventionStringIds / gPRLZPreventionStringIds / gPSNPreventionStringIds
#define B_MSG_ABILITY_PREVENTS_MOVE_STATUS 0
#define B_MSG_ABILITY_PREVENTS_ABILITY_STATUS 1
#define B_MSG_STATUS_HAD_NO_EFFECT 2
// gGotDefrostedStringIds
#define B_MSG_DEFROSTED 0
#define B_MSG_DEFROSTED_BY_MOVE 1
#define NUM_TRAPPING_MOVES 6
#endif // GUARD_BATTLE_STRING_IDS_H #endif // GUARD_BATTLE_STRING_IDS_H
+23 -21
View File
@@ -10,27 +10,29 @@
#define MOVE_LIMITATION_TAUNT (1 << 4) #define MOVE_LIMITATION_TAUNT (1 << 4)
#define MOVE_LIMITATION_IMPRISON (1 << 5) #define MOVE_LIMITATION_IMPRISON (1 << 5)
#define ABILITYEFFECT_ON_SWITCHIN 0x0 #define ABILITYEFFECT_ON_SWITCHIN 0
#define ABILITYEFFECT_ENDTURN 0x1 #define ABILITYEFFECT_ENDTURN 1
#define ABILITYEFFECT_MOVES_BLOCK 0x2 #define ABILITYEFFECT_MOVES_BLOCK 2
#define ABILITYEFFECT_ABSORBING 0x3 #define ABILITYEFFECT_ABSORBING 3
#define ABILITYEFFECT_MOVE_END 0x4 #define ABILITYEFFECT_ON_DAMAGE 4
#define ABILITYEFFECT_IMMUNITY 0x5 #define ABILITYEFFECT_IMMUNITY 5
#define ABILITYEFFECT_FORECAST 0x6 #define ABILITYEFFECT_FORECAST 6
#define ABILITYEFFECT_SYNCHRONIZE 0x7 #define ABILITYEFFECT_SYNCHRONIZE 7
#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 #define ABILITYEFFECT_ATK_SYNCHRONIZE 8
#define ABILITYEFFECT_INTIMIDATE1 0x9 #define ABILITYEFFECT_INTIMIDATE1 9
#define ABILITYEFFECT_INTIMIDATE2 0xA #define ABILITYEFFECT_INTIMIDATE2 10
#define ABILITYEFFECT_TRACE 0xB #define ABILITYEFFECT_TRACE 11
#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC #define ABILITYEFFECT_CHECK_OTHER_SIDE 12
#define ABILITYEFFECT_CHECK_BATTLER_SIDE 0xD #define ABILITYEFFECT_CHECK_BATTLER_SIDE 13
#define ABILITYEFFECT_FIELD_SPORT 0xE #define ABILITYEFFECT_FIELD_SPORT 14
#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF // TODO: Is it correct? #define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 15
#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10 #define ABILITYEFFECT_COUNT_OTHER_SIDE 16
#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11 #define ABILITYEFFECT_COUNT_BATTLER_SIDE 17
#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 #define ABILITYEFFECT_COUNT_ON_FIELD 18
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 #define ABILITYEFFECT_CHECK_ON_FIELD 19
#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF #define ABILITYEFFECT_MUD_SPORT 253
#define ABILITYEFFECT_WATER_SPORT 254
#define ABILITYEFFECT_SWITCH_IN_WEATHER 255
#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0)) #define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0)) #define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
+4 -4
View File
@@ -89,7 +89,7 @@ void ResetBgsAndClearDma3BusyFlags(bool32 enableWindowTileAutoAlloc);
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates); void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
void InitBgFromTemplate(const struct BgTemplate *template); void InitBgFromTemplate(const struct BgTemplate *template);
void SetBgMode(u8 bgMode); void SetBgMode(u8 bgMode);
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset); u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset);
u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset); u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset); u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
bool8 IsDma3ManagerBusyWithBgCopy(void); bool8 IsDma3ManagerBusyWithBgCopy(void);
@@ -106,12 +106,12 @@ void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dis
u8 AdjustBgMosaic(u8 value, u8 mode); u8 AdjustBgMosaic(u8 value, u8 mode);
void SetBgTilemapBuffer(u8 bg, void *tilemap); void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg); void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg); void *GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg); void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height); void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2); void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta); void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
+228 -195
View File
@@ -44,39 +44,27 @@
#define BIT_FLANK 2 #define BIT_FLANK 2
// Battle Type Flags // Battle Type Flags
#define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_DOUBLE (1 << 0)
#define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_LINK (1 << 1)
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set. #define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set.
#define BATTLE_TYPE_TRAINER 0x0008 #define BATTLE_TYPE_TRAINER (1 << 3)
#define BATTLE_TYPE_FIRST_BATTLE 0x0010 #define BATTLE_TYPE_FIRST_BATTLE (1 << 4)
#define BATTLE_TYPE_LINK_ESTABLISHED 0x0020 // Set when the link battle setup callback finishes. #define BATTLE_TYPE_LINK_IN_BATTLE (1 << 5) // Set on battle entry, cleared on exit. Checked rarely
#define BATTLE_TYPE_MULTI 0x0040 #define BATTLE_TYPE_MULTI (1 << 6)
#define BATTLE_TYPE_SAFARI 0x0080 #define BATTLE_TYPE_SAFARI (1 << 7)
#define BATTLE_TYPE_BATTLE_TOWER 0x0100 #define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
#define BATTLE_TYPE_OLD_MAN_TUTORIAL 0x0200 #define BATTLE_TYPE_OLD_MAN_TUTORIAL (1 << 9) // Used in pokeemerald as BATTLE_TYPE_WALLY_TUTORIAL.
#define BATTLE_TYPE_ROAMER 0x0400 #define BATTLE_TYPE_ROAMER (1 << 10)
#define BATTLE_TYPE_EREADER_TRAINER 0x0800 #define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 #define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
#define BATTLE_TYPE_LEGENDARY 0x2000 #define BATTLE_TYPE_LEGENDARY (1 << 13)
#define BATTLE_TYPE_GHOST_UNVEILED 0x2000 // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST #define BATTLE_TYPE_GHOST_UNVEILED (1 << 13) // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST
#define BATTLE_TYPE_REGI 0x4000 #define BATTLE_TYPE_REGI (1 << 14)
#define BATTLE_TYPE_GHOST 0x8000 #define BATTLE_TYPE_GHOST (1 << 15) // Used in pokeemerald as BATTLE_TYPE_TWO_OPPONENTS.
#define BATTLE_TYPE_POKEDUDE 0x10000 #define BATTLE_TYPE_POKEDUDE (1 << 16) // Used in pokeemerald as BATTLE_TYPE_DOME.
#define BATTLE_TYPE_WILD_SCRIPTED 0x20000 #define BATTLE_TYPE_WILD_SCRIPTED (1 << 17) // Used in pokeemerald as BATTLE_TYPE_PALACE.
#define BATTLE_TYPE_LEGENDARY_FRLG 0x40000 #define BATTLE_TYPE_LEGENDARY_FRLG (1 << 18) // Used in pokeemerald as BATTLE_TYPE_ARENA.
#define BATTLE_TYPE_TRAINER_TOWER 0x80000 #define BATTLE_TYPE_TRAINER_TOWER (1 << 19) // Used in pokeemerald as BATTLE_TYPE_FACTORY.
#define BATTLE_TYPE_x100000 0x100000
#define BATTLE_TYPE_x200000 0x200000
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
#define BATTLE_TYPE_x800000 0x800000
#define BATTLE_TYPE_RECORDED 0x1000000
#define BATTLE_TYPE_x2000000 0x2000000
#define BATTLE_TYPE_x4000000 0x4000000
#define BATTLE_TYPE_SECRET_BASE 0x8000000
#define BATTLE_TYPE_GROUDON 0x10000000
#define BATTLE_TYPE_KYOGRE 0x20000000
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
#define IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && !((flags) & BATTLE_TYPE_GHOST_UNVEILED)) #define IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && !((flags) & BATTLE_TYPE_GHOST_UNVEILED))
#define IS_BATTLE_TYPE_GHOST_WITH_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && (flags) & BATTLE_TYPE_GHOST_UNVEILED) #define IS_BATTLE_TYPE_GHOST_WITH_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && (flags) & BATTLE_TYPE_GHOST_UNVEILED)
@@ -85,103 +73,113 @@
#define RIVAL_BATTLE_TUTORIAL 3 #define RIVAL_BATTLE_TUTORIAL 3
// Battle Outcome defines // Battle Outcome defines
#define B_OUTCOME_WON 0x1 #define B_OUTCOME_WON 1
#define B_OUTCOME_LOST 0x2 #define B_OUTCOME_LOST 2
#define B_OUTCOME_DREW 0x3 #define B_OUTCOME_DREW 3
#define B_OUTCOME_RAN 0x4 #define B_OUTCOME_RAN 4
#define B_OUTCOME_PLAYER_TELEPORTED 0x5 #define B_OUTCOME_PLAYER_TELEPORTED 5
#define B_OUTCOME_MON_FLED 0x6 #define B_OUTCOME_MON_FLED 6
#define B_OUTCOME_CAUGHT 0x7 #define B_OUTCOME_CAUGHT 7
#define B_OUTCOME_NO_SAFARI_BALLS 0x8 #define B_OUTCOME_NO_SAFARI_BALLS 8
#define B_OUTCOME_FORFEITED 0x9 #define B_OUTCOME_FORFEITED 9
#define B_OUTCOME_MON_TELEPORTED 0xA #define B_OUTCOME_MON_TELEPORTED 10
#define B_OUTCOME_LINK_BATTLE_RAN 0x80 #define B_OUTCOME_LINK_BATTLE_RAN (1 << 7) // 128
// Non-volatile status conditions // Non-volatile status conditions
// These persist remain outside of battle and after switching out // These persist remain outside of battle and after switching out
#define STATUS1_NONE 0x0 #define STATUS1_NONE 0
#define STATUS1_SLEEP 0x7 #define STATUS1_SLEEP (1 << 0 | 1 << 1 | 1 << 2) // First 3 bits (Number of turns to sleep)
#define STATUS1_POISON 0x8 #define STATUS1_SLEEP_TURN(num) ((num) << 0) // Just for readability (or if rearranging statuses)
#define STATUS1_BURN 0x10 #define STATUS1_POISON (1 << 3)
#define STATUS1_FREEZE 0x20 #define STATUS1_BURN (1 << 4)
#define STATUS1_PARALYSIS 0x40 #define STATUS1_FREEZE (1 << 5)
#define STATUS1_TOXIC_POISON 0x80 #define STATUS1_PARALYSIS (1 << 6)
#define STATUS1_TOXIC_COUNTER 0xF00 #define STATUS1_TOXIC_POISON (1 << 7)
#define STATUS1_TOXIC_COUNTER (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11)
#define STATUS1_TOXIC_TURN(num) ((num) << 8)
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON) #define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON) #define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
// Volatile status ailments // Volatile status ailments
// These are removed after exiting the battle or switching out // These are removed after exiting the battle or switching out
#define STATUS2_CONFUSION 0x00000007 #define STATUS2_CONFUSION (1 << 0 | 1 << 1 | 1 << 2)
#define STATUS2_FLINCHED 0x00000008 #define STATUS2_CONFUSION_TURN(num) ((num) << 0)
#define STATUS2_UPROAR 0x00000070 #define STATUS2_FLINCHED (1 << 3)
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 #define STATUS2_UPROAR (1 << 4 | 1 << 5 | 1 << 6)
#define STATUS2_LOCK_CONFUSE 0x00000C00 #define STATUS2_UPROAR_TURN(num) ((num) << 4)
#define STATUS2_MULTIPLETURNS 0x00001000 #define STATUS2_UNUSED (1 << 7)
#define STATUS2_WRAPPED 0x0000E000 #define STATUS2_BIDE (1 << 8 | 1 << 9)
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler #define STATUS2_BIDE_TURN(num) (((num) << 8) & STATUS2_BIDE)
#define STATUS2_LOCK_CONFUSE (1 << 10 | 1 << 11) // e.g. Thrash
#define STATUS2_LOCK_CONFUSE_TURN(num)((num) << 10)
#define STATUS2_MULTIPLETURNS (1 << 12)
#define STATUS2_WRAPPED (1 << 13 | 1 << 14 | 1 << 15)
#define STATUS2_WRAPPED_TURN(num) ((num) << 13)
#define STATUS2_INFATUATION (1 << 16 | 1 << 17 | 1 << 18 | 1 << 19) // 4 bits, one for every battler
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16) #define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
#define STATUS2_FOCUS_ENERGY 0x00100000 #define STATUS2_FOCUS_ENERGY (1 << 20)
#define STATUS2_TRANSFORMED 0x00200000 #define STATUS2_TRANSFORMED (1 << 21)
#define STATUS2_RECHARGE 0x00400000 #define STATUS2_RECHARGE (1 << 22)
#define STATUS2_RAGE 0x00800000 #define STATUS2_RAGE (1 << 23)
#define STATUS2_SUBSTITUTE 0x01000000 #define STATUS2_SUBSTITUTE (1 << 24)
#define STATUS2_DESTINY_BOND 0x02000000 #define STATUS2_DESTINY_BOND (1 << 25)
#define STATUS2_ESCAPE_PREVENTION 0x04000000 #define STATUS2_ESCAPE_PREVENTION (1 << 26)
#define STATUS2_NIGHTMARE 0x08000000 #define STATUS2_NIGHTMARE (1 << 27)
#define STATUS2_CURSED 0x10000000 #define STATUS2_CURSED (1 << 28)
#define STATUS2_FORESIGHT 0x20000000 #define STATUS2_FORESIGHT (1 << 29)
#define STATUS2_DEFENSE_CURL 0x40000000 #define STATUS2_DEFENSE_CURL (1 << 30)
#define STATUS2_TORMENT 0x80000000 #define STATUS2_TORMENT (1 << 31)
// Seems like per-battler statuses. Not quite sure how to categorize these // Seems like per-battler statuses. Not quite sure how to categorize these
#define STATUS3_LEECHSEED_BATTLER 0x3 #define STATUS3_LEECHSEED_BATTLER (1 << 0 | 1 << 1) // The battler to receive HP from Leech Seed
#define STATUS3_LEECHSEED 0x4 #define STATUS3_LEECHSEED (1 << 2)
#define STATUS3_ALWAYS_HITS 0x18 // two bits #define STATUS3_ALWAYS_HITS (1 << 3 | 1 << 4)
#define STATUS3_PERISH_SONG 0x20 #define STATUS3_ALWAYS_HITS_TURN(num) (((num) << 3) & STATUS3_ALWAYS_HITS) // "Always Hits" is set as a 2 turn timer, i.e. next turn is the last turn when it's active
#define STATUS3_ON_AIR 0x40 #define STATUS3_PERISH_SONG (1 << 5)
#define STATUS3_UNDERGROUND 0x80 #define STATUS3_ON_AIR (1 << 6)
#define STATUS3_MINIMIZED 0x100 #define STATUS3_UNDERGROUND (1 << 7)
#define STATUS3_ROOTED 0x400 #define STATUS3_MINIMIZED (1 << 8)
#define STATUS3_CHARGED_UP 0x200 #define STATUS3_CHARGED_UP (1 << 9)
#define STATUS3_YAWN 0x1800 // two bits #define STATUS3_ROOTED (1 << 10)
#define STATUS3_IMPRISONED_OTHERS 0x2000 #define STATUS3_YAWN (1 << 11 | 1 << 12) // Number of turns to sleep
#define STATUS3_GRUDGE 0x4000 #define STATUS3_YAWN_TURN(num) (((num) << 11) & STATUS3_YAWN)
#define STATUS3_CANT_SCORE_A_CRIT 0x8000 #define STATUS3_IMPRISONED_OTHERS (1 << 13)
#define STATUS3_MUDSPORT 0x10000 #define STATUS3_GRUDGE (1 << 14)
#define STATUS3_WATERSPORT 0x20000 #define STATUS3_CANT_SCORE_A_CRIT (1 << 15)
#define STATUS3_UNDERWATER 0x40000 #define STATUS3_MUDSPORT (1 << 16)
#define STATUS3_INTIMIDATE_POKES 0x80000 #define STATUS3_WATERSPORT (1 << 17)
#define STATUS3_TRACE 0x100000 #define STATUS3_UNDERWATER (1 << 18)
#define STATUS3_INTIMIDATE_POKES (1 << 19)
#define STATUS3_TRACE (1 << 20)
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) #define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
// Not really sure what a "hitmarker" is. // Not really sure what a "hitmarker" is.
#define HITMARKER_x10 0x00000010 #define HITMARKER_WAKE_UP_CLEAR (1 << 4) // Cleared when waking up. Never set or checked.
#define HITMARKER_x20 0x00000020 #define HITMARKER_SKIP_DMG_TRACK (1 << 5)
#define HITMARKER_DESTINYBOND 0x00000040 #define HITMARKER_DESTINYBOND (1 << 6)
#define HITMARKER_NO_ANIMATIONS 0x00000080 #define HITMARKER_NO_ANIMATIONS (1 << 7)
#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 #define HITMARKER_IGNORE_SUBSTITUTE (1 << 8)
#define HITMARKER_NO_ATTACKSTRING 0x00000200 #define HITMARKER_NO_ATTACKSTRING (1 << 9)
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 #define HITMARKER_ATTACKSTRING_PRINTED (1 << 10)
#define HITMARKER_NO_PPDEDUCT 0x00000800 #define HITMARKER_NO_PPDEDUCT (1 << 11)
#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000 #define HITMARKER_SWAP_ATTACKER_TARGET (1 << 12)
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 #define HITMARKER_IGNORE_SAFEGUARD (1 << 13)
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 #define HITMARKER_SYNCHRONISE_EFFECT (1 << 14)
#define HITMARKER_RUN 0x00008000 #define HITMARKER_RUN (1 << 15)
#define HITMARKER_IGNORE_ON_AIR 0x00010000 #define HITMARKER_IGNORE_ON_AIR (1 << 16)
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 #define HITMARKER_IGNORE_UNDERGROUND (1 << 17)
#define HITMARKER_IGNORE_UNDERWATER 0x00040000 #define HITMARKER_IGNORE_UNDERWATER (1 << 18)
#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 #define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19)
#define HITMARKER_PASSIVE_DAMAGE 0x00100000 #define HITMARKER_PASSIVE_DAMAGE (1 << 20)
#define HITMARKER_x200000 0x00200000 #define HITMARKER_DISOBEDIENT_MOVE (1 << 21)
#define HITMARKER_PLAYER_FAINTED 0x00400000 #define HITMARKER_PLAYER_FAINTED (1 << 22)
#define HITMARKER_x800000 0x00800000 #define HITMARKER_ALLOW_NO_PP (1 << 23)
#define HITMARKER_GRUDGE 0x01000000 #define HITMARKER_GRUDGE (1 << 24)
#define HITMARKER_OBEYS 0x02000000 #define HITMARKER_OBEYS (1 << 25)
#define HITMARKER_x4000000 0x04000000 #define HITMARKER_NEVER_SET (1 << 26) // Cleared as part of a large group. Never set or checked
#define HITMARKER_CHARGING 0x08000000 #define HITMARKER_CHARGING (1 << 27)
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) #define HITMARKER_FAINTED(battler) (gBitTable[battler] << 28)
#define HITMARKER_FAINTED2(battler) (0x10000000 << battler) #define HITMARKER_FAINTED2(battler) ((1 << 28) << battler)
// Per-side statuses that affect an entire party // Per-side statuses that affect an entire party
#define SIDE_STATUS_REFLECT (1 << 0) #define SIDE_STATUS_REFLECT (1 << 0)
@@ -205,87 +203,85 @@
#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) #define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
// Battle Weather flags // Battle Weather flags
#define WEATHER_RAIN_TEMPORARY (1 << 0) #define B_WEATHER_RAIN_TEMPORARY (1 << 0)
#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused #define B_WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
#define WEATHER_RAIN_PERMANENT (1 << 2) #define B_WEATHER_RAIN_PERMANENT (1 << 2)
#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT) #define B_WEATHER_RAIN (B_WEATHER_RAIN_TEMPORARY | B_WEATHER_RAIN_DOWNPOUR | B_WEATHER_RAIN_PERMANENT)
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) #define B_WEATHER_SANDSTORM_TEMPORARY (1 << 3)
#define WEATHER_SANDSTORM_PERMANENT (1 << 4) #define B_WEATHER_SANDSTORM_PERMANENT (1 << 4)
#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT) #define B_WEATHER_SANDSTORM (B_WEATHER_SANDSTORM_TEMPORARY | B_WEATHER_SANDSTORM_PERMANENT)
#define WEATHER_SUN_TEMPORARY (1 << 5) #define B_WEATHER_SUN_TEMPORARY (1 << 5)
#define WEATHER_SUN_PERMANENT (1 << 6) #define B_WEATHER_SUN_PERMANENT (1 << 6)
#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT) #define B_WEATHER_SUN (B_WEATHER_SUN_TEMPORARY | B_WEATHER_SUN_PERMANENT)
#define WEATHER_HAIL (1 << 7) #define B_WEATHER_HAIL_TEMPORARY (1 << 7)
#define WEATHER_HAIL_ANY (WEATHER_HAIL) #define B_WEATHER_HAIL (B_WEATHER_HAIL_TEMPORARY)
#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) #define B_WEATHER_ANY (B_WEATHER_RAIN | B_WEATHER_SANDSTORM | B_WEATHER_SUN | B_WEATHER_HAIL)
// Move Effects // Move Effects
#define MOVE_EFFECT_NOTHING_0 0x0 #define MOVE_EFFECT_SLEEP 1
#define MOVE_EFFECT_SLEEP 0x1 #define MOVE_EFFECT_POISON 2
#define MOVE_EFFECT_POISON 0x2 #define MOVE_EFFECT_BURN 3
#define MOVE_EFFECT_BURN 0x3 #define MOVE_EFFECT_FREEZE 4
#define MOVE_EFFECT_FREEZE 0x4 #define MOVE_EFFECT_PARALYSIS 5
#define MOVE_EFFECT_PARALYSIS 0x5 #define MOVE_EFFECT_TOXIC 6
#define MOVE_EFFECT_TOXIC 0x6 #define PRIMARY_STATUS_MOVE_EFFECT MOVE_EFFECT_TOXIC // All above move effects apply primary status
#define MOVE_EFFECT_CONFUSION 0x7 #define MOVE_EFFECT_CONFUSION 7
#define MOVE_EFFECT_FLINCH 0x8 #define MOVE_EFFECT_FLINCH 8
#define MOVE_EFFECT_TRI_ATTACK 0x9 #define MOVE_EFFECT_TRI_ATTACK 9
#define MOVE_EFFECT_UPROAR 0xA #define MOVE_EFFECT_UPROAR 10
#define MOVE_EFFECT_PAYDAY 0xB #define MOVE_EFFECT_PAYDAY 11
#define MOVE_EFFECT_CHARGING 0xC #define MOVE_EFFECT_CHARGING 12
#define MOVE_EFFECT_WRAP 0xD #define MOVE_EFFECT_WRAP 13
#define MOVE_EFFECT_RECOIL_25 0xE #define MOVE_EFFECT_RECOIL_25 14
#define MOVE_EFFECT_ATK_PLUS_1 0xF #define MOVE_EFFECT_ATK_PLUS_1 15
#define MOVE_EFFECT_DEF_PLUS_1 0x10 #define MOVE_EFFECT_DEF_PLUS_1 16
#define MOVE_EFFECT_SPD_PLUS_1 0x11 #define MOVE_EFFECT_SPD_PLUS_1 17
#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12 #define MOVE_EFFECT_SP_ATK_PLUS_1 18
#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13 #define MOVE_EFFECT_SP_DEF_PLUS_1 19
#define MOVE_EFFECT_ACC_PLUS_1 0x14 #define MOVE_EFFECT_ACC_PLUS_1 20
#define MOVE_EFFECT_EVS_PLUS_1 0x15 #define MOVE_EFFECT_EVS_PLUS_1 21
#define MOVE_EFFECT_ATK_MINUS_1 0x16 #define MOVE_EFFECT_ATK_MINUS_1 22
#define MOVE_EFFECT_DEF_MINUS_1 0x17 #define MOVE_EFFECT_DEF_MINUS_1 23
#define MOVE_EFFECT_SPD_MINUS_1 0x18 #define MOVE_EFFECT_SPD_MINUS_1 24
#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19 #define MOVE_EFFECT_SP_ATK_MINUS_1 25
#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A #define MOVE_EFFECT_SP_DEF_MINUS_1 26
#define MOVE_EFFECT_ACC_MINUS_1 0x1B #define MOVE_EFFECT_ACC_MINUS_1 27
#define MOVE_EFFECT_EVS_MINUS_1 0x1C #define MOVE_EFFECT_EVS_MINUS_1 28
#define MOVE_EFFECT_RECHARGE 0x1D #define MOVE_EFFECT_RECHARGE 29
#define MOVE_EFFECT_RAGE 0x1E #define MOVE_EFFECT_RAGE 30
#define MOVE_EFFECT_STEAL_ITEM 0x1F #define MOVE_EFFECT_STEAL_ITEM 31
#define MOVE_EFFECT_PREVENT_ESCAPE 0x20 #define MOVE_EFFECT_PREVENT_ESCAPE 32
#define MOVE_EFFECT_NIGHTMARE 0x21 #define MOVE_EFFECT_NIGHTMARE 33
#define MOVE_EFFECT_ALL_STATS_UP 0x22 #define MOVE_EFFECT_ALL_STATS_UP 34
#define MOVE_EFFECT_RAPIDSPIN 0x23 #define MOVE_EFFECT_RAPIDSPIN 35
#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 #define MOVE_EFFECT_REMOVE_PARALYSIS 36
#define MOVE_EFFECT_ATK_DEF_DOWN 0x25 #define MOVE_EFFECT_ATK_DEF_DOWN 37
#define MOVE_EFFECT_RECOIL_33 0x26 #define MOVE_EFFECT_RECOIL_33 38
#define MOVE_EFFECT_ATK_PLUS_2 0x27 #define MOVE_EFFECT_ATK_PLUS_2 39
#define MOVE_EFFECT_DEF_PLUS_2 0x28 #define MOVE_EFFECT_DEF_PLUS_2 40
#define MOVE_EFFECT_SPD_PLUS_2 0x29 #define MOVE_EFFECT_SPD_PLUS_2 41
#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A #define MOVE_EFFECT_SP_ATK_PLUS_2 42
#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B #define MOVE_EFFECT_SP_DEF_PLUS_2 43
#define MOVE_EFFECT_ACC_PLUS_2 0x2C #define MOVE_EFFECT_ACC_PLUS_2 44
#define MOVE_EFFECT_EVS_PLUS_2 0x2D #define MOVE_EFFECT_EVS_PLUS_2 45
#define MOVE_EFFECT_ATK_MINUS_2 0x2E #define MOVE_EFFECT_ATK_MINUS_2 46
#define MOVE_EFFECT_DEF_MINUS_2 0x2F #define MOVE_EFFECT_DEF_MINUS_2 47
#define MOVE_EFFECT_SPD_MINUS_2 0x30 #define MOVE_EFFECT_SPD_MINUS_2 48
#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31 #define MOVE_EFFECT_SP_ATK_MINUS_2 49
#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32 #define MOVE_EFFECT_SP_DEF_MINUS_2 50
#define MOVE_EFFECT_ACC_MINUS_2 0x33 #define MOVE_EFFECT_ACC_MINUS_2 51
#define MOVE_EFFECT_EVS_MINUS_2 0x34 #define MOVE_EFFECT_EVS_MINUS_2 52
#define MOVE_EFFECT_THRASH 0x35 #define MOVE_EFFECT_THRASH 53
#define MOVE_EFFECT_KNOCK_OFF 0x36 #define MOVE_EFFECT_KNOCK_OFF 54
#define MOVE_EFFECT_NOTHING_37 0x37 #define MOVE_EFFECT_NOTHING_37 55
#define MOVE_EFFECT_NOTHING_38 0x38 #define MOVE_EFFECT_NOTHING_38 56
#define MOVE_EFFECT_NOTHING_39 0x39 #define MOVE_EFFECT_NOTHING_39 57
#define MOVE_EFFECT_NOTHING_3A 0x3A #define MOVE_EFFECT_NOTHING_3A 58
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B #define MOVE_EFFECT_SP_ATK_TWO_DOWN 59
#define MOVE_EFFECT_NOTHING_3C 0x3C #define NUM_MOVE_EFFECTS 60
#define MOVE_EFFECT_NOTHING_3D 0x3D
#define MOVE_EFFECT_NOTHING_3E 0x3E #define MOVE_EFFECT_AFFECTS_USER (1 << 6) // 64
#define MOVE_EFFECT_NOTHING_3F 0x3F #define MOVE_EFFECT_CERTAIN (1 << 7) // 128
#define MOVE_EFFECT_AFFECTS_USER 0x40
#define MOVE_EFFECT_CERTAIN 0x80
// Battle terrain defines for gBattleTerrain. // Battle terrain defines for gBattleTerrain.
#define BATTLE_TERRAIN_GRASS 0 #define BATTLE_TERRAIN_GRASS 0
@@ -309,9 +305,46 @@
#define BATTLE_TERRAIN_LANCE 18 #define BATTLE_TERRAIN_LANCE 18
#define BATTLE_TERRAIN_CHAMPION 19 #define BATTLE_TERRAIN_CHAMPION 19
#define CASTFORM_NORMAL 0
#define CASTFORM_FIRE 1
#define CASTFORM_WATER 2
#define CASTFORM_ICE 3
#define NUM_CASTFORM_FORMS 4
#define CASTFORM_SUBSTITUTE (1 << 7)
// Return value for IsRunningFromBattleImpossible. // Return value for IsRunningFromBattleImpossible.
#define BATTLE_RUN_SUCCESS 0 #define BATTLE_RUN_SUCCESS 0
#define BATTLE_RUN_FORBIDDEN 1 #define BATTLE_RUN_FORBIDDEN 1
#define BATTLE_RUN_FAILURE 2 #define BATTLE_RUN_FAILURE 2
// Window Ids for sStandardBattleWindowTemplates
#define B_WIN_MSG 0
#define B_WIN_ACTION_PROMPT 1 // "What will {x} do?"
#define B_WIN_ACTION_MENU 2 // "Fight/Pokémon/Bag/Run" menu
#define B_WIN_MOVE_NAME_1 3 // Top left
#define B_WIN_MOVE_NAME_2 4 // Top right
#define B_WIN_MOVE_NAME_3 5 // Bottom left
#define B_WIN_MOVE_NAME_4 6 // Bottom right
#define B_WIN_PP 7
#define B_WIN_MOVE_TYPE 8
#define B_WIN_PP_REMAINING 9
#define B_WIN_DUMMY 10
#define B_WIN_SWITCH_PROMPT 11 // "Switch which?"
#define B_WIN_LEVEL_UP_BOX 12
#define B_WIN_LEVEL_UP_BANNER 13
#define B_WIN_YESNO 14
#define B_WIN_VS_PLAYER 15
#define B_WIN_VS_OPPONENT 16
#define B_WIN_VS_MULTI_PLAYER_1 17
#define B_WIN_VS_MULTI_PLAYER_2 18
#define B_WIN_VS_MULTI_PLAYER_3 19
#define B_WIN_VS_MULTI_PLAYER_4 20
#define B_WIN_VS_OUTCOME_DRAW 21
#define B_WIN_VS_OUTCOME_LEFT 22
#define B_WIN_VS_OUTCOME_RIGHT 23
#define B_WIN_OAK_OLD_MAN 24
#define B_TEXT_FLAG_NPC_CONTEXT_FONT (1 << 6)
#define B_TEXT_FLAG_WINDOW_CLEAR (1 << 7)
#endif // GUARD_CONSTANTS_BATTLE_H #endif // GUARD_CONSTANTS_BATTLE_H
+3 -3
View File
@@ -342,9 +342,9 @@
#define BG_FISSURE 21 #define BG_FISSURE 21
#define BG_BUG_OPPONENT 22 #define BG_BUG_OPPONENT 22
#define BG_BUG_PLAYER 23 #define BG_BUG_PLAYER 23
#define BG_SOLARBEAM_OPPONENT 24 #define BG_SOLAR_BEAM_OPPONENT 24
#define BG_SOLARBEAM_PLAYER 25 #define BG_SOLAR_BEAM_PLAYER 25
#define BG_SOLARBEAM_CONTESTS 26 #define BG_SOLAR_BEAM_CONTESTS 26
// table ids for general animations // table ids for general animations
#define B_ANIM_CASTFORM_CHANGE 0x0 #define B_ANIM_CASTFORM_CHANGE 0x0
+1 -1
View File
@@ -152,7 +152,7 @@
#define EFFECT_FUTURE_SIGHT 148 #define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149 #define EFFECT_GUST 149
#define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM #define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_SOLARBEAM 151 #define EFFECT_SOLAR_BEAM 151
#define EFFECT_THUNDER 152 #define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153 #define EFFECT_TELEPORT 153
#define EFFECT_BEAT_UP 154 #define EFFECT_BEAT_UP 154
+68 -54
View File
@@ -30,29 +30,40 @@
#define sMULTIPLAYER_ID gBattleScripting + 0x25 #define sMULTIPLAYER_ID gBattleScripting + 0x25
#define sSPECIAL_TRAINER_BATTLE_TYPE gBattleScripting + 0x26 #define sSPECIAL_TRAINER_BATTLE_TYPE gBattleScripting + 0x26
#define cEFFECT_CHOOSER gBattleCommunication + 3 // Array entries for battle communication
#define cMULTISTRING_CHOOSER gBattleCommunication + 5 #define MULTIUSE_STATE 0
#define CURSOR_POSITION 1
#define TASK_ID 1 // task Id and cursor position share the same field
#define SPRITES_INIT_STATE1 1 // shares the Id as well
#define SPRITES_INIT_STATE2 2
#define MOVE_EFFECT_BYTE 3
#define ACTIONS_CONFIRMED_COUNT 4
#define MULTISTRING_CHOOSER 5
#define MISS_TYPE 6
#define MSG_DISPLAY 7
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
#define cEFFECT_CHOOSER (gBattleCommunication + MOVE_EFFECT_BYTE)
#define cMULTISTRING_CHOOSER (gBattleCommunication + MULTISTRING_CHOOSER)
#define cMISS_TYPE (gBattleCommunication + MISS_TYPE)
// Battle Script defines for getting the wanted battler // Battle Script defines for getting the wanted battler
#define BS_TARGET 0 #define BS_TARGET 0
#define BS_ATTACKER 1 #define BS_ATTACKER 1
#define BS_EFFECT_BATTLER 2 #define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3 #define BS_FAINTED 3
#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_updatestatusicon #define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
#define BS_UNKNOWN_5 5 // for openpartyscreen #define BS_FAINTED_LINK_MULTIPLE_1 5 // for openpartyscreen
#define BS_UNKNOWN_6 6 // for openpartyscreen #define BS_FAINTED_LINK_MULTIPLE_2 6 // for openpartyscreen
#define BS_BATTLER_0 7 #define BS_BATTLER_0 7
#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability #define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10 #define BS_SCRIPTING 10
#define BS_PLAYER1 11 #define BS_PLAYER1 11
#define BS_OPPONENT1 12 #define BS_OPPONENT1 12
#define BS_PLAYER2 13 // for atk98_updatestatusicon #define BS_PLAYER2 13 // for Cmd_updatestatusicon
#define BS_OPPONENT2 14 #define BS_OPPONENT2 14
// used for openpartyscreen
#define OPEN_PARTY_ALLOW_CANCEL 0x80
// atk 01, accuracy calc // atk 01, accuracy calc
#define NO_ACC_CALC 0xFFFE #define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF #define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
@@ -72,61 +83,64 @@
#define VARIOUS_SET_MAGIC_COAT_TARGET 1 #define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 #define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3 #define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_CASE_4 4 #define VARIOUS_GET_BATTLER_FAINTED 4
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 #define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 #define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
#define VARIOUS_RESET_PLAYER_FAINTED_FLAG 7 #define VARIOUS_RESET_PLAYER_FAINTED 7
#define VARIOUS_CASE_8 8 #define VARIOUS_CASE_8 8
#define VARIOUS_RETURN_OPPONENT_MON1 9 #define VARIOUS_RETURN_OPPONENT_MON1 9
#define VARIOUS_RETURN_OPPONENT_MON2 10 #define VARIOUS_RETURN_OPPONENT_MON2 10
#define VARIOUS_CHECK_POKEFLUTE 11 #define VARIOUS_CHECK_POKEFLUTE 11
#define VARIOUS_WAIT_FANFARE 12 #define VARIOUS_WAIT_FANFARE 12
// atk80, dmg manipulation // Cmd_manipulatedmg
#define ATK80_DMG_CHANGE_SIGN 0 #define DMG_CHANGE_SIGN 0
#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 #define DMG_RECOIL_FROM_MISS 1
#define ATK80_DMG_DOUBLED 2 #define DMG_DOUBLED 2
// atk4F, a flag used for the jumpifcantswitch command // Cmd_jumpifcantswitch
#define ATK4F_DONT_CHECK_STATUSES 0x80 #define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// statchange defines // Cmd_statbuffchange
#define STAT_CHANGE_BS_PTR 0x1 #define STAT_CHANGE_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 #define STAT_CHANGE_NOT_PROTECT_AFFECTED (1 << 5)
// atk48 // stat change flags for Cmd_playstatchangeanimation
#define ATK48_STAT_NEGATIVE 0x1 #define STAT_CHANGE_NEGATIVE (1 << 0)
#define ATK48_STAT_BY_TWO 0x2 #define STAT_CHANGE_BY_TWO (1 << 1)
#define ATK48_ONLY_MULTIPLE 0x4 #define STAT_CHANGE_MULTIPLE_STATS (1 << 2)
#define ATK48_DONT_CHECK_LOWER 0x8 #define STAT_CHANGE_CANT_PREVENT (1 << 3)
// atk49, moveend cases // stat flags for Cmd_playstatchangeanimation
#define ATK49_RAGE 0 #define BIT_HP (1 << 0)
#define ATK49_DEFROST 1 #define BIT_ATK (1 << 1)
#define ATK49_SYNCHRONIZE_TARGET 2 #define BIT_DEF (1 << 2)
#define ATK49_MOVE_END_ABILITIES 3 #define BIT_SPEED (1 << 3)
#define ATK49_STATUS_IMMUNITY_ABILITIES 4 #define BIT_SPATK (1 << 4)
#define ATK49_SYNCHRONIZE_ATTACKER 5 #define BIT_SPDEF (1 << 5)
#define ATK49_CHOICE_MOVE 6 #define BIT_ACC (1 << 6)
#define ATK49_CHANGED_ITEMS 7 #define BIT_EVASION (1 << 7)
#define ATK49_ATTACKER_INVISIBLE 8
#define ATK49_ATTACKER_VISIBLE 9
#define ATK49_TARGET_VISIBLE 10
#define ATK49_ITEM_EFFECTS_ALL 11
#define ATK49_KINGSROCK_SHELLBELL 12
#define ATK49_SUBSTITUTE 13
#define ATK49_UPDATE_LAST_MOVES 14
#define ATK49_MIRROR_MOVE 15
#define ATK49_NEXT_TARGET 16
#define ATK49_COUNT 17
#define BIT_HP 0x1 #define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen
#define BIT_ATK 0x2
#define BIT_DEF 0x4 // cases for Cmd_moveend
#define BIT_SPEED 0x8 #define MOVEEND_RAGE 0
#define BIT_SPATK 0x10 #define MOVEEND_DEFROST 1
#define BIT_SPDEF 0x20 #define MOVEEND_SYNCHRONIZE_TARGET 2
#define BIT_ACC 0x40 #define MOVEEND_ON_DAMAGE_ABILITIES 3
#define BIT_EVASION 0x80 #define MOVEEND_IMMUNITY_ABILITIES 4
#define MOVEEND_SYNCHRONIZE_ATTACKER 5
#define MOVEEND_CHOICE_MOVE 6
#define MOVEEND_CHANGED_ITEMS 7
#define MOVEEND_ATTACKER_INVISIBLE 8
#define MOVEEND_ATTACKER_VISIBLE 9
#define MOVEEND_TARGET_VISIBLE 10
#define MOVEEND_ITEM_EFFECTS_ALL 11
#define MOVEEND_KINGSROCK_SHELLBELL 12
#define MOVEEND_SUBSTITUTE 13
#define MOVEEND_UPDATE_LAST_MOVES 14
#define MOVEEND_MIRROR_MOVE 15
#define MOVEEND_NEXT_TARGET 16
#define MOVEEND_COUNT 17
#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H #endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
+4
View File
@@ -30,6 +30,7 @@
#define GAME_LANGUAGE (LANGUAGE_ENGLISH) #define GAME_LANGUAGE (LANGUAGE_ENGLISH)
#endif #endif
// capacities of various saveblock objects
#define DAYCARE_MON_COUNT 2 #define DAYCARE_MON_COUNT 2
#define PC_ITEMS_COUNT 30 #define PC_ITEMS_COUNT 30
#define BAG_ITEMS_COUNT 42 #define BAG_ITEMS_COUNT 42
@@ -53,6 +54,9 @@
#define POCKET_BERRY_POUCH 5 #define POCKET_BERRY_POUCH 5
#define NUM_BAG_POCKETS 5 #define NUM_BAG_POCKETS 5
// Contests
#define CONTEST_CATEGORIES_COUNT 5
// string lengths // string lengths
#define ITEM_NAME_LENGTH 14 #define ITEM_NAME_LENGTH 14
#define POKEMON_NAME_LENGTH 10 #define POKEMON_NAME_LENGTH 10
+2 -1
View File
@@ -372,7 +372,7 @@
#define ITEM_TM19_GIGA_DRAIN ITEM_TM19 #define ITEM_TM19_GIGA_DRAIN ITEM_TM19
#define ITEM_TM20_SAFEGUARD ITEM_TM20 #define ITEM_TM20_SAFEGUARD ITEM_TM20
#define ITEM_TM21_FRUSTRATION ITEM_TM21 #define ITEM_TM21_FRUSTRATION ITEM_TM21
#define ITEM_TM22_SOLARBEAM ITEM_TM22 #define ITEM_TM22_SOLAR_BEAM ITEM_TM22
#define ITEM_TM23_IRON_TAIL ITEM_TM23 #define ITEM_TM23_IRON_TAIL ITEM_TM23
#define ITEM_TM24_THUNDERBOLT ITEM_TM24 #define ITEM_TM24_THUNDERBOLT ITEM_TM24
#define ITEM_TM25_THUNDER ITEM_TM25 #define ITEM_TM25_THUNDER ITEM_TM25
@@ -447,6 +447,7 @@
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY #define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1)) #define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
#define MAIL_NONE 0xFF
#define NUM_TECHNICAL_MACHINES 50 #define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8 #define NUM_HIDDEN_MACHINES 8
+3
View File
@@ -361,6 +361,9 @@
#define MOVES_COUNT 355 #define MOVES_COUNT 355
// Used for checks for moves affected by Disable, Mimic, etc.
#define MOVE_UNAVAILABLE 0xFFFF
#define MOVETUTOR_MEGA_PUNCH 0 #define MOVETUTOR_MEGA_PUNCH 0
#define MOVETUTOR_SWORDS_DANCE 1 #define MOVETUTOR_SWORDS_DANCE 1
#define MOVETUTOR_MEGA_KICK 2 #define MOVETUTOR_MEGA_KICK 2
+43 -36
View File
@@ -81,7 +81,7 @@
#define MON_DATA_NATIONAL_RIBBON 76 #define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77 #define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78 #define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_FILLER 79 #define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80 #define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81 #define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82 #define MON_DATA_RIBBON_COUNT 82
@@ -134,44 +134,51 @@
#define EGG_GROUPS_PER_MON 2 #define EGG_GROUPS_PER_MON 2
// Pokemon natures // Pokemon natures
#define NATURE_HARDY 0 #define NATURE_HARDY 0
#define NATURE_LONELY 1 #define NATURE_LONELY 1
#define NATURE_BRAVE 2 #define NATURE_BRAVE 2
#define NATURE_ADAMANT 3 #define NATURE_ADAMANT 3
#define NATURE_NAUGHTY 4 #define NATURE_NAUGHTY 4
#define NATURE_BOLD 5 #define NATURE_BOLD 5
#define NATURE_DOCILE 6 #define NATURE_DOCILE 6
#define NATURE_RELAXED 7 #define NATURE_RELAXED 7
#define NATURE_IMPISH 8 #define NATURE_IMPISH 8
#define NATURE_LAX 9 #define NATURE_LAX 9
#define NATURE_TIMID 10 #define NATURE_TIMID 10
#define NATURE_HASTY 11 #define NATURE_HASTY 11
#define NATURE_SERIOUS 12 #define NATURE_SERIOUS 12
#define NATURE_JOLLY 13 #define NATURE_JOLLY 13
#define NATURE_NAIVE 14 #define NATURE_NAIVE 14
#define NATURE_MODEST 15 #define NATURE_MODEST 15
#define NATURE_MILD 16 #define NATURE_MILD 16
#define NATURE_QUIET 17 #define NATURE_QUIET 17
#define NATURE_BASHFUL 18 #define NATURE_BASHFUL 18
#define NATURE_RASH 19 #define NATURE_RASH 19
#define NATURE_CALM 20 #define NATURE_CALM 20
#define NATURE_GENTLE 21 #define NATURE_GENTLE 21
#define NATURE_SASSY 22 #define NATURE_SASSY 22
#define NATURE_CAREFUL 23 #define NATURE_CAREFUL 23
#define NATURE_QUIRKY 24 #define NATURE_QUIRKY 24
#define NUM_NATURES 25
// Pokemon Stats // Pokemon Stats
#define STAT_HP 0 #define STAT_HP 0
#define STAT_ATK 1 #define STAT_ATK 1
#define STAT_DEF 2 #define STAT_DEF 2
#define STAT_SPEED 3 #define STAT_SPEED 3
#define STAT_SPATK 4 #define STAT_SPATK 4
#define STAT_SPDEF 5 #define STAT_SPDEF 5
#define STAT_ACC 6 // only in battles #define NUM_STATS 6
#define STAT_EVASION 7 // only in battles
#define NUM_STATS 6 #define STAT_ACC 6 // Only in battles.
#define NUM_BATTLE_STATS 8 #define STAT_EVASION 7 // Only in battles.
#define NUM_NATURE_STATS (NUM_STATS - 1) // excludes HP
#define NUM_BATTLE_STATS (NUM_STATS + 2) // includes Accuracy and Evasion
#define MIN_STAT_STAGE 0
#define DEFAULT_STAT_STAGE 6
#define MAX_STAT_STAGE 12
// Shiny odds // Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
+3 -3
View File
@@ -18,9 +18,9 @@ void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src);
void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src); bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
+6 -6
View File
@@ -5,12 +5,12 @@
void LoadEvoSparkleSpriteAndPal(void); void LoadEvoSparkleSpriteAndPal(void);
u8 LaunchTask_PreEvoSparklesSet1(u16 arg0); u8 EvolutionSparkles_SpiralUpward(u16 arg0);
u8 LaunchTask_PreEvoSparklesSet2(void); u8 EvolutionSparkles_ArcDown(void);
u8 LaunchTask_PostEvoSparklesSet1(void); u8 EvolutionSparkles_CircleInward(void);
u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species); u8 EvolutionSparkles_SprayAndFlash(u16 species);
u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species); u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species);
u8 LaunchTask_PrePostEvoMonSprites(u8 preEvoSpriteId, u8 postEvoSpriteId); u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId);
#define EvoGraphicsTaskEvoStop data[8] #define EvoGraphicsTaskEvoStop data[8]
+2 -2
View File
@@ -19,8 +19,8 @@ void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 value);
void StartAshFieldEffect(s16, s16, u16, s16); void StartAshFieldEffect(s16, s16, u16, s16);
void StartRevealDisguise(struct ObjectEvent *); void StartRevealDisguise(struct ObjectEvent *);
bool8 UpdateRevealDisguise(struct ObjectEvent *); bool8 UpdateRevealDisguise(struct ObjectEvent *);
void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8); void SetUpReflection(struct ObjectEvent *, struct Sprite *, u8);
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*); u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent *);
u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y); void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
void SetSpriteInvisible(u8 spriteId); void SetSpriteInvisible(u8 spriteId);
+1 -1
View File
@@ -21,7 +21,7 @@ u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y);
void MapGridSetMetatileIdAt(s32, s32, u16); void MapGridSetMetatileIdAt(s32, s32, u16);
void MapGridSetMetatileEntryAt(s32, s32, u16); void MapGridSetMetatileEntryAt(s32, s32, u16);
u8 MapGridGetZCoordAt(s32 x, s32 y); u8 MapGridGetZCoordAt(s32 x, s32 y);
void GetCameraCoords(u16*, u16*); void GetCameraCoords(u16 *, u16 *);
bool8 MapGridIsImpassableAt(s32, s32); bool8 MapGridIsImpassableAt(s32, s32);
s32 GetMapBorderIdAt(s32, s32); s32 GetMapBorderIdAt(s32, s32);
bool32 CanCameraMoveInDirection(s32); bool32 CanCameraMoveInDirection(s32);
+4 -4
View File
@@ -23,14 +23,14 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
#ifdef NDEBUG #ifdef NDEBUG
#define AGB_ASSERT(exp) #define AGB_ASSERT(exp)
#else #else
#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1); #define AGB_ASSERT(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif #endif
#undef AGB_WARNING #undef AGB_WARNING
#ifdef NDEBUG #ifdef NDEBUG
#define AGB_WARNING(exp) #define AGB_WARNING(exp)
#else #else
#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0); #define AGB_WARNING(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif #endif
// for matching purposes // for matching purposes
@@ -42,13 +42,13 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
#ifdef NDEBUG #ifdef NDEBUG
#define AGB_ASSERT_EX(exp, file, line) #define AGB_ASSERT_EX(exp, file, line)
#else #else
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1); #define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 1);
#endif #endif
#ifdef NDEBUG #ifdef NDEBUG
#define AGB_WARNING_EX(exp, file, line) #define AGB_WARNING_EX(exp, file, line)
#else #else
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0); #define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 0);
#endif #endif
#endif #endif
+2 -2
View File
@@ -100,13 +100,13 @@
#define T1_READ_8(ptr) ((ptr)[0]) #define T1_READ_8(ptr) ((ptr)[0])
#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) #define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24)) #define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr) #define T1_READ_PTR(ptr) (u8 *) T1_READ_32(ptr)
// T2_READ_8 is a duplicate to remain consistent with each group. // T2_READ_8 is a duplicate to remain consistent with each group.
#define T2_READ_8(ptr) ((ptr)[0]) #define T2_READ_8(ptr) ((ptr)[0])
#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) #define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) #define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) #define T2_READ_PTR(ptr) (void *) T2_READ_32(ptr)
// This macro is required to prevent the compiler from optimizing // This macro is required to prevent the compiler from optimizing
// a dpad up/down check in sub_812CAD8 (fame_checker.c). // a dpad up/down check in sub_812CAD8 (fame_checker.c).
+1 -1
View File
@@ -4258,7 +4258,7 @@ extern const u32 gBattleAnimBgPalette_Sky[];
extern const u32 gBattleAnimBgPalette_Aurora[]; extern const u32 gBattleAnimBgPalette_Aurora[];
extern const u32 gBattleAnimBgPalette_Fissure[]; extern const u32 gBattleAnimBgPalette_Fissure[];
extern const u32 gBattleAnimBgPalette_Bug[]; extern const u32 gBattleAnimBgPalette_Bug[];
extern const u32 gBattleAnimBgPalette_Solarbeam[]; extern const u32 gBattleAnimBgPalette_SolarBeam[];
extern const u32 gBattleAnimBgPalette_Surf[]; extern const u32 gBattleAnimBgPalette_Surf[];
extern const u32 gBattleAnimBgTilemap_Dark[]; extern const u32 gBattleAnimBgTilemap_Dark[];
extern const u32 gBattleAnimBgTilemap_Ghost[]; extern const u32 gBattleAnimBgTilemap_Ghost[];
+1 -1
View File
@@ -32,7 +32,7 @@ struct BagPocket
extern const struct Item gItems[]; extern const struct Item gItems[];
extern struct BagPocket gBagPockets[]; extern struct BagPocket gBagPockets[];
void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity); void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity);
void CopyItemName(u16 itemId, u8 *string); void CopyItemName(u16 itemId, u8 *string);
void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity); void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
bool8 IsBagPocketNonEmpty(u8 pocket); bool8 IsBagPocketNonEmpty(u8 pocket);
+5 -5
View File
@@ -3,11 +3,11 @@
#include "global.h" #include "global.h"
u32 GetMoney(u32* moneyPtr); u32 GetMoney(u32 *moneyPtr);
void SetMoney(u32* moneyPtr, u32 newValue); void SetMoney(u32 *moneyPtr, u32 newValue);
bool8 IsEnoughMoney(u32* moneyPtr, u32 cost); bool8 IsEnoughMoney(u32 *moneyPtr, u32 cost);
void AddMoney(u32* moneyPtr, u32 toAdd); void AddMoney(u32 *moneyPtr, u32 toAdd);
void RemoveMoney(u32* moneyPtr, u32 toSub); void RemoveMoney(u32 *moneyPtr, u32 toSub);
bool8 IsEnoughForCostInVar0x8005(void); bool8 IsEnoughForCostInVar0x8005(void);
void SubtractMoneyFromVar0x8005(void); void SubtractMoneyFromVar0x8005(void);
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
+9 -8
View File
@@ -73,7 +73,7 @@ struct PokemonSubstruct3
/* 0x0B */ u32 nationalRibbon:1; /* 0x0B */ u32 nationalRibbon:1;
/* 0x0B */ u32 earthRibbon:1; /* 0x0B */ u32 earthRibbon:1;
/* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners /* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
/* 0x0B */ u32 filler:4; /* 0x0B */ u32 unusedRibbons:4; // discarded in Gen 4
/* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in FRLG & Gen 4+ summary screens; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness. /* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in FRLG & Gen 4+ summary screens; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness.
}; };
@@ -245,12 +245,13 @@ struct BattleMove
extern const struct BattleMove gBattleMoves[]; extern const struct BattleMove gBattleMoves[];
#define FLAG_MAKES_CONTACT 0x1 // Battle move flags
#define FLAG_PROTECT_AFFECTED 0x2 #define FLAG_MAKES_CONTACT (1 << 0)
#define FLAG_MAGICCOAT_AFFECTED 0x4 #define FLAG_PROTECT_AFFECTED (1 << 1)
#define FLAG_SNATCH_AFFECTED 0x8 #define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
#define FLAG_MIRROR_MOVE_AFFECTED 0x10 #define FLAG_SNATCH_AFFECTED (1 << 3)
#define FLAG_KINGSROCK_AFFECTED 0x20 #define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
struct SpindaSpot struct SpindaSpot
{ {
@@ -396,7 +397,7 @@ u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e); bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, bool8 usedByAI);
bool8 PokemonItemUseNoEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); bool8 PokemonItemUseNoEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId); const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId);
+2 -2
View File
@@ -112,8 +112,8 @@ u8 sub_80DA434(void);
u8 sub_80DA45C(void); u8 sub_80DA45C(void);
bool8 sub_80DA4A0(void); bool8 sub_80DA4A0(void);
u8 Save_LoadGameData(u8 saveType); u8 Save_LoadGameData(u8 saveType);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 TryCopySpecialSaveSection(u8 sector, u8 *dst);
u32 TryWriteSpecialSaveSection(u8 sector, u8* src); u32 TryWriteSpecialSaveSection(u8 sector, u8 *src);
void Task_LinkSave(u8 taskId); void Task_LinkSave(u8 taskId);
#endif // GUARD_SAVE_H #endif // GUARD_SAVE_H
+1 -1
View File
@@ -24,7 +24,7 @@ bool8 IsBGMPausedOrStopped(void);
void FadeInBGM(u8 speed); void FadeInBGM(u8 speed);
void FadeOutBGM(u8 speed); void FadeOutBGM(u8 speed);
bool8 IsBGMStopped(void); bool8 IsBGMStopped(void);
void PlayCry1(u16 species, s8 pan); void PlayCry_Normal(u16 species, s8 pan);
void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority); void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority);
void PlayCry3(u16 species, s8 pan, u8 mode); void PlayCry3(u16 species, s8 pan, u8 mode);
void PlayCry4(u16 species, s8 pan, u8 mode); void PlayCry4(u16 species, s8 pan, u8 mode);
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h" #include "global.h"
void AppendToList(u8* list, u8* pos, u8 newEntry); void AppendToList(u8 *list, u8 *pos, u8 newEntry);
void Task_StartMenuHandleInput(u8 taskId); void Task_StartMenuHandleInput(u8 taskId);
void SetUpReturnToStartMenu(void); void SetUpReturnToStartMenu(void);
void ShowStartMenu(void); void ShowStartMenu(void);
+1 -1
View File
@@ -10,7 +10,7 @@ enum StringConvertMode
STR_CONV_MODE_LEADING_ZEROS STR_CONV_MODE_LEADING_ZEROS
}; };
u8 *StringCopy10(u8 *dest, const u8 *src); u8 *StringCopy_Nickname(u8 *dest, const u8 *src);
u8 *StringGetEnd10(u8 *str); u8 *StringGetEnd10(u8 *str);
u8 *StringCopy7(u8 *dest, const u8 *src); u8 *StringCopy7(u8 *dest, const u8 *src);
u8 *StringCopy(u8 *dest, const u8 *src); u8 *StringCopy(u8 *dest, const u8 *src);
+1 -1
View File
@@ -188,7 +188,7 @@ extern const u8 gText_Ghost[];
// pokemon // pokemon
extern const u8 gBattleText_Rose[]; extern const u8 gBattleText_Rose[];
extern const u8 gText_PkmnsStatChanged2[]; extern const u8 gText_DefendersStatRose[];
extern const u8 gBattleText_GetPumped[]; extern const u8 gBattleText_GetPumped[];
extern const u8 gBattleText_MistShroud[]; extern const u8 gBattleText_MistShroud[];
extern const u8 gText_BadEgg[]; extern const u8 gText_BadEgg[];
+6 -3
View File
@@ -85,7 +85,7 @@
#define CHAR_DYNAMIC_PLACEHOLDER 0xF7 #define CHAR_DYNAMIC_PLACEHOLDER 0xF7
#define CHAR_KEYPAD_ICON 0xF8 #define CHAR_KEYPAD_ICON 0xF8
#define CHAR_EXTRA_EMOJI 0xF9 #define CHAR_EXTRA_SYMBOL 0xF9
#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
#define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog #define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog
#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
@@ -93,6 +93,9 @@
#define CHAR_NEWLINE 0xFE #define CHAR_NEWLINE 0xFE
#define EOS 0xFF // end of string #define EOS 0xFF // end of string
// CHAR_EXTRA_SYMBOL chars
#define CHAR_LV_2 0x05
#define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1 #define TEXT_COLOR_WHITE 0x1
#define TEXT_COLOR_DARK_GRAY 0x2 #define TEXT_COLOR_DARK_GRAY 0x2
@@ -154,7 +157,7 @@
#define NUM_TEXT_PRINTERS 32 #define NUM_TEXT_PRINTERS 32
#define TEXT_SPEED_INSTANT 0 #define TEXT_SPEED_INSTANT 0
#define TEXT_SPEED_FF 0xFF #define TEXT_SKIP_DRAW 0xFF
enum enum
{ {
@@ -190,7 +193,7 @@ struct TextPrinterSubStruct
struct TextPrinterTemplate // TODO: Better name struct TextPrinterTemplate // TODO: Better name
{ {
const u8* currentChar; const u8 *currentChar;
u8 windowId; u8 windowId;
u8 fontId; u8 fontId;
u8 x; u8 x;
+4 -4
View File
@@ -5,13 +5,13 @@
struct TilesPal struct TilesPal
{ {
u32* tiles; u32 *tiles;
u16* pal; u16 *pal;
}; };
void rbox_fill_rectangle(u8 windowId); void rbox_fill_rectangle(u8 windowId);
const u16* stdpal_get(u8 id); const u16 *stdpal_get(u8 id);
const u16* GetOverworldTextboxPalettePtr(void); const u16 *GetOverworldTextboxPalettePtr(void);
void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette); void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette); void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette); void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette);
+8 -5
View File
@@ -17,6 +17,14 @@ enum
WINDOW_TILE_DATA WINDOW_TILE_DATA
}; };
// Mode for CopyWindowToVram, CopyWindowRectToVram and CopyWindowToVram8Bit
enum {
COPYWIN_NONE,
COPYWIN_MAP,
COPYWIN_GFX,
COPYWIN_FULL,
};
struct WindowTemplate struct WindowTemplate
{ {
u8 bg; u8 bg;
@@ -57,11 +65,6 @@ int AddWindowWithoutTileMap(const struct WindowTemplate *template);
void RemoveWindow(u8 windowId); void RemoveWindow(u8 windowId);
void FreeAllWindowBuffers(void); void FreeAllWindowBuffers(void);
// Mode parameter for funcs below
#define COPYWIN_MAP 1
#define COPYWIN_GFX 2
#define COPYWIN_BOTH 3
void CopyWindowToVram(u8 windowId, u8 mode); void CopyWindowToVram(u8 windowId, u8 mode);
void CopyWindowToVram8Bit(u8 windowId, u8 mode); void CopyWindowToVram8Bit(u8 windowId, u8 mode);
+5 -5
View File
@@ -250,7 +250,7 @@ static const u16 sDiscouragedPowerfulMoveEffects[] =
EFFECT_SKY_ATTACK, EFFECT_SKY_ATTACK,
EFFECT_RECHARGE, EFFECT_RECHARGE,
EFFECT_SKULL_BASH, EFFECT_SKULL_BASH,
EFFECT_SOLARBEAM, EFFECT_SOLAR_BEAM,
EFFECT_SPIT_UP, EFFECT_SPIT_UP,
EFFECT_FOCUS_PUNCH, EFFECT_FOCUS_PUNCH,
EFFECT_SUPERPOWER, EFFECT_SUPERPOWER,
@@ -1384,13 +1384,13 @@ extern u16 gBattleWeather;
static void Cmd_get_weather(void) static void Cmd_get_weather(void)
{ {
if (gBattleWeather & WEATHER_RAIN_ANY) if (gBattleWeather & B_WEATHER_RAIN)
AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_RAIN; AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_RAIN;
if (gBattleWeather & WEATHER_SANDSTORM_ANY) if (gBattleWeather & B_WEATHER_SANDSTORM)
AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SANDSTORM; AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SANDSTORM;
if (gBattleWeather & WEATHER_SUN_ANY) if (gBattleWeather & B_WEATHER_SUN)
AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SUNNY; AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_SUNNY;
if (gBattleWeather & WEATHER_HAIL) if (gBattleWeather & B_WEATHER_HAIL_TEMPORARY)
AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_HAIL; AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_HAIL;
sAIScriptPtr += 1; sAIScriptPtr += 1;
+9 -9
View File
@@ -1723,9 +1723,9 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
[BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure}, [BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure},
[BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent}, [BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent},
[BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer}, [BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer},
[BG_SOLARBEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactOpponent}, [BG_SOLAR_BEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactOpponent},
[BG_SOLARBEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactPlayer}, [BG_SOLAR_BEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactPlayer},
[BG_SOLARBEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Solarbeam, gBattleAnimBgTilemap_ImpactContests}, [BG_SOLAR_BEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactContests},
}; };
static void (*const sScriptCmdTable[])(void) = static void (*const sScriptCmdTable[])(void) =
@@ -2257,8 +2257,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
if (!toBG_2) if (!toBG_2)
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT); RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT); RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000); CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800); CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2276,15 +2276,15 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20); LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + animBg.paletteId * 32), 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void *)(BG_PLTT + animBg.paletteId * 32), 0x20);
CopyBattlerSpriteToBg(1, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles, CopyBattlerSpriteToBg(1, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles,
animBg.bgTilemap, animBg.tilesOffset); animBg.bgTilemap, animBg.tilesOffset);
} }
else else
{ {
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT); RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(12)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT); RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(30)), 0x1000, DMA3_32BIT);
GetBattleAnimBgData(&animBg, 2); GetBattleAnimBgData(&animBg, 2);
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
@@ -2301,7 +2301,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20); LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + 0x120), 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void *)(BG_PLTT + 0x120), 0x20);
CopyBattlerSpriteToBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, CopyBattlerSpriteToBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000,
animBg.bgTilemap + 0x400, animBg.tilesOffset); animBg.bgTilemap + 0x400, animBg.tilesOffset);
+35 -35
View File
@@ -12,7 +12,7 @@ EWRAM_DATA static s16 gUnknown_203999C[4] = {0};
// Function Declarations // Function Declarations
static void AnimMovePowderParticleStep(struct Sprite *); static void AnimMovePowderParticleStep(struct Sprite *);
static void AnimSolarbeamSmallOrbStep(struct Sprite *); static void AnimSolarBeamSmallOrbStep(struct Sprite *);
static void AnimAbsorptionOrbStep(struct Sprite *); static void AnimAbsorptionOrbStep(struct Sprite *);
static void AnimHyperBeamOrbStep(struct Sprite *); static void AnimHyperBeamOrbStep(struct Sprite *);
static void AnimLeechSeedStep(struct Sprite *); static void AnimLeechSeedStep(struct Sprite *);
@@ -137,49 +137,49 @@ const struct SpriteTemplate gPoisonPowderParticleSpriteTemplate =
.callback = AnimMovePowderParticle, .callback = AnimMovePowderParticle,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds1[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds1[] =
{ {
ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(0, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds2[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds2[] =
{ {
ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(1, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds3[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds3[] =
{ {
ANIMCMD_FRAME(2, 1), ANIMCMD_FRAME(2, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds4[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds4[] =
{ {
ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(3, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds5[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds5[] =
{ {
ANIMCMD_FRAME(4, 1), ANIMCMD_FRAME(4, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds6[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds6[] =
{ {
ANIMCMD_FRAME(5, 1), ANIMCMD_FRAME(5, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamBigOrbAnimCmds7[] = static const union AnimCmd sSolarBeamBigOrbAnimCmds7[] =
{ {
ANIMCMD_FRAME(6, 1), ANIMCMD_FRAME(6, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd sSolarbeamSmallOrbAnimCms[] = static const union AnimCmd sSolarBeamSmallOrbAnimCms[] =
{ {
ANIMCMD_FRAME(7, 1), ANIMCMD_FRAME(7, 1),
ANIMCMD_END, ANIMCMD_END,
@@ -191,20 +191,20 @@ static const union AnimCmd sPowerAbsorptionOrbAnimCmds[] =
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sSolarbeamBigOrbAnimTable[] = static const union AnimCmd *const sSolarBeamBigOrbAnimTable[] =
{ {
sSolarbeamBigOrbAnimCmds1, sSolarBeamBigOrbAnimCmds1,
sSolarbeamBigOrbAnimCmds2, sSolarBeamBigOrbAnimCmds2,
sSolarbeamBigOrbAnimCmds3, sSolarBeamBigOrbAnimCmds3,
sSolarbeamBigOrbAnimCmds4, sSolarBeamBigOrbAnimCmds4,
sSolarbeamBigOrbAnimCmds5, sSolarBeamBigOrbAnimCmds5,
sSolarbeamBigOrbAnimCmds6, sSolarBeamBigOrbAnimCmds6,
sSolarbeamBigOrbAnimCmds7, sSolarBeamBigOrbAnimCmds7,
}; };
static const union AnimCmd *const sSolarbeamSmallOrbAnimTable[] = static const union AnimCmd *const sSolarBeamSmallOrbAnimTable[] =
{ {
sSolarbeamSmallOrbAnimCms, sSolarBeamSmallOrbAnimCms,
}; };
static const union AnimCmd *const sPowerAbsorptionOrbAnimTable[] = static const union AnimCmd *const sPowerAbsorptionOrbAnimTable[] =
@@ -234,26 +234,26 @@ const struct SpriteTemplate gPowerAbsorptionOrbSpriteTemplate =
.callback = AnimPowerAbsorptionOrb, .callback = AnimPowerAbsorptionOrb,
}; };
const struct SpriteTemplate gSolarbeamBigOrbSpriteTemplate = const struct SpriteTemplate gSolarBeamBigOrbSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ORBS, .tileTag = ANIM_TAG_ORBS,
.paletteTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sSolarbeamBigOrbAnimTable, .anims = sSolarBeamBigOrbAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSolarbeamBigOrb, .callback = AnimSolarBeamBigOrb,
}; };
const struct SpriteTemplate gSolarbeamSmallOrbSpriteTemplate = const struct SpriteTemplate gSolarBeamSmallOrbSpriteTemplate =
{ {
.tileTag = ANIM_TAG_ORBS, .tileTag = ANIM_TAG_ORBS,
.paletteTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sSolarbeamSmallOrbAnimTable, .anims = sSolarBeamSmallOrbAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSolarbeamSmallOrb, .callback = AnimSolarBeamSmallOrb,
}; };
static const union AffineAnimCmd sStockpileAbsorptionOrbAffineCmds[] = static const union AffineAnimCmd sStockpileAbsorptionOrbAffineCmds[] =
@@ -306,7 +306,7 @@ const struct SpriteTemplate gHyperBeamOrbSpriteTemplate =
.tileTag = ANIM_TAG_ORBS, .tileTag = ANIM_TAG_ORBS,
.paletteTag = ANIM_TAG_ORBS, .paletteTag = ANIM_TAG_ORBS,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sSolarbeamBigOrbAnimTable, .anims = sSolarBeamBigOrbAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimHyperBeamOrb, .callback = AnimHyperBeamOrb,
@@ -2219,7 +2219,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite)
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: duration // arg 2: duration
// arg 3: sprite anim number // arg 3: sprite anim number
void AnimSolarbeamBigOrb(struct Sprite* sprite) void AnimSolarBeamBigOrb(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
StartSpriteAnim(sprite, gBattleAnimArgs[3]); StartSpriteAnim(sprite, gBattleAnimArgs[3]);
@@ -2231,12 +2231,12 @@ void AnimSolarbeamBigOrb(struct Sprite* sprite)
} }
// Moves a small orb in a wavy pattern towards the target mon. // Moves a small orb in a wavy pattern towards the target mon.
// The small orb "circles" the big orbs in AnimSolarbeamBigOrb. // The small orb "circles" the big orbs in AnimSolarBeamBigOrb.
// arg 0: initial x pixel offset // arg 0: initial x pixel offset
// arg 1: initial y pixel offset // arg 1: initial y pixel offset
// arg 2: duration // arg 2: duration
// arg 3: initial wave offset // arg 3: initial wave offset
void AnimSolarbeamSmallOrb(struct Sprite* sprite) void AnimSolarBeamSmallOrb(struct Sprite* sprite)
{ {
InitSpritePosToAnimAttacker(sprite, TRUE); InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[2];
@@ -2246,11 +2246,11 @@ void AnimSolarbeamSmallOrb(struct Sprite* sprite)
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
InitAnimLinearTranslation(sprite); InitAnimLinearTranslation(sprite);
sprite->data[5] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3];
sprite->callback = AnimSolarbeamSmallOrbStep; sprite->callback = AnimSolarBeamSmallOrbStep;
sprite->callback(sprite); sprite->callback(sprite);
} }
static void AnimSolarbeamSmallOrbStep(struct Sprite* sprite) static void AnimSolarBeamSmallOrbStep(struct Sprite* sprite)
{ {
if (AnimTranslateLinear(sprite)) if (AnimTranslateLinear(sprite))
{ {
@@ -2272,7 +2272,7 @@ static void AnimSolarbeamSmallOrbStep(struct Sprite* sprite)
// Creates 15 small secondary orbs used in the solarbeam anim effect. // Creates 15 small secondary orbs used in the solarbeam anim effect.
// There is a 7-frame delay between each of them. // There is a 7-frame delay between each of them.
// No args. // No args.
void AnimTask_CreateSmallSolarbeamOrbs(u8 taskId) void AnimTask_CreateSmallSolarBeamOrbs(u8 taskId)
{ {
if (--gTasks[taskId].data[0] == -1) if (--gTasks[taskId].data[0] == -1)
{ {
@@ -2282,7 +2282,7 @@ void AnimTask_CreateSmallSolarbeamOrbs(u8 taskId)
gBattleAnimArgs[1] = 0; gBattleAnimArgs[1] = 0;
gBattleAnimArgs[2] = 80; gBattleAnimArgs[2] = 80;
gBattleAnimArgs[3] = 0; gBattleAnimArgs[3] = 0;
CreateSpriteAndAnimate(&gSolarbeamSmallOrbSpriteTemplate, 0, 0, GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1); CreateSpriteAndAnimate(&gSolarBeamSmallOrbSpriteTemplate, 0, 0, GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1);
} }
if (gTasks[taskId].data[1] == 15) if (gTasks[taskId].data[1] == 15)
@@ -4995,7 +4995,7 @@ void AnimTask_FadeScreenBlue(u8 taskId)
gTasks[taskId].data[9] = 15; gTasks[taskId].data[9] = 15;
b = SelectBattlerSpritePalettes(1, 1, 1, 1); b = SelectBattlerSpritePalettes(1, 1, 1, 1);
c = a | b; c = a | b;
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c); StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void *)c);
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE); d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE);
BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31)); BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31));
@@ -5294,7 +5294,7 @@ void AnimWavyMusicNotes(struct Sprite* sprite)
sprite->callback = AnimWavyMusicNotesStep; sprite->callback = AnimWavyMusicNotesStep;
} }
static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16* c, s16* d, s8 e) static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16 *c, s16 *d, s8 e)
{ {
int f; int f;
int g; int g;
+1 -1
View File
@@ -1780,7 +1780,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite)
{ {
int i; int i;
u16 rand; u16 rand;
s16* ptr; s16 *ptr;
PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
sprite->x += sprite->x2; sprite->x += sprite->x2;
+4 -4
View File
@@ -5262,13 +5262,13 @@ static void AnimRecycleStep(struct Sprite *sprite)
void AnimTask_GetWeather(u8 taskId) void AnimTask_GetWeather(u8 taskId)
{ {
gBattleAnimArgs[7] = ANIM_WEATHER_NONE; gBattleAnimArgs[7] = ANIM_WEATHER_NONE;
if (gWeatherMoveAnim & WEATHER_SUN_ANY) if (gWeatherMoveAnim & B_WEATHER_SUN)
gBattleAnimArgs[7] = ANIM_WEATHER_SUN; gBattleAnimArgs[7] = ANIM_WEATHER_SUN;
else if (gWeatherMoveAnim & WEATHER_RAIN_ANY) else if (gWeatherMoveAnim & B_WEATHER_RAIN)
gBattleAnimArgs[7] = ANIM_WEATHER_RAIN; gBattleAnimArgs[7] = ANIM_WEATHER_RAIN;
else if (gWeatherMoveAnim & WEATHER_SANDSTORM_ANY) else if (gWeatherMoveAnim & B_WEATHER_SANDSTORM)
gBattleAnimArgs[7] = ANIM_WEATHER_SANDSTORM; gBattleAnimArgs[7] = ANIM_WEATHER_SANDSTORM;
else if (gWeatherMoveAnim & WEATHER_HAIL_ANY) else if (gWeatherMoveAnim & B_WEATHER_HAIL)
gBattleAnimArgs[7] = ANIM_WEATHER_HAIL; gBattleAnimArgs[7] = ANIM_WEATHER_HAIL;
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
+33 -33
View File
@@ -764,7 +764,7 @@ static void DrawLinkBattleVsScreenOutcomeText(void)
{ {
if (gBattleOutcome == B_OUTCOME_DREW) if (gBattleOutcome == B_OUTCOME_DREW)
{ {
BattlePutTextOnWindow(gText_Draw, 0x15); BattlePutTextOnWindow(gText_Draw, B_WIN_VS_OUTCOME_DRAW);
} }
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{ {
@@ -773,20 +773,20 @@ static void DrawLinkBattleVsScreenOutcomeText(void)
switch (gLinkPlayers[gBattleStruct->multiplayerId].id) switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
{ {
case 0: case 0:
BattlePutTextOnWindow(gText_Win, 0x16); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_LEFT);
BattlePutTextOnWindow(gText_Loss, 0x17); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_RIGHT);
break; break;
case 1: case 1:
BattlePutTextOnWindow(gText_Win, 0x17); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_RIGHT);
BattlePutTextOnWindow(gText_Loss, 0x16); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_LEFT);
break; break;
case 2: case 2:
BattlePutTextOnWindow(gText_Win, 0x16); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_LEFT);
BattlePutTextOnWindow(gText_Loss, 0x17); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_RIGHT);
break; break;
case 3: case 3:
BattlePutTextOnWindow(gText_Win, 0x17); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_RIGHT);
BattlePutTextOnWindow(gText_Loss, 0x16); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_LEFT);
break; break;
} }
} }
@@ -795,20 +795,20 @@ static void DrawLinkBattleVsScreenOutcomeText(void)
switch (gLinkPlayers[gBattleStruct->multiplayerId].id) switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
{ {
case 0: case 0:
BattlePutTextOnWindow(gText_Win, 0x17); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_RIGHT);
BattlePutTextOnWindow(gText_Loss, 0x16); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_LEFT);
break; break;
case 1: case 1:
BattlePutTextOnWindow(gText_Win, 0x16); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_LEFT);
BattlePutTextOnWindow(gText_Loss, 0x17); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_RIGHT);
break; break;
case 2: case 2:
BattlePutTextOnWindow(gText_Win, 0x17); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_RIGHT);
BattlePutTextOnWindow(gText_Loss, 0x16); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_LEFT);
break; break;
case 3: case 3:
BattlePutTextOnWindow(gText_Win, 0x16); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_LEFT);
BattlePutTextOnWindow(gText_Loss, 0x17); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_RIGHT);
break; break;
} }
} }
@@ -817,26 +817,26 @@ static void DrawLinkBattleVsScreenOutcomeText(void)
{ {
if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0) if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
{ {
BattlePutTextOnWindow(gText_Win, 0x17); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_RIGHT);
BattlePutTextOnWindow(gText_Loss, 0x16); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_LEFT);
} }
else else
{ {
BattlePutTextOnWindow(gText_Win, 0x16); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_LEFT);
BattlePutTextOnWindow(gText_Loss, 0x17); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_RIGHT);
} }
} }
else else
{ {
if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0) if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
{ {
BattlePutTextOnWindow(gText_Win, 0x16); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_LEFT);
BattlePutTextOnWindow(gText_Loss, 0x17); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_RIGHT);
} }
else else
{ {
BattlePutTextOnWindow(gText_Win, 0x17); BattlePutTextOnWindow(gText_Win, B_WIN_VS_OUTCOME_RIGHT);
BattlePutTextOnWindow(gText_Loss, 0x16); BattlePutTextOnWindow(gText_Loss, B_WIN_VS_OUTCOME_LEFT);
} }
} }
} }
@@ -860,19 +860,19 @@ void InitLinkBattleVsScreen(u8 taskId)
switch (linkPlayer->id) switch (linkPlayer->id)
{ {
case 0: case 0:
BattlePutTextOnWindow(name, 0x11); BattlePutTextOnWindow(name, B_WIN_VS_MULTI_PLAYER_1);
DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 1, 2, 4); DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 1, 2, 4);
break; break;
case 1: case 1:
BattlePutTextOnWindow(name, 0x12); BattlePutTextOnWindow(name, B_WIN_VS_MULTI_PLAYER_2);
DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 2, 2, 4); DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 2, 2, 4);
break; break;
case 2: case 2:
BattlePutTextOnWindow(name, 0x13); BattlePutTextOnWindow(name, B_WIN_VS_MULTI_PLAYER_3);
DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 1, 2, 8); DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 1, 2, 8);
break; break;
case 3: case 3:
BattlePutTextOnWindow(name, 0x14); BattlePutTextOnWindow(name, B_WIN_VS_MULTI_PLAYER_4);
DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 2, 2, 8); DrawLinkBattleParticipantPokeballs(taskId, linkPlayer->id, 2, 2, 8);
break; break;
} }
@@ -888,10 +888,10 @@ void InitLinkBattleVsScreen(u8 taskId)
opponentId = playerId, playerId = opponentId_copy; opponentId = playerId, playerId = opponentId_copy;
name = gLinkPlayers[playerId].name; name = gLinkPlayers[playerId].name;
BattlePutTextOnWindow(name, 0xF); BattlePutTextOnWindow(name, B_WIN_VS_PLAYER);
name = gLinkPlayers[opponentId].name; name = gLinkPlayers[opponentId].name;
BattlePutTextOnWindow(name, 0x10); BattlePutTextOnWindow(name, B_WIN_VS_OPPONENT);
DrawLinkBattleParticipantPokeballs(taskId, playerId, 1, 2, 7); DrawLinkBattleParticipantPokeballs(taskId, playerId, 1, 2, 7);
DrawLinkBattleParticipantPokeballs(taskId, opponentId, 2, 2, 7); DrawLinkBattleParticipantPokeballs(taskId, opponentId, 2, 2, 7);
@@ -953,8 +953,8 @@ void DrawBattleEntryBackground(void)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
LZDecompressVram(gFile_graphics_battle_transitions_vs_frame_sheet, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gFile_graphics_battle_transitions_vs_frame_sheet, (void *)(BG_CHAR_ADDR(1)));
LZDecompressVram(gVsLettersGfx, (void*)(VRAM + 0x10000)); LZDecompressVram(gVsLettersGfx, (void *)(VRAM + 0x10000));
LoadCompressedPalette(gFile_graphics_battle_transitions_vs_frame_palette, 0x60, 0x20); LoadCompressedPalette(gFile_graphics_battle_transitions_vs_frame_palette, 0x60, 0x20);
SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1); SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256);
+3 -3
View File
@@ -499,7 +499,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM); battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM);
battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID); battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID);
GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname);
StringCopy10(battleMon.nickname, nickname); StringCopy_Nickname(battleMon.nickname, nickname);
GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName);
src = (u8 *)&battleMon; src = (u8 *)&battleMon;
for (size = 0; size < sizeof(battleMon); ++size) for (size = 0; size < sizeof(battleMon); ++size)
@@ -1310,9 +1310,9 @@ static void LinkOpponentHandlePrintString(void)
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]); stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
} }
+3 -3
View File
@@ -454,7 +454,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM);
battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID);
GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname);
StringCopy10(battleMon.nickname, nickname); StringCopy_Nickname(battleMon.nickname, nickname);
GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName);
src = (u8 *)&battleMon; src = (u8 *)&battleMon;
for (size = 0; size < sizeof(battleMon); ++size) for (size = 0; size < sizeof(battleMon); ++size)
@@ -1223,9 +1223,9 @@ static void LinkPartnerHandlePrintString(void)
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]); stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
} }
+15 -15
View File
@@ -651,7 +651,7 @@ static void PrintOakText_ForPetesSake(void)
break; break;
case 2: case 2:
BattleStringExpandPlaceholdersToDisplayedString(gText_ForPetesSake); BattleStringExpandPlaceholdersToDisplayedString(gText_ForPetesSake);
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gBattleStruct->simulatedInputState[0]; ++gBattleStruct->simulatedInputState[0];
break; break;
case 3: case 3:
@@ -670,7 +670,7 @@ static void PrintOakText_ForPetesSake(void)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
BattleStringExpandPlaceholdersToDisplayedString(gText_TheTrainerThat); BattleStringExpandPlaceholdersToDisplayedString(gText_TheTrainerThat);
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gBattleStruct->simulatedInputState[0]; ++gBattleStruct->simulatedInputState[0];
} }
break; break;
@@ -690,7 +690,7 @@ static void PrintOakText_ForPetesSake(void)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
BattleStringExpandPlaceholdersToDisplayedString(gText_TryBattling); BattleStringExpandPlaceholdersToDisplayedString(gText_TryBattling);
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gBattleStruct->simulatedInputState[0]; ++gBattleStruct->simulatedInputState[0];
} }
break; break;
@@ -774,7 +774,7 @@ static void PrintOakTextWithMainBgDarkened(const u8 *text, u8 delay)
break; break;
case 3: case 3:
BattleStringExpandPlaceholdersToDisplayedString(text); BattleStringExpandPlaceholdersToDisplayedString(text);
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gBattleStruct->simulatedInputState[0]; ++gBattleStruct->simulatedInputState[0];
break; break;
case 4: case 4:
@@ -842,7 +842,7 @@ static void PrintOakText_KeepAnEyeOnHP(void)
break; break;
case 3: case 3:
BattleStringExpandPlaceholdersToDisplayedString(gText_KeepAnEyeOnHP); BattleStringExpandPlaceholdersToDisplayedString(gText_KeepAnEyeOnHP);
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gBattleStruct->simulatedInputState[0]; ++gBattleStruct->simulatedInputState[0];
break; break;
case 4: case 4:
@@ -1034,7 +1034,7 @@ static u32 CopyOakOldManMonData(u8 monId, u8 *dst)
battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM);
battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID);
GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname);
StringCopy10(battleMon.nickname, nickname); StringCopy_Nickname(battleMon.nickname, nickname);
GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName);
src = (u8 *)&battleMon; src = (u8 *)&battleMon;
for (size = 0; size < sizeof(battleMon); ++size) for (size = 0; size < sizeof(battleMon); ++size)
@@ -1759,14 +1759,14 @@ static void OakOldManHandlePrintString(void)
{ {
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{ {
switch (*stringId) switch (*stringId)
{ {
case STRINGID_PKMNSSTATCHANGED4: case STRINGID_DEFENDERSSTATFELL:
if (!BtlCtrl_OakOldMan_TestState2Flag(FIRST_BATTLE_MSG_FLAG_STAT_CHG)) if (!BtlCtrl_OakOldMan_TestState2Flag(FIRST_BATTLE_MSG_FLAG_STAT_CHG))
{ {
BtlCtrl_OakOldMan_SetState2Flag(FIRST_BATTLE_MSG_FLAG_STAT_CHG); BtlCtrl_OakOldMan_SetState2Flag(FIRST_BATTLE_MSG_FLAG_STAT_CHG);
@@ -1815,8 +1815,8 @@ static void OakOldManHandleChooseAction(void)
s32 i; s32 i;
gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattlePutTextOnWindow(gText_EmptyString3, 0); BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG);
BattlePutTextOnWindow(gText_BattleMenu, 2); BattlePutTextOnWindow(gText_BattleMenu, B_WIN_ACTION_MENU);
for (i = 0; i < MAX_MON_MOVES; ++i) for (i = 0; i < MAX_MON_MOVES; ++i)
ActionSelectionDestroyCursorAt((u8)i); ActionSelectionDestroyCursorAt((u8)i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
@@ -1824,7 +1824,7 @@ static void OakOldManHandleChooseAction(void)
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
else else
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillOldManDo); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillOldManDo);
BattlePutTextOnWindow(gDisplayedStringBattle, 1); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT);
} }
static void OakOldManHandleUnknownYesNoBox(void) static void OakOldManHandleUnknownYesNoBox(void)
@@ -1874,7 +1874,7 @@ static void OakOldManHandleChooseItem(void)
{ {
s32 i; s32 i;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem; gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
@@ -1892,7 +1892,7 @@ static void OakOldManHandleChoosePokemon(void)
*(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3]; *(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3];
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i]; gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon; gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }
@@ -2060,7 +2060,7 @@ static void OakOldManHandleFaintingCry(void)
{ {
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry1(species, 25); PlayCry_Normal(species, 25);
OakOldManBufferExecCompleted(); OakOldManBufferExecCompleted();
} }
+3 -3
View File
@@ -493,7 +493,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM); battleMon.abilityNum = GetMonData(&gEnemyParty[monId], MON_DATA_ABILITY_NUM);
battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID); battleMon.otId = GetMonData(&gEnemyParty[monId], MON_DATA_OT_ID);
GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_NICKNAME, nickname);
StringCopy10(battleMon.nickname, nickname); StringCopy_Nickname(battleMon.nickname, nickname);
GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName);
src = (u8 *)&battleMon; src = (u8 *)&battleMon;
for (size = 0; size < sizeof(battleMon); ++size) for (size = 0; size < sizeof(battleMon); ++size)
@@ -1312,9 +1312,9 @@ static void OpponentHandlePrintString(void)
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]); stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{ {
switch (*stringId) switch (*stringId)
+15 -15
View File
@@ -570,7 +570,7 @@ void HandleInputChooseMove(void)
else else
gMultiUsePlayerCursor = gMoveSelectionCursor[gActiveBattler] + 1; gMultiUsePlayerCursor = gMoveSelectionCursor[gActiveBattler] + 1;
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27); MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27);
BattlePutTextOnWindow(gText_BattleSwitchWhich, 0xB); BattlePutTextOnWindow(gText_BattleSwitchWhich, B_WIN_SWITCH_PROMPT);
gBattlerControllerFuncs[gActiveBattler] = HandleMoveSwitching; gBattlerControllerFuncs[gActiveBattler] = HandleMoveSwitching;
} }
} }
@@ -1379,7 +1379,7 @@ static void MoveSelectionDisplayMoveNames(void)
static void MoveSelectionDisplayPpString(void) static void MoveSelectionDisplayPpString(void)
{ {
StringCopy(gDisplayedStringBattle, gText_MoveInterfacePP); StringCopy(gDisplayedStringBattle, gText_MoveInterfacePP);
BattlePutTextOnWindow(gDisplayedStringBattle, 7); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_PP);
} }
static void MoveSelectionDisplayPpNumber(void) static void MoveSelectionDisplayPpNumber(void)
@@ -1394,7 +1394,7 @@ static void MoveSelectionDisplayPpNumber(void)
txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2);
*txtPtr = CHAR_SLASH; *txtPtr = CHAR_SLASH;
ConvertIntToDecimalStringN(++txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2); ConvertIntToDecimalStringN(++txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2);
BattlePutTextOnWindow(gDisplayedStringBattle, 9); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_PP_REMAINING);
} }
static void MoveSelectionDisplayMoveType(void) static void MoveSelectionDisplayMoveType(void)
@@ -1408,7 +1408,7 @@ static void MoveSelectionDisplayMoveType(void)
*txtPtr++ = 1; *txtPtr++ = 1;
txtPtr = StringCopy(txtPtr, gUnknown_83FE770); txtPtr = StringCopy(txtPtr, gUnknown_83FE770);
StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]); StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]);
BattlePutTextOnWindow(gDisplayedStringBattle, 8); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE);
} }
void MoveSelectionCreateCursorAt(u8 cursorPosition, u8 arg1) void MoveSelectionCreateCursorAt(u8 cursorPosition, u8 arg1)
@@ -1479,7 +1479,7 @@ static void PrintLinkStandbyMsg(void)
{ {
gBattle_BG0_X = 0; gBattle_BG0_X = 0;
gBattle_BG0_Y = 0; gBattle_BG0_Y = 0;
BattlePutTextOnWindow(gText_LinkStandby, 0); BattlePutTextOnWindow(gText_LinkStandby, B_WIN_MSG);
} }
} }
@@ -1551,7 +1551,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst)
battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM); battleMon.abilityNum = GetMonData(&gPlayerParty[monId], MON_DATA_ABILITY_NUM);
battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID); battleMon.otId = GetMonData(&gPlayerParty[monId], MON_DATA_OT_ID);
GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_NICKNAME, nickname);
StringCopy10(battleMon.nickname, nickname); StringCopy_Nickname(battleMon.nickname, nickname);
GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName);
src = (u8 *)&battleMon; src = (u8 *)&battleMon;
for (size = 0; size < sizeof(battleMon); ++size) for (size = 0; size < sizeof(battleMon); ++size)
@@ -2263,7 +2263,7 @@ static void PlayerHandleFaintAnimation(void)
static void PlayerHandlePaletteFade(void) static void PlayerHandlePaletteFade(void)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 2, 0, 16, RGB_BLACK);
PlayerBufferExecCompleted(); PlayerBufferExecCompleted();
} }
@@ -2377,9 +2377,9 @@ static void PlayerHandlePrintString(void)
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]); stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2; gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2;
} }
@@ -2406,13 +2406,13 @@ static void PlayerHandleChooseAction(void)
s32 i; s32 i;
gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattlePutTextOnWindow(gText_EmptyString3, 0); BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG);
BattlePutTextOnWindow(gText_BattleMenu, 2); BattlePutTextOnWindow(gText_BattleMenu, B_WIN_ACTION_MENU);
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
ActionSelectionDestroyCursorAt(i); ActionSelectionDestroyCursorAt(i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
BattlePutTextOnWindow(gDisplayedStringBattle, 1); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT);
} }
static void PlayerHandleUnknownYesNoBox(void) static void PlayerHandleUnknownYesNoBox(void)
@@ -2449,7 +2449,7 @@ static void PlayerHandleChooseItem(void)
{ {
s32 i; s32 i;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem; gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
@@ -2467,7 +2467,7 @@ static void PlayerHandleChoosePokemon(void)
*(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3]; *(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3];
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i]; gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon; gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }
@@ -2475,7 +2475,7 @@ static void PlayerHandleChoosePokemon(void)
static void PlayerHandleCmd23(void) static void PlayerHandleCmd23(void)
{ {
BattleStopLowHpSound(); BattleStopLowHpSound();
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 2, 0, 16, RGB_BLACK);
PlayerBufferExecCompleted(); PlayerBufferExecCompleted();
} }
+12 -12
View File
@@ -782,7 +782,7 @@ static u32 CopyPokedudeMonData(u8 monId, u8 *dst)
battleMon.abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM); battleMon.abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM);
battleMon.otId = GetMonData(mon, MON_DATA_OT_ID); battleMon.otId = GetMonData(mon, MON_DATA_OT_ID);
GetMonData(mon, MON_DATA_NICKNAME, nickname); GetMonData(mon, MON_DATA_NICKNAME, nickname);
StringCopy10(battleMon.nickname, nickname); StringCopy_Nickname(battleMon.nickname, nickname);
GetMonData(mon, MON_DATA_OT_NAME, battleMon.otName); GetMonData(mon, MON_DATA_OT_NAME, battleMon.otName);
src = (u8 *)&battleMon; src = (u8 *)&battleMon;
for (size = 0; size < sizeof(battleMon); ++size) for (size = 0; size < sizeof(battleMon); ++size)
@@ -1533,9 +1533,9 @@ static void PokedudeHandlePrintString(void)
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]); stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
} }
@@ -1564,13 +1564,13 @@ static void PokedudeHandleChooseAction(void)
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{ {
gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattlePutTextOnWindow(gText_EmptyString3, 0); BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG);
BattlePutTextOnWindow(gText_BattleMenu, 2); BattlePutTextOnWindow(gText_BattleMenu, B_WIN_ACTION_MENU);
for (i = 0; i < MAX_MON_MOVES; ++i) for (i = 0; i < MAX_MON_MOVES; ++i)
ActionSelectionDestroyCursorAt((u8)i); ActionSelectionDestroyCursorAt((u8)i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
BattlePutTextOnWindow(gDisplayedStringBattle, 1); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT);
} }
else else
{ {
@@ -1610,7 +1610,7 @@ static void PokedudeHandleChooseItem(void)
{ {
s32 i; s32 i;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem; gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
@@ -1628,7 +1628,7 @@ static void PokedudeHandleChoosePokemon(void)
*(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3]; *(&gBattleStruct->abilityPreventingSwitchout) = gBattleBufferA[gActiveBattler][3];
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i]; gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon; gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }
@@ -1834,7 +1834,7 @@ static void PokedudeHandleFaintingCry(void)
else else
mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]; mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]];
species = GetMonData(mon, MON_DATA_SPECIES); species = GetMonData(mon, MON_DATA_SPECIES);
PlayCry1(species, 25); PlayCry_Normal(species, 25);
PokedudeBufferExecCompleted(); PokedudeBufferExecCompleted();
} }
@@ -2272,7 +2272,7 @@ static const struct PokedudeTextScriptHeader sPokedudeTextScripts_Catching[] =
.callback = PokedudeAction_PrintVoiceoverMessage, .callback = PokedudeAction_PrintVoiceoverMessage,
}, },
{ {
.btlcmd = CONTROLLER_55, .btlcmd = CONTROLLER_ENDLINKBATTLE,
.side = B_SIDE_PLAYER, .side = B_SIDE_PLAYER,
.callback = PokedudeAction_PrintVoiceoverMessage, .callback = PokedudeAction_PrintVoiceoverMessage,
}, },
@@ -2557,7 +2557,7 @@ static void PokedudeAction_PrintVoiceoverMessage(void)
case 2: case 2:
gBattle_BG0_Y = 0; gBattle_BG0_Y = 0;
BattleStringExpandPlaceholdersToDisplayedString(GetPokedudeText()); BattleStringExpandPlaceholdersToDisplayedString(GetPokedudeText());
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gPokedudeBattlerStates[gActiveBattler]->timer; ++gPokedudeBattlerStates[gActiveBattler]->timer;
break; break;
case 3: case 3:
@@ -2618,7 +2618,7 @@ static void PokedudeAction_PrintMessageWithHealthboxPals(void)
break; break;
case 3: case 3:
BattleStringExpandPlaceholdersToDisplayedString(GetPokedudeText()); BattleStringExpandPlaceholdersToDisplayedString(GetPokedudeText());
BattlePutTextOnWindow(gDisplayedStringBattle, 24); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_OAK_OLD_MAN);
++gPokedudeBattlerStates[gActiveBattler]->timer; ++gPokedudeBattlerStates[gActiveBattler]->timer;
break; break;
case 4: case 4:
+7 -7
View File
@@ -409,9 +409,9 @@ static void SafariHandlePrintString(void)
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]); stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId); BufferStringBattle(*stringId);
if (BattleStringShouldBeColored(*stringId)) if (BattleStringShouldBeColored(*stringId))
BattlePutTextOnWindow(gDisplayedStringBattle, 0x40); BattlePutTextOnWindow(gDisplayedStringBattle, (B_WIN_MSG | B_TEXT_FLAG_NPC_CONTEXT_FONT));
else else
BattlePutTextOnWindow(gDisplayedStringBattle, 0); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter; gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
} }
@@ -438,13 +438,13 @@ static void SafariHandleChooseAction(void)
s32 i; s32 i;
gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattlePutTextOnWindow(gText_EmptyString3, 0); BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG);
BattlePutTextOnWindow(gUnknown_83FE747, 2); BattlePutTextOnWindow(gUnknown_83FE747, B_WIN_ACTION_MENU);
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
ActionSelectionDestroyCursorAt(i); ActionSelectionDestroyCursorAt(i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPlayerThrow); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPlayerThrow);
BattlePutTextOnWindow(gDisplayedStringBattle, 1); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT);
} }
static void SafariHandleUnknownYesNoBox(void) static void SafariHandleUnknownYesNoBox(void)
@@ -461,7 +461,7 @@ static void SafariHandleChooseItem(void)
{ {
s32 i; s32 i;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase; gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase;
gBattlerInMenuId = gActiveBattler; gBattlerInMenuId = gActiveBattler;
} }
@@ -594,7 +594,7 @@ static void SafariHandleFaintingCry(void)
{ {
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry1(species, 25); PlayCry_Normal(species, 25);
SafariBufferExecCompleted(); SafariBufferExecCompleted();
} }
+16 -12
View File
@@ -487,7 +487,7 @@ void TryReceiveLinkBattleData(void)
s32 j; s32 j;
u8 *recvBuffer; u8 *recvBuffer;
if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_ESTABLISHED) && (gLinkPlayers[0].linkType == 0x2211)) if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE) && (gLinkPlayers[0].linkType == 0x2211))
{ {
LinkRfu_DestroyIdleTask(); LinkRfu_DestroyIdleTask();
for (i = 0; i < GetLinkPlayerCount(); ++i) for (i = 0; i < GetLinkPlayerCount(); ++i)
@@ -621,10 +621,10 @@ void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubs
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1) void BtlController_EmitReturnMonToBall(u8 bufferId, bool8 skipAnim)
{ {
sBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL; sBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
sBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = skipAnim;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
@@ -934,16 +934,19 @@ static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, voi
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7);
} }
// not used // Unused
static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter) static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
{ {
s32 i; s32 i;
sBattleBuffersTransferData[0] = CONTROLLER_31; sBattleBuffersTransferData[0] = CONTROLLER_PLAYBGM;
sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[1] = songId;
sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
// Nonsense loop using songId as a size
// Would go out of bounds for any song id after SE_DEOXYS_MOVE (253)
for (i = 0; i < songId; ++i) for (i = 0; i < songId; ++i)
sBattleBuffersTransferData[3 + i] = *(u8 *)(unusedDumbDataParameter++); sBattleBuffersTransferData[3 + i] = *(u8 *)(data++);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
} }
@@ -1045,7 +1048,7 @@ void BtlController_EmitHitAnimation(u8 bufferId)
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd42(u8 bufferId) void BtlController_EmitCantSwitch(u8 bufferId)
{ {
sBattleBuffersTransferData[0] = CONTROLLER_42; sBattleBuffersTransferData[0] = CONTROLLER_42;
sBattleBuffersTransferData[1] = CONTROLLER_42; sBattleBuffersTransferData[1] = CONTROLLER_42;
@@ -1146,10 +1149,11 @@ void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1) // mode is a LINK_STANDBY_* constant
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 mode)
{ {
sBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG; sBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
sBattleBuffersTransferData[1] = arg1; sBattleBuffersTransferData[1] = mode;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
@@ -1160,9 +1164,9 @@ void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId)
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
void BtlController_EmitCmd55(u8 bufferId, u8 battleOutcome) void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome)
{ {
sBattleBuffersTransferData[0] = CONTROLLER_55; sBattleBuffersTransferData[0] = CONTROLLER_ENDLINKBATTLE;
sBattleBuffersTransferData[1] = battleOutcome; sBattleBuffersTransferData[1] = battleOutcome;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
} }
+35 -35
View File
@@ -744,7 +744,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER) if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER)
{ {
objVram = (void*)(OBJ_VRAM0); objVram = (void *)(OBJ_VRAM0);
if (!IsDoubleBattle()) if (!IsDoubleBattle())
objVram += spriteTileNum + 0x820; objVram += spriteTileNum + 0x820;
else else
@@ -752,7 +752,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
} }
else else
{ {
objVram = (void*)(OBJ_VRAM0); objVram = (void *)(OBJ_VRAM0);
objVram += spriteTileNum + 0x400; objVram += spriteTileNum + 0x400;
} }
TextIntoHealthboxObject(objVram, windowTileData, 3); TextIntoHealthboxObject(objVram, windowTileData, 3);
@@ -774,7 +774,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, &windowId); windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, &windowId);
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum; spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum;
TextIntoHealthboxObject( (void*)(OBJ_VRAM0) + spriteTileNum * TILE_SIZE_4BPP + 0xA40, windowTileData, 2); TextIntoHealthboxObject( (void *)(OBJ_VRAM0) + spriteTileNum * TILE_SIZE_4BPP + 0xA40, windowTileData, 2);
RemoveWindowOnHealthbox(windowId); RemoveWindowOnHealthbox(windowId);
} }
else // singles, current else // singles, current
@@ -825,7 +825,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
{ {
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32], CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32],
(void*)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)), (void *)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)),
0x20); 0x20);
} }
} }
@@ -866,13 +866,13 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
if (i < 3) if (i < 3)
{ {
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
(void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)), (void *)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)),
0x20); 0x20);
} }
else else
{ {
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
(void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)), (void *)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)),
0x20); 0x20);
} }
} }
@@ -880,16 +880,16 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
if (maxOrCurrent == HP_CURRENT) if (maxOrCurrent == HP_CURRENT)
{ {
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224], CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224],
(void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * TILE_SIZE_4BPP)), (void *)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * TILE_SIZE_4BPP)),
0x20); 0x20);
CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * TILE_SIZE_4BPP)), 0x20); CpuFill32(0, (void *)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * TILE_SIZE_4BPP)), 0x20);
} }
else else
{ {
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Impossible to reach part, because the battlerId is from the opponent's side. if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Impossible to reach part, because the battlerId is from the opponent's side.
{ {
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116), CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116),
(void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * TILE_SIZE_4BPP), (void *)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * TILE_SIZE_4BPP),
0x20); 0x20);
} }
} }
@@ -927,11 +927,11 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
for (j = 1; j < var + 1; j++) for (j = 1; j < var + 1; j++)
{ {
spriteTileNum = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP; spriteTileNum = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP;
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (spriteTileNum), 0x20); CpuCopy32(barFontGfx, (void *)(OBJ_VRAM0) + (spriteTileNum), 0x20);
barFontGfx += 0x20; barFontGfx += 0x20;
spriteTileNum = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP; spriteTileNum = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP;
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (spriteTileNum), 0x20); CpuCopy32(barFontGfx, (void *)(OBJ_VRAM0) + (spriteTileNum), 0x20);
barFontGfx += 0x20; barFontGfx += 0x20;
} }
@@ -948,13 +948,13 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
if (j <= 1) if (j <= 1)
{ {
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20], CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
(void*)(OBJ_VRAM0) + (gSprites[healthBarSpriteId].oam.tileNum + 2 + j) * TILE_SIZE_4BPP, (void *)(OBJ_VRAM0) + (gSprites[healthBarSpriteId].oam.tileNum + 2 + j) * TILE_SIZE_4BPP,
32); 32);
} }
else else
{ {
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20], CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
(void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthBarSpriteId].oam.tileNum) * TILE_SIZE_4BPP, (void *)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthBarSpriteId].oam.tileNum) * TILE_SIZE_4BPP,
32); 32);
} }
} }
@@ -986,7 +986,7 @@ void SwapHpBarsWithHpText(void)
{ {
healthBarSpriteId = gSprites[gHealthboxSpriteIds[i]].hMain_HealthBarSpriteId; healthBarSpriteId = gSprites[gHealthboxSpriteIds[i]].hMain_HealthBarSpriteId;
CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0x100); CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0x100);
UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT);
UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX);
} }
@@ -994,7 +994,7 @@ void SwapHpBarsWithHpText(void)
{ {
UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR); UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR);
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32);
} }
} }
else else
@@ -1507,8 +1507,8 @@ void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
{ {
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x40 + spriteTileNum), windowTileData, 6); TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x40 + spriteTileNum), windowTileData, 6);
ptr = (void*)(OBJ_VRAM0); ptr = (void *)(OBJ_VRAM0);
if (!IsDoubleBattle()) if (!IsDoubleBattle())
ptr += spriteTileNum + 0x800; ptr += spriteTileNum + 0x800;
else else
@@ -1517,7 +1517,7 @@ void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
} }
else else
{ {
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x20 + spriteTileNum), windowTileData, 7); TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x20 + spriteTileNum), windowTileData, 7);
} }
RemoveWindowOnHealthbox(windowId); RemoveWindowOnHealthbox(windowId);
@@ -1543,9 +1543,9 @@ void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId; healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
if (noStatus) if (noStatus)
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_70), (void*)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_70), (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32);
else else
CpuFill32(0, (void*)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32); CpuFill32(0, (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32);
} }
enum enum
@@ -1620,7 +1620,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
statusGfxPtr = GetHealthboxElementGfxPtr(HEALTHBOX_GFX_39); statusGfxPtr = GetHealthboxElementGfxPtr(HEALTHBOX_GFX_39);
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * TILE_SIZE_4BPP), 32); CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * TILE_SIZE_4BPP), 32);
if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 64); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 64);
@@ -1633,14 +1633,14 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
pltAdder += battlerId + 12; pltAdder += battlerId + 12;
FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2); FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2);
CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void *)(OBJ_PLTT + pltAdder * 2), 2);
CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96); CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96);
if (IsDoubleBattle() == TRUE || GetBattlerSide(battlerId) == B_SIDE_OPPONENT) if (IsDoubleBattle() == TRUE || GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
{ {
if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
{ {
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 32); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 32);
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 1) * TILE_SIZE_4BPP), 32); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 1) * TILE_SIZE_4BPP), 32);
} }
} }
TryAddPokeballIconToHealthbox(healthboxSpriteId, FALSE); TryAddPokeballIconToHealthbox(healthboxSpriteId, FALSE);
@@ -1713,8 +1713,8 @@ static void UpdateSafariBallsTextOnHealthbox(u8 healthboxSpriteId)
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gText_SafariBalls, 0, 3, &windowId); windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gText_SafariBalls, 0, 3, &windowId);
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP; spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP;
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x40) + spriteTileNum, windowTileData, 6); TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x40) + spriteTileNum, windowTileData, 6);
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x800) + spriteTileNum, windowTileData + 0xC0, 2); TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x800) + spriteTileNum, windowTileData + 0xC0, 2);
RemoveWindowOnHealthbox(windowId); RemoveWindowOnHealthbox(windowId);
} }
@@ -1730,8 +1730,8 @@ static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId)
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, GetStringRightAlignXOffset(0, text, 0x2F), 3, &windowId); windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, GetStringRightAlignXOffset(0, text, 0x2F), 3, &windowId);
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP; spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP;
SafariTextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x2C0) + spriteTileNum, windowTileData, 2); SafariTextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x2C0) + spriteTileNum, windowTileData, 2);
SafariTextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0xA00) + spriteTileNum, windowTileData + 0x40, 4); SafariTextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0xA00) + spriteTileNum, windowTileData + 0x40, 4);
RemoveWindowOnHealthbox(windowId); RemoveWindowOnHealthbox(windowId);
} }
@@ -1875,10 +1875,10 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
u8 healthbarSpriteId = gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].hMain_HealthBarSpriteId; u8 healthbarSpriteId = gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].hMain_HealthBarSpriteId;
if (i < 2) if (i < 2)
CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32, CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
(void*)(OBJ_VRAM0 + (gSprites[healthbarSpriteId].oam.tileNum + 2 + i) * TILE_SIZE_4BPP), 32); (void *)(OBJ_VRAM0 + (gSprites[healthbarSpriteId].oam.tileNum + 2 + i) * TILE_SIZE_4BPP), 32);
else else
CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32, CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
(void*)(OBJ_VRAM0 + 64 + (i + gSprites[healthbarSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32); (void *)(OBJ_VRAM0 + 64 + (i + gSprites[healthbarSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
} }
break; break;
case EXP_BAR: case EXP_BAR:
@@ -1897,10 +1897,10 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
{ {
if (i < 4) if (i < 4)
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32, CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
(void*)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum + 0x24 + i) * TILE_SIZE_4BPP), 32); (void *)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum + 0x24 + i) * TILE_SIZE_4BPP), 32);
else else
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32, CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
(void*)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32); (void *)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
} }
break; break;
} }
@@ -2148,7 +2148,7 @@ static const struct WindowTemplate sHealthboxWindowTemplate = {
}; };
static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 *windowId) static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 *windowId)
{ {
u16 winId; u16 winId;
u8 color[3]; u8 color[3];
@@ -2164,7 +2164,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y,
AddTextPrinterParameterized4(winId, 0, x, y, 0, 0, color, -1, str); AddTextPrinterParameterized4(winId, 0, x, y, 0, 0, color, -1, str);
*windowId = winId; *windowId = winId;
return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA)); return (u8 *)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
} }
static void RemoveWindowOnHealthbox(u32 windowId) static void RemoveWindowOnHealthbox(u32 windowId)
+48 -48
View File
@@ -1051,7 +1051,7 @@ static void CB2_HandleStartBattle(void)
SetMainCallback2(BattleMainCB2); SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{ {
gBattleTypeFlags |= BATTLE_TYPE_LINK_ESTABLISHED; gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE;
} }
} }
break; break;
@@ -1409,7 +1409,7 @@ static void CB2_HandleStartMultiBattle(void)
gMain.callback1 = BattleMainCB1; gMain.callback1 = BattleMainCB1;
SetMainCallback2(BattleMainCB2); SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK) if (gBattleTypeFlags & BATTLE_TYPE_LINK)
gBattleTypeFlags |= BATTLE_TYPE_LINK_ESTABLISHED; gBattleTypeFlags |= BATTLE_TYPE_LINK_IN_BATTLE;
} }
break; break;
case 5: case 5:
@@ -1436,7 +1436,7 @@ void BattleMainCB2(void)
{ {
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW; gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW;
ResetPaletteFadeControl(); ResetPaletteFadeControl();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
SetMainCallback2(CB2_QuitPokedudeBattle); SetMainCallback2(CB2_QuitPokedudeBattle);
} }
} }
@@ -1779,7 +1779,7 @@ static void EndLinkBattleInSteps(void)
case 1: case 1:
if (--gBattleCommunication[1] == 0) if (--gBattleCommunication[1] == 0)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
++gBattleCommunication[MULTIUSE_STATE]; ++gBattleCommunication[MULTIUSE_STATE];
} }
break; break;
@@ -1796,7 +1796,7 @@ static void EndLinkBattleInSteps(void)
} }
} }
u32 GetBattleBgAttribute(u8 arrayId, u8 caseId) u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId)
{ {
u32 ret = 0; u32 ret = 0;
@@ -1859,7 +1859,7 @@ static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite)
if (sprite->x2 == 0) if (sprite->x2 == 0)
{ {
sprite->callback = SpriteCB_WildMonShowHealthbox; sprite->callback = SpriteCB_WildMonShowHealthbox;
PlayCry1(sprite->data[2], 25); PlayCry_Normal(sprite->data[2], 25);
} }
} }
} }
@@ -1870,13 +1870,13 @@ static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
{ {
StartHealthboxSlideIn(sprite->sBattler); StartHealthboxSlideIn(sprite->sBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
sprite->callback = SpriteCallbackDummy2; sprite->callback = SpriteCallbackDummy_2;
StartSpriteAnimIfDifferent(sprite, 0); StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x20000, 0, 10, 0, RGB(8, 8, 8)); BeginNormalPaletteFade(0x20000, 0, 10, 0, RGB(8, 8, 8));
} }
} }
void SpriteCallbackDummy2(struct Sprite *sprite) void SpriteCallbackDummy_2(struct Sprite *sprite)
{ {
} }
@@ -1900,7 +1900,7 @@ static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite)
if (sprite->data[3] == 0) if (sprite->data[3] == 0)
{ {
sprite->invisible = FALSE; sprite->invisible = FALSE;
sprite->callback = SpriteCallbackDummy2; sprite->callback = SpriteCallbackDummy_2;
gUnknown_2022AE8[0] = 0; gUnknown_2022AE8[0] = 0;
} }
} }
@@ -1991,7 +1991,7 @@ void SpriteCb_HideAsMoveTarget(struct Sprite *sprite)
{ {
sprite->invisible = sprite->data[4]; sprite->invisible = sprite->data[4];
sprite->data[4] = FALSE; sprite->data[4] = FALSE;
sprite->callback = SpriteCallbackDummy2; sprite->callback = SpriteCallbackDummy_2;
} }
void SpriteCB_AllyMon(struct Sprite *sprite) void SpriteCB_AllyMon(struct Sprite *sprite)
@@ -2433,7 +2433,7 @@ static void BattleIntroGetMonsData(void)
{ {
case 0: case 0:
gActiveBattler = gBattleCommunication[1]; gActiveBattler = gBattleCommunication[1];
BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); BtlController_EmitGetMonData(BUFFER_A, REQUEST_ALL_BATTLE, 0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
++gBattleCommunication[MULTIUSE_STATE]; ++gBattleCommunication[MULTIUSE_STATE];
break; break;
@@ -2468,7 +2468,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
u8 *ptr; u8 *ptr;
s32 i; s32 i;
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
{ {
@@ -2554,7 +2554,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
s32 i; s32 i;
struct HpAndStatus hpStatus[PARTY_SIZE]; struct HpAndStatus hpStatus[PARTY_SIZE];
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{ {
@@ -2621,7 +2621,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
static void BattleIntroPrintTrainerWantsToBattle(void) static void BattleIntroPrintTrainerWantsToBattle(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
PrepareStringBattle(STRINGID_INTROMSG, gActiveBattler); PrepareStringBattle(STRINGID_INTROMSG, gActiveBattler);
@@ -2631,7 +2631,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void)
static void BattleIntroPrintWildMonAttacked(void) static void BattleIntroPrintWildMonAttacked(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
gBattleMainFunc = BattleIntroPrintPlayerSendsOut; gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
PrepareStringBattle(STRINGID_INTROMSG, 0); PrepareStringBattle(STRINGID_INTROMSG, 0);
@@ -2645,7 +2645,7 @@ static void BattleIntroPrintWildMonAttacked(void)
static void BattleIntroPrintOpponentSendsOut(void) static void BattleIntroPrintOpponentSendsOut(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)); PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
gBattleMainFunc = BattleIntroOpponentSendsOutMonAnimation; gBattleMainFunc = BattleIntroOpponentSendsOutMonAnimation;
@@ -2654,7 +2654,7 @@ static void BattleIntroPrintOpponentSendsOut(void)
static void BattleIntroOpponentSendsOutMonAnimation(void) static void BattleIntroOpponentSendsOutMonAnimation(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
{ {
@@ -2675,7 +2675,7 @@ static void BattleIntroOpponentSendsOutMonAnimation(void)
static void BattleIntroRecordMonsToDex(void) static void BattleIntroRecordMonsToDex(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
@@ -2693,13 +2693,13 @@ static void BattleIntroRecordMonsToDex(void)
// not used // not used
static void Unused_AutoProgressToIntro(void) static void Unused_AutoProgressToIntro(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
gBattleMainFunc = BattleIntroPrintPlayerSendsOut; gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
} }
void BattleIntroPrintPlayerSendsOut(void) void BattleIntroPrintPlayerSendsOut(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)); PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
@@ -2711,7 +2711,7 @@ static void BattleIntroPlayerSendsOutMonAnimation(void)
{ {
u32 position; u32 position;
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
{ {
@@ -2736,13 +2736,13 @@ static void BattleIntroPlayerSendsOutMonAnimation(void)
// not used // not used
static void Unused_AutoProgressToSwitchInAnims(void) static void Unused_AutoProgressToSwitchInAnims(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler)
{ {
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{ {
BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], FALSE); BtlController_EmitSwitchInAnim(BUFFER_A, gBattlerPartyIndexes[gActiveBattler], FALSE);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
} }
@@ -2758,7 +2758,7 @@ static void TryDoEventsBeforeFirstTurn(void)
s32 i, j; s32 i, j;
u8 effect = 0; u8 effect = 0;
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
if (gBattleStruct->switchInAbilitiesCounter == 0) if (gBattleStruct->switchInAbilitiesCounter == 0)
@@ -2819,7 +2819,7 @@ static void TryDoEventsBeforeFirstTurn(void)
*(&gBattleStruct->turnEffectsBattlerId) = 0; *(&gBattleStruct->turnEffectsBattlerId) = 0;
*(&gBattleStruct->wishPerishSongState) = 0; *(&gBattleStruct->wishPerishSongState) = 0;
*(&gBattleStruct->wishPerishSongBattlerId) = 0; *(&gBattleStruct->wishPerishSongBattlerId) = 0;
gBattleScripting.atk49_state = 0; gBattleScripting.moveendState = 0;
gBattleStruct->faintedActionsState = 0; gBattleStruct->faintedActionsState = 0;
gBattleStruct->turnCountersTracker = 0; gBattleStruct->turnCountersTracker = 0;
gMoveResultFlags = 0; gMoveResultFlags = 0;
@@ -2831,7 +2831,7 @@ static void HandleEndTurn_ContinueBattle(void)
{ {
s32 i; s32 i;
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
{ {
gBattleMainFunc = BattleTurnPassed; gBattleMainFunc = BattleTurnPassed;
for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i) for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i)
@@ -2875,7 +2875,7 @@ void BattleTurnPassed(void)
gHitMarker &= ~(HITMARKER_PASSIVE_DAMAGE); gHitMarker &= ~(HITMARKER_PASSIVE_DAMAGE);
gBattleScripting.animTurn = 0; gBattleScripting.animTurn = 0;
gBattleScripting.animTargetsHit = 0; gBattleScripting.animTargetsHit = 0;
gBattleScripting.atk49_state = 0; gBattleScripting.moveendState = 0;
gBattleMoveDamage = 0; gBattleMoveDamage = 0;
gMoveResultFlags = 0; gMoveResultFlags = 0;
for (i = 0; i < 5; ++i) for (i = 0; i < 5; ++i)
@@ -3098,7 +3098,7 @@ static void HandleTurnActionSelectionState(void)
*(gBattleStruct->battlerPartyIndexes + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; *(gBattleStruct->battlerPartyIndexes + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gStatuses3[gActiveBattler] & STATUS3_ROOTED) if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gStatuses3[gActiveBattler] & STATUS3_ROOTED)
{ {
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CANT_SWITCH, 6, ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); BtlController_EmitChoosePokemon(BUFFER_A, PARTY_ACTION_CANT_SWITCH, 6, ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]);
} }
else if ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_SHADOW_TAG)) else if ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_SHADOW_TAG))
|| ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_ARENA_TRAP)) || ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_ARENA_TRAP))
@@ -3107,16 +3107,16 @@ static void HandleTurnActionSelectionState(void)
|| ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0)) || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0))
&& IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL))) && IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL)))
{ {
BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | PARTY_ACTION_ABILITY_PREVENTS, 6, gLastUsedAbility, gBattleStruct->battlerPartyOrders[gActiveBattler]); BtlController_EmitChoosePokemon(BUFFER_A, ((i - 1) << 4) | PARTY_ACTION_ABILITY_PREVENTS, 6, gLastUsedAbility, gBattleStruct->battlerPartyOrders[gActiveBattler]);
} }
else else
{ {
if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH) if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH)
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); BtlController_EmitChoosePokemon(BUFFER_A, PARTY_ACTION_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]);
else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH) else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH)
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); BtlController_EmitChoosePokemon(BUFFER_A, PARTY_ACTION_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]);
else else
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CHOOSE_MON, 6, ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); BtlController_EmitChoosePokemon(BUFFER_A, PARTY_ACTION_CHOOSE_MON, 6, ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]);
} }
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
break; break;
@@ -3254,9 +3254,9 @@ static void HandleTurnActionSelectionState(void)
if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE)
|| (position & BIT_FLANK) != B_FLANK_LEFT || (position & BIT_FLANK) != B_FLANK_LEFT
|| (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) || (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
BtlController_EmitLinkStandbyMsg(0, 0); BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_MSG_STOP_BOUNCE);
else else
BtlController_EmitLinkStandbyMsg(0, 1); BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_STOP_BOUNCE_ONLY);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
++gBattleCommunication[gActiveBattler]; ++gBattleCommunication[gActiveBattler];
} }
@@ -3309,13 +3309,13 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves)
if (WEATHER_HAS_EFFECT) if (WEATHER_HAS_EFFECT)
{ {
if ((gBattleMons[battler1].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY) if ((gBattleMons[battler1].ability == ABILITY_SWIFT_SWIM && gBattleWeather & B_WEATHER_RAIN)
|| (gBattleMons[battler1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)) || (gBattleMons[battler1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & B_WEATHER_SUN))
speedMultiplierBattler1 = 2; speedMultiplierBattler1 = 2;
else else
speedMultiplierBattler1 = 1; speedMultiplierBattler1 = 1;
if ((gBattleMons[battler2].ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY) if ((gBattleMons[battler2].ability == ABILITY_SWIFT_SWIM && gBattleWeather & B_WEATHER_RAIN)
|| (gBattleMons[battler2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)) || (gBattleMons[battler2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & B_WEATHER_SUN))
speedMultiplierBattler2 = 2; speedMultiplierBattler2 = 2;
else else
speedMultiplierBattler2 = 1; speedMultiplierBattler2 = 1;
@@ -3751,7 +3751,7 @@ static void HandleEndTurn_FinishBattle(void)
gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions; gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions;
gCB2_AfterEvolution = BattleMainCB2; gCB2_AfterEvolution = BattleMainCB2;
} }
else if (!gBattleControllerExecFlags) else if (gBattleControllerExecFlags == 0)
{ {
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
} }
@@ -3847,14 +3847,14 @@ void RunBattleScriptCommands_PopCallbacksStack(void)
} }
else else
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
} }
} }
void RunBattleScriptCommands(void) void RunBattleScriptCommands(void)
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
} }
@@ -3874,7 +3874,7 @@ static void HandleAction_UseMove(void)
gBattleStruct->atkCancellerTracker = 0; gBattleStruct->atkCancellerTracker = 0;
gMoveResultFlags = 0; gMoveResultFlags = 0;
gMultiHitCounter = 0; gMultiHitCounter = 0;
gBattleCommunication[6] = 0; gBattleCommunication[MISS_TYPE] = 0;
gCurrMovePos = gChosenMovePos = *(gBattleStruct->chosenMovePositions + gBattlerAttacker); gCurrMovePos = gChosenMovePos = *(gBattleStruct->chosenMovePositions + gBattlerAttacker);
// choose move // choose move
if (gProtectStructs[gBattlerAttacker].noValidMoves) if (gProtectStructs[gBattlerAttacker].noValidMoves)
@@ -4088,7 +4088,7 @@ static void HandleAction_UseItem(void)
while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)) while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1))
{ {
*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1; *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
++gBattleCommunication[MULTISTRING_CHOOSER]; gBattleCommunication[MULTISTRING_CHOOSER]++;
} }
} }
break; break;
@@ -4344,8 +4344,8 @@ static void HandleAction_NothingIsFainted(void)
gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
| HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
| HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_PASSIVE_DAMAGE
| HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT | HITMARKER_OBEYS | HITMARKER_WAKE_UP_CLEAR | HITMARKER_SYNCHRONISE_EFFECT
| HITMARKER_CHARGING | HITMARKER_x4000000); | HITMARKER_CHARGING | HITMARKER_NEVER_SET);
} }
static void HandleAction_ActionFinished(void) static void HandleAction_ActionFinished(void)
@@ -4356,8 +4356,8 @@ static void HandleAction_ActionFinished(void)
gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
| HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
| HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_PASSIVE_DAMAGE
| HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT | HITMARKER_OBEYS | HITMARKER_WAKE_UP_CLEAR | HITMARKER_SYNCHRONISE_EFFECT
| HITMARKER_CHARGING | HITMARKER_x4000000); | HITMARKER_CHARGING | HITMARKER_NEVER_SET);
gCurrentMove = MOVE_NONE; gCurrentMove = MOVE_NONE;
gBattleMoveDamage = 0; gBattleMoveDamage = 0;
gMoveResultFlags = 0; gMoveResultFlags = 0;
@@ -4367,7 +4367,7 @@ static void HandleAction_ActionFinished(void)
gLastHitByType[gBattlerAttacker] = 0; gLastHitByType[gBattlerAttacker] = 0;
gBattleStruct->dynamicMoveType = 0; gBattleStruct->dynamicMoveType = 0;
gDynamicBasePower = 0; gDynamicBasePower = 0;
gBattleScripting.atk49_state = 0; gBattleScripting.moveendState = 0;
gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0;
gBattleScripting.multihitMoveEffect = 0; gBattleScripting.multihitMoveEffect = 0;
+35 -34
View File
@@ -302,11 +302,11 @@ static const u8 sText_StatSharply[] = _("sharply ");
const u8 gBattleText_Rose[] = _("rose!"); const u8 gBattleText_Rose[] = _("rose!");
static const u8 sText_StatHarshly[] = _("harshly "); static const u8 sText_StatHarshly[] = _("harshly ");
static const u8 sText_StatFell[] = _("fell!"); static const u8 sText_StatFell[] = _("fell!");
static const u8 sText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_AttackersStatRose[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); const u8 gText_DefendersStatRose[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
static const u8 sText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); static const u8 sText_UsingItemTheStatOfPkmnRose[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}");
static const u8 sText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_AttackersStatFell[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
static const u8 sText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_DefendersStatFell[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!"); static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!");
static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!");
static const u8 sText_CriticalHit[] = _("A critical hit!"); static const u8 sText_CriticalHit[] = _("A critical hit!");
@@ -715,10 +715,10 @@ const u8 *const gBattleStringsTable[] = {
[STRINGID_STATROSE - 12] = gBattleText_Rose, [STRINGID_STATROSE - 12] = gBattleText_Rose,
[STRINGID_STATHARSHLY - 12] = sText_StatHarshly, [STRINGID_STATHARSHLY - 12] = sText_StatHarshly,
[STRINGID_STATFELL - 12] = sText_StatFell, [STRINGID_STATFELL - 12] = sText_StatFell,
[STRINGID_PKMNSSTATCHANGED - 12] = sText_PkmnsStatChanged, [STRINGID_ATTACKERSSTATROSE - 12] = sText_AttackersStatRose,
[STRINGID_PKMNSSTATCHANGED2 - 12] = gText_PkmnsStatChanged2, [STRINGID_DEFENDERSSTATROSE - 12] = gText_DefendersStatRose,
[STRINGID_PKMNSSTATCHANGED3 - 12] = sText_PkmnsStatChanged3, [STRINGID_ATTACKERSSTATFELL - 12] = sText_AttackersStatFell,
[STRINGID_PKMNSSTATCHANGED4 - 12] = sText_PkmnsStatChanged4, [STRINGID_DEFENDERSSTATFELL - 12] = sText_DefendersStatFell,
[STRINGID_CRITICALHIT - 12] = sText_CriticalHit, [STRINGID_CRITICALHIT - 12] = sText_CriticalHit,
[STRINGID_ONEHITKO - 12] = sText_OneHitKO, [STRINGID_ONEHITKO - 12] = sText_OneHitKO,
[STRINGID_123POOF - 12] = sText_123Poof, [STRINGID_123POOF - 12] = sText_123Poof,
@@ -827,7 +827,7 @@ const u8 *const gBattleStringsTable[] = {
[STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma, [STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma,
[STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow, [STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow,
[STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ, [STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ,
[STRINGID_USINGXTHEYOFZN - 12] = sText_UsingXTheYOfZN, [STRINGID_USINGITEMSTATOFPKMNROSE - 12] = sText_UsingItemTheStatOfPkmnRose,
[STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped, [STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped,
[STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless, [STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless,
[STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb, [STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb,
@@ -990,18 +990,19 @@ const u16 gUproarAwakeStringIds[] = {
STRINGID_PKMNSTAYEDAWAKEUSING STRINGID_PKMNSTAYEDAWAKEUSING
}; };
const u16 gStatUpStringIds[] = { const u16 gStatUpStringIds[] =
STRINGID_PKMNSSTATCHANGED, {
STRINGID_PKMNSSTATCHANGED2, [B_MSG_ATTACKER_STAT_ROSE] = STRINGID_ATTACKERSSTATROSE,
STRINGID_STATSWONTINCREASE, [B_MSG_DEFENDER_STAT_ROSE] = STRINGID_DEFENDERSSTATROSE,
STRINGID_EMPTYSTRING3, [B_MSG_STAT_WONT_INCREASE] = STRINGID_STATSWONTINCREASE,
STRINGID_USINGXTHEYOFZN, [B_MSG_STAT_ROSE_EMPTY] = STRINGID_EMPTYSTRING3,
STRINGID_PKMNUSEDXTOGETPUMPED [B_MSG_STAT_ROSE_ITEM] = STRINGID_USINGITEMSTATOFPKMNROSE,
[B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED,
}; };
const u16 gStatDownStringIds[] = { const u16 gStatDownStringIds[] = {
STRINGID_PKMNSSTATCHANGED3, STRINGID_ATTACKERSSTATFELL,
STRINGID_PKMNSSTATCHANGED4, STRINGID_DEFENDERSSTATFELL,
STRINGID_STATSWONTDECREASE, STRINGID_STATSWONTDECREASE,
STRINGID_EMPTYSTRING3 STRINGID_EMPTYSTRING3
}; };
@@ -1465,7 +1466,7 @@ void BufferStringBattle(u16 stringId)
s32 i; s32 i;
const u8 *stringPtr = NULL; const u8 *stringPtr = NULL;
sBattleMsgDataPtr = (struct BattleMsgData*)(&gBattleBufferA[gActiveBattler][4]); sBattleMsgDataPtr = (struct BattleMsgData *)(&gBattleBufferA[gActiveBattler][4]);
gLastUsedItem = sBattleMsgDataPtr->lastItem; gLastUsedItem = sBattleMsgDataPtr->lastItem;
gLastUsedAbility = sBattleMsgDataPtr->lastAbility; gLastUsedAbility = sBattleMsgDataPtr->lastAbility;
gBattleScripting.battler = sBattleMsgDataPtr->scrActive; gBattleScripting.battler = sBattleMsgDataPtr->scrActive;
@@ -1701,14 +1702,14 @@ void BufferStringBattle(u16 stringId)
} }
break; break;
default: // load a string from the table default: // load a string from the table
if (stringId >= BATTLESTRINGS_COUNT + BATTLESTRINGS_ID_ADDER) if (stringId >= BATTLESTRINGS_COUNT + BATTLESTRINGS_TABLE_START)
{ {
gDisplayedStringBattle[0] = EOS; gDisplayedStringBattle[0] = EOS;
return; return;
} }
else else
{ {
stringPtr = gBattleStringsTable[stringId - BATTLESTRINGS_ID_ADDER]; stringPtr = gBattleStringsTable[stringId - BATTLESTRINGS_TABLE_START];
} }
break; break;
} }
@@ -1716,17 +1717,17 @@ void BufferStringBattle(u16 stringId)
BattleStringExpandPlaceholdersToDisplayedString(stringPtr); BattleStringExpandPlaceholdersToDisplayedString(stringPtr);
} }
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src) u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src)
{ {
BattleStringExpandPlaceholders(src, gDisplayedStringBattle); BattleStringExpandPlaceholders(src, gDisplayedStringBattle);
} }
static const u8* TryGetStatusString(u8 *src) static const u8 *TryGetStatusString(u8 *src)
{ {
u32 i; u32 i;
u8 status[] = _("$$$$$$$"); u8 status[] = _("$$$$$$$");
u32 chars1, chars2; u32 chars1, chars2;
u8* statusPtr; u8 *statusPtr;
statusPtr = status; statusPtr = status;
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
@@ -1738,13 +1739,13 @@ static const u8* TryGetStatusString(u8 *src)
statusPtr++; statusPtr++;
} }
chars1 = *(u32*)(&status[0]); chars1 = *(u32 *)(&status[0]);
chars2 = *(u32*)(&status[4]); chars2 = *(u32 *)(&status[4]);
for (i = 0; i < NELEMS(gStatusConditionStringsTable); i++) for (i = 0; i < NELEMS(gStatusConditionStringsTable); i++)
{ {
if (chars1 == *(u32*)(&gStatusConditionStringsTable[i][0][0]) if (chars1 == *(u32 *)(&gStatusConditionStringsTable[i][0][0])
&& chars2 == *(u32*)(&gStatusConditionStringsTable[i][0][4])) && chars2 == *(u32 *)(&gStatusConditionStringsTable[i][0][4]))
return gStatusConditionStringsTable[i][1]; return gStatusConditionStringsTable[i][1];
} }
return NULL; return NULL;
@@ -2169,7 +2170,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
{ {
case B_BUFF_STRING: // battle string case B_BUFF_STRING: // battle string
hword = T1_READ_16(&src[srcId + 1]); hword = T1_READ_16(&src[srcId + 1]);
StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_ID_ADDER]); StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_TABLE_START]);
srcId += 3; srcId += 3;
break; break;
case B_BUFF_NUMBER: // int to string case B_BUFF_NUMBER: // int to string
@@ -2273,7 +2274,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
// unused, since the value loaded into the buffer is not read; it loaded one of // unused, since the value loaded into the buffer is not read; it loaded one of
// two particles (either "は" or "の") which works in tandem with ChooseTypeOfMoveUsedString // two particles (either "は" or "の") which works in tandem with ChooseTypeOfMoveUsedString
// below to effect changes in the meaning of the line. // below to effect changes in the meaning of the line.
static void ChooseMoveUsedParticle(u8* textBuff) static void ChooseMoveUsedParticle(u8 *textBuff)
{ {
s32 counter = 0; s32 counter = 0;
u32 i = 0; u32 i = 0;
@@ -2313,7 +2314,7 @@ static void ChooseMoveUsedParticle(u8* textBuff)
// //
// sText_ExclamationMark5 was " こうげき!" This resulted in a translation of // sText_ExclamationMark5 was " こうげき!" This resulted in a translation of
// "<NAME>'s <ATTACK> attack!". // "<NAME>'s <ATTACK> attack!".
static void ChooseTypeOfMoveUsedString(u8* dst) static void ChooseTypeOfMoveUsedString(u8 *dst)
{ {
s32 counter = 0; s32 counter = 0;
s32 i = 0; s32 i = 0;
@@ -2456,7 +2457,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) {
if (!(textFlags & 0x80)) if (!(textFlags & 0x80))
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
} }
} }
@@ -2469,7 +2470,7 @@ bool8 BattleStringShouldBeColored(u16 stringId)
void SetPpNumbersPaletteInMoveSelection(void) void SetPpNumbersPaletteInMoveSelection(void)
{ {
struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]); struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
const u16 *palPtr = gUnknown_8D2FBB4; const u16 *palPtr = gUnknown_8D2FBB4;
u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]],
chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]); chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]);
+3 -3
View File
@@ -127,7 +127,7 @@ static void MainCB2_SetUp(void)
gMain.state++; gMain.state++;
break; break;
case 6: case 6:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
gMain.state++; gMain.state++;
break; break;
case 7: case 7:
@@ -178,7 +178,7 @@ static void Task_WaitButton(u8 taskId)
static void Task_FadeOut(u8 taskId) static void Task_FadeOut(u8 taskId)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_DestroyAndReturnToField; gTasks[taskId].func = Task_DestroyAndReturnToField;
} }
@@ -557,7 +557,7 @@ static void PrintBattleRecords(void)
static void CommitWindow(u8 windowId) static void CommitWindow(u8 windowId)
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
} }
static void LoadFrameGfxOnBg(u8 bg) static void LoadFrameGfxOnBg(u8 bg)
+3255 -2756
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -711,7 +711,7 @@ static bool8 BT_Phase2Blur_Anim(struct Task *task)
{ {
task->tInterval = 2; task->tInterval = 2;
if (++task->tMosaicSize == 10) if (++task->tMosaicSize == 10)
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 0x10, RGB_BLACK);
// The mosaic size argument is shared by HSIZE and VSIZE // The mosaic size argument is shared by HSIZE and VSIZE
SetGpuReg(REG_OFFSET_MOSAIC, (task->tMosaicSize & 0xF) + ((task->tMosaicSize & 0xF) << 4)); SetGpuReg(REG_OFFSET_MOSAIC, (task->tMosaicSize & 0xF) + ((task->tMosaicSize & 0xF) << 4));
if (task->tMosaicSize > 14) if (task->tMosaicSize > 14)
@@ -742,7 +742,7 @@ static bool8 BT_Phase2DistortedWave_InitWave(struct Task *task)
{ {
BT_InitCtrlBlk(); BT_InitCtrlBlk();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 4, 0, 0x10, RGB_BLACK);
BT_LoadWaveIntoBuffer(gScanlineEffectRegBuffers[1], sTransitionStructPtr->bg123HOfs, 0, 2, 0, 160); BT_LoadWaveIntoBuffer(gScanlineEffectRegBuffers[1], sTransitionStructPtr->bg123HOfs, 0, 2, 0, 160);
SetVBlankCallback(VBCB_BT_Phase2DistortedWave); SetVBlankCallback(VBCB_BT_Phase2DistortedWave);
SetHBlankCallback(HBCB_BT_Phase2DistortedWave); SetHBlankCallback(HBCB_BT_Phase2DistortedWave);
@@ -788,7 +788,7 @@ static bool8 BT_Phase2HorizontalCorrugate_Init(struct Task *task)
{ {
BT_InitCtrlBlk(); BT_InitCtrlBlk();
ScanlineEffect_Clear(); ScanlineEffect_Clear();
BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 4, 0, 0x10, RGB_BLACK);
memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->bg123VOfs, 320); memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->bg123VOfs, 320);
SetVBlankCallback(VBCB_BT_Phase2HorizontalCorrugate); SetVBlankCallback(VBCB_BT_Phase2HorizontalCorrugate);
SetHBlankCallback(HBCB_BT_Phase2HorizontalCorrugate); SetHBlankCallback(HBCB_BT_Phase2HorizontalCorrugate);
@@ -1382,7 +1382,7 @@ static bool8 BT_Phase2FullScreenWave_UpdateWave(struct Task *task)
if (++task->tDelayForFade == 41) if (++task->tDelayForFade == 41)
{ {
++task->tStartFade; ++task->tStartFade;
BeginNormalPaletteFade(0xFFFFFFFF, -8, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -8, 0, 0x10, RGB_BLACK);
} }
if (task->tStartFade && !gPaletteFade.active) if (task->tStartFade && !gPaletteFade.active)
DestroyTask(FindTaskIdByFunc(BT_Phase2FullScreenWave)); DestroyTask(FindTaskIdByFunc(BT_Phase2FullScreenWave));
@@ -1982,7 +1982,7 @@ static bool8 BT_Phase2Mugshot_ExpandWhiteBand(struct Task *task)
static bool8 BT_Phase2Mugshot_StartBlackFade(struct Task *task) static bool8 BT_Phase2Mugshot_StartBlackFade(struct Task *task)
{ {
sTransitionStructPtr->vblankDma = FALSE; sTransitionStructPtr->vblankDma = FALSE;
BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); BlendPalettes(PALETTES_ALL, 0x10, RGB_WHITE);
sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; sTransitionStructPtr->bldCnt = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN;
task->tCounter = 0; task->tCounter = 0;
++task->tState; ++task->tState;
@@ -2310,7 +2310,7 @@ static bool8 BT_Phase2WhiteFadeInStripes_IsWhiteFadeDone(struct Task *task)
sTransitionStructPtr->vblankDma = FALSE; sTransitionStructPtr->vblankDma = FALSE;
if (sTransitionStructPtr->counter > 5) if (sTransitionStructPtr->counter > 5)
{ {
BlendPalettes(0xFFFFFFFF, 0x10, RGB_WHITE); BlendPalettes(PALETTES_ALL, 0x10, RGB_WHITE);
++task->tState; ++task->tState;
} }
return FALSE; return FALSE;
@@ -2658,7 +2658,7 @@ static bool8 BT_Phase1_FadeIn(struct Task *task)
task->tCoeff -= task->tFadeInSpeed; task->tCoeff -= task->tFadeInSpeed;
if (task->tCoeff < 0) if (task->tCoeff < 0)
task->tCoeff = 0; task->tCoeff = 0;
BlendPalettes(0xFFFFFFFF, task->tCoeff, RGB(11, 11, 11)); BlendPalettes(PALETTES_ALL, task->tCoeff, RGB(11, 11, 11));
} }
if (task->tCoeff == 0) if (task->tCoeff == 0)
{ {
@@ -2719,7 +2719,7 @@ static void BT_GetBg0TilemapAndTilesetBase(u16 **tilemapPtr, u16 **tilesetPtr)
static void BT_BlendPalettesToBlack(void) static void BT_BlendPalettesToBlack(void)
{ {
BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK);
} }
static void BT_LoadWaveIntoBuffer(s16 *buffer, s16 offset, s16 theta, s16 frequency, s16 amplitude, s16 bufSize) static void BT_LoadWaveIntoBuffer(s16 *buffer, s16 offset, s16 theta, s16 frequency, s16 amplitude, s16 bufSize)
+43 -43
View File
@@ -568,22 +568,22 @@ u8 DoFieldEndTurnEffects(void)
++gBattleStruct->turnCountersTracker; ++gBattleStruct->turnCountersTracker;
break; break;
case ENDTURN_RAIN: case ENDTURN_RAIN:
if (gBattleWeather & WEATHER_RAIN_ANY) if (gBattleWeather & B_WEATHER_RAIN)
{ {
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) if (!(gBattleWeather & B_WEATHER_RAIN_PERMANENT))
{ {
if (--gWishFutureKnock.weatherDuration == 0) if (--gWishFutureKnock.weatherDuration == 0)
{ {
gBattleWeather &= ~WEATHER_RAIN_TEMPORARY; gBattleWeather &= ~B_WEATHER_RAIN_TEMPORARY;
gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR; gBattleWeather &= ~B_WEATHER_RAIN_DOWNPOUR;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = 2;
} }
else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR)
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = 0;
} }
else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1;
} }
@@ -597,11 +597,11 @@ u8 DoFieldEndTurnEffects(void)
++gBattleStruct->turnCountersTracker; ++gBattleStruct->turnCountersTracker;
break; break;
case ENDTURN_SANDSTORM: case ENDTURN_SANDSTORM:
if (gBattleWeather & WEATHER_SANDSTORM_ANY) if (gBattleWeather & B_WEATHER_SANDSTORM)
{ {
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) if (!(gBattleWeather & B_WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0)
{ {
gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; gBattleWeather &= ~B_WEATHER_SANDSTORM_TEMPORARY;
gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; gBattlescriptCurrInstr = BattleScript_SandStormHailEnds;
} }
else else
@@ -616,11 +616,11 @@ u8 DoFieldEndTurnEffects(void)
++gBattleStruct->turnCountersTracker; ++gBattleStruct->turnCountersTracker;
break; break;
case ENDTURN_SUN: case ENDTURN_SUN:
if (gBattleWeather & WEATHER_SUN_ANY) if (gBattleWeather & B_WEATHER_SUN)
{ {
if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) if (!(gBattleWeather & B_WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0)
{ {
gBattleWeather &= ~WEATHER_SUN_TEMPORARY; gBattleWeather &= ~B_WEATHER_SUN_TEMPORARY;
gBattlescriptCurrInstr = BattleScript_SunlightFaded; gBattlescriptCurrInstr = BattleScript_SunlightFaded;
} }
else else
@@ -633,11 +633,11 @@ u8 DoFieldEndTurnEffects(void)
++gBattleStruct->turnCountersTracker; ++gBattleStruct->turnCountersTracker;
break; break;
case ENDTURN_HAIL: case ENDTURN_HAIL:
if (gBattleWeather & WEATHER_HAIL_ANY) if (gBattleWeather & B_WEATHER_HAIL)
{ {
if (--gWishFutureKnock.weatherDuration == 0) if (--gWishFutureKnock.weatherDuration == 0)
{ {
gBattleWeather &= ~WEATHER_HAIL; gBattleWeather &= ~B_WEATHER_HAIL_TEMPORARY;
gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; gBattlescriptCurrInstr = BattleScript_SandStormHailEnds;
} }
else else
@@ -687,7 +687,7 @@ u8 DoBattlerEndTurnEffects(void)
{ {
u8 effect = 0; u8 effect = 0;
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK);
while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= ENDTURN_BATTLER_COUNT) while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= ENDTURN_BATTLER_COUNT)
{ {
gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId]; gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId];
@@ -1000,13 +1000,13 @@ u8 DoBattlerEndTurnEffects(void)
return effect; return effect;
} }
} }
gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK);
return 0; return 0;
} }
bool8 HandleWishPerishSongOnTurnEnd(void) bool8 HandleWishPerishSongOnTurnEnd(void)
{ {
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK);
switch (gBattleStruct->wishPerishSongState) switch (gBattleStruct->wishPerishSongState)
{ {
case 0: case 0:
@@ -1073,7 +1073,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
} }
break; break;
} }
gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK);
return FALSE; return FALSE;
} }
@@ -1093,7 +1093,7 @@ bool8 HandleFaintedMonActions(void)
++gBattleStruct->faintedActionsState; ++gBattleStruct->faintedActionsState;
for (i = 0; i < gBattlersCount; ++i) for (i = 0; i < gBattlersCount; ++i)
{ {
if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, 6, 6)) if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, PARTY_SIZE, PARTY_SIZE))
gAbsentBattlerFlags &= ~(gBitTable[i]); gAbsentBattlerFlags &= ~(gBitTable[i]);
} }
// fall through // fall through
@@ -1552,22 +1552,22 @@ u8 CastformDataTypeChange(u8 battler)
} }
if (!WEATHER_HAS_EFFECT) if (!WEATHER_HAS_EFFECT)
return CASTFORM_NO_CHANGE; return CASTFORM_NO_CHANGE;
if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) && !IS_BATTLER_OF_TYPE(battler, TYPE_NORMAL)) if (!(gBattleWeather & (B_WEATHER_RAIN | B_WEATHER_SUN | B_WEATHER_HAIL)) && !IS_BATTLER_OF_TYPE(battler, TYPE_NORMAL))
{ {
SET_BATTLER_TYPE(battler, TYPE_NORMAL); SET_BATTLER_TYPE(battler, TYPE_NORMAL);
formChange = CASTFORM_TO_NORMAL; formChange = CASTFORM_TO_NORMAL;
} }
if (gBattleWeather & WEATHER_SUN_ANY && !IS_BATTLER_OF_TYPE(battler, TYPE_FIRE)) if (gBattleWeather & B_WEATHER_SUN && !IS_BATTLER_OF_TYPE(battler, TYPE_FIRE))
{ {
SET_BATTLER_TYPE(battler, TYPE_FIRE); SET_BATTLER_TYPE(battler, TYPE_FIRE);
formChange = CASTFORM_TO_FIRE; formChange = CASTFORM_TO_FIRE;
} }
if (gBattleWeather & WEATHER_RAIN_ANY && !IS_BATTLER_OF_TYPE(battler, TYPE_WATER)) if (gBattleWeather & B_WEATHER_RAIN && !IS_BATTLER_OF_TYPE(battler, TYPE_WATER))
{ {
SET_BATTLER_TYPE(battler, TYPE_WATER); SET_BATTLER_TYPE(battler, TYPE_WATER);
formChange = CASTFORM_TO_WATER; formChange = CASTFORM_TO_WATER;
} }
if (gBattleWeather & WEATHER_HAIL_ANY && !IS_BATTLER_OF_TYPE(battler, TYPE_ICE)) if (gBattleWeather & B_WEATHER_HAIL && !IS_BATTLER_OF_TYPE(battler, TYPE_ICE))
{ {
SET_BATTLER_TYPE(battler, TYPE_ICE); SET_BATTLER_TYPE(battler, TYPE_ICE);
formChange = CASTFORM_TO_ICE; formChange = CASTFORM_TO_ICE;
@@ -1631,27 +1631,27 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
case WEATHER_RAIN: case WEATHER_RAIN:
case WEATHER_RAIN_THUNDERSTORM: case WEATHER_RAIN_THUNDERSTORM:
case WEATHER_DOWNPOUR: case WEATHER_DOWNPOUR:
if (!(gBattleWeather & WEATHER_RAIN_ANY)) if (!(gBattleWeather & B_WEATHER_RAIN))
{ {
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); gBattleWeather = (B_WEATHER_RAIN_TEMPORARY | B_WEATHER_RAIN_PERMANENT);
gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES; gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES;
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
++effect; ++effect;
} }
break; break;
case WEATHER_SANDSTORM: case WEATHER_SANDSTORM:
if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) if (!(gBattleWeather & B_WEATHER_SANDSTORM))
{ {
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); gBattleWeather = (B_WEATHER_SANDSTORM_PERMANENT | B_WEATHER_SANDSTORM_TEMPORARY);
gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
++effect; ++effect;
} }
break; break;
case WEATHER_DROUGHT: case WEATHER_DROUGHT:
if (!(gBattleWeather & WEATHER_SUN_ANY)) if (!(gBattleWeather & B_WEATHER_SUN))
{ {
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); gBattleWeather = (B_WEATHER_SUN_PERMANENT | B_WEATHER_SUN_TEMPORARY);
gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES; gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES;
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
++effect; ++effect;
@@ -1665,27 +1665,27 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
} }
break; break;
case ABILITY_DRIZZLE: case ABILITY_DRIZZLE:
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) if (!(gBattleWeather & B_WEATHER_RAIN_PERMANENT))
{ {
gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); gBattleWeather = (B_WEATHER_RAIN_PERMANENT | B_WEATHER_RAIN_TEMPORARY);
BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates); BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates);
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
++effect; ++effect;
} }
break; break;
case ABILITY_SAND_STREAM: case ABILITY_SAND_STREAM:
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) if (!(gBattleWeather & B_WEATHER_SANDSTORM_PERMANENT))
{ {
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); gBattleWeather = (B_WEATHER_SANDSTORM_PERMANENT | B_WEATHER_SANDSTORM_TEMPORARY);
BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates); BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates);
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
++effect; ++effect;
} }
break; break;
case ABILITY_DROUGHT: case ABILITY_DROUGHT:
if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) if (!(gBattleWeather & B_WEATHER_SUN_PERMANENT))
{ {
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); gBattleWeather = (B_WEATHER_SUN_PERMANENT | B_WEATHER_SUN_TEMPORARY);
BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates); BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates);
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
++effect; ++effect;
@@ -1739,7 +1739,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
switch (gLastUsedAbility) switch (gLastUsedAbility)
{ {
case ABILITY_RAIN_DISH: case ABILITY_RAIN_DISH:
if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) if (WEATHER_HAS_EFFECT && (gBattleWeather & B_WEATHER_RAIN)
&& gBattleMons[battler].maxHP > gBattleMons[battler].hp) && gBattleMons[battler].maxHP > gBattleMons[battler].hp)
{ {
gLastUsedAbility = ABILITY_RAIN_DISH; // why gLastUsedAbility = ABILITY_RAIN_DISH; // why
@@ -1874,7 +1874,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
} }
} }
break; break;
case ABILITYEFFECT_MOVE_END: // Think contact abilities. case ABILITYEFFECT_ON_DAMAGE: // Think contact abilities.
switch (gLastUsedAbility) switch (gLastUsedAbility)
{ {
case ABILITY_COLOR_CHANGE: case ABILITY_COLOR_CHANGE:
@@ -2234,12 +2234,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
case ABILITYEFFECT_FIELD_SPORT: // 14 case ABILITYEFFECT_FIELD_SPORT: // 14
switch (gLastUsedAbility) switch (gLastUsedAbility)
{ {
case 0xFD: case ABILITYEFFECT_MUD_SPORT:
for (i = 0; i < gBattlersCount; ++i) for (i = 0; i < gBattlersCount; ++i)
if (gStatuses3[i] & STATUS3_MUDSPORT) if (gStatuses3[i] & STATUS3_MUDSPORT)
effect = i + 1; effect = i + 1;
break; break;
case 0xFE: case ABILITYEFFECT_WATER_SPORT:
for (i = 0; i < gBattlersCount; ++i) for (i = 0; i < gBattlersCount; ++i)
if (gStatuses3[i] & STATUS3_WATERSPORT) if (gStatuses3[i] & STATUS3_WATERSPORT)
effect = i + 1; effect = i + 1;
@@ -2971,12 +2971,12 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
&& TARGET_TURN_DAMAGED && TARGET_TURN_DAMAGED
&& (Random() % 100) < battlerHoldEffectParam && (Random() % 100) < battlerHoldEffectParam
&& gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED && gBattleMoves[gCurrentMove].flags & FLAG_KINGS_ROCK_AFFECTED
&& gBattleMons[gBattlerTarget].hp) && gBattleMons[gBattlerTarget].hp)
{ {
gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH;
BattleScriptPushCursor(); BattleScriptPushCursor();
SetMoveEffect(0, 0); SetMoveEffect(FALSE, 0);
BattleScriptPop(); BattleScriptPop();
} }
break; break;
@@ -3016,7 +3016,7 @@ void ClearFuryCutterDestinyBondGrudge(u8 battlerId)
void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands
{ {
if (!gBattleControllerExecFlags) if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); gBattleScriptingCommandsTable[*gBattlescriptCurrInstr]();
} }
@@ -3158,7 +3158,7 @@ u8 IsMonDisobedient(void)
gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove;
gBattlerTarget = GetMoveTarget(gCalledMove, 0); gBattlerTarget = GetMoveTarget(gCalledMove, 0);
gHitMarker |= HITMARKER_x200000; gHitMarker |= HITMARKER_DISOBEDIENT_MOVE;
return 2; return 2;
} }
} }
+6 -6
View File
@@ -1274,7 +1274,7 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame * game, u8 *args)
{ {
AddTextPrinterParameterized2(0, 2, sMessages[bMsgId], game->textSpeed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); AddTextPrinterParameterized2(0, 2, sMessages[bMsgId], game->textSpeed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
} }
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
break; break;
case 1: case 1:
if (!IsTextPrinterActive(0)) if (!IsTextPrinterActive(0))
@@ -2223,7 +2223,7 @@ static u32 Cmd_SaveGame(struct BerryCrushGame * game, u8 *args)
return 0; return 0;
DrawDialogueFrame(0, FALSE); DrawDialogueFrame(0, FALSE);
AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
CreateTask(Task_LinkSave, 0); CreateTask(Task_LinkSave, 0);
break; break;
case 3: case 3:
@@ -2370,7 +2370,7 @@ static u32 Cmd_StopGame(struct BerryCrushGame * game, UNUSED u8 *args)
AddTextPrinterParameterized2(0, 2, sMessages[MSG_NO_BERRIES], game->textSpeed, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, sMessages[MSG_NO_BERRIES], game->textSpeed, NULL, 2, 1, 3);
else else
AddTextPrinterParameterized2(0, 2, sMessages[MSG_DROPPED], game->textSpeed, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, sMessages[MSG_DROPPED], game->textSpeed, NULL, 2, 1, 3);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
break; break;
case 1: case 1:
if (IsTextPrinterActive(0)) if (IsTextPrinterActive(0))
@@ -3073,7 +3073,7 @@ static bool32 OpenResultsWindow(struct BerryCrushGame * game, struct BerryCrushG
printCrushingResults(game); printCrushingResults(game);
break; break;
case 5: case 5:
CopyWindowToVram(spriteManager->resultsWindowId, COPYWIN_BOTH); CopyWindowToVram(spriteManager->resultsWindowId, COPYWIN_FULL);
spriteManager->resultsState = 0; spriteManager->resultsState = 0;
return TRUE; return TRUE;
} }
@@ -3166,7 +3166,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId)
yPos += 14; yPos += 14;
score = 0; score = 0;
} }
CopyWindowToVram(tWindowId, COPYWIN_BOTH); CopyWindowToVram(tWindowId, COPYWIN_FULL);
break; break;
case 2: case 2:
if (JOY_NEW(A_BUTTON | B_BUTTON)) if (JOY_NEW(A_BUTTON | B_BUTTON))
@@ -3263,7 +3263,7 @@ static void DrawPlayerNameWindows(struct BerryCrushGame * game)
game->players[i].name game->players[i].name
); );
} }
CopyWindowToVram(game->gfx.nameWindowIds[i], COPYWIN_BOTH); CopyWindowToVram(game->gfx.nameWindowIds[i], COPYWIN_FULL);
} }
CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(0);
} }
+4 -4
View File
@@ -552,11 +552,11 @@ static bool8 RunBerryPouchInit(void)
gMain.state++; gMain.state++;
break; break;
case 17: case 17:
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
gMain.state++; gMain.state++;
break; break;
case 18: case 18:
BeginNormalPaletteFade(0xFFFFFFFF, -2, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -2, 16, 0, RGB_BLACK);
gMain.state++; gMain.state++;
break; break;
default: default:
@@ -570,7 +570,7 @@ static bool8 RunBerryPouchInit(void)
static void AbortBerryPouchLoading(void) static void AbortBerryPouchLoading(void)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK);
CreateTask(Task_AbortBerryPouchLoading_WaitFade, 0); CreateTask(Task_AbortBerryPouchLoading_WaitFade, 0);
SetVBlankCallback(VBlankCB_BerryPouchIdle); SetVBlankCallback(VBlankCB_BerryPouchIdle);
SetMainCallback2(CB2_BerryPouchIdle); SetMainCallback2(CB2_BerryPouchIdle);
@@ -859,7 +859,7 @@ static void BerryPouch_DestroyResources(void)
void BerryPouch_StartFadeToExitCallback(u8 taskId) void BerryPouch_StartFadeToExitCallback(u8 taskId)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_BerryPouchFadeToExitCallback; gTasks[taskId].func = Task_BerryPouchFadeToExitCallback;
} }
+14 -14
View File
@@ -33,7 +33,7 @@ struct BgConfig2
u32 basePalette:4; u32 basePalette:4;
u32 unk_3:18; u32 unk_3:18;
void* tilemap; void *tilemap;
u32 bg_x; u32 bg_x;
u32 bg_y; u32 bg_y;
}; };
@@ -181,7 +181,7 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
offset = destOffset + offset; offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, DMA3_16BIT); cursor = RequestDma3Copy(src, (void *)(offset + BG_VRAM), size, DMA3_16BIT);
if (cursor == -1) if (cursor == -1)
{ {
@@ -418,7 +418,7 @@ void InitBgFromTemplate(const struct BgTemplate *template)
} }
} }
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset) u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset)
{ {
u16 tileOffset; u16 tileOffset;
u8 cursor; u8 cursor;
@@ -473,7 +473,7 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset)
if (IsInvalidBg32(bg) == FALSE) if (IsInvalidBg32(bg) == FALSE)
{ {
paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2); paletteOffset = (sGpuBgConfigs2[bg].basePalette * 0x20) + (destOffset * 2);
cursor = RequestDma3Copy(src, (void*)(paletteOffset + BG_PLTT), size, DMA3_16BIT); cursor = RequestDma3Copy(src, (void *)(paletteOffset + BG_PLTT), size, DMA3_16BIT);
if (cursor == -1) if (cursor == -1)
{ {
@@ -820,7 +820,7 @@ void UnsetBgTilemapBuffer(u8 bg)
} }
} }
void* GetBgTilemapBuffer(u8 bg) void *GetBgTilemapBuffer(u8 bg)
{ {
if (IsInvalidBg32(bg) != FALSE) if (IsInvalidBg32(bg) != FALSE)
return NULL; return NULL;
@@ -866,7 +866,7 @@ void CopyBgTilemapBufferToVram(u8 bg)
} }
} }
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height) void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height)
{ {
u16 destX16; u16 destX16;
u16 destY16; u16 destY16;
@@ -883,7 +883,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
{ {
for (destX16 = destX; destX16 < (destX + width); destX16++) for (destX16 = destX; destX16 < (destX + width); destX16++)
{ {
((u16*)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *(srcCopy)++; ((u16 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * 0x20) + destX16)] = *(srcCopy)++;
} }
} }
break; break;
@@ -896,7 +896,7 @@ void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 wi
{ {
for (destX16 = destX; destX16 < (destX + width); destX16++) for (destX16 = destX; destX16 < (destX + width); destX16++)
{ {
((u8*)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *(srcCopy)++; ((u8 *)sGpuBgConfigs2[bg].tilemap)[((destY16 * mode) + destX16)] = *(srcCopy)++;
} }
} }
break; break;
@@ -944,7 +944,7 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8
{ {
for (j = destX; j < (destX + rectWidth); j++) for (j = destX; j < (destX + rectWidth); j++)
{ {
*(u8*)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8*)(srcPtr) + tileOffset; *(u8 *)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8 *)(srcPtr) + tileOffset;
srcPtr++; srcPtr++;
} }
srcPtr += (srcWidth - rectWidth); srcPtr += (srcWidth - rectWidth);
@@ -969,7 +969,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width,
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
((u16*)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum; ((u16 *)sGpuBgConfigs2[bg].tilemap)[((y16 * 0x20) + x16)] = tileNum;
} }
} }
break; break;
@@ -979,7 +979,7 @@ void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width,
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
((u8*)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum; ((u8 *)sGpuBgConfigs2[bg].tilemap)[((y16 * mode) + x16)] = tileNum;
} }
} }
break; break;
@@ -1014,7 +1014,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); CopyTileMapEntry(&firstTileNum, &((u16 *)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0);
firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF);
} }
} }
@@ -1025,7 +1025,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt
{ {
for (x16 = x; x16 < (x + width); x16++) for (x16 = x; x16 < (x + width); x16++)
{ {
((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; ((u8 *)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum;
firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF);
} }
} }
@@ -1207,7 +1207,7 @@ bool32 IsInvalidBg32(u8 bg)
bool32 IsTileMapOutsideWram(u8 bg) bool32 IsTileMapOutsideWram(u8 bg)
{ {
if (sGpuBgConfigs2[bg].tilemap > (void*)IWRAM_END) if (sGpuBgConfigs2[bg].tilemap > (void *)IWRAM_END)
return TRUE; return TRUE;
if (sGpuBgConfigs2[bg].tilemap == 0x0) if (sGpuBgConfigs2[bg].tilemap == 0x0)
return TRUE; return TRUE;
+6 -6
View File
@@ -79,14 +79,14 @@ static void PrintNewCountOnLinkPlayerCountDisplayWindow(u16 windowId, s32 num)
ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_LEFT_ALIGN, 1); ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_LEFT_ALIGN, 1);
SetStdWindowBorderStyle(windowId, FALSE); SetStdWindowBorderStyle(windowId, FALSE);
StringExpandPlaceholders(gStringVar4, gUnknown_841DF82); StringExpandPlaceholders(gStringVar4, gUnknown_841DF82);
AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 0, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 0, TEXT_SKIP_DRAW, NULL);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
} }
static void DestroyLinkPlayerCountDisplayWindow(u16 windowId) static void DestroyLinkPlayerCountDisplayWindow(u16 windowId)
{ {
ClearStdWindowAndFrame(windowId, FALSE); ClearStdWindowAndFrame(windowId, FALSE);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
} }
static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num) static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num)
@@ -316,7 +316,7 @@ static void Task_LinkupSlave_2(u8 taskId)
gFieldLinkPlayerCount = GetLinkPlayerCount_2(); gFieldLinkPlayerCount = GetLinkPlayerCount_2();
gLocalLinkPlayerId = GetMultiplayerId(); gLocalLinkPlayerId = GetMultiplayerId();
sub_800A900(gFieldLinkPlayerCount); sub_800A900(gFieldLinkPlayerCount);
TrainerCard_GenerateCardForLinkPlayer((void*)gBlockSendBuffer); TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer);
gTasks[taskId].func = Task_Linkup_6a; gTasks[taskId].func = Task_Linkup_6a;
} }
} }
@@ -367,7 +367,7 @@ static void Task_LinkupMaster_6(u8 taskId)
gFieldLinkPlayerCount = GetLinkPlayerCount_2(); gFieldLinkPlayerCount = GetLinkPlayerCount_2();
gLocalLinkPlayerId = GetMultiplayerId(); gLocalLinkPlayerId = GetMultiplayerId();
sub_800A900(gFieldLinkPlayerCount); sub_800A900(gFieldLinkPlayerCount);
TrainerCard_GenerateCardForLinkPlayer((void*)gBlockSendBuffer); TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer);
gTasks[taskId].func = Task_Linkup_6a; gTasks[taskId].func = Task_Linkup_6a;
Link_PrepareCmd0xCCCC_Rfu0xA100(2); Link_PrepareCmd0xCCCC_Rfu0xA100(2);
} }
@@ -723,7 +723,7 @@ static void sub_8081624(void)
void CB2_ReturnFromCableClubBattle(void) void CB2_ReturnFromCableClubBattle(void)
{ {
gBattleTypeFlags &= (u16)~BATTLE_TYPE_LINK_ESTABLISHED; gBattleTypeFlags &= (u16)~BATTLE_TYPE_LINK_IN_BATTLE;
Overworld_ResetMapMusic(); Overworld_ResetMapMusic();
LoadPlayerParty(); LoadPlayerParty();
SavePlayerBag(); SavePlayerBag();
+2 -2
View File
@@ -90,7 +90,7 @@ static void Task_DrawClearSaveDataScreen(u8 taskId)
switch (sClearSaveDataState->unk1) switch (sClearSaveDataState->unk1)
{ {
case 0: case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
break; break;
case 1: case 1:
if (gPaletteFade.active) if (gPaletteFade.active)
@@ -139,7 +139,7 @@ static void Task_HandleYesNoMenu(u8 taskId)
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
FillWindowPixelBuffer(1, PIXEL_FILL(1)); FillWindowPixelBuffer(1, PIXEL_FILL(1));
AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9); AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9);
CopyWindowToVram(1, COPYWIN_BOTH); CopyWindowToVram(1, COPYWIN_FULL);
ClearSaveData(); ClearSaveData();
break; break;
case MENU_NOTHING_CHOSEN: case MENU_NOTHING_CHOSEN:
+8 -8
View File
@@ -761,7 +761,7 @@ static void CreateCreditsWindow(void)
sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate); sCreditsMgr->windowId = AddWindow(&sCreditsWindowTemplate);
FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(sCreditsMgr->windowId, PIXEL_FILL(0));
PutWindowTilemap(sCreditsMgr->windowId); PutWindowTilemap(sCreditsMgr->windowId);
CopyWindowToVram(sCreditsMgr->windowId, COPYWIN_BOTH); CopyWindowToVram(sCreditsMgr->windowId, COPYWIN_FULL);
sCreditsMgr->windowIsActive = TRUE; sCreditsMgr->windowIsActive = TRUE;
} }
@@ -899,7 +899,7 @@ static s32 RollCredits(void)
case CREDITSSCRCMD_THEENDGFX: case CREDITSSCRCMD_THEENDGFX:
sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS; sCreditsMgr->mainseqno = CREDITSSCENE_THEEND_DESTROY_ASSETS;
sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param; sCreditsMgr->whichMon = sCreditsScript[sCreditsMgr->scrcmdidx].param;
BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 4, 0, 16, RGB_BLACK);
break; break;
case CREDITSSCRCMD_WAITBUTTON: case CREDITSSCRCMD_WAITBUTTON:
sCreditsMgr->mainseqno = CREDITSSCENE_WAITBUTTON; sCreditsMgr->mainseqno = CREDITSSCENE_WAITBUTTON;
@@ -1004,7 +1004,7 @@ static s32 RollCredits(void)
case CREDITSSCENE_WAITBUTTON: case CREDITSSCENE_WAITBUTTON:
if (JOY_NEW(A_BUTTON)) if (JOY_NEW(A_BUTTON))
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITE);
sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE; sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE;
return 0; return 0;
} }
@@ -1015,7 +1015,7 @@ static s32 RollCredits(void)
else else
{ {
sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE; sCreditsMgr->mainseqno = CREDITSSCENE_TERMINATE;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_WHITE); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITE);
} }
return 0; return 0;
case CREDITSSCENE_TERMINATE: case CREDITSSCENE_TERMINATE:
@@ -1136,7 +1136,7 @@ static bool32 DoCreditsMonScene(void)
case 2: case 2:
ShowBg(2); ShowBg(2);
ShowBg(0); ShowBg(0);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
sCreditsMgr->creditsMonTimer = 40; sCreditsMgr->creditsMonTimer = 40;
sCreditsMgr->subseqno++; sCreditsMgr->subseqno++;
break; break;
@@ -1200,7 +1200,7 @@ static bool32 DoCreditsMonScene(void)
sCreditsMgr->creditsMonTimer--; sCreditsMgr->creditsMonTimer--;
else else
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
sCreditsMgr->subseqno++; sCreditsMgr->subseqno++;
} }
break; break;
@@ -1251,9 +1251,9 @@ static bool32 DoCopyrightOrTheEndGfxScene(void)
case 2: case 2:
ShowBg(0); ShowBg(0);
if (sCreditsMgr->whichMon != 0) if (sCreditsMgr->whichMon != 0)
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0, RGB_BLACK);
else else
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
sCreditsMgr->subseqno++; sCreditsMgr->subseqno++;
break; break;
case 3: case 3:
+4 -4
View File
@@ -412,7 +412,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y; task->data[10] = gBattle_BG1_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
FillPalette(0, animBg.paletteId * 16, 32); FillPalette(RGB_BLACK, animBg.paletteId * 16, 32);
scanlineParams.dmaDest = &REG_BG1VOFS; scanlineParams.dmaDest = &REG_BG1VOFS;
var0 = WINOUT_WIN01_BG1; var0 = WINOUT_WIN01_BG1;
if (!IsContest()) if (!IsContest())
@@ -422,7 +422,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
{ {
task->data[10] = gBattle_BG2_Y; task->data[10] = gBattle_BG2_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
FillPalette(0, 144, 32); FillPalette(RGB_BLACK, 144, 32);
scanlineParams.dmaDest = &REG_BG2VOFS; scanlineParams.dmaDest = &REG_BG2VOFS;
var0 = WINOUT_WIN01_BG2; var0 = WINOUT_WIN01_BG2;
if (!IsContest()) if (!IsContest())
@@ -542,12 +542,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
{ {
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y; task->data[10] = gBattle_BG1_Y;
FillPalette(0, animBg.paletteId * 16, 32); FillPalette(RGB_BLACK, animBg.paletteId * 16, 32);
} }
else else
{ {
task->data[10] = gBattle_BG2_Y; task->data[10] = gBattle_BG2_Y;
FillPalette(0, 9 * 16, 32); FillPalette(RGB_BLACK, 9 * 16, 32);
} }
sub_80B856C(3); sub_80B856C(3);
++task->data[0]; ++task->data[0];
+172 -172
View File
File diff suppressed because it is too large Load Diff
+124 -124
View File
@@ -15,7 +15,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -35,7 +35,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -57,7 +57,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -239,7 +239,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -264,7 +264,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -758,7 +758,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -794,7 +794,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -867,7 +867,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -901,7 +901,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -974,7 +974,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -992,7 +992,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -1011,7 +1011,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -1029,7 +1029,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -1052,7 +1052,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -1073,7 +1073,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -1093,7 +1093,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -1607,7 +1607,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -1626,7 +1626,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -1646,7 +1646,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -1778,7 +1778,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM11_SUNNY_DAY) | TMHM(TM11_SUNNY_DAY)
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -1797,7 +1797,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM15_HYPER_BEAM) | TMHM(TM15_HYPER_BEAM)
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -2348,7 +2348,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -2372,7 +2372,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -2495,7 +2495,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -2647,7 +2647,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -2680,7 +2680,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -2706,7 +2706,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -2872,7 +2872,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -3021,7 +3021,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -3198,7 +3198,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -3356,7 +3356,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -3560,7 +3560,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -3608,7 +3608,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -3655,7 +3655,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -3676,7 +3676,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -3700,7 +3700,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -3874,7 +3874,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -3903,7 +3903,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -3976,7 +3976,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
@@ -4000,7 +4000,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
@@ -4020,7 +4020,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
@@ -4040,7 +4040,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
@@ -4151,7 +4151,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -4177,7 +4177,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
@@ -4202,7 +4202,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -4229,7 +4229,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -4258,7 +4258,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -4284,7 +4284,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -4373,7 +4373,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -4493,7 +4493,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM40_AERIAL_ACE) | TMHM(TM40_AERIAL_ACE)
@@ -4510,7 +4510,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM40_AERIAL_ACE) | TMHM(TM40_AERIAL_ACE)
@@ -4528,7 +4528,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM40_AERIAL_ACE) | TMHM(TM40_AERIAL_ACE)
@@ -4547,7 +4547,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -4577,7 +4577,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -4598,7 +4598,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -4615,7 +4615,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -4855,7 +4855,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -4877,7 +4877,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -4901,7 +4901,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -4982,7 +4982,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -5017,7 +5017,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -5455,7 +5455,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM12_TAUNT) | TMHM(TM12_TAUNT)
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -5481,7 +5481,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM15_HYPER_BEAM) | TMHM(TM15_HYPER_BEAM)
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -5568,7 +5568,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -5593,7 +5593,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -5731,7 +5731,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -5766,7 +5766,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -5826,7 +5826,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -6003,7 +6003,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -6039,7 +6039,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6114,7 +6114,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -6140,7 +6140,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -6169,7 +6169,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -6450,7 +6450,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6473,7 +6473,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6499,7 +6499,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM42_FACADE) | TMHM(TM42_FACADE)
@@ -6522,7 +6522,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -6552,7 +6552,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -6575,7 +6575,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6595,7 +6595,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6621,7 +6621,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6646,7 +6646,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6666,7 +6666,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6688,7 +6688,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -6745,7 +6745,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -6767,7 +6767,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
@@ -6866,7 +6866,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -6888,7 +6888,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -6960,7 +6960,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -6987,7 +6987,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -7014,7 +7014,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -7048,7 +7048,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -7073,7 +7073,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -7383,7 +7383,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -7404,7 +7404,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM28_DIG) | TMHM(TM28_DIG)
@@ -7428,7 +7428,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -7660,7 +7660,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM37_SANDSTORM) | TMHM(TM37_SANDSTORM)
@@ -7680,7 +7680,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM37_SANDSTORM) | TMHM(TM37_SANDSTORM)
@@ -7769,7 +7769,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM29_PSYCHIC) | TMHM(TM29_PSYCHIC)
@@ -7906,7 +7906,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM31_BRICK_BREAK) | TMHM(TM31_BRICK_BREAK)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -7982,7 +7982,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM40_AERIAL_ACE) | TMHM(TM40_AERIAL_ACE)
@@ -8005,7 +8005,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -8085,7 +8085,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -8108,7 +8108,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -8140,7 +8140,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -8174,7 +8174,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -8204,7 +8204,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -8229,7 +8229,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -8253,7 +8253,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -8279,7 +8279,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -8302,7 +8302,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -8332,7 +8332,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM30_SHADOW_BALL) | TMHM(TM30_SHADOW_BALL)
@@ -8538,7 +8538,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -8649,7 +8649,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -8683,7 +8683,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -8710,7 +8710,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -8736,7 +8736,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
@@ -8759,7 +8759,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
| TMHM(TM36_SLUDGE_BOMB) | TMHM(TM36_SLUDGE_BOMB)
@@ -8777,7 +8777,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM19_GIGA_DRAIN) | TMHM(TM19_GIGA_DRAIN)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
| TMHM(TM32_DOUBLE_TEAM) | TMHM(TM32_DOUBLE_TEAM)
@@ -9160,7 +9160,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -9196,7 +9196,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM17_PROTECT) | TMHM(TM17_PROTECT)
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM23_IRON_TAIL) | TMHM(TM23_IRON_TAIL)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
@@ -9234,7 +9234,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -9272,7 +9272,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM26_EARTHQUAKE) | TMHM(TM26_EARTHQUAKE)
@@ -9337,7 +9337,7 @@ static const u32 sTMHMLearnsets[][2] =
| TMHM(TM18_RAIN_DANCE) | TMHM(TM18_RAIN_DANCE)
| TMHM(TM20_SAFEGUARD) | TMHM(TM20_SAFEGUARD)
| TMHM(TM21_FRUSTRATION) | TMHM(TM21_FRUSTRATION)
| TMHM(TM22_SOLARBEAM) | TMHM(TM22_SOLAR_BEAM)
| TMHM(TM24_THUNDERBOLT) | TMHM(TM24_THUNDERBOLT)
| TMHM(TM25_THUNDER) | TMHM(TM25_THUNDER)
| TMHM(TM27_RETURN) | TMHM(TM27_RETURN)
+13 -13
View File
@@ -67,7 +67,7 @@ static void SpriteCB_Egg_3(struct Sprite* sprite);
static void SpriteCB_Egg_4(struct Sprite* sprite); static void SpriteCB_Egg_4(struct Sprite* sprite);
static void SpriteCB_Egg_5(struct Sprite* sprite); static void SpriteCB_Egg_5(struct Sprite* sprite);
static void SpriteCB_EggShard(struct Sprite* sprite); static void SpriteCB_EggShard(struct Sprite* sprite);
static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed); static void EggHatchPrintMessage(u8 windowId, u8 *string, u8 x, u8 y, u8 speed);
static void CreateRandomEggShardSprite(void); static void CreateRandomEggShardSprite(void);
static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex); static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex);
@@ -356,7 +356,7 @@ static u8 *DayCare_GetMonNickname(struct Pokemon *mon, u8 *dest)
u8 nickname[POKEMON_NAME_LENGTH * 2]; u8 nickname[POKEMON_NAME_LENGTH * 2];
GetMonData(mon, MON_DATA_NICKNAME, nickname); GetMonData(mon, MON_DATA_NICKNAME, nickname);
return StringCopy10(dest, nickname); return StringCopy_Nickname(dest, nickname);
} }
static u8 *DayCare_GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest) static u8 *DayCare_GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest)
@@ -364,7 +364,7 @@ static u8 *DayCare_GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest)
u8 nickname[POKEMON_NAME_LENGTH * 2]; u8 nickname[POKEMON_NAME_LENGTH * 2];
GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); GetBoxMonData(mon, MON_DATA_NICKNAME, nickname);
return StringCopy10(dest, nickname); return StringCopy_Nickname(dest, nickname);
} }
u8 CountPokemonInDaycare(struct DayCare *daycare) u8 CountPokemonInDaycare(struct DayCare *daycare)
@@ -1542,7 +1542,7 @@ void ShowDaycareLevelMenu(void)
menuTemplate.windowId = windowId; menuTemplate.windowId = windowId;
listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0); listMenuTaskId = ListMenuInit(&menuTemplate, 0, 0);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3); daycareMenuTaskId = CreateTask(Task_HandleDaycareLevelMenuInput, 3);
gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId; gTasks[daycareMenuTaskId].tMenuListTaskId = listMenuTaskId;
@@ -1710,7 +1710,7 @@ bool8 DaycareMonReceivedMail(void)
extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const struct CompressedSpriteSheet gMonFrontPicTable[];
static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc) static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16 *speciesLoc)
{ {
u8 r4 = 0; u8 r4 = 0;
u8 spriteID = 0; // r7 u8 spriteID = 0; // r7
@@ -1758,7 +1758,7 @@ void EggHatch(void)
{ {
ScriptContext2_Enable(); ScriptContext2_Enable();
CreateTask(Task_EggHatch, 10); CreateTask(Task_EggHatch, 10);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0);
HelpSystem_Disable(); HelpSystem_Disable();
} }
@@ -1895,7 +1895,7 @@ static void CB2_EggHatch_1(void)
switch (sEggHatchData->CB2_state) switch (sEggHatchData->CB2_state)
{ {
case 0: case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK);
sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5); sEggHatchData->eggSpriteID = CreateSprite(&sSpriteTemplate_EggHatch, 120, 75, 5);
ShowBg(0); ShowBg(0);
ShowBg(1); ShowBg(1);
@@ -1920,7 +1920,7 @@ static void CB2_EggHatch_1(void)
case 3: case 3:
if (gSprites[sEggHatchData->eggSpriteID].callback == SpriteCallbackDummy) if (gSprites[sEggHatchData->eggSpriteID].callback == SpriteCallbackDummy)
{ {
PlayCry1(sEggHatchData->species, 0); PlayCry_Normal(sEggHatchData->species, 0);
sEggHatchData->CB2_state++; sEggHatchData->CB2_state++;
} }
break; break;
@@ -1937,7 +1937,7 @@ static void CB2_EggHatch_1(void)
PlayFanfare(MUS_EVOLVED); PlayFanfare(MUS_EVOLVED);
sEggHatchData->CB2_state++; sEggHatchData->CB2_state++;
PutWindowTilemap(sEggHatchData->windowId); PutWindowTilemap(sEggHatchData->windowId);
CopyWindowToVram(sEggHatchData->windowId, COPYWIN_BOTH); CopyWindowToVram(sEggHatchData->windowId, COPYWIN_FULL);
break; break;
case 6: case 6:
if (IsFanfareTaskInactive()) if (IsFanfareTaskInactive())
@@ -1977,7 +1977,7 @@ static void CB2_EggHatch_1(void)
} }
break; break;
case 11: case 11:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
sEggHatchData->CB2_state++; sEggHatchData->CB2_state++;
break; break;
case 12: case 12:
@@ -2087,7 +2087,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite)
{ {
s16 i; s16 i;
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 0x10, 0xFFFF); BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 0x10, 0xFFFF);
if (sprite->data[0] < 4u) if (sprite->data[0] < 4u)
{ {
for (i = 0; i <= 3; i++) for (i = 0; i <= 3; i++)
@@ -2111,7 +2111,7 @@ static void SpriteCB_Egg_5(struct Sprite* sprite)
StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1);
} }
if (sprite->data[0] == 8) if (sprite->data[0] == 8)
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, 0xFFFF); BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, 0xFFFF);
if (sprite->data[0] <= 9) if (sprite->data[0] <= 9)
gSprites[sEggHatchData->pokeSpriteID].y -= 1; gSprites[sEggHatchData->pokeSpriteID].y -= 1;
if (sprite->data[0] > 40) if (sprite->data[0] > 40)
@@ -2153,7 +2153,7 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8
StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex); StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex);
} }
static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) static void EggHatchPrintMessage(u8 windowId, u8 *string, u8 x, u8 y, u8 speed)
{ {
FillWindowPixelBuffer(windowId, 0xFF); FillWindowPixelBuffer(windowId, 0xFF);
sEggHatchData->textColor[0] = 0; sEggHatchData->textColor[0] = 0;
+7 -7
View File
@@ -45,7 +45,7 @@ void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src)
struct SpritePalette dest; struct SpritePalette dest;
LZ77UnCompWram(src->data, gDecompressionBuffer); LZ77UnCompWram(src->data, gDecompressionBuffer);
dest.data = (void*) gDecompressionBuffer; dest.data = (void *) gDecompressionBuffer;
dest.tag = src->tag; dest.tag = src->tag;
LoadSpritePalette(&dest); LoadSpritePalette(&dest);
} }
@@ -60,7 +60,7 @@ void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePale
LoadSpritePalette(&dest); LoadSpritePalette(&dest);
} }
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species) void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species)
{ {
if (species > NUM_SPECIES) if (species > NUM_SPECIES)
LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); LZ77UnCompWram(gMonFrontPicTable[0].data, buffer);
@@ -263,9 +263,9 @@ static void sub_800EDDC(s32 object_size, s32 object_count, u8 *src_tiles, u8 *de
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src) bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src)
{ {
struct SpriteSheet dest; struct SpriteSheet dest;
void* buffer; void *buffer;
buffer = AllocZeroed(*((u32*)src->data) >> 8); buffer = AllocZeroed(*((u32 *)src->data) >> 8);
if (!buffer) if (!buffer)
return TRUE; return TRUE;
LZ77UnCompWram(src->data, buffer); LZ77UnCompWram(src->data, buffer);
@@ -280,9 +280,9 @@ bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src) bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src)
{ {
struct SpritePalette dest; struct SpritePalette dest;
void* buffer; void *buffer;
buffer = AllocZeroed(*((u32*)src->data) >> 8); buffer = AllocZeroed(*((u32 *)src->data) >> 8);
if (!buffer) if (!buffer)
return TRUE; return TRUE;
LZ77UnCompWram(src->data, buffer); LZ77UnCompWram(src->data, buffer);
@@ -305,7 +305,7 @@ u32 GetDecompressedDataSize(const u8 *ptr)
return ptr32[0]; return ptr32[0];
} }
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species) void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *buffer, s32 species)
{ {
if (species > NUM_SPECIES) if (species > NUM_SPECIES)
LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); LZ77UnCompWram(gMonFrontPicTable[0].data, buffer);
+2 -2
View File
@@ -138,7 +138,7 @@ static void Task_DiplomaInit(u8 taskId)
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
break; break;
case 7: case 7:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
break; break;
case 8: case 8:
SetVBlankCallback(VCBC_DiplomaOam); SetVBlankCallback(VCBC_DiplomaOam);
@@ -167,7 +167,7 @@ static void Task_WaitForExit(u8 taskId)
case 1: case 1:
if (JOY_NEW(A_BUTTON)) if (JOY_NEW(A_BUTTON))
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
gDiploma->state++; gDiploma->state++;
} }
break; break;
+10 -10
View File
@@ -332,8 +332,8 @@ static void sub_8150A84(u8 taskId)
gUnknown_203F3E0->unk0C++; gUnknown_203F3E0->unk0C++;
break; break;
case 6: case 6:
BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
SetVBlankCallback(sub_8152034); SetVBlankCallback(sub_8152034);
gUnknown_203F3E0->unk0C++; gUnknown_203F3E0->unk0C++;
break; break;
@@ -834,7 +834,7 @@ static void sub_81514F0(void)
switch (gUnknown_203F3E0->unk10) switch (gUnknown_203F3E0->unk10)
{ {
case 0: case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
gUnknown_203F3E0->unk10++; gUnknown_203F3E0->unk10++;
break; break;
case 1: case 1:
@@ -871,7 +871,7 @@ static void sub_815159C(void)
{ {
case 0: case 0:
sub_81549D4(9); sub_81549D4(9);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
gUnknown_203F3E0->unk10++; gUnknown_203F3E0->unk10++;
break; break;
case 1: case 1:
@@ -902,8 +902,8 @@ static void sub_815159C(void)
gUnknown_203F3E0->unk10++; gUnknown_203F3E0->unk10++;
break; break;
case 5: case 5:
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
gUnknown_203F3E0->unk10++; gUnknown_203F3E0->unk10++;
break; break;
case 6: case 6:
@@ -2341,7 +2341,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId)
case 0: case 0:
data[1] = AddWindow(&sUnknown_84755E0); data[1] = AddWindow(&sUnknown_84755E0);
sub_81538D0(data[1]); sub_81538D0(data[1]);
CopyWindowToVram(data[1], COPYWIN_BOTH); CopyWindowToVram(data[1], COPYWIN_FULL);
data[0]++; data[0]++;
break; break;
case 1: case 1:
@@ -2379,14 +2379,14 @@ static void sub_81538D0(u8 windowId)
TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0); TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0);
DrawTextBorderOuter(windowId, 0x21D, 0xD); DrawTextBorderOuter(windowId, 0x21D, 0xD);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
AddTextPrinterParameterized(windowId, 2, sUnknown_84755E8[0], 1, 1, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(windowId, 2, sUnknown_84755E8[0], 1, 1, TEXT_SKIP_DRAW, NULL);
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
{ {
ConvertIntToDecimalStringN(strbuf, results[i], STR_CONV_MODE_LEFT_ALIGN, sUnknown_84755F8[i]); ConvertIntToDecimalStringN(strbuf, results[i], STR_CONV_MODE_LEFT_ALIGN, sUnknown_84755F8[i]);
numWidth = GetStringWidth(2, strbuf, -1); numWidth = GetStringWidth(2, strbuf, -1);
AddTextPrinterParameterized(windowId, 2, sUnknown_84755E8[i + 1], 1, sUnknown_84755FC[i][0], TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(windowId, 2, sUnknown_84755E8[i + 1], 1, sUnknown_84755FC[i][0], TEXT_SKIP_DRAW, NULL);
x = 224 - numWidth; x = 224 - numWidth;
AddTextPrinterParameterized(windowId, 2, strbuf, x, sUnknown_8475602[i][0], TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(windowId, 2, strbuf, x, sUnknown_8475602[i][0], TEXT_SKIP_DRAW, NULL);
} }
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
} }
+3 -3
View File
@@ -1370,7 +1370,7 @@ static void sub_81556E0(void)
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_Yes, 8, 2, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_No, 8, 16, -1, NULL);
AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, y == 1 ? 2 : 16, -1, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], 2, gText_SelectorArrow2, 0, y == 1 ? 2 : 16, -1, NULL);
CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_BOTH); CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_FULL);
// Increment state only if A or B button have been pressed. // Increment state only if A or B button have been pressed.
if (JOY_NEW(A_BUTTON)) if (JOY_NEW(A_BUTTON))
{ {
@@ -1425,7 +1425,7 @@ static void sub_8155A78(void)
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 1: case 1:
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
case 2: case 2:
@@ -1499,7 +1499,7 @@ static void sub_8155C80(void)
break; break;
case 1: case 1:
FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1));
AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_SomeoneDroppedOut, 0, 6, TEXT_SPEED_FF, NULL); AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], 2, gText_SomeoneDroppedOut, 0, 6, TEXT_SKIP_DRAW, NULL);
CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX);
gUnknown_203F440->state++; gUnknown_203F440->state++;
break; break;
+3 -3
View File
@@ -162,15 +162,15 @@ static void Task_RunEasyChat(u8 taskId)
{ {
case 0: case 0:
SetVBlankCallback(VBlankCallback_EasyChatScreen); SetVBlankCallback(VBlankCallback_EasyChatScreen);
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK);
data[EZCHAT_TASK_STATE]++; data[EZCHAT_TASK_STATE]++;
break; break;
case 1: case 1:
action = EasyChatScreen_HandleJoypad(); action = EasyChatScreen_HandleJoypad();
if (action == 23) if (action == 23)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK);
data[EZCHAT_TASK_STATE] = 3; data[EZCHAT_TASK_STATE] = 3;
} }
else if (action != 0) else if (action != 0)
+11 -11
View File
@@ -1321,9 +1321,9 @@ static void PrintTitleText(void)
xOffset = (128 - GetStringWidth(1, titleText, 0)) / 2u; xOffset = (128 - GetStringWidth(1, titleText, 0)) / 2u;
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SKIP_DRAW, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
} }
static void EC_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) static void EC_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16))
@@ -1374,12 +1374,12 @@ static void PrintECInterfaceTextById(u8 direction)
FillWindowPixelBuffer(1, PIXEL_FILL(1)); FillWindowPixelBuffer(1, PIXEL_FILL(1));
if (text1) if (text1)
EC_AddTextPrinterParameterized(1, 1, text1, 0, 0, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(1, 1, text1, 0, 0, TEXT_SKIP_DRAW, NULL);
if (text2) if (text2)
EC_AddTextPrinterParameterized(1, 1, text2, 0, 16, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(1, 1, text2, 0, 16, TEXT_SKIP_DRAW, NULL);
CopyWindowToVram(1, COPYWIN_BOTH); CopyWindowToVram(1, COPYWIN_FULL);
} }
static void EC_CreateYesNoMenuWithInitialCursorPos(u8 initialCursorPos) static void EC_CreateYesNoMenuWithInitialCursorPos(u8 initialCursorPos)
@@ -1435,7 +1435,7 @@ static void PrintECFields(void)
ecWord++; ecWord++;
for (k = 0; k < 7; k++) for (k = 0; k < 7; k++)
{ {
*str++ = CHAR_EXTRA_EMOJI; *str++ = CHAR_EXTRA_SYMBOL;
*str++ = 9; *str++ = 9;
} }
@@ -1451,10 +1451,10 @@ static void PrintECFields(void)
} }
*str = EOS; *str = EOS;
EC_AddTextPrinterParameterized(sEasyChatGraphicsResources->windowId, 1, sEasyChatGraphicsResources->ecPrintBuffer, 0, i * 16, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(sEasyChatGraphicsResources->windowId, 1, sEasyChatGraphicsResources->ecPrintBuffer, 0, i * 16, TEXT_SKIP_DRAW, NULL);
} }
CopyWindowToVram(sEasyChatGraphicsResources->windowId, COPYWIN_BOTH); CopyWindowToVram(sEasyChatGraphicsResources->windowId, COPYWIN_FULL);
} }
static void DrawECFrameInTilemapBuffer(u16 *tilemap) static void DrawECFrameInTilemapBuffer(u16 *tilemap)
@@ -1566,7 +1566,7 @@ static void PrintECGroupsMenu(void)
return; return;
} }
EC_AddTextPrinterParameterized(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SKIP_DRAW, NULL);
} }
y += 16; y += 16;
@@ -1578,7 +1578,7 @@ static void PrintEasyChatKeyboardText(void)
u32 i; u32 i;
for (i = 0; i < NELEMS(sEasyChatKeyboardText); i++) for (i = 0; i < NELEMS(sEasyChatKeyboardText); i++)
EC_AddTextPrinterParameterized(2, 1, sEasyChatKeyboardText[i], 10, 96 + i * 16, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(2, 1, sEasyChatKeyboardText[i], 10, 96 + i * 16, TEXT_SKIP_DRAW, NULL);
} }
static void PrintECWordsMenu(void) static void PrintECWordsMenu(void)
@@ -1652,7 +1652,7 @@ static void PrintECRowsWin2(u8 row, u8 remrow)
CopyEasyChatWordPadded(sEasyChatGraphicsResources->ecPaddedWordBuffer, easyChatWord, 0); CopyEasyChatWordPadded(sEasyChatGraphicsResources->ecPaddedWordBuffer, easyChatWord, 0);
EC_AddTextPrinterParameterized(2, 1, sEasyChatGraphicsResources->ecPaddedWordBuffer, (j * 13 + 3) * 8, y_, TEXT_SPEED_FF, NULL); EC_AddTextPrinterParameterized(2, 1, sEasyChatGraphicsResources->ecPaddedWordBuffer, (j * 13 + 3) * 8, y_, TEXT_SKIP_DRAW, NULL);
} }
} }
y += 16; y += 16;
+27 -27
View File
@@ -32,32 +32,32 @@ static bool8 IsMetatileDirectionallyImpassable(struct ObjectEvent *, s16, s16, u
static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *, s16, s16); static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *, s16, s16);
static void CalcWhetherObjectIsOffscreen(struct ObjectEvent *, struct Sprite *); static void CalcWhetherObjectIsOffscreen(struct ObjectEvent *, struct Sprite *);
static void UpdateObjEventSpriteVisibility(struct ObjectEvent *, struct Sprite *); static void UpdateObjEventSpriteVisibility(struct ObjectEvent *, struct Sprite *);
static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent*); static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent *);
static void GetGroundEffectFlags_Reflection(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Reflection(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_TallGrassOnSpawn(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_TallGrassOnSpawn(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_LongGrassOnSpawn(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_LongGrassOnSpawn(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_SandHeap(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_SandHeap(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_ShallowFlowingWater(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_ShallowFlowingWater(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_ShortGrass(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_ShortGrass(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_HotSprings(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_HotSprings(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_TallGrassOnBeginStep(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_TallGrassOnBeginStep(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_LongGrassOnBeginStep(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_LongGrassOnBeginStep(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_Tracks(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Tracks(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_Puddle(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Puddle(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_Ripple(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Ripple(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_Seaweed(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_Seaweed(struct ObjectEvent *, u32 *);
static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent*, u32*); static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent *, u32 *);
static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent*); static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent *);
static u8 GetReflectionTypeByMetatileBehavior(u32); static u8 GetReflectionTypeByMetatileBehavior(u32);
static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z); static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z);
static void ObjectEventUpdateSubpriority(struct ObjectEvent*, struct Sprite*); static void ObjectEventUpdateSubpriority(struct ObjectEvent *, struct Sprite *);
static void DoTracksGroundEffect_None(struct ObjectEvent*, struct Sprite*, u8); static void DoTracksGroundEffect_None(struct ObjectEvent *, struct Sprite *, u8);
static void DoTracksGroundEffect_Footprints(struct ObjectEvent*, struct Sprite*, u8); static void DoTracksGroundEffect_Footprints(struct ObjectEvent *, struct Sprite *, u8);
static void DoTracksGroundEffect_BikeTireTracks(struct ObjectEvent*, struct Sprite*, u8); static void DoTracksGroundEffect_BikeTireTracks(struct ObjectEvent *, struct Sprite *, u8);
static void DoRippleFieldEffect(struct ObjectEvent*, struct Sprite*); static void DoRippleFieldEffect(struct ObjectEvent *, struct Sprite *);
static void DoGroundEffects_OnSpawn(struct ObjectEvent*, struct Sprite*); static void DoGroundEffects_OnSpawn(struct ObjectEvent *, struct Sprite *);
static void DoGroundEffects_OnBeginStep(struct ObjectEvent*, struct Sprite*); static void DoGroundEffects_OnBeginStep(struct ObjectEvent *, struct Sprite *);
static void DoGroundEffects_OnFinishStep(struct ObjectEvent*, struct Sprite*); static void DoGroundEffects_OnFinishStep(struct ObjectEvent *, struct Sprite *);
static void CreateReflectionEffectSprites(void); static void CreateReflectionEffectSprites(void);
static u8 GetObjectEventIdByLocalId(u8); static u8 GetObjectEventIdByLocalId(u8);
static u8 GetObjectEventIdByLocalIdAndMapInternal(u8, u8, u8); static u8 GetObjectEventIdByLocalIdAndMapInternal(u8, u8, u8);
@@ -2081,9 +2081,9 @@ void ShowOrHideObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 stat
void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup) void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup)
{ {
*(u8*)(localId) = objectEvent->localId; *(u8 *)(localId) = objectEvent->localId;
*(u8*)(mapNum) = objectEvent->mapNum; *(u8 *)(mapNum) = objectEvent->mapNum;
*(u8*)(mapGroup) = objectEvent->mapGroup; *(u8 *)(mapGroup) = objectEvent->mapGroup;
} }
void EnableObjectGroundEffectsByXY(s16 x, s16 y) void EnableObjectGroundEffectsByXY(s16 x, s16 y)
+6 -6
View File
@@ -259,7 +259,7 @@ void LoadEvoSparkleSpriteAndPal(void)
LoadSpritePalettes(sSpritePalette_EvolutionSparkles); LoadSpritePalettes(sSpritePalette_EvolutionSparkles);
} }
u8 LaunchTask_PreEvoSparklesSet1(u16 a0) u8 EvolutionSparkles_SpiralUpward(u16 a0)
{ {
u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet1Init, 0); u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet1Init, 0);
gTasks[taskId].data[1] = a0; gTasks[taskId].data[1] = a0;
@@ -302,7 +302,7 @@ static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskId)
DestroyTask(taskId); DestroyTask(taskId);
} }
u8 LaunchTask_PreEvoSparklesSet2(void) u8 EvolutionSparkles_ArcDown(void)
{ {
u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet2Init, 0); u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet2Init, 0);
return taskId; return taskId;
@@ -339,7 +339,7 @@ static void EvoTask_PreEvoSparkleSet2Teardown(u8 taskId)
DestroyTask(taskId); DestroyTask(taskId);
} }
u8 LaunchTask_PostEvoSparklesSet1(void) u8 EvolutionSparkles_CircleInward(void)
{ {
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet1Init, 0); u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet1Init, 0);
return taskId; return taskId;
@@ -385,7 +385,7 @@ static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId)
DestroyTask(taskId); DestroyTask(taskId);
} }
u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species) u8 EvolutionSparkles_SprayAndFlash(u16 species)
{ {
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2Init, 0); u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2Init, 0);
gTasks[taskId].data[2] = species; gTasks[taskId].data[2] = species;
@@ -436,7 +436,7 @@ static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId)
DestroyTask(taskId); DestroyTask(taskId);
} }
u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species) u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species)
{ {
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2TradeInit, 0); u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2TradeInit, 0);
gTasks[taskId].data[2] = species; gTasks[taskId].data[2] = species;
@@ -493,7 +493,7 @@ static void SpriteCallbackDummy_MonSprites(struct Sprite * sprite)
#define tDirection data[5] #define tDirection data[5]
#define tSpeed data[6] #define tSpeed data[6]
u8 LaunchTask_PrePostEvoMonSprites(u8 preEvoSpriteId, u8 postEvoSpriteId) u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId)
{ {
u16 i; u16 i;
u8 taskId; u8 taskId;
+466 -314
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -695,7 +695,7 @@ static void MainCB2_LoadFameChecker(void)
LoadUISpriteSheetsAndPalettes(); LoadUISpriteSheetsAndPalettes();
CreateAllFlavorTextIcons(FAMECHECKER_OAK); CreateAllFlavorTextIcons(FAMECHECKER_OAK);
WipeMsgBoxAndTransfer(); WipeMsgBoxAndTransfer();
BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); BeginNormalPaletteFade(PALETTES_ALL,0, 16, 0, 0);
gMain.state++; gMain.state++;
break; break;
case 7: case 7:
@@ -994,7 +994,7 @@ static void Setup_DrawMsgAndListBoxes(void)
static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId) static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId)
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
} }
static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode) static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode)
@@ -1010,7 +1010,7 @@ static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode)
static void Task_StartToCloseFameChecker(u8 taskId) static void Task_StartToCloseFameChecker(u8 taskId)
{ {
PlaySE(SE_M_SWIFT); PlaySE(SE_M_SWIFT);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0);
gTasks[taskId].func = Task_DestroyAssetsAndCloseFameChecker; gTasks[taskId].func = Task_DestroyAssetsAndCloseFameChecker;
} }
@@ -1578,7 +1578,7 @@ static u8 FC_PopulateListMenu(void)
static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId)
{ {
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
} }
static void FC_CreateScrollIndicatorArrowPair(void) static void FC_CreateScrollIndicatorArrowPair(void)
+2 -2
View File
@@ -2605,7 +2605,7 @@ static void ShowMonEffect_Outdoors_1(struct Task * task)
{ {
task->data[11] = GetGpuReg(REG_OFFSET_WININ); task->data[11] = GetGpuReg(REG_OFFSET_WININ);
task->data[12] = GetGpuReg(REG_OFFSET_WINOUT); task->data[12] = GetGpuReg(REG_OFFSET_WINOUT);
StoreWordInTwoHalfwords((u16*)&task->data[13], (u32)gMain.vblankCallback); StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback);
task->data[1] = WIN_RANGE(0xF0, 0xF1); task->data[1] = WIN_RANGE(0xF0, 0xF1);
task->data[2] = WIN_RANGE(0x50, 0x51); task->data[2] = WIN_RANGE(0x50, 0x51);
task->data[3] = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR; task->data[3] = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
@@ -2939,7 +2939,7 @@ static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite * sprite)
} }
else else
{ {
PlayCry1(sprite->data[0], 0); PlayCry_Normal(sprite->data[0], 0);
} }
} }
} }
+1 -1
View File
@@ -396,7 +396,7 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId)
Menu_LoadStdPalAt(0xF0); Menu_LoadStdPalAt(0xF0);
FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
PutWindowTilemap(windowId); PutWindowTilemap(windowId);
CopyWindowToVram(windowId, COPYWIN_BOTH); CopyWindowToVram(windowId, COPYWIN_FULL);
loc = GetHealLocation(1); loc = GetHealLocation(1);
if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group
&& gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map && gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map
+2 -2
View File
@@ -1103,7 +1103,7 @@ void DrawElevatorCurrentFloorWindow(void)
strwidth = GetStringWidth(2, floorname, 0); strwidth = GetStringWidth(2, floorname, 0);
AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL); AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL);
PutWindowTilemap(sElevatorCurrentFloorWindowId); PutWindowTilemap(sElevatorCurrentFloorWindowId);
CopyWindowToVram(sElevatorCurrentFloorWindowId, COPYWIN_BOTH); CopyWindowToVram(sElevatorCurrentFloorWindowId, COPYWIN_FULL);
} }
} }
@@ -1364,7 +1364,7 @@ static void Task_CreateScriptListMenu(u8 taskId)
Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId); Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId);
task->data[14] = ListMenuInit(&sFieldSpecialsListMenuTemplate, task->data[7], task->data[8]); task->data[14] = ListMenuInit(&sFieldSpecialsListMenuTemplate, task->data[7], task->data[8]);
PutWindowTilemap(task->data[13]); PutWindowTilemap(task->data[13]);
CopyWindowToVram(task->data[13], COPYWIN_BOTH); CopyWindowToVram(task->data[13], COPYWIN_FULL);
gTasks[taskId].func = Task_ListMenuHandleInput; gTasks[taskId].func = Task_ListMenuHandleInput;
} }
+2 -2
View File
@@ -763,7 +763,7 @@ void FadeScreen(u8 mode, s8 delay)
if (useWeatherPal) if (useWeatherPal)
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_SIZE); CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_SIZE);
BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor); BeginNormalPaletteFade(PALETTES_ALL, delay, 0, 16, fadeColor);
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT; gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
} }
else else
@@ -772,7 +772,7 @@ void FadeScreen(u8 mode, s8 delay)
if (useWeatherPal) if (useWeatherPal)
gWeatherPtr->fadeScreenCounter = 0; gWeatherPtr->fadeScreenCounter = 0;
else else
BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor); BeginNormalPaletteFade(PALETTES_ALL, delay, 16, 0, fadeColor);
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN; gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN;
gWeatherPtr->fadeInActive = 1; gWeatherPtr->fadeInActive = 1;
+3 -3
View File
@@ -889,17 +889,17 @@ static void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u1
if (tileset->isSecondary == FALSE) if (tileset->isSecondary == FALSE)
{ {
LoadPalette(&black, destOffset, 2); LoadPalette(&black, destOffset, 2);
LoadPalette(((u16*)tileset->palettes) + 1, destOffset + 1, size - 2); LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - 2);
Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1); Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1);
} }
else if (tileset->isSecondary == TRUE) else if (tileset->isSecondary == TRUE)
{ {
LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); LoadPalette(((u16 *)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size);
Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1);
} }
else else
{ {
LoadCompressedPalette((u32*)tileset->palettes, destOffset, size); LoadCompressedPalette((u32 *)tileset->palettes, destOffset, size);
Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1);
} }
} }
+4 -4
View File
@@ -429,21 +429,21 @@ static void Task_MapPreviewScreen_0(u8 taskId)
SetVBlankCallback(NULL); SetVBlankCallback(NULL);
MapPreview_InitBgs(); MapPreview_InitBgs();
MapPreview_LoadGfx(data[3]); MapPreview_LoadGfx(data[3]);
BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK); BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK);
data[0]++; data[0]++;
break; break;
case 1: case 1:
if (!MapPreview_IsGfxLoadFinished()) if (!MapPreview_IsGfxLoadFinished())
{ {
data[4] = MapPreview_CreateMapNameWindow(data[3]); data[4] = MapPreview_CreateMapNameWindow(data[3]);
CopyWindowToVram(data[4], COPYWIN_BOTH); CopyWindowToVram(data[4], COPYWIN_FULL);
data[0]++; data[0]++;
} }
break; break;
case 2: case 2:
if (!IsDma3ManagerBusyWithBgCopy()) if (!IsDma3ManagerBusyWithBgCopy())
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK);
SetVBlankCallback((IntrCallback)GetWordTaskArg(taskId, 5)); SetVBlankCallback((IntrCallback)GetWordTaskArg(taskId, 5));
data[0]++; data[0]++;
} }
@@ -459,7 +459,7 @@ static void Task_MapPreviewScreen_0(u8 taskId)
data[1]++; data[1]++;
if (data[1] > data[2] || JOY_HELD(B_BUTTON)) if (data[1] > data[2] || JOY_HELD(B_BUTTON))
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_WHITE); BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_WHITE);
data[0]++; data[0]++;
} }
break; break;
+1 -1
View File
@@ -1418,7 +1418,7 @@ static void sub_80B6FC4(u8 taskId)
break; break;
case 3: case 3:
InitBattleAnimBg(2); InitBattleAnimBg(2);
FillPalette(0, 0x90, 0x20); FillPalette(RGB_BLACK, 0x90, 0x20);
SetAnimBgAttribute(2, BG_ANIM_CHAR_BASE_BLOCK, 0); SetAnimBgAttribute(2, BG_ANIM_CHAR_BASE_BLOCK, 0);
task->data[1] = 12; task->data[1] = 12;
break; break;
+1 -1
View File
@@ -1033,7 +1033,7 @@ const u32 gBattleAnimBgTilemap_Ghost[] = INCBIN_U32("graphics/battle_anims/backg
const u32 gBattleAnimSpritePal_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz"); const u32 gBattleAnimSpritePal_WhipHit[] = INCBIN_U32("graphics/battle_anims/sprites/whip_hit.gbapal.lz");
const u32 gBattleAnimBgPalette_Solarbeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/solarbeam.gbapal.lz"); const u32 gBattleAnimBgPalette_SolarBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/solarbeam.gbapal.lz");
const u32 gFile_graphics_unknown_unknown_E7CFB0_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E7CFB0.bin.lz"); const u32 gFile_graphics_unknown_unknown_E7CFB0_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E7CFB0.bin.lz");
+14 -14
View File
@@ -339,7 +339,7 @@ static bool8 InitHallOfFameScreen(void)
if (!DrawHofBackground()) if (!DrawHofBackground())
{ {
SetVBlankCallback(VBlankCB_HofIdle); SetVBlankCallback(VBlankCB_HofIdle);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
gMain.state++; gMain.state++;
} }
break; break;
@@ -440,8 +440,8 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
} }
if (i >= HALL_OF_FAME_MAX_TEAMS) if (i >= HALL_OF_FAME_MAX_TEAMS)
{ {
struct HallofFameTeam *afterTeam = (struct HallofFameTeam*)(gDecompressionBuffer); struct HallofFameTeam *afterTeam = (struct HallofFameTeam *)(gDecompressionBuffer);
struct HallofFameTeam *beforeTeam = (struct HallofFameTeam*)(gDecompressionBuffer); struct HallofFameTeam *beforeTeam = (struct HallofFameTeam *)(gDecompressionBuffer);
afterTeam++; afterTeam++;
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, beforeTeam++, afterTeam++) for (i = 0; i < HALL_OF_FAME_MAX_TEAMS - 1; i++, beforeTeam++, afterTeam++)
{ {
@@ -453,7 +453,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_Hof_TrySaveData; gTasks[taskId].func = Task_Hof_TrySaveData;
} }
@@ -523,7 +523,7 @@ static void Task_Hof_PlayMonCryAndPrintInfo(u8 taskId)
if (gSprites[gTasks[taskId].data[5 + currMonId]].data[0]) if (gSprites[gTasks[taskId].data[5 + currMonId]].data[0])
{ {
if (currMon->species != SPECIES_EGG) if (currMon->species != SPECIES_EGG)
PlayCry1(currMon->species, 0); PlayCry_Normal(currMon->species, 0);
HallOfFame_PrintMonInfo(currMon, 0, 14); HallOfFame_PrintMonInfo(currMon, 0, 14);
gTasks[taskId].data[3] = 120; gTasks[taskId].data[3] = 120;
gTasks[taskId].func = Task_Hof_TryDisplayAnotherMon; gTasks[taskId].func = Task_Hof_TryDisplayAnotherMon;
@@ -560,7 +560,7 @@ static void Task_Hof_PaletteFadeAndPrintWelcomeText(u8 taskId)
{ {
u16 i; u16 i;
BeginNormalPaletteFade(0xFFFF0000, 0, 0, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_OBJECTS, 0, 0, 0, RGB_BLACK);
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
if (gTasks[taskId].data[5 + i] != 0xFF) if (gTasks[taskId].data[5 + i] != 0xFF)
@@ -591,7 +591,7 @@ static void Task_Hof_ApplauseAndConfetti(u8 taskId)
} }
BeginNormalPaletteFade(sSelectedPaletteIndices, 0, 12, 12, HALL_OF_FAME_BG_PAL); BeginNormalPaletteFade(sSelectedPaletteIndices, 0, 12, 12, HALL_OF_FAME_BG_PAL);
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].data[3] = 7; gTasks[taskId].data[3] = 7;
gTasks[taskId].func = Task_Hof_WaitBorderFadeAway; gTasks[taskId].func = Task_Hof_WaitBorderFadeAway;
} }
@@ -639,7 +639,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId)
HallOfFame_PrintPlayerInfo(1, 2); HallOfFame_PrintPlayerInfo(1, 2);
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_LeagueChamp, 0, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, gText_LeagueChamp, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_Hof_ExitOnKeyPressed; gTasks[taskId].func = Task_Hof_ExitOnKeyPressed;
} }
} }
@@ -656,7 +656,7 @@ static void Task_Hof_ExitOnKeyPressed(u8 taskId)
static void Task_Hof_HandlePaletteOnExit(u8 taskId) static void Task_Hof_HandlePaletteOnExit(u8 taskId)
{ {
CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * sizeof(u16)); CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * sizeof(u16));
BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 8, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_Hof_HandleExit; gTasks[taskId].func = Task_Hof_HandleExit;
} }
@@ -874,7 +874,7 @@ static void Task_HofPC_PrintMonInfo(u8 taskId)
if (currMon->species != SPECIES_EGG) if (currMon->species != SPECIES_EGG)
{ {
StopCryAndClearCrySongs(); StopCryAndClearCrySongs();
PlayCry1(currMon->species, 0); PlayCry_Normal(currMon->species, 0);
} }
HallOfFame_PrintMonInfo(currMon, 0, 14); HallOfFame_PrintMonInfo(currMon, 0, 14);
@@ -969,7 +969,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
TopBarWindowPrintString(gText_ABUTTONExit, 8, TRUE); TopBarWindowPrintString(gText_ABUTTONExit, 8, TRUE);
DrawDialogueFrame(0, 0); DrawDialogueFrame(0, 0);
AddTextPrinterParameterized2(0, 2, gText_HOFCorrupted, 0, NULL, 2, 1, 3); AddTextPrinterParameterized2(0, 2, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
gTasks[taskId].func = Task_HofPC_ExitOnButtonPress; gTasks[taskId].func = Task_HofPC_ExitOnButtonPress;
} }
@@ -985,7 +985,7 @@ static void HallOfFame_PrintWelcomeText(u8 not, u8 used)
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
PutWindowTilemap(0); PutWindowTilemap(0);
AddTextPrinterParameterized3(0, 2, x, 1, sTextColors[0], 0, gText_WelcomeToHOF); AddTextPrinterParameterized3(0, 2, x, 1, sTextColors[0], 0, gText_WelcomeToHOF);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
} }
static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2) static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2)
@@ -1072,7 +1072,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
AddTextPrinterParameterized3(0, 2, 0x60, 0x11, sTextColors[0], 0, text); AddTextPrinterParameterized3(0, 2, 0x60, 0x11, sTextColors[0], 0, text);
} }
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
} }
static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
@@ -1115,7 +1115,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
AddTextPrinterParameterized3(1, 2, textWidth - 36, 32, sTextColors[1], 0, text); AddTextPrinterParameterized3(1, 2, textWidth - 36, 32, sTextColors[1], 0, text);
CopyWindowToVram(1, COPYWIN_BOTH); CopyWindowToVram(1, COPYWIN_FULL);
} }
static void ClearVramOamPltt_LoadHofPal(void) static void ClearVramOamPltt_LoadHofPal(void)
+2 -2
View File
@@ -49,8 +49,8 @@ void DestroyHelpMessageWindow(u8 a0)
void sub_8112F18(u8 windowId) void sub_8112F18(u8 windowId)
{ {
const u8* ptr = gUnknown_84566A8; const u8 *ptr = gUnknown_84566A8;
u8* buffer; u8 *buffer;
u8 i, j; u8 i, j;
u8 width, height; u8 width, height;
u8 k; u8 k;
+1 -1
View File
@@ -522,7 +522,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
BlitBitmapRect4Bit(&srcBlit, &destBlit, 0, 0, x, y, GetKeypadIconWidth(curChar), GetKeypadIconHeight(curChar), 0); BlitBitmapRect4Bit(&srcBlit, &destBlit, 0, 0, x, y, GetKeypadIconWidth(curChar), GetKeypadIconHeight(curChar), 0);
x += GetKeypadIconWidth(curChar); x += GetKeypadIconWidth(curChar);
break; break;
case CHAR_EXTRA_EMOJI: case CHAR_EXTRA_SYMBOL:
curChar = *src + 0x100; curChar = *src + 0x100;
src++; src++;
//fallthrough //fallthrough
+2 -2
View File
@@ -22,7 +22,7 @@ static void Task_WaitFadeAndSetCallback(u8 taskId)
void HallOfFamePCBeginFade(void) void HallOfFamePCBeginFade(void)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK);
ScriptContext2_Enable(); ScriptContext2_Enable();
CreateTask(Task_WaitFadeAndSetCallback, 0); CreateTask(Task_WaitFadeAndSetCallback, 0);
} }
@@ -39,7 +39,7 @@ static void ReshowPCMenuAfterHallOfFamePC(void)
Overworld_PlaySpecialMapMusic(); Overworld_PlaySpecialMapMusic();
CreatePCMenu(); CreatePCMenu();
ScriptMenu_DisplayPCStartupPrompt(); ScriptMenu_DisplayPCStartupPrompt();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK);
CreateTask(Task_WaitForPaletteFade, 10); CreateTask(Task_WaitForPaletteFade, 10);
} }
+13 -13
View File
@@ -26,14 +26,14 @@ static void ApplyImageEffect_PersonalityColor(u8);
static void ApplyImageEffect_RedChannelGrayscale(u8); static void ApplyImageEffect_RedChannelGrayscale(u8);
static void ApplyImageEffect_RedChannelGrayscaleHighlight(u8); static void ApplyImageEffect_RedChannelGrayscaleHighlight(u8);
static void AddPointillismPoints(u16); static void AddPointillismPoints(u16);
static u16 ConvertColorToGrayscale(u16*); static u16 ConvertColorToGrayscale(u16 *);
static u16 QuantizePixel_Blur(u16*, u16*, u16*); static u16 QuantizePixel_Blur(u16 *, u16 *, u16 *);
static u16 QuantizePixel_PersonalityColor(u16*, u8); static u16 QuantizePixel_PersonalityColor(u16 *, u8);
static u16 QuantizePixel_BlackAndWhite(u16*); static u16 QuantizePixel_BlackAndWhite(u16 *);
static u16 QuantizePixel_BlackOutline(u16*, u16*); static u16 QuantizePixel_BlackOutline(u16 *, u16 *);
static u16 QuantizePixel_Invert(u16*); static u16 QuantizePixel_Invert(u16 *);
static u16 QuantizePixel_BlurHard(u16*, u16*, u16*); static u16 QuantizePixel_BlurHard(u16 *, u16 *, u16 *);
static u16 QuantizePixel_MotionBlur(u16*, u16*); static u16 QuantizePixel_MotionBlur(u16 *, u16 *);
static u16 GetColorFromPersonality(u8); static u16 GetColorFromPersonality(u8);
static void QuantizePalette_Standard(bool8); static void QuantizePalette_Standard(bool8);
static void SetPresetPalette_PrimaryColors(void); static void SetPresetPalette_PrimaryColors(void);
@@ -44,10 +44,10 @@ static void SetPresetPalette_GrayscaleSmall(void);
static void QuantizePalette_GrayscaleSmall(void); static void QuantizePalette_GrayscaleSmall(void);
static void SetPresetPalette_BlackAndWhite(void); static void SetPresetPalette_BlackAndWhite(void);
static void QuantizePalette_BlackAndWhite(void); static void QuantizePalette_BlackAndWhite(void);
static u16 QuantizePixel_Standard(u16*); static u16 QuantizePixel_Standard(u16 *);
static u16 QuantizePixel_GrayscaleSmall(u16*); static u16 QuantizePixel_GrayscaleSmall(u16 *);
static u16 QuantizePixel_Grayscale(u16*); static u16 QuantizePixel_Grayscale(u16 *);
static u16 QuantizePixel_PrimaryColors(u16*); static u16 QuantizePixel_PrimaryColors(u16 *);
static const u8 sPointillismPoints[][3] = { static const u8 sPointillismPoints[][3] = {
{0x00, 0x1d, 0x1c}, {0x00, 0x1d, 0x1c},
@@ -4288,7 +4288,7 @@ static u16 QuantizePixel_Standard(u16 *pixel)
return RGB2(red, green, blue); return RGB2(red, green, blue);
} }
static u16 QuantizePixel_PrimaryColors(u16* color) static u16 QuantizePixel_PrimaryColors(u16 *color)
{ {
u16 red = *color & 0x1F; u16 red = *color & 0x1F;
u16 green = (*color >> 5) & 0x1F; u16 green = (*color >> 5) & 0x1F;
+5 -5
View File
@@ -811,7 +811,7 @@ static bool8 RunCopyrightScreen(void)
ResetTasks(); ResetTasks();
ResetSpriteData(); ResetSpriteData();
FreeAllSpritePalettes(); FreeAllSpritePalettes();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, 0xFFFF);
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(7)); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(7));
EnableInterrupts(INTR_FLAG_VBLANK); EnableInterrupts(INTR_FLAG_VBLANK);
SetVBlankCallback(VBlankCB_Copyright); SetVBlankCallback(VBlankCB_Copyright);
@@ -828,7 +828,7 @@ static bool8 RunCopyrightScreen(void)
GameCubeMultiBoot_Main(&sGcmb); GameCubeMultiBoot_Main(&sGcmb);
if (sGcmb.gcmb_field_2 != 1) if (sGcmb.gcmb_field_2 != 1)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
gMain.state++; gMain.state++;
} }
break; break;
@@ -916,7 +916,7 @@ static void CB2_SetUpIntro(void)
if (!FreeTempTileDataBuffersIfPossible()) if (!FreeTempTileDataBuffersIfPossible())
{ {
StartIntroSequence(); StartIntroSequence();
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
SetMainCallback2(CB2_Intro); SetMainCallback2(CB2_Intro);
SetVBlankCallback(VBlankCB_Intro); SetVBlankCallback(VBlankCB_Intro);
} }
@@ -991,7 +991,7 @@ static void IntroCB_Init(struct IntroSequenceData * this)
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16); BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, COPYWIN_BOTH); CopyWindowToVram(0, COPYWIN_FULL);
this->state++; this->state++;
break; break;
case 1: case 1:
@@ -1016,7 +1016,7 @@ static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * this)
break; break;
case 1: case 1:
ShowBg(3); ShowBg(3);
BlendPalettes(0xFFFFFFFF, 0x00, RGB_BLACK); BlendPalettes(PALETTES_ALL, 0x00, RGB_BLACK);
this->state++; this->state++;
break; break;
case 2: case 2:
+1 -1
View File
@@ -160,7 +160,7 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
/* /*
void NoCashGBAPrint(const char *pBuf) void NoCashGBAPrint(const char *pBuf)
{ {
*(volatile u32*)NOCASHGBAPRINTADDR2 = (u32)pBuf; *(volatile u32 *)NOCASHGBAPRINTADDR2 = (u32)pBuf;
} }
void NoCashGBAPrintf(const char *pBuf, ...) void NoCashGBAPrintf(const char *pBuf, ...)
+5 -5
View File
@@ -512,7 +512,7 @@ static bool8 LoadBagMenuGraphics(void)
static void FadeOutOfBagMenu(void) static void FadeOutOfBagMenu(void)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK);
CreateTask(Task_WaitFadeOutOfBagMenu, 0); CreateTask(Task_WaitFadeOutOfBagMenu, 0);
SetVBlankCallback(VBlankCB_BagMenuRun); SetVBlankCallback(VBlankCB_BagMenuRun);
SetMainCallback2(CB2_BagMenuRun); SetMainCallback2(CB2_BagMenuRun);
@@ -897,7 +897,7 @@ static void DestroyBagMenuResources(void)
void ItemMenu_StartFadeToExitCallback(u8 taskId) void ItemMenu_StartFadeToExitCallback(u8 taskId)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_ItemMenu_WaitFadeAndSwitchToExitCallback; gTasks[taskId].func = Task_ItemMenu_WaitFadeAndSwitchToExitCallback;
} }
@@ -925,8 +925,8 @@ static void ShowBagOrBeginWin0OpenTask(void)
LoadPalette(&paldata, 0x00, 0x02); LoadPalette(&paldata, 0x00, 0x02);
SetGpuReg(REG_OFFSET_WININ, 0); SetGpuReg(REG_OFFSET_WININ, 0);
SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
if (gBagMenuState.bagOpen == TRUE) if (gBagMenuState.bagOpen == TRUE)
{ {
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
@@ -2144,7 +2144,7 @@ static void Task_Bag_OldManTutorial(u8 taskId)
static void Task_Pokedude_FadeFromBag(u8 taskId) static void Task_Pokedude_FadeFromBag(u8 taskId)
{ {
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, -2, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_Pokedude_WaitFadeAndExitBag; gTasks[taskId].func = Task_Pokedude_WaitFadeAndExitBag;
} }

Some files were not shown because too many files have changed in this diff Show More