Fix conflicts
This commit is contained in:
commit
180aa839c4
2397
asm/fire.s
2397
asm/fire.s
File diff suppressed because it is too large
Load Diff
@ -668,7 +668,7 @@
|
||||
.4byte \pointer2 @ text
|
||||
.4byte \pointer3 @ text
|
||||
.4byte \pointer4 @ event script
|
||||
.elseif \type == TRAINER_BATTLE_9
|
||||
.elseif \type == TRAINER_BATTLE_PYRAMID
|
||||
.4byte \pointer1 @ text
|
||||
.4byte \pointer2 @ text
|
||||
.elseif \type == TRAINER_BATTLE_SET_TRAINER_A
|
||||
|
||||
1431
asm/roulette_util.s
1431
asm/roulette_util.s
File diff suppressed because it is too large
Load Diff
1260
data/event_scripts.s
1260
data/event_scripts.s
File diff suppressed because it is too large
Load Diff
@ -153,7 +153,7 @@ BattleFrontier_BattlePyramidEmptySquare_EventScript_252C45:: @ 8252C45
|
||||
end
|
||||
|
||||
BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F:: @ 8252C4F
|
||||
trainerbattle TRAINER_BATTLE_9, TRAINER_PHILLIP, 0, BattleFrontier_BattlePyramidEmptySquare_Text_252C8D, BattleFrontier_BattlePyramidEmptySquare_Text_252C8D
|
||||
trainerbattle TRAINER_BATTLE_PYRAMID, TRAINER_PHILLIP, 0, BattleFrontier_BattlePyramidEmptySquare_Text_252C8D, BattleFrontier_BattlePyramidEmptySquare_Text_252C8D
|
||||
setvar VAR_0x8004, 10
|
||||
special CallBattlePyramidFunction
|
||||
waitmessage
|
||||
|
||||
1115
data/scripts/secret_base.inc
Normal file
1115
data/scripts/secret_base.inc
Normal file
File diff suppressed because it is too large
Load Diff
128
data/scripts/trainer_battle.inc
Normal file
128
data/scripts/trainer_battle.inc
Normal file
@ -0,0 +1,128 @@
|
||||
EventScript_ShowSecondTrainerIntro:: @ 8271356
|
||||
special SetUpTrainerEncounterMusic
|
||||
special EndTrainerApproach
|
||||
waitstate
|
||||
goto EventScript_ShowTrainerIntroMsg
|
||||
|
||||
EventScript_TryDoNormalTrainerBattle:: @ 8271362
|
||||
lock
|
||||
faceplayer
|
||||
applymovement VAR_LAST_TALKED, Movement_RevealTrainer
|
||||
waitmovement 0
|
||||
specialvar VAR_RESULT, GetTrainerFlag
|
||||
compare VAR_RESULT, 0
|
||||
goto_if 5, EventScript_NoNormalTrainerBattle
|
||||
special SetUpTrainerEncounterMusic
|
||||
special SetUpTrainerMovement
|
||||
goto EventScript_ShowTrainerIntroMsg
|
||||
EventScript_NoNormalTrainerBattle:: @ 8271389
|
||||
gotopostbattlescript
|
||||
|
||||
EventScript_TryDoDoubleTrainerBattle:: @ 827138A
|
||||
lock
|
||||
faceplayer
|
||||
call EventScript_RevealTrainer
|
||||
specialvar VAR_RESULT, GetTrainerFlag
|
||||
compare VAR_RESULT, 0
|
||||
goto_if 5, EventScript_NoDoubleTrainerBattle
|
||||
special HasEnoughMonsForDoubleBattle
|
||||
compare VAR_RESULT, 0
|
||||
goto_if 5, EventScript_NotEnoughMonsForDoubleBattle
|
||||
special SetUpTrainerEncounterMusic
|
||||
special SetUpTrainerMovement
|
||||
goto EventScript_ShowTrainerIntroMsg
|
||||
EventScript_NotEnoughMonsForDoubleBattle:: @ 82713BA
|
||||
special ShowTrainerCantBattleSpeech
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
release
|
||||
end
|
||||
EventScript_NoDoubleTrainerBattle:: @ 82713C1
|
||||
gotopostbattlescript
|
||||
|
||||
EventScript_DoTainerBattle:: @ 82713C2
|
||||
applymovement VAR_LAST_TALKED, Movement_RevealTrainer
|
||||
waitmovement 0
|
||||
special SetUpTrainerEncounterMusic
|
||||
trainerbattlebegin
|
||||
gotopostbattlescript
|
||||
|
||||
EventScript_TryDoRematchBattle:: @ 82713D1
|
||||
call EventScript_RevealTrainer
|
||||
specialvar VAR_RESULT, IsTrainerReadyForRematch
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq EventScript_NoRematchTrainerBattle
|
||||
special SetUpTrainerEncounterMusic
|
||||
special SetUpTrainerMovement
|
||||
special ShowTrainerIntroSpeech
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
special BattleSetup_StartRematchBattle
|
||||
waitstate
|
||||
releaseall
|
||||
end
|
||||
EventScript_NoRematchTrainerBattle:: @ 82713F7
|
||||
gotopostbattlescript
|
||||
|
||||
EventScript_TryDoDoubleRematchBattle:: @ 82713F8
|
||||
specialvar VAR_RESULT, IsTrainerReadyForRematch
|
||||
compare VAR_RESULT, 0
|
||||
goto_eq EventScript_NoDoubleRematchTrainerBattle
|
||||
special HasEnoughMonsForDoubleBattle
|
||||
compare VAR_RESULT, 0
|
||||
goto_if 5, EventScript_NotEnoughMonsForDoubleRematchBattle
|
||||
special SetUpTrainerEncounterMusic
|
||||
special SetUpTrainerMovement
|
||||
special ShowTrainerIntroSpeech
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
special BattleSetup_StartRematchBattle
|
||||
waitstate
|
||||
releaseall
|
||||
end
|
||||
EventScript_NoDoubleRematchTrainerBattle:: @ 8271427
|
||||
gotopostbattlescript
|
||||
EventScript_NotEnoughMonsForDoubleRematchBattle:: @ 8271428
|
||||
special ShowTrainerCantBattleSpeech
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
release
|
||||
end
|
||||
|
||||
EventScript_RevealTrainer:: @ 827142F
|
||||
applymovement VAR_LAST_TALKED, Movement_RevealTrainer
|
||||
waitmovement 0
|
||||
return
|
||||
|
||||
Movement_RevealTrainer: @ 827143A
|
||||
reveal_trainer
|
||||
step_end
|
||||
|
||||
EventScript_ShowTrainerIntroMsg:: @ 827143C
|
||||
special ShowTrainerIntroSpeech
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
special TryPrepareSecondApproachingTrainer
|
||||
compare VAR_RESULT, TRUE
|
||||
goto_eq EventScript_ShowSecondTrainerIntro
|
||||
goto EventScript_DoTrainerBattle
|
||||
|
||||
EventScript_DoTrainerBattle:: @ 8271454
|
||||
trainerbattlebegin
|
||||
@ Pointless check, possibly used for debugging?
|
||||
specialvar VAR_RESULT, GetTrainerBattleMode
|
||||
compare VAR_RESULT, TRAINER_BATTLE_SINGLE
|
||||
goto_eq EventScript_EndTrainerBattle
|
||||
compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT
|
||||
goto_eq EventScript_EndTrainerBattle
|
||||
compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC
|
||||
goto_eq EventScript_EndTrainerBattle
|
||||
compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE
|
||||
goto_eq EventScript_EndTrainerBattle
|
||||
compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC
|
||||
goto_eq EventScript_EndTrainerBattle
|
||||
|
||||
EventScript_EndTrainerBattle:: @ 8271491
|
||||
gotobeatenscript
|
||||
releaseall
|
||||
end
|
||||
@ -324,7 +324,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special StartGroudonKyogreBattle
|
||||
def_special BattleSetup_StartLegendaryBattle
|
||||
def_special StartRegiBattle
|
||||
def_special sub_80B16D8
|
||||
def_special SetUpTrainerMovement
|
||||
def_special DoSealedChamberShakingEffect2
|
||||
def_special FoundBlackGlasses
|
||||
def_special sub_80AC81C
|
||||
@ -531,7 +531,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_813B9A0
|
||||
def_special sub_81B9918
|
||||
def_special sub_80722E0
|
||||
def_special sub_80B45D0
|
||||
def_special TryPrepareSecondApproachingTrainer
|
||||
def_special RemoveRecordsWindow
|
||||
def_special sub_8139C10
|
||||
def_special sub_80B3BC4
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#ifndef GUARD_MALLOC_H
|
||||
#define GUARD_MALLOC_H
|
||||
#ifndef GUARD_ALLOC_H
|
||||
#define GUARD_ALLOC_H
|
||||
|
||||
#define HEAP_SIZE 0x1C000
|
||||
#define malloc Alloc
|
||||
@ -19,4 +19,4 @@ void *AllocZeroed(u32 size);
|
||||
void Free(void *pointer);
|
||||
void InitHeap(void *pointer, u32 size);
|
||||
|
||||
#endif // GUARD_MALLOC_H
|
||||
#endif // GUARD_ALLOC_H
|
||||
@ -551,10 +551,10 @@ struct BattleStruct
|
||||
u16 changedItems[MAX_BATTLERS_COUNT];
|
||||
u8 intimidateBattler;
|
||||
u8 switchInItemsCounter;
|
||||
u8 field_DA;
|
||||
u8 turnEffectsSide;
|
||||
u8 arenaTurnCounter;
|
||||
u8 turnSideTracker;
|
||||
u8 fillerDC[0xDF-0xDC];
|
||||
u8 field_DF;
|
||||
u8 givenExpMons; // Bits for enemy party's pokemon that gave exp to player's party.
|
||||
u8 lastTakenMoveFrom[MAX_BATTLERS_COUNT * MAX_BATTLERS_COUNT * 2]; // a 3-D array [target][attacker][byte]
|
||||
u16 castformPalette[MAX_BATTLERS_COUNT][16];
|
||||
u8 field_180;
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
#include "battle.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "task.h"
|
||||
|
||||
enum
|
||||
{
|
||||
@ -124,6 +125,11 @@ void sub_80A6D60(struct UnknownAnimStruct2*, const void*, u32);
|
||||
void sub_80A6CC0(u32, const void*, u32);
|
||||
void sub_80A6DAC(bool8);
|
||||
void sub_80A634C(struct Sprite *);
|
||||
void sub_80A653C(struct Sprite *);
|
||||
void sub_80A7E6C(u8 spriteId);
|
||||
void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
|
||||
u8 sub_80A80C8(struct Task *task);
|
||||
void sub_80A8EE4(struct Sprite *);
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
@ -41,7 +41,7 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerSc
|
||||
void ConfigureTwoTrainersBattle(u8 trainerEventObjId, const u8 *trainerScript);
|
||||
void SetUpTwoTrainersBattle(void);
|
||||
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
|
||||
void sub_80B16D8(void);
|
||||
void SetUpTrainerMovement(void);
|
||||
u8 GetTrainerBattleMode(void);
|
||||
bool8 GetTrainerFlag(void);
|
||||
bool8 HasTrainerBeenFought(u16 trainerId);
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
|
||||
#define TRAINER_BATTLE_REMATCH_DOUBLE 7
|
||||
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
|
||||
#define TRAINER_BATTLE_9 9
|
||||
#define TRAINER_BATTLE_PYRAMID 9
|
||||
#define TRAINER_BATTLE_SET_TRAINER_A 10
|
||||
#define TRAINER_BATTLE_SET_TRAINER_B 11
|
||||
#define TRAINER_BATTLE_12 12
|
||||
|
||||
@ -3,384 +3,384 @@
|
||||
|
||||
#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_RETURNMON 2
|
||||
#define STRINGID_RETURNMON 2
|
||||
#define STRINGID_SWITCHINMON 3
|
||||
#define STRINGID_USEDMOVE 4
|
||||
#define STRINGID_BATTLEEND 5
|
||||
#define STRINGID_TRAINERSLIDE 6
|
||||
#define STRINGID_USEDMOVE 4
|
||||
#define STRINGID_BATTLEEND 5
|
||||
#define STRINGID_TRAINERSLIDE 6
|
||||
|
||||
// todo: make some of those names less vague: attacker/target vs pkmn, etc.
|
||||
#define STRINGID_TRAINER1LOSETEXT 12
|
||||
#define STRINGID_PKMNGAINEDEXP 13
|
||||
#define STRINGID_PKMNGREWTOLV 14
|
||||
#define STRINGID_PKMNLEARNEDMOVE 15
|
||||
#define STRINGID_TRYTOLEARNMOVE1 16
|
||||
#define STRINGID_TRYTOLEARNMOVE2 17
|
||||
#define STRINGID_TRYTOLEARNMOVE3 18
|
||||
#define STRINGID_PKMNFORGOTMOVE 19
|
||||
#define STRINGID_STOPLEARNINGMOVE 20
|
||||
#define STRINGID_DIDNOTLEARNMOVE 21
|
||||
#define STRINGID_PKMNLEARNEDMOVE2 22
|
||||
#define STRINGID_ATTACKMISSED 23
|
||||
#define STRINGID_PKMNPROTECTEDITSELF 24
|
||||
#define STRINGID_STATSWONTINCREASE2 25
|
||||
#define STRINGID_AVOIDEDDAMAGE 26
|
||||
#define STRINGID_ITDOESNTAFFECT 27
|
||||
#define STRINGID_ATTACKERFAINTED 28
|
||||
#define STRINGID_TARGETFAINTED 29
|
||||
#define STRINGID_PLAYERGOTMONEY 30
|
||||
#define STRINGID_PLAYERWHITEOUT 31
|
||||
#define STRINGID_PLAYERWHITEOUT2 32
|
||||
#define STRINGID_PREVENTSESCAPE 33
|
||||
#define STRINGID_HITXTIMES 34
|
||||
#define STRINGID_PKMNFELLASLEEP 35
|
||||
#define STRINGID_PKMNMADESLEEP 36
|
||||
#define STRINGID_PKMNALREADYASLEEP 37
|
||||
#define STRINGID_PKMNALREADYASLEEP2 38
|
||||
#define STRINGID_PKMNWASNTAFFECTED 39
|
||||
#define STRINGID_PKMNWASPOISONED 40
|
||||
#define STRINGID_PKMNPOISONEDBY 41
|
||||
#define STRINGID_PKMNHURTBYPOISON 42
|
||||
#define STRINGID_PKMNALREADYPOISONED 43
|
||||
#define STRINGID_PKMNBADLYPOISONED 44
|
||||
#define STRINGID_PKMNENERGYDRAINED 45
|
||||
#define STRINGID_PKMNWASBURNED 46
|
||||
#define STRINGID_PKMNBURNEDBY 47
|
||||
#define STRINGID_PKMNHURTBYBURN 48
|
||||
#define STRINGID_PKMNWASFROZEN 49
|
||||
#define STRINGID_PKMNFROZENBY 50
|
||||
#define STRINGID_PKMNISFROZEN 51
|
||||
#define STRINGID_PKMNWASDEFROSTED 52
|
||||
#define STRINGID_PKMNWASDEFROSTED2 53
|
||||
#define STRINGID_PKMNWASDEFROSTEDBY 54
|
||||
#define STRINGID_PKMNWASPARALYZED 55
|
||||
#define STRINGID_PKMNWASPARALYZEDBY 56
|
||||
#define STRINGID_PKMNISPARALYZED 57
|
||||
#define STRINGID_PKMNISALREADYPARALYZED 58
|
||||
#define STRINGID_PKMNHEALEDPARALYSIS 59
|
||||
#define STRINGID_PKMNDREAMEATEN 60
|
||||
#define STRINGID_STATSWONTINCREASE 61
|
||||
#define STRINGID_STATSWONTDECREASE 62
|
||||
#define STRINGID_TEAMSTOPPEDWORKING 63
|
||||
#define STRINGID_FOESTOPPEDWORKING 64
|
||||
#define STRINGID_PKMNISCONFUSED 65
|
||||
#define STRINGID_PKMNHEALEDCONFUSION 66
|
||||
#define STRINGID_PKMNWASCONFUSED 67
|
||||
#define STRINGID_PKMNALREADYCONFUSED 68
|
||||
#define STRINGID_PKMNFELLINLOVE 69
|
||||
#define STRINGID_PKMNINLOVE 70
|
||||
#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
|
||||
#define STRINGID_PKMNBLOWNAWAY 72
|
||||
#define STRINGID_PKMNCHANGEDTYPE 73
|
||||
#define STRINGID_PKMNFLINCHED 74
|
||||
#define STRINGID_PKMNREGAINEDHEALTH 75
|
||||
#define STRINGID_PKMNHPFULL 76
|
||||
#define STRINGID_PKMNRAISEDSPDEF 77
|
||||
#define STRINGID_PKMNRAISEDDEF 78
|
||||
#define STRINGID_PKMNCOVEREDBYVEIL 79
|
||||
#define STRINGID_PKMNUSEDSAFEGUARD 80
|
||||
#define STRINGID_PKMNSAFEGUARDEXPIRED 81
|
||||
#define STRINGID_PKMNWENTTOSLEEP 82
|
||||
#define STRINGID_PKMNSLEPTHEALTHY 83
|
||||
#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
|
||||
#define STRINGID_PKMNTOOKSUNLIGHT 85
|
||||
#define STRINGID_PKMNLOWEREDHEAD 86
|
||||
#define STRINGID_PKMNISGLOWING 87
|
||||
#define STRINGID_PKMNFLEWHIGH 88
|
||||
#define STRINGID_PKMNDUGHOLE 89
|
||||
#define STRINGID_PKMNSQUEEZEDBYBIND 90
|
||||
#define STRINGID_PKMNTRAPPEDINVORTEX 91
|
||||
#define STRINGID_PKMNWRAPPEDBY 92
|
||||
#define STRINGID_PKMNCLAMPED 93
|
||||
#define STRINGID_PKMNHURTBY 94
|
||||
#define STRINGID_PKMNFREEDFROM 95
|
||||
#define STRINGID_PKMNCRASHED 96
|
||||
#define STRINGID_PKMNSHROUDEDINMIST 97
|
||||
#define STRINGID_PKMNPROTECTEDBYMIST 98
|
||||
#define STRINGID_PKMNGETTINGPUMPED 99
|
||||
#define STRINGID_PKMNHITWITHRECOIL 100
|
||||
#define STRINGID_PKMNPROTECTEDITSELF2 101
|
||||
#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
|
||||
#define STRINGID_PKMNPELTEDBYHAIL 103
|
||||
#define STRINGID_PKMNSEEDED 104
|
||||
#define STRINGID_PKMNEVADEDATTACK 105
|
||||
#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
|
||||
#define STRINGID_PKMNFASTASLEEP 107
|
||||
#define STRINGID_PKMNWOKEUP 108
|
||||
#define STRINGID_PKMNUPROARKEPTAWAKE 109
|
||||
#define STRINGID_PKMNWOKEUPINUPROAR 110
|
||||
#define STRINGID_PKMNCAUSEDUPROAR 111
|
||||
#define STRINGID_PKMNMAKINGUPROAR 112
|
||||
#define STRINGID_PKMNCALMEDDOWN 113
|
||||
#define STRINGID_PKMNCANTSLEEPINUPROAR 114
|
||||
#define STRINGID_PKMNSTOCKPILED 115
|
||||
#define STRINGID_PKMNCANTSTOCKPILE 116
|
||||
#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
|
||||
#define STRINGID_UPROARKEPTPKMNAWAKE 118
|
||||
#define STRINGID_PKMNSTAYEDAWAKEUSING 119
|
||||
#define STRINGID_PKMNSTORINGENERGY 120
|
||||
#define STRINGID_PKMNUNLEASHEDENERGY 121
|
||||
#define STRINGID_PKMNFATIGUECONFUSION 122
|
||||
#define STRINGID_PKMNPICKEDUPITEM 123
|
||||
#define STRINGID_PKMNUNAFFECTED 124
|
||||
#define STRINGID_PKMNTRANSFORMEDINTO 125
|
||||
#define STRINGID_PKMNMADESUBSTITUTE 126
|
||||
#define STRINGID_PKMNHASSUBSTITUTE 127
|
||||
#define STRINGID_SUBSTITUTEDAMAGED 128
|
||||
#define STRINGID_PKMNSUBSTITUTEFADED 129
|
||||
#define STRINGID_PKMNMUSTRECHARGE 130
|
||||
#define STRINGID_PKMNRAGEBUILDING 131
|
||||
#define STRINGID_PKMNMOVEWASDISABLED 132
|
||||
#define STRINGID_PKMNMOVEISDISABLED 133
|
||||
#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
|
||||
#define STRINGID_PKMNGOTENCORE 135
|
||||
#define STRINGID_PKMNENCOREENDED 136
|
||||
#define STRINGID_PKMNTOOKAIM 137
|
||||
#define STRINGID_PKMNSKETCHEDMOVE 138
|
||||
#define STRINGID_PKMNTRYINGTOTAKEFOE 139
|
||||
#define STRINGID_PKMNTOOKFOE 140
|
||||
#define STRINGID_PKMNREDUCEDPP 141
|
||||
#define STRINGID_PKMNSTOLEITEM 142
|
||||
#define STRINGID_TARGETCANTESCAPENOW 143
|
||||
#define STRINGID_PKMNFELLINTONIGHTMARE 144
|
||||
#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
|
||||
#define STRINGID_PKMNLAIDCURSE 146
|
||||
#define STRINGID_PKMNAFFLICTEDBYCURSE 147
|
||||
#define STRINGID_SPIKESSCATTERED 148
|
||||
#define STRINGID_PKMNHURTBYSPIKES 149
|
||||
#define STRINGID_PKMNIDENTIFIED 150
|
||||
#define STRINGID_PKMNPERISHCOUNTFELL 151
|
||||
#define STRINGID_PKMNBRACEDITSELF 152
|
||||
#define STRINGID_PKMNENDUREDHIT 153
|
||||
#define STRINGID_MAGNITUDESTRENGTH 154
|
||||
#define STRINGID_PKMNCUTHPMAXEDATTACK 155
|
||||
#define STRINGID_PKMNCOPIEDSTATCHANGES 156
|
||||
#define STRINGID_PKMNGOTFREE 157
|
||||
#define STRINGID_PKMNSHEDLEECHSEED 158
|
||||
#define STRINGID_PKMNBLEWAWAYSPIKES 159
|
||||
#define STRINGID_PKMNFLEDFROMBATTLE 160
|
||||
#define STRINGID_PKMNFORESAWATTACK 161
|
||||
#define STRINGID_PKMNTOOKATTACK 162
|
||||
#define STRINGID_PKMNATTACK 163
|
||||
#define STRINGID_PKMNCENTERATTENTION 164
|
||||
#define STRINGID_PKMNCHARGINGPOWER 165
|
||||
#define STRINGID_NATUREPOWERTURNEDINTO 166
|
||||
#define STRINGID_PKMNSTATUSNORMAL 167
|
||||
#define STRINGID_PKMNHASNOMOVESLEFT 168
|
||||
#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
|
||||
#define STRINGID_PKMNCANTUSEMOVETORMENT 170
|
||||
#define STRINGID_PKMNTIGHTENINGFOCUS 171
|
||||
#define STRINGID_PKMNFELLFORTAUNT 172
|
||||
#define STRINGID_PKMNCANTUSEMOVETAUNT 173
|
||||
#define STRINGID_PKMNREADYTOHELP 174
|
||||
#define STRINGID_PKMNSWITCHEDITEMS 175
|
||||
#define STRINGID_PKMNCOPIEDFOE 176
|
||||
#define STRINGID_PKMNMADEWISH 177
|
||||
#define STRINGID_PKMNWISHCAMETRUE 178
|
||||
#define STRINGID_PKMNPLANTEDROOTS 179
|
||||
#define STRINGID_PKMNABSORBEDNUTRIENTS 180
|
||||
#define STRINGID_PKMNANCHOREDITSELF 181
|
||||
#define STRINGID_PKMNWASMADEDROWSY 182
|
||||
#define STRINGID_PKMNKNOCKEDOFF 183
|
||||
#define STRINGID_PKMNSWAPPEDABILITIES 184
|
||||
#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
|
||||
#define STRINGID_PKMNCANTUSEMOVESEALED 186
|
||||
#define STRINGID_PKMNWANTSGRUDGE 187
|
||||
#define STRINGID_PKMNLOSTPPGRUDGE 188
|
||||
#define STRINGID_PKMNSHROUDEDITSELF 189
|
||||
#define STRINGID_PKMNMOVEBOUNCED 190
|
||||
#define STRINGID_PKMNWAITSFORTARGET 191
|
||||
#define STRINGID_PKMNSNATCHEDMOVE 192
|
||||
#define STRINGID_PKMNMADEITRAIN 193
|
||||
#define STRINGID_PKMNRAISEDSPEED 194
|
||||
#define STRINGID_PKMNPROTECTEDBY 195
|
||||
#define STRINGID_PKMNPREVENTSUSAGE 196
|
||||
#define STRINGID_PKMNRESTOREDHPUSING 197
|
||||
#define STRINGID_PKMNCHANGEDTYPEWITH 198
|
||||
#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
|
||||
#define STRINGID_PKMNPREVENTSROMANCEWITH 200
|
||||
#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
|
||||
#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
|
||||
#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
|
||||
#define STRINGID_PKMNANCHORSITSELFWITH 204
|
||||
#define STRINGID_PKMNCUTSATTACKWITH 205
|
||||
#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
|
||||
#define STRINGID_PKMNHURTSWITH 207
|
||||
#define STRINGID_PKMNTRACED 208
|
||||
#define STRINGID_STATSHARPLY 209
|
||||
#define STRINGID_STATROSE 210
|
||||
#define STRINGID_STATHARSHLY 211
|
||||
#define STRINGID_STATFELL 212
|
||||
#define STRINGID_PKMNSSTATCHANGED 213
|
||||
#define STRINGID_PKMNSSTATCHANGED2 214
|
||||
#define STRINGID_PKMNSSTATCHANGED3 215
|
||||
#define STRINGID_PKMNSSTATCHANGED4 216
|
||||
#define STRINGID_CRITICALHIT 217
|
||||
#define STRINGID_ONEHITKO 218
|
||||
#define STRINGID_123POOF 219
|
||||
#define STRINGID_ANDELLIPSIS 220
|
||||
#define STRINGID_NOTVERYEFFECTIVE 221
|
||||
#define STRINGID_SUPEREFFECTIVE 222
|
||||
#define STRINGID_GOTAWAYSAFELY 223
|
||||
#define STRINGID_WILDPKMNFLED 224
|
||||
#define STRINGID_NORUNNINGFROMTRAINERS 225
|
||||
#define STRINGID_CANTESCAPE 226
|
||||
#define STRINGID_DONTLEAVEBIRCH 227
|
||||
#define STRINGID_BUTNOTHINGHAPPENED 228
|
||||
#define STRINGID_BUTITFAILED 229
|
||||
#define STRINGID_ITHURTCONFUSION 230
|
||||
#define STRINGID_MIRRORMOVEFAILED 231
|
||||
#define STRINGID_STARTEDTORAIN 232
|
||||
#define STRINGID_DOWNPOURSTARTED 233
|
||||
#define STRINGID_RAINCONTINUES 234
|
||||
#define STRINGID_DOWNPOURCONTINUES 235
|
||||
#define STRINGID_RAINSTOPPED 236
|
||||
#define STRINGID_SANDSTORMBREWED 237
|
||||
#define STRINGID_SANDSTORMRAGES 238
|
||||
#define STRINGID_SANDSTORMSUBSIDED 239
|
||||
#define STRINGID_SUNLIGHTGOTBRIGHT 240
|
||||
#define STRINGID_SUNLIGHTSTRONG 241
|
||||
#define STRINGID_SUNLIGHTFADED 242
|
||||
#define STRINGID_STARTEDHAIL 243
|
||||
#define STRINGID_HAILCONTINUES 244
|
||||
#define STRINGID_HAILSTOPPED 245
|
||||
#define STRINGID_FAILEDTOSPITUP 246
|
||||
#define STRINGID_FAILEDTOSWALLOW 247
|
||||
#define STRINGID_WINDBECAMEHEATWAVE 248
|
||||
#define STRINGID_STATCHANGESGONE 249
|
||||
#define STRINGID_COINSSCATTERED 250
|
||||
#define STRINGID_TOOWEAKFORSUBSTITUTE 251
|
||||
#define STRINGID_SHAREDPAIN 252
|
||||
#define STRINGID_BELLCHIMED 253
|
||||
#define STRINGID_FAINTINTHREE 254
|
||||
#define STRINGID_NOPPLEFT 255
|
||||
#define STRINGID_BUTNOPPLEFT 256
|
||||
#define STRINGID_PLAYERUSEDITEM 257
|
||||
#define STRINGID_WALLYUSEDITEM 258
|
||||
#define STRINGID_TRAINERBLOCKEDBALL 259
|
||||
#define STRINGID_DONTBEATHIEF 260
|
||||
#define STRINGID_ITDODGEDBALL 261
|
||||
#define STRINGID_YOUMISSEDPKMN 262
|
||||
#define STRINGID_PKMNBROKEFREE 263
|
||||
#define STRINGID_ITAPPEAREDCAUGHT 264
|
||||
#define STRINGID_AARGHALMOSTHADIT 265
|
||||
#define STRINGID_SHOOTSOCLOSE 266
|
||||
#define STRINGID_GOTCHAPKMNCAUGHT 267
|
||||
#define STRINGID_GOTCHAPKMNCAUGHT2 268
|
||||
#define STRINGID_GIVENICKNAMECAPTURED 269
|
||||
#define STRINGID_PKMNSENTTOPC 270
|
||||
#define STRINGID_PKMNDATAADDEDTODEX 271
|
||||
#define STRINGID_ITISRAINING 272
|
||||
#define STRINGID_SANDSTORMISRAGING 273
|
||||
#define STRINGID_CANTESCAPE2 274
|
||||
#define STRINGID_PKMNIGNORESASLEEP 275
|
||||
#define STRINGID_PKMNIGNOREDORDERS 276
|
||||
#define STRINGID_PKMNBEGANTONAP 277
|
||||
#define STRINGID_PKMNLOAFING 278
|
||||
#define STRINGID_PKMNWONTOBEY 279
|
||||
#define STRINGID_PKMNTURNEDAWAY 280
|
||||
#define STRINGID_PKMNPRETENDNOTNOTICE 281
|
||||
#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
|
||||
#define STRINGID_CREPTCLOSER 283
|
||||
#define STRINGID_CANTGETCLOSER 284
|
||||
#define STRINGID_PKMNWATCHINGCAREFULLY 285
|
||||
#define STRINGID_PKMNCURIOUSABOUTX 286
|
||||
#define STRINGID_PKMNENTHRALLEDBYX 287
|
||||
#define STRINGID_PKMNIGNOREDX 288
|
||||
#define STRINGID_THREWPOKEBLOCKATPKMN 289
|
||||
#define STRINGID_OUTOFSAFARIBALLS 290
|
||||
#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
|
||||
#define STRINGID_PKMNSITEMCUREDPOISON 292
|
||||
#define STRINGID_PKMNSITEMHEALEDBURN 293
|
||||
#define STRINGID_PKMNSITEMDEFROSTEDIT 294
|
||||
#define STRINGID_PKMNSITEMWOKEIT 295
|
||||
#define STRINGID_PKMNSITEMSNAPPEDOUT 296
|
||||
#define STRINGID_PKMNSITEMCUREDPROBLEM 297
|
||||
#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
|
||||
#define STRINGID_PKMNSITEMRESTOREDPP 299
|
||||
#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
|
||||
#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
|
||||
#define STRINGID_ITEMALLOWSONLYYMOVE 302
|
||||
#define STRINGID_PKMNHUNGONWITHX 303
|
||||
#define STRINGID_EMPTYSTRING3 304
|
||||
#define STRINGID_PKMNSXPREVENTSBURNS 305
|
||||
#define STRINGID_PKMNSXBLOCKSY 306
|
||||
#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
|
||||
#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
|
||||
#define STRINGID_PKMNSXPREVENTSYLOSS 309
|
||||
#define STRINGID_PKMNSXINFATUATEDY 310
|
||||
#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
|
||||
#define STRINGID_PKMNSXCUREDYPROBLEM 312
|
||||
#define STRINGID_ITSUCKEDLIQUIDOOZE 313
|
||||
#define STRINGID_PKMNTRANSFORMED 314
|
||||
#define STRINGID_ELECTRICITYWEAKENED 315
|
||||
#define STRINGID_FIREWEAKENED 316
|
||||
#define STRINGID_PKMNHIDUNDERWATER 317
|
||||
#define STRINGID_PKMNSPRANGUP 318
|
||||
#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
|
||||
#define STRINGID_XFOUNDONEY 320
|
||||
#define STRINGID_PLAYERDEFEATEDTRAINER1 321
|
||||
#define STRINGID_SOOTHINGAROMA 322
|
||||
#define STRINGID_ITEMSCANTBEUSEDNOW 323
|
||||
#define STRINGID_FORXCOMMAYZ 324
|
||||
#define STRINGID_USINGXTHEYOFZN 325
|
||||
#define STRINGID_PKMNUSEDXTOGETPUMPED 326
|
||||
#define STRINGID_PKMNSXMADEYUSELESS 327
|
||||
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
|
||||
#define STRINGID_EMPTYSTRING4 329
|
||||
#define STRINGID_ABOOSTED 330
|
||||
#define STRINGID_PKMNSXINTENSIFIEDSUN 331
|
||||
#define STRINGID_PKMNMAKESGROUNDMISS 332
|
||||
#define STRINGID_YOUTHROWABALLNOWRIGHT 333
|
||||
#define STRINGID_PKMNSXTOOKATTACK 334
|
||||
#define STRINGID_PKMNCHOSEXASDESTINY 335
|
||||
#define STRINGID_PKMNLOSTFOCUS 336
|
||||
#define STRINGID_USENEXTPKMN 337
|
||||
#define STRINGID_PKMNFLEDUSINGITS 338
|
||||
#define STRINGID_PKMNFLEDUSING 339
|
||||
#define STRINGID_PKMNWASDRAGGEDOUT 340
|
||||
#define STRINGID_PREVENTEDFROMWORKING 341
|
||||
#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
|
||||
#define STRINGID_TRAINER1USEDITEM 343
|
||||
#define STRINGID_BOXISFULL 344
|
||||
#define STRINGID_PKMNAVOIDEDATTACK 345
|
||||
#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
|
||||
#define STRINGID_PKMNSXPREVENTSFLINCHING 347
|
||||
#define STRINGID_PKMNALREADYHASBURN 348
|
||||
#define STRINGID_STATSWONTDECREASE2 349
|
||||
#define STRINGID_PKMNSXBLOCKSY2 350
|
||||
#define STRINGID_PKMNSXWOREOFF 351
|
||||
#define STRINGID_PKMNRAISEDDEFALITTLE 352
|
||||
#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
|
||||
#define STRINGID_THEWALLSHATTERED 354
|
||||
#define STRINGID_PKMNSXPREVENTSYSZ 355
|
||||
#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
|
||||
#define STRINGID_ATTACKERCANTESCAPE 357
|
||||
#define STRINGID_PKMNOBTAINEDX 358
|
||||
#define STRINGID_PKMNOBTAINEDX2 359
|
||||
#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
|
||||
#define STRINGID_BUTNOEFFECT 361
|
||||
#define STRINGID_PKMNSXHADNOEFFECTONY 362
|
||||
#define STRINGID_TWOENEMIESDEFEATED 363
|
||||
#define STRINGID_TRAINER2LOSETEXT 364
|
||||
#define STRINGID_PKMNINCAPABLEOFPOWER 365
|
||||
#define STRINGID_GLINTAPPEARSINEYE 366
|
||||
#define STRINGID_PKMNGETTINGINTOPOSITION 367
|
||||
#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
|
||||
#define STRINGID_PKMNEAGERFORMORE 369
|
||||
#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
|
||||
#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
|
||||
#define STRINGID_TIEDOPPONENTBYREFEREE 372
|
||||
#define STRINGID_QUESTIONFORFEITMATCH 373
|
||||
#define STRINGID_FORFEITEDMATCH 374
|
||||
#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
|
||||
#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
|
||||
#define STRINGID_PKMNBOXSOMEONESPCFULL 377
|
||||
#define STRINGID_PKMNBOXLANETTESPCFULL 378
|
||||
#define STRINGID_TRAINER1WINTEXT 379
|
||||
#define STRINGID_TRAINER2WINTEXT 380
|
||||
#define STRINGID_TRAINER1LOSETEXT 12
|
||||
#define STRINGID_PKMNGAINEDEXP 13
|
||||
#define STRINGID_PKMNGREWTOLV 14
|
||||
#define STRINGID_PKMNLEARNEDMOVE 15
|
||||
#define STRINGID_TRYTOLEARNMOVE1 16
|
||||
#define STRINGID_TRYTOLEARNMOVE2 17
|
||||
#define STRINGID_TRYTOLEARNMOVE3 18
|
||||
#define STRINGID_PKMNFORGOTMOVE 19
|
||||
#define STRINGID_STOPLEARNINGMOVE 20
|
||||
#define STRINGID_DIDNOTLEARNMOVE 21
|
||||
#define STRINGID_PKMNLEARNEDMOVE2 22
|
||||
#define STRINGID_ATTACKMISSED 23
|
||||
#define STRINGID_PKMNPROTECTEDITSELF 24
|
||||
#define STRINGID_STATSWONTINCREASE2 25
|
||||
#define STRINGID_AVOIDEDDAMAGE 26
|
||||
#define STRINGID_ITDOESNTAFFECT 27
|
||||
#define STRINGID_ATTACKERFAINTED 28
|
||||
#define STRINGID_TARGETFAINTED 29
|
||||
#define STRINGID_PLAYERGOTMONEY 30
|
||||
#define STRINGID_PLAYERWHITEOUT 31
|
||||
#define STRINGID_PLAYERWHITEOUT2 32
|
||||
#define STRINGID_PREVENTSESCAPE 33
|
||||
#define STRINGID_HITXTIMES 34
|
||||
#define STRINGID_PKMNFELLASLEEP 35
|
||||
#define STRINGID_PKMNMADESLEEP 36
|
||||
#define STRINGID_PKMNALREADYASLEEP 37
|
||||
#define STRINGID_PKMNALREADYASLEEP2 38
|
||||
#define STRINGID_PKMNWASNTAFFECTED 39
|
||||
#define STRINGID_PKMNWASPOISONED 40
|
||||
#define STRINGID_PKMNPOISONEDBY 41
|
||||
#define STRINGID_PKMNHURTBYPOISON 42
|
||||
#define STRINGID_PKMNALREADYPOISONED 43
|
||||
#define STRINGID_PKMNBADLYPOISONED 44
|
||||
#define STRINGID_PKMNENERGYDRAINED 45
|
||||
#define STRINGID_PKMNWASBURNED 46
|
||||
#define STRINGID_PKMNBURNEDBY 47
|
||||
#define STRINGID_PKMNHURTBYBURN 48
|
||||
#define STRINGID_PKMNWASFROZEN 49
|
||||
#define STRINGID_PKMNFROZENBY 50
|
||||
#define STRINGID_PKMNISFROZEN 51
|
||||
#define STRINGID_PKMNWASDEFROSTED 52
|
||||
#define STRINGID_PKMNWASDEFROSTED2 53
|
||||
#define STRINGID_PKMNWASDEFROSTEDBY 54
|
||||
#define STRINGID_PKMNWASPARALYZED 55
|
||||
#define STRINGID_PKMNWASPARALYZEDBY 56
|
||||
#define STRINGID_PKMNISPARALYZED 57
|
||||
#define STRINGID_PKMNISALREADYPARALYZED 58
|
||||
#define STRINGID_PKMNHEALEDPARALYSIS 59
|
||||
#define STRINGID_PKMNDREAMEATEN 60
|
||||
#define STRINGID_STATSWONTINCREASE 61
|
||||
#define STRINGID_STATSWONTDECREASE 62
|
||||
#define STRINGID_TEAMSTOPPEDWORKING 63
|
||||
#define STRINGID_FOESTOPPEDWORKING 64
|
||||
#define STRINGID_PKMNISCONFUSED 65
|
||||
#define STRINGID_PKMNHEALEDCONFUSION 66
|
||||
#define STRINGID_PKMNWASCONFUSED 67
|
||||
#define STRINGID_PKMNALREADYCONFUSED 68
|
||||
#define STRINGID_PKMNFELLINLOVE 69
|
||||
#define STRINGID_PKMNINLOVE 70
|
||||
#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
|
||||
#define STRINGID_PKMNBLOWNAWAY 72
|
||||
#define STRINGID_PKMNCHANGEDTYPE 73
|
||||
#define STRINGID_PKMNFLINCHED 74
|
||||
#define STRINGID_PKMNREGAINEDHEALTH 75
|
||||
#define STRINGID_PKMNHPFULL 76
|
||||
#define STRINGID_PKMNRAISEDSPDEF 77
|
||||
#define STRINGID_PKMNRAISEDDEF 78
|
||||
#define STRINGID_PKMNCOVEREDBYVEIL 79
|
||||
#define STRINGID_PKMNUSEDSAFEGUARD 80
|
||||
#define STRINGID_PKMNSAFEGUARDEXPIRED 81
|
||||
#define STRINGID_PKMNWENTTOSLEEP 82
|
||||
#define STRINGID_PKMNSLEPTHEALTHY 83
|
||||
#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
|
||||
#define STRINGID_PKMNTOOKSUNLIGHT 85
|
||||
#define STRINGID_PKMNLOWEREDHEAD 86
|
||||
#define STRINGID_PKMNISGLOWING 87
|
||||
#define STRINGID_PKMNFLEWHIGH 88
|
||||
#define STRINGID_PKMNDUGHOLE 89
|
||||
#define STRINGID_PKMNSQUEEZEDBYBIND 90
|
||||
#define STRINGID_PKMNTRAPPEDINVORTEX 91
|
||||
#define STRINGID_PKMNWRAPPEDBY 92
|
||||
#define STRINGID_PKMNCLAMPED 93
|
||||
#define STRINGID_PKMNHURTBY 94
|
||||
#define STRINGID_PKMNFREEDFROM 95
|
||||
#define STRINGID_PKMNCRASHED 96
|
||||
#define STRINGID_PKMNSHROUDEDINMIST 97
|
||||
#define STRINGID_PKMNPROTECTEDBYMIST 98
|
||||
#define STRINGID_PKMNGETTINGPUMPED 99
|
||||
#define STRINGID_PKMNHITWITHRECOIL 100
|
||||
#define STRINGID_PKMNPROTECTEDITSELF2 101
|
||||
#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
|
||||
#define STRINGID_PKMNPELTEDBYHAIL 103
|
||||
#define STRINGID_PKMNSEEDED 104
|
||||
#define STRINGID_PKMNEVADEDATTACK 105
|
||||
#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
|
||||
#define STRINGID_PKMNFASTASLEEP 107
|
||||
#define STRINGID_PKMNWOKEUP 108
|
||||
#define STRINGID_PKMNUPROARKEPTAWAKE 109
|
||||
#define STRINGID_PKMNWOKEUPINUPROAR 110
|
||||
#define STRINGID_PKMNCAUSEDUPROAR 111
|
||||
#define STRINGID_PKMNMAKINGUPROAR 112
|
||||
#define STRINGID_PKMNCALMEDDOWN 113
|
||||
#define STRINGID_PKMNCANTSLEEPINUPROAR 114
|
||||
#define STRINGID_PKMNSTOCKPILED 115
|
||||
#define STRINGID_PKMNCANTSTOCKPILE 116
|
||||
#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
|
||||
#define STRINGID_UPROARKEPTPKMNAWAKE 118
|
||||
#define STRINGID_PKMNSTAYEDAWAKEUSING 119
|
||||
#define STRINGID_PKMNSTORINGENERGY 120
|
||||
#define STRINGID_PKMNUNLEASHEDENERGY 121
|
||||
#define STRINGID_PKMNFATIGUECONFUSION 122
|
||||
#define STRINGID_PKMNPICKEDUPITEM 123
|
||||
#define STRINGID_PKMNUNAFFECTED 124
|
||||
#define STRINGID_PKMNTRANSFORMEDINTO 125
|
||||
#define STRINGID_PKMNMADESUBSTITUTE 126
|
||||
#define STRINGID_PKMNHASSUBSTITUTE 127
|
||||
#define STRINGID_SUBSTITUTEDAMAGED 128
|
||||
#define STRINGID_PKMNSUBSTITUTEFADED 129
|
||||
#define STRINGID_PKMNMUSTRECHARGE 130
|
||||
#define STRINGID_PKMNRAGEBUILDING 131
|
||||
#define STRINGID_PKMNMOVEWASDISABLED 132
|
||||
#define STRINGID_PKMNMOVEISDISABLED 133
|
||||
#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
|
||||
#define STRINGID_PKMNGOTENCORE 135
|
||||
#define STRINGID_PKMNENCOREENDED 136
|
||||
#define STRINGID_PKMNTOOKAIM 137
|
||||
#define STRINGID_PKMNSKETCHEDMOVE 138
|
||||
#define STRINGID_PKMNTRYINGTOTAKEFOE 139
|
||||
#define STRINGID_PKMNTOOKFOE 140
|
||||
#define STRINGID_PKMNREDUCEDPP 141
|
||||
#define STRINGID_PKMNSTOLEITEM 142
|
||||
#define STRINGID_TARGETCANTESCAPENOW 143
|
||||
#define STRINGID_PKMNFELLINTONIGHTMARE 144
|
||||
#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
|
||||
#define STRINGID_PKMNLAIDCURSE 146
|
||||
#define STRINGID_PKMNAFFLICTEDBYCURSE 147
|
||||
#define STRINGID_SPIKESSCATTERED 148
|
||||
#define STRINGID_PKMNHURTBYSPIKES 149
|
||||
#define STRINGID_PKMNIDENTIFIED 150
|
||||
#define STRINGID_PKMNPERISHCOUNTFELL 151
|
||||
#define STRINGID_PKMNBRACEDITSELF 152
|
||||
#define STRINGID_PKMNENDUREDHIT 153
|
||||
#define STRINGID_MAGNITUDESTRENGTH 154
|
||||
#define STRINGID_PKMNCUTHPMAXEDATTACK 155
|
||||
#define STRINGID_PKMNCOPIEDSTATCHANGES 156
|
||||
#define STRINGID_PKMNGOTFREE 157
|
||||
#define STRINGID_PKMNSHEDLEECHSEED 158
|
||||
#define STRINGID_PKMNBLEWAWAYSPIKES 159
|
||||
#define STRINGID_PKMNFLEDFROMBATTLE 160
|
||||
#define STRINGID_PKMNFORESAWATTACK 161
|
||||
#define STRINGID_PKMNTOOKATTACK 162
|
||||
#define STRINGID_PKMNATTACK 163
|
||||
#define STRINGID_PKMNCENTERATTENTION 164
|
||||
#define STRINGID_PKMNCHARGINGPOWER 165
|
||||
#define STRINGID_NATUREPOWERTURNEDINTO 166
|
||||
#define STRINGID_PKMNSTATUSNORMAL 167
|
||||
#define STRINGID_PKMNHASNOMOVESLEFT 168
|
||||
#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
|
||||
#define STRINGID_PKMNCANTUSEMOVETORMENT 170
|
||||
#define STRINGID_PKMNTIGHTENINGFOCUS 171
|
||||
#define STRINGID_PKMNFELLFORTAUNT 172
|
||||
#define STRINGID_PKMNCANTUSEMOVETAUNT 173
|
||||
#define STRINGID_PKMNREADYTOHELP 174
|
||||
#define STRINGID_PKMNSWITCHEDITEMS 175
|
||||
#define STRINGID_PKMNCOPIEDFOE 176
|
||||
#define STRINGID_PKMNMADEWISH 177
|
||||
#define STRINGID_PKMNWISHCAMETRUE 178
|
||||
#define STRINGID_PKMNPLANTEDROOTS 179
|
||||
#define STRINGID_PKMNABSORBEDNUTRIENTS 180
|
||||
#define STRINGID_PKMNANCHOREDITSELF 181
|
||||
#define STRINGID_PKMNWASMADEDROWSY 182
|
||||
#define STRINGID_PKMNKNOCKEDOFF 183
|
||||
#define STRINGID_PKMNSWAPPEDABILITIES 184
|
||||
#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
|
||||
#define STRINGID_PKMNCANTUSEMOVESEALED 186
|
||||
#define STRINGID_PKMNWANTSGRUDGE 187
|
||||
#define STRINGID_PKMNLOSTPPGRUDGE 188
|
||||
#define STRINGID_PKMNSHROUDEDITSELF 189
|
||||
#define STRINGID_PKMNMOVEBOUNCED 190
|
||||
#define STRINGID_PKMNWAITSFORTARGET 191
|
||||
#define STRINGID_PKMNSNATCHEDMOVE 192
|
||||
#define STRINGID_PKMNMADEITRAIN 193
|
||||
#define STRINGID_PKMNRAISEDSPEED 194
|
||||
#define STRINGID_PKMNPROTECTEDBY 195
|
||||
#define STRINGID_PKMNPREVENTSUSAGE 196
|
||||
#define STRINGID_PKMNRESTOREDHPUSING 197
|
||||
#define STRINGID_PKMNCHANGEDTYPEWITH 198
|
||||
#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
|
||||
#define STRINGID_PKMNPREVENTSROMANCEWITH 200
|
||||
#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
|
||||
#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
|
||||
#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
|
||||
#define STRINGID_PKMNANCHORSITSELFWITH 204
|
||||
#define STRINGID_PKMNCUTSATTACKWITH 205
|
||||
#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
|
||||
#define STRINGID_PKMNHURTSWITH 207
|
||||
#define STRINGID_PKMNTRACED 208
|
||||
#define STRINGID_STATSHARPLY 209
|
||||
#define STRINGID_STATROSE 210
|
||||
#define STRINGID_STATHARSHLY 211
|
||||
#define STRINGID_STATFELL 212
|
||||
#define STRINGID_PKMNSSTATCHANGED 213
|
||||
#define STRINGID_PKMNSSTATCHANGED2 214
|
||||
#define STRINGID_PKMNSSTATCHANGED3 215
|
||||
#define STRINGID_PKMNSSTATCHANGED4 216
|
||||
#define STRINGID_CRITICALHIT 217
|
||||
#define STRINGID_ONEHITKO 218
|
||||
#define STRINGID_123POOF 219
|
||||
#define STRINGID_ANDELLIPSIS 220
|
||||
#define STRINGID_NOTVERYEFFECTIVE 221
|
||||
#define STRINGID_SUPEREFFECTIVE 222
|
||||
#define STRINGID_GOTAWAYSAFELY 223
|
||||
#define STRINGID_WILDPKMNFLED 224
|
||||
#define STRINGID_NORUNNINGFROMTRAINERS 225
|
||||
#define STRINGID_CANTESCAPE 226
|
||||
#define STRINGID_DONTLEAVEBIRCH 227
|
||||
#define STRINGID_BUTNOTHINGHAPPENED 228
|
||||
#define STRINGID_BUTITFAILED 229
|
||||
#define STRINGID_ITHURTCONFUSION 230
|
||||
#define STRINGID_MIRRORMOVEFAILED 231
|
||||
#define STRINGID_STARTEDTORAIN 232
|
||||
#define STRINGID_DOWNPOURSTARTED 233
|
||||
#define STRINGID_RAINCONTINUES 234
|
||||
#define STRINGID_DOWNPOURCONTINUES 235
|
||||
#define STRINGID_RAINSTOPPED 236
|
||||
#define STRINGID_SANDSTORMBREWED 237
|
||||
#define STRINGID_SANDSTORMRAGES 238
|
||||
#define STRINGID_SANDSTORMSUBSIDED 239
|
||||
#define STRINGID_SUNLIGHTGOTBRIGHT 240
|
||||
#define STRINGID_SUNLIGHTSTRONG 241
|
||||
#define STRINGID_SUNLIGHTFADED 242
|
||||
#define STRINGID_STARTEDHAIL 243
|
||||
#define STRINGID_HAILCONTINUES 244
|
||||
#define STRINGID_HAILSTOPPED 245
|
||||
#define STRINGID_FAILEDTOSPITUP 246
|
||||
#define STRINGID_FAILEDTOSWALLOW 247
|
||||
#define STRINGID_WINDBECAMEHEATWAVE 248
|
||||
#define STRINGID_STATCHANGESGONE 249
|
||||
#define STRINGID_COINSSCATTERED 250
|
||||
#define STRINGID_TOOWEAKFORSUBSTITUTE 251
|
||||
#define STRINGID_SHAREDPAIN 252
|
||||
#define STRINGID_BELLCHIMED 253
|
||||
#define STRINGID_FAINTINTHREE 254
|
||||
#define STRINGID_NOPPLEFT 255
|
||||
#define STRINGID_BUTNOPPLEFT 256
|
||||
#define STRINGID_PLAYERUSEDITEM 257
|
||||
#define STRINGID_WALLYUSEDITEM 258
|
||||
#define STRINGID_TRAINERBLOCKEDBALL 259
|
||||
#define STRINGID_DONTBEATHIEF 260
|
||||
#define STRINGID_ITDODGEDBALL 261
|
||||
#define STRINGID_YOUMISSEDPKMN 262
|
||||
#define STRINGID_PKMNBROKEFREE 263
|
||||
#define STRINGID_ITAPPEAREDCAUGHT 264
|
||||
#define STRINGID_AARGHALMOSTHADIT 265
|
||||
#define STRINGID_SHOOTSOCLOSE 266
|
||||
#define STRINGID_GOTCHAPKMNCAUGHT 267
|
||||
#define STRINGID_GOTCHAPKMNCAUGHT2 268
|
||||
#define STRINGID_GIVENICKNAMECAPTURED 269
|
||||
#define STRINGID_PKMNSENTTOPC 270
|
||||
#define STRINGID_PKMNDATAADDEDTODEX 271
|
||||
#define STRINGID_ITISRAINING 272
|
||||
#define STRINGID_SANDSTORMISRAGING 273
|
||||
#define STRINGID_CANTESCAPE2 274
|
||||
#define STRINGID_PKMNIGNORESASLEEP 275
|
||||
#define STRINGID_PKMNIGNOREDORDERS 276
|
||||
#define STRINGID_PKMNBEGANTONAP 277
|
||||
#define STRINGID_PKMNLOAFING 278
|
||||
#define STRINGID_PKMNWONTOBEY 279
|
||||
#define STRINGID_PKMNTURNEDAWAY 280
|
||||
#define STRINGID_PKMNPRETENDNOTNOTICE 281
|
||||
#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
|
||||
#define STRINGID_CREPTCLOSER 283
|
||||
#define STRINGID_CANTGETCLOSER 284
|
||||
#define STRINGID_PKMNWATCHINGCAREFULLY 285
|
||||
#define STRINGID_PKMNCURIOUSABOUTX 286
|
||||
#define STRINGID_PKMNENTHRALLEDBYX 287
|
||||
#define STRINGID_PKMNIGNOREDX 288
|
||||
#define STRINGID_THREWPOKEBLOCKATPKMN 289
|
||||
#define STRINGID_OUTOFSAFARIBALLS 290
|
||||
#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
|
||||
#define STRINGID_PKMNSITEMCUREDPOISON 292
|
||||
#define STRINGID_PKMNSITEMHEALEDBURN 293
|
||||
#define STRINGID_PKMNSITEMDEFROSTEDIT 294
|
||||
#define STRINGID_PKMNSITEMWOKEIT 295
|
||||
#define STRINGID_PKMNSITEMSNAPPEDOUT 296
|
||||
#define STRINGID_PKMNSITEMCUREDPROBLEM 297
|
||||
#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
|
||||
#define STRINGID_PKMNSITEMRESTOREDPP 299
|
||||
#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
|
||||
#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
|
||||
#define STRINGID_ITEMALLOWSONLYYMOVE 302
|
||||
#define STRINGID_PKMNHUNGONWITHX 303
|
||||
#define STRINGID_EMPTYSTRING3 304
|
||||
#define STRINGID_PKMNSXPREVENTSBURNS 305
|
||||
#define STRINGID_PKMNSXBLOCKSY 306
|
||||
#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
|
||||
#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
|
||||
#define STRINGID_PKMNSXPREVENTSYLOSS 309
|
||||
#define STRINGID_PKMNSXINFATUATEDY 310
|
||||
#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
|
||||
#define STRINGID_PKMNSXCUREDYPROBLEM 312
|
||||
#define STRINGID_ITSUCKEDLIQUIDOOZE 313
|
||||
#define STRINGID_PKMNTRANSFORMED 314
|
||||
#define STRINGID_ELECTRICITYWEAKENED 315
|
||||
#define STRINGID_FIREWEAKENED 316
|
||||
#define STRINGID_PKMNHIDUNDERWATER 317
|
||||
#define STRINGID_PKMNSPRANGUP 318
|
||||
#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
|
||||
#define STRINGID_XFOUNDONEY 320
|
||||
#define STRINGID_PLAYERDEFEATEDTRAINER1 321
|
||||
#define STRINGID_SOOTHINGAROMA 322
|
||||
#define STRINGID_ITEMSCANTBEUSEDNOW 323
|
||||
#define STRINGID_FORXCOMMAYZ 324
|
||||
#define STRINGID_USINGXTHEYOFZN 325
|
||||
#define STRINGID_PKMNUSEDXTOGETPUMPED 326
|
||||
#define STRINGID_PKMNSXMADEYUSELESS 327
|
||||
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
|
||||
#define STRINGID_EMPTYSTRING4 329
|
||||
#define STRINGID_ABOOSTED 330
|
||||
#define STRINGID_PKMNSXINTENSIFIEDSUN 331
|
||||
#define STRINGID_PKMNMAKESGROUNDMISS 332
|
||||
#define STRINGID_YOUTHROWABALLNOWRIGHT 333
|
||||
#define STRINGID_PKMNSXTOOKATTACK 334
|
||||
#define STRINGID_PKMNCHOSEXASDESTINY 335
|
||||
#define STRINGID_PKMNLOSTFOCUS 336
|
||||
#define STRINGID_USENEXTPKMN 337
|
||||
#define STRINGID_PKMNFLEDUSINGITS 338
|
||||
#define STRINGID_PKMNFLEDUSING 339
|
||||
#define STRINGID_PKMNWASDRAGGEDOUT 340
|
||||
#define STRINGID_PREVENTEDFROMWORKING 341
|
||||
#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
|
||||
#define STRINGID_TRAINER1USEDITEM 343
|
||||
#define STRINGID_BOXISFULL 344
|
||||
#define STRINGID_PKMNAVOIDEDATTACK 345
|
||||
#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
|
||||
#define STRINGID_PKMNSXPREVENTSFLINCHING 347
|
||||
#define STRINGID_PKMNALREADYHASBURN 348
|
||||
#define STRINGID_STATSWONTDECREASE2 349
|
||||
#define STRINGID_PKMNSXBLOCKSY2 350
|
||||
#define STRINGID_PKMNSXWOREOFF 351
|
||||
#define STRINGID_PKMNRAISEDDEFALITTLE 352
|
||||
#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
|
||||
#define STRINGID_THEWALLSHATTERED 354
|
||||
#define STRINGID_PKMNSXPREVENTSYSZ 355
|
||||
#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
|
||||
#define STRINGID_ATTACKERCANTESCAPE 357
|
||||
#define STRINGID_PKMNOBTAINEDX 358
|
||||
#define STRINGID_PKMNOBTAINEDX2 359
|
||||
#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
|
||||
#define STRINGID_BUTNOEFFECT 361
|
||||
#define STRINGID_PKMNSXHADNOEFFECTONY 362
|
||||
#define STRINGID_TWOENEMIESDEFEATED 363
|
||||
#define STRINGID_TRAINER2LOSETEXT 364
|
||||
#define STRINGID_PKMNINCAPABLEOFPOWER 365
|
||||
#define STRINGID_GLINTAPPEARSINEYE 366
|
||||
#define STRINGID_PKMNGETTINGINTOPOSITION 367
|
||||
#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
|
||||
#define STRINGID_PKMNEAGERFORMORE 369
|
||||
#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
|
||||
#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
|
||||
#define STRINGID_TIEDOPPONENTBYREFEREE 372
|
||||
#define STRINGID_QUESTIONFORFEITMATCH 373
|
||||
#define STRINGID_FORFEITEDMATCH 374
|
||||
#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
|
||||
#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
|
||||
#define STRINGID_PKMNBOXSOMEONESPCFULL 377
|
||||
#define STRINGID_PKMNBOXLANETTESPCFULL 378
|
||||
#define STRINGID_TRAINER1WINTEXT 379
|
||||
#define STRINGID_TRAINER2WINTEXT 380
|
||||
|
||||
#define STRINGID_ENDUREDSTURDY 381
|
||||
#define STRINGID_POWERHERB 382
|
||||
|
||||
@ -10,11 +10,11 @@ extern const u8 EventScript_275D0C[];
|
||||
extern const u8 EventScript_275D1F[];
|
||||
extern const u8 EventScript_275D2E[];
|
||||
extern const u8 EventScript_271354[];
|
||||
extern const u8 EventScript_2713C2[];
|
||||
extern const u8 EventScript_DoTainerBattle[];
|
||||
extern const u8 EventScript_TryDoDoubleTrainerBattle[];
|
||||
extern const u8 EventScript_271362[];
|
||||
extern const u8 EventScript_TryDoNormalTrainerBattle[];
|
||||
extern const u8 EventScript_TryDoDoubleRematchBattle[];
|
||||
extern const u8 EventScript_2713D1[];
|
||||
extern const u8 EventScript_TryDoRematchBattle[];
|
||||
extern const u8 EventScript_SecretPower1[];
|
||||
extern const u8 EventScript_SecretPower2[];
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#define AGBPrintInit()
|
||||
#define AGBPutc(cChr)
|
||||
#define AGBPrint(pBuf)
|
||||
#define AGBPrintf(pBuf, ...)
|
||||
#define AGBPrintf(pBuf, ...)
|
||||
#define AGBPrintFlush1Block()
|
||||
#define AGBPrintFlush()
|
||||
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
|
||||
@ -21,30 +21,30 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
|
||||
|
||||
#undef AGB_ASSERT
|
||||
#ifdef NDEBUG
|
||||
#define AGB_ASSERT(exp)
|
||||
#define AGB_ASSERT(exp)
|
||||
#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
|
||||
|
||||
#undef AGB_WARNING
|
||||
#ifdef NDEBUG
|
||||
#define AGB_WARNING(exp)
|
||||
#define AGB_WARNING(exp)
|
||||
#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
|
||||
|
||||
// for matching purposes
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define AGB_ASSERT_EX(exp, file, line)
|
||||
#define AGB_ASSERT_EX(exp, file, line)
|
||||
#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
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define AGB_WARNING_EX(exp, file, line)
|
||||
#define AGB_WARNING_EX(exp, file, line)
|
||||
#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 // GUARD_GBA_ISAGBPRINT_H
|
||||
|
||||
@ -294,10 +294,10 @@ struct PlayerAvatar
|
||||
/*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
|
||||
/*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
|
||||
/*0x0B*/ u8 bikeSpeed;
|
||||
// acro bike only
|
||||
// acro bike only
|
||||
/*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
|
||||
/*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
|
||||
// these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
|
||||
// these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
|
||||
/*0x14*/ u8 dirTimerHistory[8];
|
||||
/*0x1C*/ u8 abStartSelectTimerHistory[8];
|
||||
};
|
||||
|
||||
@ -3360,7 +3360,7 @@ extern const u32 gRaySceneHushBg_Gfx[];
|
||||
extern const u32 gRaySceneHushRing_Gfx[];
|
||||
|
||||
// Pokeballs
|
||||
extern const u32 gItemIcon_MasterBall[];
|
||||
extern const u32 gItemIcon_MasterBall[];
|
||||
extern const u32 gItemIconPalette_MasterBall[];
|
||||
extern const u32 gItemIcon_UltraBall[];
|
||||
extern const u32 gItemIconPalette_UltraBall[];
|
||||
|
||||
@ -17,10 +17,10 @@ enum PokemonSummaryScreenMode
|
||||
|
||||
enum PokemonSummaryScreenPage
|
||||
{
|
||||
PSS_PAGE_INFO,
|
||||
PSS_PAGE_SKILLS,
|
||||
PSS_PAGE_BATTLE_MOVES,
|
||||
PSS_PAGE_CONTEST_MOVES,
|
||||
PSS_PAGE_INFO,
|
||||
PSS_PAGE_SKILLS,
|
||||
PSS_PAGE_BATTLE_MOVES,
|
||||
PSS_PAGE_CONTEST_MOVES,
|
||||
};
|
||||
|
||||
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
|
||||
|
||||
34
include/roulette.h
Executable file
34
include/roulette.h
Executable file
@ -0,0 +1,34 @@
|
||||
#ifndef GUARD_ROULETTE_H
|
||||
#define GUARD_ROULETTE_H
|
||||
|
||||
struct UnkStruct1
|
||||
{
|
||||
u16 var00;
|
||||
u16 var02;
|
||||
u8 var04;
|
||||
u8 var05;
|
||||
u8 var06;
|
||||
s8 var07_0:5;
|
||||
s8 var07_5:2;
|
||||
s8 var07_7:1;
|
||||
};
|
||||
|
||||
struct UnkStruct3
|
||||
{
|
||||
u8 var00_0:7;
|
||||
u8 var00_7:1;
|
||||
u8 var01;
|
||||
s8 var02;
|
||||
s8 var03;
|
||||
struct UnkStruct1 var04;
|
||||
};
|
||||
|
||||
struct UnkStruct0
|
||||
{
|
||||
u8 var00;
|
||||
u8 var01;
|
||||
u16 var02; //flag for each UnkStruct3
|
||||
struct UnkStruct3 var04[0x10];
|
||||
};
|
||||
|
||||
#endif // GUARD_ROULETTE_H
|
||||
@ -1,17 +1,46 @@
|
||||
#ifndef GUARD_ROULETTE_UTIL_H
|
||||
#define GUARD_ROULETTE_UTIL_H
|
||||
|
||||
struct InnerStruct203CF18_3
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
s8 unk7_0:4;
|
||||
s8 unk7_4:2;
|
||||
s8 unk7_6:1;
|
||||
s8 unk7_7:1;
|
||||
};
|
||||
|
||||
struct InnerStruct203CF18_2
|
||||
{
|
||||
u8 unk0;
|
||||
u8 unk1_0:4;
|
||||
u8 unk1_4:1;
|
||||
s8 unk1_5:1;
|
||||
s8 unk1_6:1;
|
||||
u32 unk1_7:1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
struct InnerStruct203CF18_3 unk4;
|
||||
};
|
||||
|
||||
// structures
|
||||
struct InnerStruct203CF18
|
||||
{
|
||||
u8 filler[0xC4];
|
||||
u16 unk0;
|
||||
struct InnerStruct203CF18_2 unk4[16];
|
||||
};
|
||||
|
||||
void sub_8151B68(struct InnerStruct203CF18 *, const u8*);
|
||||
int sub_8151B68(struct InnerStruct203CF18 *, const struct InnerStruct203CF18_3 *);
|
||||
void sub_8151B3C(struct InnerStruct203CF18 *);
|
||||
void sub_8151CA8(struct InnerStruct203CF18 *, u8, u8);
|
||||
void sub_8151C50(struct InnerStruct203CF18 *, u8, u8);
|
||||
void sub_8151D28(struct InnerStruct203CF18 *, u8, u8);
|
||||
void sub_8151CA8(struct InnerStruct203CF18 *, u16, u8);
|
||||
void sub_8151C50(struct InnerStruct203CF18 *, u16, u8);
|
||||
void sub_8151D28(struct InnerStruct203CF18 *, u16, u8);
|
||||
void sub_8151E50(struct InnerStruct203CF18 *);
|
||||
void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
|
||||
void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
|
||||
|
||||
#endif // GUARD_ROULETTE_UTIL_H
|
||||
|
||||
@ -25,8 +25,8 @@ struct UnkSaveSection
|
||||
|
||||
struct SaveSectionOffsets
|
||||
{
|
||||
u16 toAdd;
|
||||
u16 size;
|
||||
u16 toAdd;
|
||||
u16 size;
|
||||
};
|
||||
|
||||
// Emerald changes this definition to be the sectors per slot.
|
||||
@ -48,7 +48,7 @@ enum
|
||||
SAVE_NORMAL,
|
||||
SAVE_LINK,
|
||||
//EREADER_SAVE, // deprecated in Emerald
|
||||
SAVE_LINK2, // unknown 2nd link save
|
||||
SAVE_LINK2, // unknown 2nd link save
|
||||
SAVE_HALL_OF_FAME,
|
||||
SAVE_OVERWRITE_DIFFERENT_FILE,
|
||||
SAVE_HALL_OF_FAME_ERASE_BEFORE // unused
|
||||
|
||||
@ -17,7 +17,7 @@ enum
|
||||
X_COORD,
|
||||
Y_COORD,
|
||||
ANIM_NUM,
|
||||
LAYER_TYPE
|
||||
LAYER_TYPE
|
||||
};
|
||||
|
||||
struct MartInfo
|
||||
@ -32,16 +32,16 @@ struct MartInfo
|
||||
|
||||
struct ShopData
|
||||
{
|
||||
/*0x0000*/ u16 tilemapBuffers[4][0x400];
|
||||
/*0x2000*/ u32 totalCost;
|
||||
/*0x2004*/ u16 itemsShowed;
|
||||
/*0x2006*/ u16 selectedRow;
|
||||
/*0x2008*/ u16 scrollOffset;
|
||||
/*0x200A*/ u8 maxQuantity;
|
||||
/*0x200B*/ u8 scrollIndicatorsTaskId;
|
||||
/*0x200C*/ u8 iconSlot;
|
||||
/*0x200D*/ u8 itemSpriteIds[2];
|
||||
/*0x2010*/ s16 viewportObjects[16][5];
|
||||
/*0x0000*/ u16 tilemapBuffers[4][0x400];
|
||||
/*0x2000*/ u32 totalCost;
|
||||
/*0x2004*/ u16 itemsShowed;
|
||||
/*0x2006*/ u16 selectedRow;
|
||||
/*0x2008*/ u16 scrollOffset;
|
||||
/*0x200A*/ u8 maxQuantity;
|
||||
/*0x200B*/ u8 scrollIndicatorsTaskId;
|
||||
/*0x200C*/ u8 iconSlot;
|
||||
/*0x200D*/ u8 itemSpriteIds[2];
|
||||
/*0x2010*/ s16 viewportObjects[16][5];
|
||||
};
|
||||
|
||||
void CreatePokemartMenu(const u16 *);
|
||||
|
||||
@ -1034,7 +1034,7 @@ extern const u8 gText_DexSortAtoZDescription[];
|
||||
extern const u8 gText_DexSortHeaviestDescription[];
|
||||
extern const u8 gText_DexSortLightestDescription[];
|
||||
extern const u8 gText_DexSortTallestDescription[];
|
||||
extern const u8 ggText_DexSortSmallestDescription[];
|
||||
extern const u8 gText_DexSortSmallestDescription[];
|
||||
extern const u8 gText_DexEmptyString[];
|
||||
extern const u8 gText_DexSearchDontSpecify[];
|
||||
extern const u8 gText_DexSearchTypeNone[];
|
||||
|
||||
@ -19,7 +19,7 @@ extern u8 gApproachingTrainerId;
|
||||
bool8 CheckForTrainersWantingBattle(void);
|
||||
void sub_80B4578(struct EventObject *var);
|
||||
void EndTrainerApproach(void);
|
||||
void sub_80B45D0(void);
|
||||
void TryPrepareSecondApproachingTrainer(void);
|
||||
u8 FldEff_ExclamationMarkIcon(void);
|
||||
u8 FldEff_QuestionMarkIcon(void);
|
||||
u8 FldEff_HeartIcon(void);
|
||||
|
||||
@ -43,7 +43,7 @@ SECTIONS {
|
||||
{
|
||||
asm/crt0.o(.text);
|
||||
src/main.o(.text);
|
||||
src/malloc.o(.text);
|
||||
src/alloc.o(.text);
|
||||
src/dma3_manager.o(.text);
|
||||
src/gpu_regs.o(.text);
|
||||
src/bg.o(.text);
|
||||
@ -158,7 +158,7 @@ SECTIONS {
|
||||
asm/battle_anim_effects_1.o(.text);
|
||||
asm/battle_anim_effects_2.o(.text);
|
||||
asm/water.o(.text);
|
||||
asm/fire.o(.text);
|
||||
src/fire.o(.text);
|
||||
asm/electric.o(.text);
|
||||
asm/ice.o(.text);
|
||||
src/fight.o(.text);
|
||||
@ -214,7 +214,7 @@ SECTIONS {
|
||||
src/battle_message.o(.text);
|
||||
asm/cable_car.o(.text);
|
||||
src/math_util.o(.text);
|
||||
asm/roulette_util.o(.text);
|
||||
src/roulette_util.o(.text);
|
||||
src/rom_81520A8.o(.text);
|
||||
src/save.o(.text);
|
||||
src/mystery_event_script.o(.text);
|
||||
|
||||
210
src/alloc.c
Normal file
210
src/alloc.c
Normal file
@ -0,0 +1,210 @@
|
||||
#include "global.h"
|
||||
|
||||
static void *sHeapStart;
|
||||
static u32 sHeapSize;
|
||||
static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss)
|
||||
|
||||
#define MALLOC_SYSTEM_ID 0xA3A3
|
||||
|
||||
struct MemBlock {
|
||||
// Whether this block is currently allocated.
|
||||
bool16 flag;
|
||||
|
||||
// Magic number used for error checking. Should equal MALLOC_SYSTEM_ID.
|
||||
u16 magic;
|
||||
|
||||
// Size of the block (not including this header struct).
|
||||
u32 size;
|
||||
|
||||
// Previous block pointer. Equals sHeapStart if this is the first block.
|
||||
struct MemBlock *prev;
|
||||
|
||||
// Next block pointer. Equals sHeapStart if this is the last block.
|
||||
struct MemBlock *next;
|
||||
|
||||
// Data in the memory block. (Arrays of length 0 are a GNU extension.)
|
||||
u8 data[0];
|
||||
};
|
||||
|
||||
void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size)
|
||||
{
|
||||
struct MemBlock *header = (struct MemBlock *)block;
|
||||
|
||||
header->flag = FALSE;
|
||||
header->magic = MALLOC_SYSTEM_ID;
|
||||
header->size = size;
|
||||
header->prev = prev;
|
||||
header->next = next;
|
||||
}
|
||||
|
||||
void PutFirstMemBlockHeader(void *block, u32 size)
|
||||
{
|
||||
PutMemBlockHeader(block, (struct MemBlock *)block, (struct MemBlock *)block, size - sizeof(struct MemBlock));
|
||||
}
|
||||
|
||||
void *AllocInternal(void *heapStart, u32 size)
|
||||
{
|
||||
struct MemBlock *pos = (struct MemBlock *)heapStart;
|
||||
struct MemBlock *head = pos;
|
||||
struct MemBlock *splitBlock;
|
||||
u32 foundBlockSize;
|
||||
|
||||
// Alignment
|
||||
if (size & 3)
|
||||
size = 4 * ((size / 4) + 1);
|
||||
|
||||
for (;;) {
|
||||
// Loop through the blocks looking for unused block that's big enough.
|
||||
|
||||
if (!pos->flag) {
|
||||
foundBlockSize = pos->size;
|
||||
|
||||
if (foundBlockSize >= size) {
|
||||
if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) {
|
||||
// The block isn't much bigger than the requested size,
|
||||
// so just use it.
|
||||
pos->flag = TRUE;
|
||||
} else {
|
||||
// The block is significantly bigger than the requested
|
||||
// size, so split the rest into a separate block.
|
||||
foundBlockSize -= sizeof(struct MemBlock);
|
||||
foundBlockSize -= size;
|
||||
|
||||
splitBlock = (struct MemBlock *)(pos->data + size);
|
||||
|
||||
pos->flag = TRUE;
|
||||
pos->size = size;
|
||||
|
||||
PutMemBlockHeader(splitBlock, pos, pos->next, foundBlockSize);
|
||||
|
||||
pos->next = splitBlock;
|
||||
|
||||
if (splitBlock->next != head)
|
||||
splitBlock->next->prev = splitBlock;
|
||||
}
|
||||
|
||||
return pos->data;
|
||||
}
|
||||
}
|
||||
|
||||
if (pos->next == head)
|
||||
return NULL;
|
||||
|
||||
pos = pos->next;
|
||||
}
|
||||
}
|
||||
|
||||
void FreeInternal(void *heapStart, void *pointer)
|
||||
{
|
||||
if (pointer) {
|
||||
struct MemBlock *head = (struct MemBlock *)heapStart;
|
||||
struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock));
|
||||
block->flag = FALSE;
|
||||
|
||||
// If the freed block isn't the last one, merge with the next block
|
||||
// if it's not in use.
|
||||
if (block->next != head) {
|
||||
if (!block->next->flag) {
|
||||
block->size += sizeof(struct MemBlock) + block->next->size;
|
||||
block->next->magic = 0;
|
||||
block->next = block->next->next;
|
||||
if (block->next != head)
|
||||
block->next->prev = block;
|
||||
}
|
||||
}
|
||||
|
||||
// If the freed block isn't the first one, merge with the previous block
|
||||
// if it's not in use.
|
||||
if (block != head) {
|
||||
if (!block->prev->flag) {
|
||||
block->prev->next = block->next;
|
||||
|
||||
if (block->next != head)
|
||||
block->next->prev = block->prev;
|
||||
|
||||
block->magic = 0;
|
||||
block->prev->size += sizeof(struct MemBlock) + block->size;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void *AllocZeroedInternal(void *heapStart, u32 size)
|
||||
{
|
||||
void *mem = AllocInternal(heapStart, size);
|
||||
|
||||
if (mem != NULL) {
|
||||
if (size & 3)
|
||||
size = 4 * ((size / 4) + 1);
|
||||
|
||||
CpuFill32(0, mem, size);
|
||||
}
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
bool32 CheckMemBlockInternal(void *heapStart, void *pointer)
|
||||
{
|
||||
struct MemBlock *head = (struct MemBlock *)heapStart;
|
||||
struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock));
|
||||
|
||||
if (block->magic != MALLOC_SYSTEM_ID)
|
||||
return FALSE;
|
||||
|
||||
if (block->next->magic != MALLOC_SYSTEM_ID)
|
||||
return FALSE;
|
||||
|
||||
if (block->next != head && block->next->prev != block)
|
||||
return FALSE;
|
||||
|
||||
if (block->prev->magic != MALLOC_SYSTEM_ID)
|
||||
return FALSE;
|
||||
|
||||
if (block->prev != head && block->prev->next != block)
|
||||
return FALSE;
|
||||
|
||||
if (block->next != head && block->next != (struct MemBlock *)(block->data + block->size))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void InitHeap(void *heapStart, u32 heapSize)
|
||||
{
|
||||
sHeapStart = heapStart;
|
||||
sHeapSize = heapSize;
|
||||
PutFirstMemBlockHeader(heapStart, heapSize);
|
||||
}
|
||||
|
||||
void *Alloc(u32 size)
|
||||
{
|
||||
AllocInternal(sHeapStart, size);
|
||||
}
|
||||
|
||||
void *AllocZeroed(u32 size)
|
||||
{
|
||||
AllocZeroedInternal(sHeapStart, size);
|
||||
}
|
||||
|
||||
void Free(void *pointer)
|
||||
{
|
||||
FreeInternal(sHeapStart, pointer);
|
||||
}
|
||||
|
||||
bool32 CheckMemBlock(void *pointer)
|
||||
{
|
||||
return CheckMemBlockInternal(sHeapStart, pointer);
|
||||
}
|
||||
|
||||
bool32 CheckHeap()
|
||||
{
|
||||
struct MemBlock *pos = (struct MemBlock *)sHeapStart;
|
||||
|
||||
do {
|
||||
if (!CheckMemBlockInternal(sHeapStart, pos->data))
|
||||
return FALSE;
|
||||
pos = pos->next;
|
||||
} while (pos != (struct MemBlock *)sHeapStart);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
320
src/apprentice.c
320
src/apprentice.c
@ -9,7 +9,7 @@
|
||||
#include "item.h"
|
||||
#include "item_menu.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "new_game.h"
|
||||
#include "party_menu.h"
|
||||
@ -2047,172 +2047,172 @@ NAKED
|
||||
static void sub_81A1224(void)
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r9\n\
|
||||
mov r6, r8\n\
|
||||
push {r6,r7}\n\
|
||||
ldr r1, =gSaveBlock2Ptr\n\
|
||||
ldr r3, [r1]\n\
|
||||
adds r0, r3, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
adds r7, r1, 0\n\
|
||||
cmp r0, 0x2\n\
|
||||
bhi _081A1242\n\
|
||||
b _081A1362\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r9\n\
|
||||
mov r6, r8\n\
|
||||
push {r6,r7}\n\
|
||||
ldr r1, =gSaveBlock2Ptr\n\
|
||||
ldr r3, [r1]\n\
|
||||
adds r0, r3, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
adds r7, r1, 0\n\
|
||||
cmp r0, 0x2\n\
|
||||
bhi _081A1242\n\
|
||||
b _081A1362\n\
|
||||
_081A1242:\n\
|
||||
movs r5, 0\n\
|
||||
movs r2, 0\n\
|
||||
adds r0, r3, 0\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 30\n\
|
||||
ldr r1, =gSpecialVar_0x8005\n\
|
||||
mov r12, r1\n\
|
||||
ldr r1, =gSpecialVar_Result\n\
|
||||
mov r8, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _081A127C\n\
|
||||
adds r3, r7, 0\n\
|
||||
movs r5, 0\n\
|
||||
movs r2, 0\n\
|
||||
adds r0, r3, 0\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 30\n\
|
||||
ldr r1, =gSpecialVar_0x8005\n\
|
||||
mov r12, r1\n\
|
||||
ldr r1, =gSpecialVar_Result\n\
|
||||
mov r8, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _081A127C\n\
|
||||
adds r3, r7, 0\n\
|
||||
_081A125C:\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r5, r0, 24\n\
|
||||
adds r0, r2, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
cmp r2, 0x8\n\
|
||||
bhi _081A127C\n\
|
||||
ldr r0, [r3]\n\
|
||||
lsls r1, r2, 2\n\
|
||||
adds r0, r1\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 30\n\
|
||||
cmp r0, 0\n\
|
||||
bne _081A125C\n\
|
||||
adds r0, r5, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r5, r0, 24\n\
|
||||
adds r0, r2, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
cmp r2, 0x8\n\
|
||||
bhi _081A127C\n\
|
||||
ldr r0, [r3]\n\
|
||||
lsls r1, r2, 2\n\
|
||||
adds r0, r1\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 30\n\
|
||||
cmp r0, 0\n\
|
||||
bne _081A125C\n\
|
||||
_081A127C:\n\
|
||||
movs r4, 0\n\
|
||||
cmp r4, r5\n\
|
||||
bcs _081A1322\n\
|
||||
ldr r0, [r7]\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
cmp r4, r0\n\
|
||||
bge _081A1322\n\
|
||||
adds r6, r7, 0\n\
|
||||
mov r9, r4\n\
|
||||
movs r4, 0\n\
|
||||
cmp r4, r5\n\
|
||||
bcs _081A1322\n\
|
||||
ldr r0, [r7]\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
cmp r4, r0\n\
|
||||
bge _081A1322\n\
|
||||
adds r6, r7, 0\n\
|
||||
mov r9, r4\n\
|
||||
_081A1296:\n\
|
||||
ldr r3, [r6]\n\
|
||||
lsls r0, r4, 2\n\
|
||||
adds r2, r3, r0\n\
|
||||
adds r0, r2, 0\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r1, [r0]\n\
|
||||
lsls r0, r1, 30\n\
|
||||
lsrs r0, 30\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _081A1308\n\
|
||||
lsrs r0, r1, 6\n\
|
||||
cmp r0, 0\n\
|
||||
beq _081A1308\n\
|
||||
adds r0, r2, 0\n\
|
||||
adds r0, 0xBA\n\
|
||||
ldrh r0, [r0]\n\
|
||||
mov r2, r12\n\
|
||||
ldrh r2, [r2]\n\
|
||||
cmp r0, r2\n\
|
||||
bne _081A1308\n\
|
||||
adds r0, r3, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r0, r3, r0\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r2, [r0]\n\
|
||||
movs r1, 0x3F\n\
|
||||
ands r1, r2\n\
|
||||
strb r1, [r0]\n\
|
||||
ldr r1, [r6]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r1, r0\n\
|
||||
mov r2, r12\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, 0xBA\n\
|
||||
strh r0, [r1]\n\
|
||||
mov r1, r9\n\
|
||||
mov r0, r8\n\
|
||||
strh r1, [r0]\n\
|
||||
b _081A1362\n\
|
||||
.pool\n\
|
||||
ldr r3, [r6]\n\
|
||||
lsls r0, r4, 2\n\
|
||||
adds r2, r3, r0\n\
|
||||
adds r0, r2, 0\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r1, [r0]\n\
|
||||
lsls r0, r1, 30\n\
|
||||
lsrs r0, 30\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _081A1308\n\
|
||||
lsrs r0, r1, 6\n\
|
||||
cmp r0, 0\n\
|
||||
beq _081A1308\n\
|
||||
adds r0, r2, 0\n\
|
||||
adds r0, 0xBA\n\
|
||||
ldrh r0, [r0]\n\
|
||||
mov r2, r12\n\
|
||||
ldrh r2, [r2]\n\
|
||||
cmp r0, r2\n\
|
||||
bne _081A1308\n\
|
||||
adds r0, r3, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r0, r3, r0\n\
|
||||
adds r0, 0xB8\n\
|
||||
ldrb r2, [r0]\n\
|
||||
movs r1, 0x3F\n\
|
||||
ands r1, r2\n\
|
||||
strb r1, [r0]\n\
|
||||
ldr r1, [r6]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r1, r0\n\
|
||||
mov r2, r12\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, 0xBA\n\
|
||||
strh r0, [r1]\n\
|
||||
mov r1, r9\n\
|
||||
mov r0, r8\n\
|
||||
strh r1, [r0]\n\
|
||||
b _081A1362\n\
|
||||
.pool\n\
|
||||
_081A1308:\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
cmp r4, r5\n\
|
||||
bcs _081A1322\n\
|
||||
ldr r0, [r6]\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
cmp r4, r0\n\
|
||||
blt _081A1296\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
cmp r4, r5\n\
|
||||
bcs _081A1322\n\
|
||||
ldr r0, [r6]\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
cmp r4, r0\n\
|
||||
blt _081A1296\n\
|
||||
_081A1322:\n\
|
||||
ldr r2, [r7]\n\
|
||||
adds r0, r2, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r2, r0\n\
|
||||
adds r2, 0xB8\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0x3F\n\
|
||||
ands r0, r1\n\
|
||||
movs r1, 0x40\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r2]\n\
|
||||
ldr r1, [r7]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r1, r0\n\
|
||||
mov r2, r12\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, 0xBA\n\
|
||||
strh r0, [r1]\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r8\n\
|
||||
strh r0, [r1]\n\
|
||||
ldr r2, [r7]\n\
|
||||
adds r0, r2, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r2, r0\n\
|
||||
adds r2, 0xB8\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0x3F\n\
|
||||
ands r0, r1\n\
|
||||
movs r1, 0x40\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r2]\n\
|
||||
ldr r1, [r7]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB1\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 26\n\
|
||||
lsrs r0, 28\n\
|
||||
subs r0, 0x3\n\
|
||||
lsls r0, 2\n\
|
||||
adds r1, r0\n\
|
||||
mov r2, r12\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, 0xBA\n\
|
||||
strh r0, [r1]\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r8\n\
|
||||
strh r0, [r1]\n\
|
||||
_081A1362:\n\
|
||||
pop {r3,r4}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
pop {r3,r4}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle.h"
|
||||
#include "battle_ai_script_commands.h"
|
||||
#include "battle_factory.h"
|
||||
#include "battle_setup.h"
|
||||
#include "item.h"
|
||||
#include "malloc.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
#include "recorded_battle.h"
|
||||
@ -484,7 +484,7 @@ static u8 ChooseMoveOrAction_Doubles(void)
|
||||
{
|
||||
if (i == sBattler_AI || gBattleMons[i].hp == 0)
|
||||
{
|
||||
actionOrMoveIndex[i] = -1;
|
||||
actionOrMoveIndex[i] = 0xFF;
|
||||
bestMovePointsForTarget[i] = -1;
|
||||
}
|
||||
else
|
||||
|
||||
@ -1386,54 +1386,54 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
||||
|
||||
static void (* const sScriptCmdTable[])(void) =
|
||||
{
|
||||
ScriptCmd_loadspritegfx,
|
||||
ScriptCmd_unloadspritegfx,
|
||||
ScriptCmd_createsprite,
|
||||
ScriptCmd_createvisualtask,
|
||||
ScriptCmd_delay,
|
||||
ScriptCmd_waitforvisualfinish,
|
||||
ScriptCmd_hang1,
|
||||
ScriptCmd_hang2,
|
||||
ScriptCmd_end,
|
||||
ScriptCmd_playse,
|
||||
ScriptCmd_monbg,
|
||||
ScriptCmd_clearmonbg,
|
||||
ScriptCmd_setalpha,
|
||||
ScriptCmd_blendoff,
|
||||
ScriptCmd_call,
|
||||
ScriptCmd_return,
|
||||
ScriptCmd_setarg,
|
||||
ScriptCmd_choosetwoturnanim,
|
||||
ScriptCmd_jumpifmoveturn,
|
||||
ScriptCmd_goto,
|
||||
ScriptCmd_fadetobg,
|
||||
ScriptCmd_restorebg,
|
||||
ScriptCmd_waitbgfadeout,
|
||||
ScriptCmd_waitbgfadein,
|
||||
ScriptCmd_changebg,
|
||||
ScriptCmd_playsewithpan,
|
||||
ScriptCmd_setpan,
|
||||
ScriptCmd_panse_1B,
|
||||
ScriptCmd_loopsewithpan,
|
||||
ScriptCmd_waitplaysewithpan,
|
||||
ScriptCmd_setbldcnt,
|
||||
ScriptCmd_createsoundtask,
|
||||
ScriptCmd_waitsound,
|
||||
ScriptCmd_jumpargeq,
|
||||
ScriptCmd_monbg_22,
|
||||
ScriptCmd_clearmonbg_23,
|
||||
ScriptCmd_jumpifcontest,
|
||||
ScriptCmd_fadetobgfromset,
|
||||
ScriptCmd_panse_26,
|
||||
ScriptCmd_panse_27,
|
||||
ScriptCmd_monbgprio_28,
|
||||
ScriptCmd_monbgprio_29,
|
||||
ScriptCmd_monbgprio_2A,
|
||||
ScriptCmd_invisible,
|
||||
ScriptCmd_visible,
|
||||
ScriptCmd_doublebattle_2D,
|
||||
ScriptCmd_doublebattle_2E,
|
||||
ScriptCmd_stopsound
|
||||
ScriptCmd_loadspritegfx,
|
||||
ScriptCmd_unloadspritegfx,
|
||||
ScriptCmd_createsprite,
|
||||
ScriptCmd_createvisualtask,
|
||||
ScriptCmd_delay,
|
||||
ScriptCmd_waitforvisualfinish,
|
||||
ScriptCmd_hang1,
|
||||
ScriptCmd_hang2,
|
||||
ScriptCmd_end,
|
||||
ScriptCmd_playse,
|
||||
ScriptCmd_monbg,
|
||||
ScriptCmd_clearmonbg,
|
||||
ScriptCmd_setalpha,
|
||||
ScriptCmd_blendoff,
|
||||
ScriptCmd_call,
|
||||
ScriptCmd_return,
|
||||
ScriptCmd_setarg,
|
||||
ScriptCmd_choosetwoturnanim,
|
||||
ScriptCmd_jumpifmoveturn,
|
||||
ScriptCmd_goto,
|
||||
ScriptCmd_fadetobg,
|
||||
ScriptCmd_restorebg,
|
||||
ScriptCmd_waitbgfadeout,
|
||||
ScriptCmd_waitbgfadein,
|
||||
ScriptCmd_changebg,
|
||||
ScriptCmd_playsewithpan,
|
||||
ScriptCmd_setpan,
|
||||
ScriptCmd_panse_1B,
|
||||
ScriptCmd_loopsewithpan,
|
||||
ScriptCmd_waitplaysewithpan,
|
||||
ScriptCmd_setbldcnt,
|
||||
ScriptCmd_createsoundtask,
|
||||
ScriptCmd_waitsound,
|
||||
ScriptCmd_jumpargeq,
|
||||
ScriptCmd_monbg_22,
|
||||
ScriptCmd_clearmonbg_23,
|
||||
ScriptCmd_jumpifcontest,
|
||||
ScriptCmd_fadetobgfromset,
|
||||
ScriptCmd_panse_26,
|
||||
ScriptCmd_panse_27,
|
||||
ScriptCmd_monbgprio_28,
|
||||
ScriptCmd_monbgprio_29,
|
||||
ScriptCmd_monbgprio_2A,
|
||||
ScriptCmd_invisible,
|
||||
ScriptCmd_visible,
|
||||
ScriptCmd_doublebattle_2D,
|
||||
ScriptCmd_doublebattle_2E,
|
||||
ScriptCmd_stopsound
|
||||
};
|
||||
|
||||
// code
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
#include "decompress.h"
|
||||
#include "dma3.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "palette.h"
|
||||
#include "pokemon_icon.h"
|
||||
#include "sprite.h"
|
||||
|
||||
@ -389,50 +389,50 @@ void sub_8159308(u8 taskId)
|
||||
NAKED
|
||||
void sub_8159308(u8 taskId)
|
||||
{
|
||||
asm_unified(" push {r4,r5,lr}\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
adds r5, r0, 0\n\
|
||||
ldr r1, =gTasks\n\
|
||||
lsls r0, r5, 2\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 3\n\
|
||||
adds r4, r0, r1\n\
|
||||
ldrh r2, [r4, 0xE]\n\
|
||||
ldrh r0, [r4, 0x1C]\n\
|
||||
adds r1, r0, 0x1\n\
|
||||
strh r1, [r4, 0x1C]\n\
|
||||
lsls r0, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r3, 0x12\n\
|
||||
ldrsh r1, [r4, r3]\n\
|
||||
cmp r0, r1\n\
|
||||
bne _08159342\n\
|
||||
movs r0, 0\n\
|
||||
strh r0, [r4, 0x1C]\n\
|
||||
ldrh r1, [r4, 0x1E]\n\
|
||||
adds r0, r2, r1\n\
|
||||
strh r0, [r4, 0x1E]\n\
|
||||
movs r2, 0x1E\n\
|
||||
ldrsh r0, [r4, r2]\n\
|
||||
bl KeepPanInRange\n\
|
||||
strh r0, [r4, 0x1E]\n\
|
||||
asm_unified(" push {r4,r5,lr}\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
adds r5, r0, 0\n\
|
||||
ldr r1, =gTasks\n\
|
||||
lsls r0, r5, 2\n\
|
||||
adds r0, r5\n\
|
||||
lsls r0, 3\n\
|
||||
adds r4, r0, r1\n\
|
||||
ldrh r2, [r4, 0xE]\n\
|
||||
ldrh r0, [r4, 0x1C]\n\
|
||||
adds r1, r0, 0x1\n\
|
||||
strh r1, [r4, 0x1C]\n\
|
||||
lsls r0, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r3, 0x12\n\
|
||||
ldrsh r1, [r4, r3]\n\
|
||||
cmp r0, r1\n\
|
||||
bne _08159342\n\
|
||||
movs r0, 0\n\
|
||||
strh r0, [r4, 0x1C]\n\
|
||||
ldrh r1, [r4, 0x1E]\n\
|
||||
adds r0, r2, r1\n\
|
||||
strh r0, [r4, 0x1E]\n\
|
||||
movs r2, 0x1E\n\
|
||||
ldrsh r0, [r4, r2]\n\
|
||||
bl KeepPanInRange\n\
|
||||
strh r0, [r4, 0x1E]\n\
|
||||
_08159342:\n\
|
||||
ldr r1, =gUnknown_02038440\n\
|
||||
ldrh r0, [r4, 0x1E]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r3, 0x1E\n\
|
||||
ldrsh r1, [r4, r3]\n\
|
||||
movs r2, 0xC\n\
|
||||
ldrsh r0, [r4, r2]\n\
|
||||
cmp r1, r0\n\
|
||||
bne _0815935A\n\
|
||||
adds r0, r5, 0\n\
|
||||
bl DestroyAnimVisualTask\n\
|
||||
ldr r1, =gUnknown_02038440\n\
|
||||
ldrh r0, [r4, 0x1E]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r3, 0x1E\n\
|
||||
ldrsh r1, [r4, r3]\n\
|
||||
movs r2, 0xC\n\
|
||||
ldrsh r0, [r4, r2]\n\
|
||||
cmp r1, r0\n\
|
||||
bne _0815935A\n\
|
||||
adds r0, r5, 0\n\
|
||||
bl DestroyAnimVisualTask\n\
|
||||
_0815935A:\n\
|
||||
pop {r4,r5}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool");
|
||||
pop {r4,r5}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#include "contest.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "palette.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
#include "international_string_util.h"
|
||||
#include "strings.h"
|
||||
#include "list_menu.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "string_util.h"
|
||||
#include "util.h"
|
||||
#include "data2.h"
|
||||
|
||||
1208
src/battle_dome.c
1208
src/battle_dome.c
File diff suppressed because it is too large
Load Diff
@ -10,7 +10,7 @@
|
||||
#include "palette.h"
|
||||
#include "task.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "bg.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "string_util.h"
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
#include "constants/battle_anim.h"
|
||||
#include "battle_interface.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "graphics.h"
|
||||
#include "random.h"
|
||||
#include "util.h"
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle.h"
|
||||
#include "pokemon.h"
|
||||
#include "battle_controllers.h"
|
||||
@ -25,7 +26,6 @@
|
||||
#include "constants/rgb.h"
|
||||
#include "data2.h"
|
||||
#include "battle_debug.h"
|
||||
#include "malloc.h"
|
||||
#include "constants/battle_config.h"
|
||||
|
||||
struct TestingBar
|
||||
@ -551,11 +551,11 @@ enum
|
||||
|
||||
static const u16 sStatusIconColors[] =
|
||||
{
|
||||
RGB(24, 12, 24), // PAL_STATUS_PSN
|
||||
RGB(23, 23, 3), // PAL_STATUS_PAR
|
||||
RGB(20, 20, 17), // PAL_STATUS_SLP
|
||||
RGB(17, 22, 28), // PAL_STATUS_FRZ
|
||||
RGB(28, 14, 10) // PAL_STATUS_BRN
|
||||
[PAL_STATUS_PSN] = RGB(24, 12, 24),
|
||||
[PAL_STATUS_PAR] = RGB(23, 23, 3),
|
||||
[PAL_STATUS_SLP] = RGB(20, 20, 17),
|
||||
[PAL_STATUS_FRZ] = RGB(17, 22, 28),
|
||||
[PAL_STATUS_BRN] = RGB(28, 14, 10),
|
||||
};
|
||||
|
||||
static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2
|
||||
@ -713,225 +713,225 @@ NAKED
|
||||
static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
adds r7, r1, 0\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
lsls r2, 24\n\
|
||||
lsrs r2, 24\n\
|
||||
mov r10, r2\n\
|
||||
movs r3, 0\n\
|
||||
movs r2, 0\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
adds r7, r1, 0\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
lsls r2, 24\n\
|
||||
lsrs r2, 24\n\
|
||||
mov r10, r2\n\
|
||||
movs r3, 0\n\
|
||||
movs r2, 0\n\
|
||||
_08072324:\n\
|
||||
lsls r0, r3, 24\n\
|
||||
asrs r0, 24\n\
|
||||
mov r3, sp\n\
|
||||
adds r1, r3, r0\n\
|
||||
strb r2, [r1]\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r3, r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
cmp r0, 0x3\n\
|
||||
ble _08072324\n\
|
||||
movs r3, 0x3\n\
|
||||
movs r0, 0x1\n\
|
||||
negs r0, r0\n\
|
||||
mov r9, r0\n\
|
||||
mov r8, sp\n\
|
||||
lsls r0, r3, 24\n\
|
||||
asrs r0, 24\n\
|
||||
mov r3, sp\n\
|
||||
adds r1, r3, r0\n\
|
||||
strb r2, [r1]\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r3, r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
cmp r0, 0x3\n\
|
||||
ble _08072324\n\
|
||||
movs r3, 0x3\n\
|
||||
movs r0, 0x1\n\
|
||||
negs r0, r0\n\
|
||||
mov r9, r0\n\
|
||||
mov r8, sp\n\
|
||||
_08072344:\n\
|
||||
lsls r0, r5, 16\n\
|
||||
asrs r6, r0, 16\n\
|
||||
cmp r6, 0\n\
|
||||
ble _08072372\n\
|
||||
lsls r4, r3, 24\n\
|
||||
asrs r4, 24\n\
|
||||
mov r1, sp\n\
|
||||
adds r5, r1, r4\n\
|
||||
adds r0, r6, 0\n\
|
||||
movs r1, 0xA\n\
|
||||
bl __modsi3\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r0, r6, 0\n\
|
||||
movs r1, 0xA\n\
|
||||
bl __divsi3\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
subs r4, 0x1\n\
|
||||
lsls r4, 24\n\
|
||||
lsrs r3, r4, 24\n\
|
||||
b _08072344\n\
|
||||
lsls r0, r5, 16\n\
|
||||
asrs r6, r0, 16\n\
|
||||
cmp r6, 0\n\
|
||||
ble _08072372\n\
|
||||
lsls r4, r3, 24\n\
|
||||
asrs r4, 24\n\
|
||||
mov r1, sp\n\
|
||||
adds r5, r1, r4\n\
|
||||
adds r0, r6, 0\n\
|
||||
movs r1, 0xA\n\
|
||||
bl __modsi3\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r0, r6, 0\n\
|
||||
movs r1, 0xA\n\
|
||||
bl __divsi3\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
subs r4, 0x1\n\
|
||||
lsls r4, 24\n\
|
||||
lsrs r3, r4, 24\n\
|
||||
b _08072344\n\
|
||||
_08072372:\n\
|
||||
lsls r1, r3, 24\n\
|
||||
asrs r0, r1, 24\n\
|
||||
cmp r0, r9\n\
|
||||
ble _08072396\n\
|
||||
movs r4, 0xFF\n\
|
||||
movs r3, 0x1\n\
|
||||
negs r3, r3\n\
|
||||
lsls r1, r3, 24\n\
|
||||
asrs r0, r1, 24\n\
|
||||
cmp r0, r9\n\
|
||||
ble _08072396\n\
|
||||
movs r4, 0xFF\n\
|
||||
movs r3, 0x1\n\
|
||||
negs r3, r3\n\
|
||||
_08072380:\n\
|
||||
asrs r2, r1, 24\n\
|
||||
mov r5, sp\n\
|
||||
adds r1, r5, r2\n\
|
||||
ldrb r0, [r1]\n\
|
||||
orrs r0, r4\n\
|
||||
strb r0, [r1]\n\
|
||||
subs r2, 0x1\n\
|
||||
lsls r1, r2, 24\n\
|
||||
asrs r0, r1, 24\n\
|
||||
cmp r0, r3\n\
|
||||
bgt _08072380\n\
|
||||
asrs r2, r1, 24\n\
|
||||
mov r5, sp\n\
|
||||
adds r1, r5, r2\n\
|
||||
ldrb r0, [r1]\n\
|
||||
orrs r0, r4\n\
|
||||
strb r0, [r1]\n\
|
||||
subs r2, 0x1\n\
|
||||
lsls r1, r2, 24\n\
|
||||
asrs r0, r1, 24\n\
|
||||
cmp r0, r3\n\
|
||||
bgt _08072380\n\
|
||||
_08072396:\n\
|
||||
mov r1, r8\n\
|
||||
ldrb r0, [r1, 0x3]\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bne _080723A2\n\
|
||||
movs r0, 0\n\
|
||||
strb r0, [r1, 0x3]\n\
|
||||
mov r1, r8\n\
|
||||
ldrb r0, [r1, 0x3]\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bne _080723A2\n\
|
||||
movs r0, 0\n\
|
||||
strb r0, [r1, 0x3]\n\
|
||||
_080723A2:\n\
|
||||
mov r2, r10\n\
|
||||
cmp r2, 0\n\
|
||||
bne _08072432\n\
|
||||
movs r3, 0\n\
|
||||
movs r1, 0\n\
|
||||
movs r6, 0xFC\n\
|
||||
lsls r6, 8\n\
|
||||
movs r5, 0x1E\n\
|
||||
mov r12, r5\n\
|
||||
mov r2, r10\n\
|
||||
cmp r2, 0\n\
|
||||
bne _08072432\n\
|
||||
movs r3, 0\n\
|
||||
movs r1, 0\n\
|
||||
movs r6, 0xFC\n\
|
||||
lsls r6, 8\n\
|
||||
movs r5, 0x1E\n\
|
||||
mov r12, r5\n\
|
||||
_080723B4:\n\
|
||||
lsls r1, 24\n\
|
||||
asrs r2, r1, 24\n\
|
||||
mov r0, sp\n\
|
||||
adds r5, r0, r2\n\
|
||||
ldrb r0, [r5]\n\
|
||||
mov r8, r1\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bne _080723EA\n\
|
||||
lsls r1, r2, 1\n\
|
||||
adds r1, r7\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r6, 0\n\
|
||||
ands r0, r2\n\
|
||||
mov r2, r12\n\
|
||||
orrs r0, r2\n\
|
||||
strh r0, [r1]\n\
|
||||
lsls r3, 24\n\
|
||||
asrs r1, r3, 23\n\
|
||||
adds r1, r7\n\
|
||||
adds r1, 0x40\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r6, 0\n\
|
||||
ands r0, r2\n\
|
||||
mov r5, r12\n\
|
||||
orrs r0, r5\n\
|
||||
strh r0, [r1]\n\
|
||||
b _0807241A\n\
|
||||
lsls r1, 24\n\
|
||||
asrs r2, r1, 24\n\
|
||||
mov r0, sp\n\
|
||||
adds r5, r0, r2\n\
|
||||
ldrb r0, [r5]\n\
|
||||
mov r8, r1\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bne _080723EA\n\
|
||||
lsls r1, r2, 1\n\
|
||||
adds r1, r7\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r6, 0\n\
|
||||
ands r0, r2\n\
|
||||
mov r2, r12\n\
|
||||
orrs r0, r2\n\
|
||||
strh r0, [r1]\n\
|
||||
lsls r3, 24\n\
|
||||
asrs r1, r3, 23\n\
|
||||
adds r1, r7\n\
|
||||
adds r1, 0x40\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r6, 0\n\
|
||||
ands r0, r2\n\
|
||||
mov r5, r12\n\
|
||||
orrs r0, r5\n\
|
||||
strh r0, [r1]\n\
|
||||
b _0807241A\n\
|
||||
_080723EA:\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r7\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r6, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r0, 0x14\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
lsls r4, r3, 24\n\
|
||||
asrs r3, r4, 24\n\
|
||||
lsls r2, r3, 1\n\
|
||||
adds r2, r7\n\
|
||||
adds r2, 0x40\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r6, 0\n\
|
||||
ands r1, r0\n\
|
||||
mov r5, sp\n\
|
||||
adds r0, r5, r3\n\
|
||||
ldrb r0, [r0]\n\
|
||||
adds r0, 0x34\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
adds r3, r4, 0\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r7\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r6, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r0, 0x14\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
lsls r4, r3, 24\n\
|
||||
asrs r3, r4, 24\n\
|
||||
lsls r2, r3, 1\n\
|
||||
adds r2, r7\n\
|
||||
adds r2, 0x40\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r6, 0\n\
|
||||
ands r1, r0\n\
|
||||
mov r5, sp\n\
|
||||
adds r0, r5, r3\n\
|
||||
ldrb r0, [r0]\n\
|
||||
adds r0, 0x34\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
adds r3, r4, 0\n\
|
||||
_0807241A:\n\
|
||||
movs r0, 0x80\n\
|
||||
lsls r0, 17\n\
|
||||
add r0, r8\n\
|
||||
lsrs r1, r0, 24\n\
|
||||
movs r2, 0x80\n\
|
||||
lsls r2, 17\n\
|
||||
adds r0, r3, r2\n\
|
||||
lsrs r3, r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
cmp r0, 0x3\n\
|
||||
ble _080723B4\n\
|
||||
b _08072496\n\
|
||||
movs r0, 0x80\n\
|
||||
lsls r0, 17\n\
|
||||
add r0, r8\n\
|
||||
lsrs r1, r0, 24\n\
|
||||
movs r2, 0x80\n\
|
||||
lsls r2, 17\n\
|
||||
adds r0, r3, r2\n\
|
||||
lsrs r3, r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
cmp r0, 0x3\n\
|
||||
ble _080723B4\n\
|
||||
b _08072496\n\
|
||||
_08072432:\n\
|
||||
movs r3, 0\n\
|
||||
movs r4, 0xFC\n\
|
||||
lsls r4, 8\n\
|
||||
movs r6, 0x1E\n\
|
||||
movs r3, 0\n\
|
||||
movs r4, 0xFC\n\
|
||||
lsls r4, 8\n\
|
||||
movs r6, 0x1E\n\
|
||||
_0807243A:\n\
|
||||
lsls r1, r3, 24\n\
|
||||
asrs r2, r1, 24\n\
|
||||
mov r3, sp\n\
|
||||
adds r5, r3, r2\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r3, r1, 0\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bne _08072466\n\
|
||||
lsls r1, r2, 1\n\
|
||||
adds r1, r7\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
ands r0, r2\n\
|
||||
orrs r0, r6\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r1, 0x40\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
ands r0, r2\n\
|
||||
orrs r0, r6\n\
|
||||
strh r0, [r1]\n\
|
||||
b _08072488\n\
|
||||
lsls r1, r3, 24\n\
|
||||
asrs r2, r1, 24\n\
|
||||
mov r3, sp\n\
|
||||
adds r5, r3, r2\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r3, r1, 0\n\
|
||||
cmp r0, 0xFF\n\
|
||||
bne _08072466\n\
|
||||
lsls r1, r2, 1\n\
|
||||
adds r1, r7\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
ands r0, r2\n\
|
||||
orrs r0, r6\n\
|
||||
strh r0, [r1]\n\
|
||||
adds r1, 0x40\n\
|
||||
ldrh r2, [r1]\n\
|
||||
adds r0, r4, 0\n\
|
||||
ands r0, r2\n\
|
||||
orrs r0, r6\n\
|
||||
strh r0, [r1]\n\
|
||||
b _08072488\n\
|
||||
_08072466:\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r7\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r4, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r0, 0x14\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
adds r2, 0x40\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r4, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r0, 0x34\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r7\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r4, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r0, 0x14\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
adds r2, 0x40\n\
|
||||
ldrh r0, [r2]\n\
|
||||
adds r1, r4, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r0, [r5]\n\
|
||||
adds r0, 0x34\n\
|
||||
orrs r1, r0\n\
|
||||
strh r1, [r2]\n\
|
||||
_08072488:\n\
|
||||
movs r5, 0x80\n\
|
||||
lsls r5, 17\n\
|
||||
adds r0, r3, r5\n\
|
||||
lsrs r3, r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
cmp r0, 0x3\n\
|
||||
ble _0807243A\n\
|
||||
movs r5, 0x80\n\
|
||||
lsls r5, 17\n\
|
||||
adds r0, r3, r5\n\
|
||||
lsrs r3, r0, 24\n\
|
||||
asrs r0, 24\n\
|
||||
cmp r0, 0x3\n\
|
||||
ble _0807243A\n\
|
||||
_08072496:\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.syntax divided");
|
||||
}
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
#include "link_rfu.h"
|
||||
#include "load_save.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "m4a.h"
|
||||
#include "palette.h"
|
||||
#include "party_menu.h"
|
||||
@ -513,35 +513,35 @@ const struct TrainerMoney gTrainerMoneyTable[] =
|
||||
|
||||
static void (* const sTurnActionsFuncsTable[])(void) =
|
||||
{
|
||||
HandleAction_UseMove, // B_ACTION_USE_MOVE
|
||||
HandleAction_UseItem, // B_ACTION_USE_ITEM
|
||||
HandleAction_Switch, // B_ACTION_SWITCH
|
||||
HandleAction_Run, // B_ACTION_RUN
|
||||
HandleAction_WatchesCarefully, // B_ACTION_SAFARI_WATCH_CAREFULLY
|
||||
HandleAction_SafariZoneBallThrow, // B_ACTION_SAFARI_BALL
|
||||
HandleAction_ThrowPokeblock, // B_ACTION_SAFARI_POKEBLOCK
|
||||
HandleAction_GoNear, // B_ACTION_SAFARI_GO_NEAR
|
||||
HandleAction_SafariZoneRun, // B_ACTION_SAFARI_RUN
|
||||
HandleAction_WallyBallThrow, // B_ACTION_WALLY_THROW
|
||||
HandleAction_RunBattleScript, // B_ACTION_EXEC_SCRIPT
|
||||
HandleAction_Action11, // not sure about this one
|
||||
HandleAction_ActionFinished, // B_ACTION_FINISHED
|
||||
HandleAction_NothingIsFainted, // B_ACTION_NOTHING_FAINTED
|
||||
[B_ACTION_USE_MOVE] = HandleAction_UseMove,
|
||||
[B_ACTION_USE_ITEM] = HandleAction_UseItem,
|
||||
[B_ACTION_SWITCH] = HandleAction_Switch,
|
||||
[B_ACTION_RUN] = HandleAction_Run,
|
||||
[B_ACTION_SAFARI_WATCH_CAREFULLY] = HandleAction_WatchesCarefully,
|
||||
[B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow,
|
||||
[B_ACTION_SAFARI_POKEBLOCK] = HandleAction_ThrowPokeblock,
|
||||
[B_ACTION_SAFARI_GO_NEAR] = HandleAction_GoNear,
|
||||
[B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun,
|
||||
[B_ACTION_WALLY_THROW] = HandleAction_WallyBallThrow,
|
||||
[B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript,
|
||||
[11] = HandleAction_Action11, // not sure about this one
|
||||
[B_ACTION_FINISHED] = HandleAction_ActionFinished,
|
||||
[B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted,
|
||||
};
|
||||
|
||||
static void (* const sEndTurnFuncsTable[])(void) =
|
||||
{
|
||||
HandleEndTurn_ContinueBattle, // battle outcome 0
|
||||
HandleEndTurn_BattleWon, // B_OUTCOME_WON
|
||||
HandleEndTurn_BattleLost, // B_OUTCOME_LOST
|
||||
HandleEndTurn_BattleLost, // B_OUTCOME_DREW
|
||||
HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN
|
||||
HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED
|
||||
HandleEndTurn_MonFled, // B_OUTCOME_MON_FLED
|
||||
HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT
|
||||
HandleEndTurn_FinishBattle, // B_OUTCOME_NO_SAFARI_BALLS
|
||||
HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED
|
||||
HandleEndTurn_FinishBattle, // B_OUTCOME_MON_TELEPORTED
|
||||
[0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE?
|
||||
[B_OUTCOME_WON] = HandleEndTurn_BattleWon,
|
||||
[B_OUTCOME_LOST] = HandleEndTurn_BattleLost,
|
||||
[B_OUTCOME_DREW] = HandleEndTurn_BattleLost,
|
||||
[B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle,
|
||||
[B_OUTCOME_PLAYER_TELEPORTED] = HandleEndTurn_FinishBattle,
|
||||
[B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled,
|
||||
[B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle,
|
||||
[B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle,
|
||||
[B_OUTCOME_FORFEITED] = HandleEndTurn_FinishBattle,
|
||||
[B_OUTCOME_MON_TELEPORTED] = HandleEndTurn_FinishBattle,
|
||||
};
|
||||
|
||||
const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$");
|
||||
@ -3089,7 +3089,7 @@ static void BattleStartClearSetData(void)
|
||||
*(gBattleStruct->AI_monToSwitchIntoId + i) = PARTY_SIZE;
|
||||
}
|
||||
|
||||
gBattleStruct->field_DF = 0;
|
||||
gBattleStruct->givenExpMons = 0;
|
||||
gBattleStruct->field_92 = 0;
|
||||
|
||||
gRandomTurnNumber = Random();
|
||||
@ -3216,7 +3216,7 @@ void SwitchInClearSetData(void)
|
||||
|
||||
gBattleResources->flags->flags[gActiveBattler] = 0;
|
||||
gCurrentMove = 0;
|
||||
gBattleStruct->field_DA = 0xFF;
|
||||
gBattleStruct->arenaTurnCounter = 0xFF;
|
||||
|
||||
ClearBattlerMoveHistory(gActiveBattler);
|
||||
ClearBattlerAbilityHistory(gActiveBattler);
|
||||
@ -3646,85 +3646,85 @@ NAKED
|
||||
static void BattleIntroOpponent1SendsOutMonAnimation(void)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r6,lr}\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r2, [r0]\n\
|
||||
movs r0, 0x80\n\
|
||||
lsls r0, 17\n\
|
||||
ands r0, r2\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0803B298\n\
|
||||
movs r0, 0x80\n\
|
||||
lsls r0, 18\n\
|
||||
ands r0, r2\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0803B298\n\
|
||||
movs r1, 0x80\n\
|
||||
lsls r1, 24\n\
|
||||
ands r1, r2\n\
|
||||
negs r0, r1\n\
|
||||
orrs r0, r1\n\
|
||||
lsrs r5, r0, 31\n\
|
||||
b _0803B29A\n\
|
||||
.pool\n\
|
||||
push {r4-r6,lr}\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r2, [r0]\n\
|
||||
movs r0, 0x80\n\
|
||||
lsls r0, 17\n\
|
||||
ands r0, r2\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0803B298\n\
|
||||
movs r0, 0x80\n\
|
||||
lsls r0, 18\n\
|
||||
ands r0, r2\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0803B298\n\
|
||||
movs r1, 0x80\n\
|
||||
lsls r1, 24\n\
|
||||
ands r1, r2\n\
|
||||
negs r0, r1\n\
|
||||
orrs r0, r1\n\
|
||||
lsrs r5, r0, 31\n\
|
||||
b _0803B29A\n\
|
||||
.pool\n\
|
||||
_0803B288:\n\
|
||||
ldr r1, =gBattleMainFunc\n\
|
||||
ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\
|
||||
b _0803B2F0\n\
|
||||
.pool\n\
|
||||
ldr r1, =gBattleMainFunc\n\
|
||||
ldr r0, =BattleIntroOpponent2SendsOutMonAnimation\n\
|
||||
b _0803B2F0\n\
|
||||
.pool\n\
|
||||
_0803B298:\n\
|
||||
movs r5, 0x1\n\
|
||||
movs r5, 0x1\n\
|
||||
_0803B29A:\n\
|
||||
ldr r0, =gBattleControllerExecFlags\n\
|
||||
ldr r2, [r0]\n\
|
||||
cmp r2, 0\n\
|
||||
bne _0803B2F2\n\
|
||||
ldr r0, =gActiveBattler\n\
|
||||
strb r2, [r0]\n\
|
||||
ldr r1, =gBattlersCount\n\
|
||||
adds r4, r0, 0\n\
|
||||
ldrb r1, [r1]\n\
|
||||
cmp r2, r1\n\
|
||||
bcs _0803B2EC\n\
|
||||
adds r6, r4, 0\n\
|
||||
ldr r0, =gBattleControllerExecFlags\n\
|
||||
ldr r2, [r0]\n\
|
||||
cmp r2, 0\n\
|
||||
bne _0803B2F2\n\
|
||||
ldr r0, =gActiveBattler\n\
|
||||
strb r2, [r0]\n\
|
||||
ldr r1, =gBattlersCount\n\
|
||||
adds r4, r0, 0\n\
|
||||
ldrb r1, [r1]\n\
|
||||
cmp r2, r1\n\
|
||||
bcs _0803B2EC\n\
|
||||
adds r6, r4, 0\n\
|
||||
_0803B2B2:\n\
|
||||
ldrb r0, [r4]\n\
|
||||
bl GetBattlerPosition\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, r5\n\
|
||||
bne _0803B2D8\n\
|
||||
movs r0, 0\n\
|
||||
bl BtlController_EmitIntroTrainerBallThrow\n\
|
||||
ldrb r0, [r4]\n\
|
||||
bl MarkBattlerForControllerExec\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
ldr r1, =0x00008040\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0803B288\n\
|
||||
ldrb r0, [r4]\n\
|
||||
bl GetBattlerPosition\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, r5\n\
|
||||
bne _0803B2D8\n\
|
||||
movs r0, 0\n\
|
||||
bl BtlController_EmitIntroTrainerBallThrow\n\
|
||||
ldrb r0, [r4]\n\
|
||||
bl MarkBattlerForControllerExec\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
ldr r1, =0x00008040\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0803B288\n\
|
||||
_0803B2D8:\n\
|
||||
ldrb r0, [r6]\n\
|
||||
adds r0, 0x1\n\
|
||||
strb r0, [r6]\n\
|
||||
ldr r1, =gBattlersCount\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
ldr r4, =gActiveBattler\n\
|
||||
ldrb r1, [r1]\n\
|
||||
cmp r0, r1\n\
|
||||
bcc _0803B2B2\n\
|
||||
ldrb r0, [r6]\n\
|
||||
adds r0, 0x1\n\
|
||||
strb r0, [r6]\n\
|
||||
ldr r1, =gBattlersCount\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
ldr r4, =gActiveBattler\n\
|
||||
ldrb r1, [r1]\n\
|
||||
cmp r0, r1\n\
|
||||
bcc _0803B2B2\n\
|
||||
_0803B2EC:\n\
|
||||
ldr r1, =gBattleMainFunc\n\
|
||||
ldr r0, =BattleIntroRecordMonsToDex\n\
|
||||
ldr r1, =gBattleMainFunc\n\
|
||||
ldr r0, =BattleIntroRecordMonsToDex\n\
|
||||
_0803B2F0:\n\
|
||||
str r0, [r1]\n\
|
||||
str r0, [r1]\n\
|
||||
_0803B2F2:\n\
|
||||
pop {r4-r6}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool\n\
|
||||
pop {r4-r6}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool\n\
|
||||
.syntax divided");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
@ -4030,7 +4030,7 @@ void BattleTurnPassed(void)
|
||||
if (gBattleResults.battleTurnCounter < 0xFF)
|
||||
{
|
||||
gBattleResults.battleTurnCounter++;
|
||||
gBattleStruct->field_DA++;
|
||||
gBattleStruct->arenaTurnCounter++;
|
||||
}
|
||||
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
@ -4049,7 +4049,7 @@ void BattleTurnPassed(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
|
||||
BattleScriptExecute(BattleScript_82DB881);
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0)
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaTurnCounter == 0)
|
||||
BattleScriptExecute(BattleScript_ArenaTurnBeginning);
|
||||
else if (ShouldDoTrainerSlide(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), gTrainerBattleOpponent_A, TRAINER_SLIDE_LAST_LOW_HP))
|
||||
BattleScriptExecute(BattleScript_TrainerSlideMsgEnd2);
|
||||
@ -4658,10 +4658,10 @@ static void sub_803CDF8(void)
|
||||
|
||||
void SwapTurnOrder(u8 id1, u8 id2)
|
||||
{
|
||||
u32 temp;
|
||||
u32 temp;
|
||||
|
||||
SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp);
|
||||
SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp);
|
||||
SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp);
|
||||
SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp);
|
||||
}
|
||||
|
||||
u32 GetBattlerTotalSpeedStat(u8 battlerId)
|
||||
@ -5850,7 +5850,7 @@ bool8 TryRunFromBattle(u8 battler)
|
||||
|
||||
if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
|
||||
{
|
||||
gLastUsedItem = gBattleMons[battler].item ;
|
||||
gLastUsedItem = gBattleMons[battler].item;
|
||||
gProtectStructs[battler].fleeFlag = 1;
|
||||
effect++;
|
||||
}
|
||||
|
||||
2151
src/battle_message.c
2151
src/battle_message.c
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@
|
||||
#include "task.h"
|
||||
#include "battle_tower.h"
|
||||
#include "party_menu.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "palette.h"
|
||||
#include "script.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
#include "main.h"
|
||||
#include "load_save.h"
|
||||
#include "script.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "overworld.h"
|
||||
#include "event_scripts.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
@ -1458,7 +1458,7 @@ static u16 sub_81A9F90(u8 count)
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum + 1, battleNum);
|
||||
for (i = 0 ; i < count; i++)
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
|
||||
break;
|
||||
@ -1470,7 +1470,7 @@ static u16 sub_81A9F90(u8 count)
|
||||
do
|
||||
{
|
||||
trainerId = sub_8162548(challengeNum, battleNum);
|
||||
for (i = 0 ; i < count; i++)
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId)
|
||||
break;
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
#include "list_menu.h"
|
||||
#include "mail.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "overworld.h"
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
#include "international_string_util.h"
|
||||
#include "sound.h"
|
||||
#include "constants/songs.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "constants/game_stat.h"
|
||||
|
||||
|
||||
@ -686,45 +686,18 @@ static const u32 sStatusFlagsForMoveEffects[] =
|
||||
|
||||
static const u8* const sMoveEffectBS_Ptrs[] =
|
||||
{
|
||||
BattleScript_MoveEffectSleep, // 0
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SLEEP
|
||||
BattleScript_MoveEffectPoison, // MOVE_EFFECT_POISON
|
||||
BattleScript_MoveEffectBurn, // MOVE_EFFECT_BURN
|
||||
BattleScript_MoveEffectFreeze, // MOVE_EFFECT_FREEZE
|
||||
BattleScript_MoveEffectParalysis, // MOVE_EFFECT_PARALYSIS
|
||||
BattleScript_MoveEffectToxic, // MOVE_EFFECT_TOXIC
|
||||
BattleScript_MoveEffectConfusion, // MOVE_EFFECT_CONFUSION
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_FLINCH
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_TRI_ATTACK
|
||||
BattleScript_MoveEffectUproar, // MOVE_EFFECT_UPROAR
|
||||
BattleScript_MoveEffectPayDay, // MOVE_EFFECT_PAYDAY
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_CHARGING
|
||||
BattleScript_MoveEffectWrap, // MOVE_EFFECT_WRAP
|
||||
BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_25
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_PLUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_DEF_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SPD_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_ATK_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_SP_DEF_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ACC_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_EVS_MINUS_1
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_RECHARGE
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAGE
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_STEAL_ITEM
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_PREVENT_ESCAPE
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_NIGHTMARE
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ALL_STATS_UP
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_RAPIDSPIN
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_REMOVE_STATUS
|
||||
BattleScript_MoveEffectSleep, // MOVE_EFFECT_ATK_DEF_DOWN
|
||||
BattleScript_MoveEffectRecoil, // MOVE_EFFECT_RECOIL_33
|
||||
[MOVE_EFFECT_SLEEP] = BattleScript_MoveEffectSleep,
|
||||
[MOVE_EFFECT_POISON] = BattleScript_MoveEffectPoison,
|
||||
[MOVE_EFFECT_BURN] = BattleScript_MoveEffectBurn,
|
||||
[MOVE_EFFECT_FREEZE] = BattleScript_MoveEffectFreeze,
|
||||
[MOVE_EFFECT_PARALYSIS] = BattleScript_MoveEffectParalysis,
|
||||
[MOVE_EFFECT_TOXIC] = BattleScript_MoveEffectToxic,
|
||||
[MOVE_EFFECT_CONFUSION] = BattleScript_MoveEffectConfusion,
|
||||
[MOVE_EFFECT_UPROAR] = BattleScript_MoveEffectUproar,
|
||||
[MOVE_EFFECT_PAYDAY] = BattleScript_MoveEffectPayDay,
|
||||
[MOVE_EFFECT_WRAP] = BattleScript_MoveEffectWrap,
|
||||
[MOVE_EFFECT_RECOIL_25] = BattleScript_MoveEffectRecoil,
|
||||
[MOVE_EFFECT_RECOIL_33] = BattleScript_MoveEffectRecoil,
|
||||
};
|
||||
|
||||
static const struct WindowTemplate sUnusedWinTemplate = {0, 1, 3, 7, 0xF, 0x1F, 0x3F};
|
||||
@ -778,36 +751,36 @@ static const u16 sProtectSuccessRates[] = {USHRT_MAX, USHRT_MAX / 2, USHRT_MAX /
|
||||
|
||||
static const u16 sMovesForbiddenToCopy[] =
|
||||
{
|
||||
MOVE_TRANSFORM,
|
||||
MOVE_METRONOME,
|
||||
MOVE_STRUGGLE,
|
||||
MOVE_SKETCH,
|
||||
MOVE_MIMIC,
|
||||
MIMIC_FORBIDDEN_END,
|
||||
MOVE_COUNTER,
|
||||
MOVE_MIRROR_COAT,
|
||||
MOVE_PROTECT,
|
||||
MOVE_DETECT,
|
||||
MOVE_ENDURE,
|
||||
MOVE_DESTINY_BOND,
|
||||
MOVE_SLEEP_TALK,
|
||||
MOVE_THIEF,
|
||||
MOVE_FOLLOW_ME,
|
||||
MOVE_SNATCH,
|
||||
MOVE_HELPING_HAND,
|
||||
MOVE_COVET,
|
||||
MOVE_TRICK,
|
||||
MOVE_FOCUS_PUNCH,
|
||||
MOVE_CIRCLE_THROW,
|
||||
MOVE_DRAGON_TAIL,
|
||||
MOVE_RAGE_POWDER,
|
||||
MOVE_MAT_BLOCK,
|
||||
MOVE_SPIKY_SHIELD,
|
||||
MOVE_SHELL_TRAP,
|
||||
MOVE_SPOTLIGHT,
|
||||
MOVE_FEINT,
|
||||
MOVE_KING_S_SHIELD,
|
||||
METRONOME_FORBIDDEN_END
|
||||
MOVE_TRANSFORM,
|
||||
MOVE_METRONOME,
|
||||
MOVE_STRUGGLE,
|
||||
MOVE_SKETCH,
|
||||
MOVE_MIMIC,
|
||||
MIMIC_FORBIDDEN_END,
|
||||
MOVE_COUNTER,
|
||||
MOVE_MIRROR_COAT,
|
||||
MOVE_PROTECT,
|
||||
MOVE_DETECT,
|
||||
MOVE_ENDURE,
|
||||
MOVE_DESTINY_BOND,
|
||||
MOVE_SLEEP_TALK,
|
||||
MOVE_THIEF,
|
||||
MOVE_FOLLOW_ME,
|
||||
MOVE_SNATCH,
|
||||
MOVE_HELPING_HAND,
|
||||
MOVE_COVET,
|
||||
MOVE_TRICK,
|
||||
MOVE_FOCUS_PUNCH,
|
||||
MOVE_CIRCLE_THROW,
|
||||
MOVE_DRAGON_TAIL,
|
||||
MOVE_RAGE_POWDER,
|
||||
MOVE_MAT_BLOCK,
|
||||
MOVE_SPIKY_SHIELD,
|
||||
MOVE_SHELL_TRAP,
|
||||
MOVE_SPOTLIGHT,
|
||||
MOVE_FEINT,
|
||||
MOVE_KING_S_SHIELD,
|
||||
METRONOME_FORBIDDEN_END
|
||||
};
|
||||
|
||||
static const u16 sNaturePowerMoves[] =
|
||||
@ -827,38 +800,38 @@ static const u16 sNaturePowerMoves[] =
|
||||
static const u16 sPickupItems[] =
|
||||
{
|
||||
ITEM_POTION,
|
||||
ITEM_ANTIDOTE,
|
||||
ITEM_SUPER_POTION,
|
||||
ITEM_GREAT_BALL,
|
||||
ITEM_REPEL,
|
||||
ITEM_ESCAPE_ROPE,
|
||||
ITEM_X_ATTACK,
|
||||
ITEM_FULL_HEAL,
|
||||
ITEM_ULTRA_BALL,
|
||||
ITEM_HYPER_POTION,
|
||||
ITEM_RARE_CANDY,
|
||||
ITEM_PROTEIN,
|
||||
ITEM_REVIVE,
|
||||
ITEM_HP_UP,
|
||||
ITEM_FULL_RESTORE,
|
||||
ITEM_MAX_REVIVE,
|
||||
ITEM_PP_UP,
|
||||
ITEM_MAX_ELIXIR,
|
||||
ITEM_ANTIDOTE,
|
||||
ITEM_SUPER_POTION,
|
||||
ITEM_GREAT_BALL,
|
||||
ITEM_REPEL,
|
||||
ITEM_ESCAPE_ROPE,
|
||||
ITEM_X_ATTACK,
|
||||
ITEM_FULL_HEAL,
|
||||
ITEM_ULTRA_BALL,
|
||||
ITEM_HYPER_POTION,
|
||||
ITEM_RARE_CANDY,
|
||||
ITEM_PROTEIN,
|
||||
ITEM_REVIVE,
|
||||
ITEM_HP_UP,
|
||||
ITEM_FULL_RESTORE,
|
||||
ITEM_MAX_REVIVE,
|
||||
ITEM_PP_UP,
|
||||
ITEM_MAX_ELIXIR,
|
||||
};
|
||||
|
||||
static const u16 sRarePickupItems[] =
|
||||
{
|
||||
ITEM_HYPER_POTION,
|
||||
ITEM_NUGGET,
|
||||
ITEM_KINGS_ROCK,
|
||||
ITEM_FULL_RESTORE,
|
||||
ITEM_ETHER,
|
||||
ITEM_WHITE_HERB,
|
||||
ITEM_TM44_REST,
|
||||
ITEM_ELIXIR,
|
||||
ITEM_TM01_FOCUS_PUNCH,
|
||||
ITEM_LEFTOVERS,
|
||||
ITEM_TM26_EARTHQUAKE,
|
||||
ITEM_NUGGET,
|
||||
ITEM_KINGS_ROCK,
|
||||
ITEM_FULL_RESTORE,
|
||||
ITEM_ETHER,
|
||||
ITEM_WHITE_HERB,
|
||||
ITEM_TM44_REST,
|
||||
ITEM_ELIXIR,
|
||||
ITEM_TM01_FOCUS_PUNCH,
|
||||
ITEM_LEFTOVERS,
|
||||
ITEM_TM26_EARTHQUAKE,
|
||||
};
|
||||
|
||||
static const u8 sPickupProbabilities[] =
|
||||
@ -916,10 +889,10 @@ const ALIGNED(4) u8 gUnknown_0831C494[][4] =
|
||||
|
||||
static const u8 sUnknown_0831C4F8[] =
|
||||
{
|
||||
0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00,
|
||||
0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01,
|
||||
0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02,
|
||||
0x03, 0x00, 0x00, 0x00
|
||||
0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x03, 0x00,
|
||||
0x01, 0x02, 0x02, 0x00, 0x03, 0x01, 0x03, 0x01,
|
||||
0x02, 0x03, 0x03, 0x02, 0x01, 0x00, 0x02, 0x02,
|
||||
0x03, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
bool32 IsBattlerProtected(u8 battlerId, u16 move)
|
||||
@ -3156,7 +3129,7 @@ static void atk23_getexp(void)
|
||||
else
|
||||
{
|
||||
gBattleScripting.atk23_state++;
|
||||
gBattleStruct->field_DF |= gBitTable[gBattlerPartyIndexes[gBattlerFainted]];
|
||||
gBattleStruct->givenExpMons |= gBitTable[gBattlerPartyIndexes[gBattlerFainted]];
|
||||
}
|
||||
break;
|
||||
case 1: // calculate experience points to redistribute
|
||||
@ -3293,8 +3266,8 @@ static void atk23_getexp(void)
|
||||
|
||||
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, gBattleStruct->expGetterMonId)
|
||||
|
||||
// buffer 'gained' or 'gained a boosted'
|
||||
PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
|
||||
// buffer 'gained' or 'gained a boosted'
|
||||
PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
|
||||
|
||||
PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage)
|
||||
|
||||
@ -4118,25 +4091,25 @@ static void atk48_playstatchangeanimation(void)
|
||||
|
||||
enum
|
||||
{
|
||||
ATK49_RAGE,
|
||||
ATK49_DEFROST,
|
||||
ATK49_SYNCHRONIZE_TARGET,
|
||||
ATK49_MOVE_END_ABILITIES,
|
||||
ATK49_STATUS_IMMUNITY_ABILITIES,
|
||||
ATK49_SYNCHRONIZE_ATTACKER,
|
||||
ATK49_CHOICE_MOVE,
|
||||
ATK49_CHANGED_ITEMS,
|
||||
ATK49_ATTACKER_INVISIBLE,
|
||||
ATK49_ATTACKER_VISIBLE,
|
||||
ATK49_TARGET_VISIBLE,
|
||||
ATK49_ITEM_EFFECTS_ALL,
|
||||
ATK49_KINGSROCK_SHELLBELL,
|
||||
ATK49_SUBSTITUTE,
|
||||
ATK49_UPDATE_LAST_MOVES,
|
||||
ATK49_MIRROR_MOVE,
|
||||
ATK49_NEXT_TARGET,
|
||||
ATK49_CLEAR_BITS,
|
||||
ATK49_COUNT,
|
||||
ATK49_RAGE,
|
||||
ATK49_DEFROST,
|
||||
ATK49_SYNCHRONIZE_TARGET,
|
||||
ATK49_MOVE_END_ABILITIES,
|
||||
ATK49_STATUS_IMMUNITY_ABILITIES,
|
||||
ATK49_SYNCHRONIZE_ATTACKER,
|
||||
ATK49_CHOICE_MOVE,
|
||||
ATK49_CHANGED_ITEMS,
|
||||
ATK49_ATTACKER_INVISIBLE,
|
||||
ATK49_ATTACKER_VISIBLE,
|
||||
ATK49_TARGET_VISIBLE,
|
||||
ATK49_ITEM_EFFECTS_ALL,
|
||||
ATK49_KINGSROCK_SHELLBELL,
|
||||
ATK49_SUBSTITUTE,
|
||||
ATK49_UPDATE_LAST_MOVES,
|
||||
ATK49_MIRROR_MOVE,
|
||||
ATK49_NEXT_TARGET,
|
||||
ATK49_CLEAR_BITS,
|
||||
ATK49_COUNT,
|
||||
};
|
||||
|
||||
static void atk49_moveend(void)
|
||||
@ -5192,7 +5165,7 @@ static void atk52_switchineffects(void)
|
||||
gDisableStructs[gActiveBattler].truantUnknownBit = 0;
|
||||
|
||||
if (!AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0)
|
||||
&& !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE))
|
||||
&& !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE))
|
||||
{
|
||||
gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED | SIDE_STATUS_TOXIC_SPIKES_DAMAGED | SIDE_STATUS_STEALTH_ROCK_DAMAGED | SIDE_STATUS_STICKY_WEB_DAMAGED);
|
||||
|
||||
|
||||
@ -304,7 +304,7 @@ const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] =
|
||||
{{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b},
|
||||
{{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc},
|
||||
{{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e},
|
||||
{{TRAINER_WALLY_3, 0x292, 0x293, 0x294, 0x294}, 0x18, 0x2b},
|
||||
{{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b},
|
||||
{{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3},
|
||||
{{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb},
|
||||
{{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2},
|
||||
@ -1094,7 +1094,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
{
|
||||
case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT:
|
||||
TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data);
|
||||
return EventScript_2713C2;
|
||||
return EventScript_DoTainerBattle;
|
||||
case TRAINER_BATTLE_DOUBLE:
|
||||
TrainerBattleLoadArgs(sDoubleBattleParams, data);
|
||||
SetMapVarsToTrainer();
|
||||
@ -1109,11 +1109,11 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
{
|
||||
TrainerBattleLoadArgs(sTrainerBContinueScriptBattleParams, data);
|
||||
}
|
||||
return EventScript_271362;
|
||||
return EventScript_TryDoNormalTrainerBattle;
|
||||
case TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC:
|
||||
TrainerBattleLoadArgs(sContinueScriptBattleParams, data);
|
||||
SetMapVarsToTrainer();
|
||||
return EventScript_271362;
|
||||
return EventScript_TryDoNormalTrainerBattle;
|
||||
case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE:
|
||||
case TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC:
|
||||
TrainerBattleLoadArgs(sContinueScriptDoubleBattleParams, data);
|
||||
@ -1128,8 +1128,8 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
|
||||
SetMapVarsToTrainer();
|
||||
gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A);
|
||||
return EventScript_2713D1;
|
||||
case TRAINER_BATTLE_9:
|
||||
return EventScript_TryDoRematchBattle;
|
||||
case TRAINER_BATTLE_PYRAMID:
|
||||
if (gApproachingTrainerId == 0)
|
||||
{
|
||||
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
|
||||
@ -1141,7 +1141,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data);
|
||||
gTrainerBattleOpponent_B = LocalIdToPyramidTrainerId(gSpecialVar_LastTalked);
|
||||
}
|
||||
return EventScript_271362;
|
||||
return EventScript_TryDoNormalTrainerBattle;
|
||||
case TRAINER_BATTLE_SET_TRAINER_A:
|
||||
TrainerBattleLoadArgs(sOrdinaryBattleParams, data);
|
||||
return sTrainerBattleEndScript;
|
||||
@ -1160,7 +1160,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data);
|
||||
gTrainerBattleOpponent_B = sub_81D6180(gSpecialVar_LastTalked);
|
||||
}
|
||||
return EventScript_271362;
|
||||
return EventScript_TryDoNormalTrainerBattle;
|
||||
default:
|
||||
if (gApproachingTrainerId == 0)
|
||||
{
|
||||
@ -1171,7 +1171,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
{
|
||||
TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data);
|
||||
}
|
||||
return EventScript_271362;
|
||||
return EventScript_TryDoNormalTrainerBattle;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1203,7 +1203,7 @@ bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
|
||||
return FlagGet(FLAG_TRAINER_FLAG_START + flag);
|
||||
}
|
||||
|
||||
void sub_80B16D8(void)
|
||||
void SetUpTrainerMovement(void)
|
||||
{
|
||||
struct EventObject *eventObject = &gEventObjects[gSelectedEventObject];
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
#include "field_effect.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "overworld.h"
|
||||
#include "palette.h"
|
||||
#include "random.h"
|
||||
@ -612,32 +612,32 @@ static const s16 gUnknown_085C8CF2[] = {4, 517, -1};
|
||||
|
||||
static const s16 *const gUnknown_085C8CF8[] =
|
||||
{
|
||||
gUnknown_085C8C90,
|
||||
gUnknown_085C8CA4,
|
||||
gUnknown_085C8C98,
|
||||
gUnknown_085C8C9E,
|
||||
gUnknown_085C8CEA,
|
||||
gUnknown_085C8CE4,
|
||||
gUnknown_085C8CF2,
|
||||
gUnknown_085C8CDE
|
||||
gUnknown_085C8C90,
|
||||
gUnknown_085C8CA4,
|
||||
gUnknown_085C8C98,
|
||||
gUnknown_085C8C9E,
|
||||
gUnknown_085C8CEA,
|
||||
gUnknown_085C8CE4,
|
||||
gUnknown_085C8CF2,
|
||||
gUnknown_085C8CDE
|
||||
};
|
||||
|
||||
static const s16 *const gUnknown_085C8D18[] =
|
||||
{
|
||||
gUnknown_085C8CBC,
|
||||
gUnknown_085C8CB0,
|
||||
gUnknown_085C8CB6,
|
||||
gUnknown_085C8CAA,
|
||||
gUnknown_085C8CCA,
|
||||
gUnknown_085C8CD8,
|
||||
gUnknown_085C8CC4,
|
||||
gUnknown_085C8CD2
|
||||
gUnknown_085C8CBC,
|
||||
gUnknown_085C8CB0,
|
||||
gUnknown_085C8CB6,
|
||||
gUnknown_085C8CAA,
|
||||
gUnknown_085C8CCA,
|
||||
gUnknown_085C8CD8,
|
||||
gUnknown_085C8CC4,
|
||||
gUnknown_085C8CD2
|
||||
};
|
||||
|
||||
static const s16 *const *const gUnknown_085C8D38[] =
|
||||
{
|
||||
gUnknown_085C8CF8,
|
||||
gUnknown_085C8D18
|
||||
gUnknown_085C8CF8,
|
||||
gUnknown_085C8D18
|
||||
};
|
||||
|
||||
static const TransitionStateFunc sPhase2_Groudon_Funcs[] =
|
||||
|
||||
594
src/battle_tv.c
594
src/battle_tv.c
@ -815,324 +815,324 @@ void TryPutLinkBattleTvShowOnAir(void)
|
||||
{
|
||||
asm_unified(
|
||||
"push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x20\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [sp]\n\
|
||||
movs r1, 0\n\
|
||||
str r1, [sp, 0x4]\n\
|
||||
movs r2, 0\n\
|
||||
str r2, [sp, 0x8]\n\
|
||||
ldr r3, =0x00007fff\n\
|
||||
str r3, [sp, 0xC]\n\
|
||||
movs r4, 0\n\
|
||||
str r4, [sp, 0x10]\n\
|
||||
movs r7, 0\n\
|
||||
str r7, [sp, 0x14]\n\
|
||||
mov r8, r0\n\
|
||||
ldr r0, =gBattleStruct\n\
|
||||
ldr r1, [r0]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB3\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E42A\n\
|
||||
b _0817E670\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x20\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [sp]\n\
|
||||
movs r1, 0\n\
|
||||
str r1, [sp, 0x4]\n\
|
||||
movs r2, 0\n\
|
||||
str r2, [sp, 0x8]\n\
|
||||
ldr r3, =0x00007fff\n\
|
||||
str r3, [sp, 0xC]\n\
|
||||
movs r4, 0\n\
|
||||
str r4, [sp, 0x10]\n\
|
||||
movs r7, 0\n\
|
||||
str r7, [sp, 0x14]\n\
|
||||
mov r8, r0\n\
|
||||
ldr r0, =gBattleStruct\n\
|
||||
ldr r1, [r0]\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xB3\n\
|
||||
ldrb r0, [r0]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E42A\n\
|
||||
b _0817E670\n\
|
||||
_0817E42A:\n\
|
||||
movs r2, 0xD2\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r1\n\
|
||||
mov r10, r2\n\
|
||||
movs r6, 0\n\
|
||||
movs r2, 0xD2\n\
|
||||
lsls r2, 1\n\
|
||||
adds r2, r1\n\
|
||||
mov r10, r2\n\
|
||||
movs r6, 0\n\
|
||||
_0817E434:\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r4, r6, 0\n\
|
||||
muls r4, r0\n\
|
||||
ldr r0, =gPlayerParty\n\
|
||||
adds r0, r4, r0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E454\n\
|
||||
mov r0, r8\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
movs r0, 0x64\n\
|
||||
adds r4, r6, 0\n\
|
||||
muls r4, r0\n\
|
||||
ldr r0, =gPlayerParty\n\
|
||||
adds r0, r4, r0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E454\n\
|
||||
mov r0, r8\n\
|
||||
adds r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
_0817E454:\n\
|
||||
ldr r5, =gEnemyParty\n\
|
||||
adds r0, r4, r5\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E46A\n\
|
||||
adds r0, r7, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
ldr r5, =gEnemyParty\n\
|
||||
adds r0, r4, r5\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E46A\n\
|
||||
adds r0, r7, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
_0817E46A:\n\
|
||||
adds r6, 0x1\n\
|
||||
cmp r6, 0x5\n\
|
||||
ble _0817E434\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
movs r1, 0x2\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E47E\n\
|
||||
b _0817E670\n\
|
||||
adds r6, 0x1\n\
|
||||
cmp r6, 0x5\n\
|
||||
ble _0817E434\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
movs r1, 0x2\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E47E\n\
|
||||
b _0817E670\n\
|
||||
_0817E47E:\n\
|
||||
cmp r8, r7\n\
|
||||
beq _0817E484\n\
|
||||
b _0817E670\n\
|
||||
cmp r8, r7\n\
|
||||
beq _0817E484\n\
|
||||
b _0817E670\n\
|
||||
_0817E484:\n\
|
||||
movs r6, 0\n\
|
||||
lsls r3, r6, 1\n\
|
||||
str r3, [sp, 0x18]\n\
|
||||
movs r4, 0x64\n\
|
||||
mov r8, r4\n\
|
||||
movs r6, 0\n\
|
||||
lsls r3, r6, 1\n\
|
||||
str r3, [sp, 0x18]\n\
|
||||
movs r4, 0x64\n\
|
||||
mov r8, r4\n\
|
||||
_0817E48E:\n\
|
||||
mov r1, r8\n\
|
||||
muls r1, r6\n\
|
||||
ldr r0, =gPlayerParty\n\
|
||||
adds r4, r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r7, r0, 16\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
mov r9, r0\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0817E4EE\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E4EE\n\
|
||||
movs r4, 0\n\
|
||||
lsls r0, r6, 3\n\
|
||||
mov r2, r10\n\
|
||||
adds r1, r0, r2\n\
|
||||
movs r3, 0x3\n\
|
||||
mov r1, r8\n\
|
||||
muls r1, r6\n\
|
||||
ldr r0, =gPlayerParty\n\
|
||||
adds r4, r1, r0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r7, r0, 16\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
mov r9, r0\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0817E4EE\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E4EE\n\
|
||||
movs r4, 0\n\
|
||||
lsls r0, r6, 3\n\
|
||||
mov r2, r10\n\
|
||||
adds r1, r0, r2\n\
|
||||
movs r3, 0x3\n\
|
||||
_0817E4C4:\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
ldrh r4, [r1]\n\
|
||||
adds r0, r4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0817E4C4\n\
|
||||
ldr r1, [sp, 0x8]\n\
|
||||
lsls r0, r1, 16\n\
|
||||
lsls r1, r4, 16\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0817E4EE\n\
|
||||
lsls r0, r6, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x10]\n\
|
||||
lsrs r1, 16\n\
|
||||
str r1, [sp, 0x8]\n\
|
||||
str r7, [sp]\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
ldrh r4, [r1]\n\
|
||||
adds r0, r4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0817E4C4\n\
|
||||
ldr r1, [sp, 0x8]\n\
|
||||
lsls r0, r1, 16\n\
|
||||
lsls r1, r4, 16\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0817E4EE\n\
|
||||
lsls r0, r6, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x10]\n\
|
||||
lsrs r1, 16\n\
|
||||
str r1, [sp, 0x8]\n\
|
||||
str r7, [sp]\n\
|
||||
_0817E4EE:\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r6\n\
|
||||
ldr r2, =gEnemyParty\n\
|
||||
adds r4, r0, r2\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r7, r0, 16\n\
|
||||
ldr r3, [sp, 0x8]\n\
|
||||
lsls r3, 16\n\
|
||||
str r3, [sp, 0x1C]\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0817E5A0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E5A0\n\
|
||||
movs r4, 0\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
lsls r2, r0, 16\n\
|
||||
movs r3, 0x1\n\
|
||||
lsls r1, r3, 1\n\
|
||||
adds r1, 0x1\n\
|
||||
lsls r1, 4\n\
|
||||
lsls r0, r6, 3\n\
|
||||
adds r0, r1\n\
|
||||
mov r3, r10\n\
|
||||
adds r1, r0, r3\n\
|
||||
movs r3, 0x3\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r6\n\
|
||||
ldr r2, =gEnemyParty\n\
|
||||
adds r4, r0, r2\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0xB\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r7, r0, 16\n\
|
||||
ldr r3, [sp, 0x8]\n\
|
||||
lsls r3, 16\n\
|
||||
str r3, [sp, 0x1C]\n\
|
||||
cmp r7, 0\n\
|
||||
beq _0817E5A0\n\
|
||||
adds r0, r4, 0\n\
|
||||
movs r1, 0x2D\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0817E5A0\n\
|
||||
movs r4, 0\n\
|
||||
ldr r0, [sp, 0xC]\n\
|
||||
lsls r2, r0, 16\n\
|
||||
movs r3, 0x1\n\
|
||||
lsls r1, r3, 1\n\
|
||||
adds r1, 0x1\n\
|
||||
lsls r1, 4\n\
|
||||
lsls r0, r6, 3\n\
|
||||
adds r0, r1\n\
|
||||
mov r3, r10\n\
|
||||
adds r1, r0, r3\n\
|
||||
movs r3, 0x3\n\
|
||||
_0817E534:\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
ldrh r4, [r1]\n\
|
||||
adds r0, r4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0817E534\n\
|
||||
asrs r1, r2, 16\n\
|
||||
lsls r5, r4, 16\n\
|
||||
asrs r0, r5, 16\n\
|
||||
cmp r1, r0\n\
|
||||
bne _0817E590\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r6\n\
|
||||
ldr r1, =gEnemyParty\n\
|
||||
adds r0, r1\n\
|
||||
movs r1, 0x19\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
adds r4, r0, 0\n\
|
||||
ldr r2, [sp, 0x14]\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r2\n\
|
||||
ldr r3, =gEnemyParty\n\
|
||||
adds r0, r3\n\
|
||||
movs r1, 0x19\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r4, r0\n\
|
||||
bls _0817E5A0\n\
|
||||
b _0817E594\n\
|
||||
.pool\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
ldrh r4, [r1]\n\
|
||||
adds r0, r4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
adds r1, 0x2\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0817E534\n\
|
||||
asrs r1, r2, 16\n\
|
||||
lsls r5, r4, 16\n\
|
||||
asrs r0, r5, 16\n\
|
||||
cmp r1, r0\n\
|
||||
bne _0817E590\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r6\n\
|
||||
ldr r1, =gEnemyParty\n\
|
||||
adds r0, r1\n\
|
||||
movs r1, 0x19\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
adds r4, r0, 0\n\
|
||||
ldr r2, [sp, 0x14]\n\
|
||||
mov r0, r8\n\
|
||||
muls r0, r2\n\
|
||||
ldr r3, =gEnemyParty\n\
|
||||
adds r0, r3\n\
|
||||
movs r1, 0x19\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
cmp r4, r0\n\
|
||||
bls _0817E5A0\n\
|
||||
b _0817E594\n\
|
||||
.pool\n\
|
||||
_0817E590:\n\
|
||||
cmp r1, r0\n\
|
||||
ble _0817E5A0\n\
|
||||
cmp r1, r0\n\
|
||||
ble _0817E5A0\n\
|
||||
_0817E594:\n\
|
||||
lsls r0, r6, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x14]\n\
|
||||
lsrs r5, 16\n\
|
||||
str r5, [sp, 0xC]\n\
|
||||
str r7, [sp, 0x4]\n\
|
||||
lsls r0, r6, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x14]\n\
|
||||
lsrs r5, 16\n\
|
||||
str r5, [sp, 0xC]\n\
|
||||
str r7, [sp, 0x4]\n\
|
||||
_0817E5A0:\n\
|
||||
mov r6, r9\n\
|
||||
cmp r6, 0x5\n\
|
||||
bgt _0817E5A8\n\
|
||||
b _0817E48E\n\
|
||||
mov r6, r9\n\
|
||||
cmp r6, 0x5\n\
|
||||
bgt _0817E5A8\n\
|
||||
b _0817E48E\n\
|
||||
_0817E5A8:\n\
|
||||
movs r4, 0\n\
|
||||
movs r6, 0\n\
|
||||
movs r3, 0\n\
|
||||
ldr r5, =gPlayerParty\n\
|
||||
ldr r7, [sp, 0x10]\n\
|
||||
lsls r0, r7, 3\n\
|
||||
mov r1, r10\n\
|
||||
adds r2, r0, r1\n\
|
||||
movs r4, 0\n\
|
||||
movs r6, 0\n\
|
||||
movs r3, 0\n\
|
||||
ldr r5, =gPlayerParty\n\
|
||||
ldr r7, [sp, 0x10]\n\
|
||||
lsls r0, r7, 3\n\
|
||||
mov r1, r10\n\
|
||||
adds r2, r0, r1\n\
|
||||
_0817E5B8:\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r7, 0\n\
|
||||
ldrsh r1, [r2, r7]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0817E5C8\n\
|
||||
ldrh r4, [r2]\n\
|
||||
adds r6, r3, 0\n\
|
||||
lsls r0, r4, 16\n\
|
||||
asrs r0, 16\n\
|
||||
movs r7, 0\n\
|
||||
ldrsh r1, [r2, r7]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0817E5C8\n\
|
||||
ldrh r4, [r2]\n\
|
||||
adds r6, r3, 0\n\
|
||||
_0817E5C8:\n\
|
||||
adds r2, 0x2\n\
|
||||
adds r3, 0x1\n\
|
||||
cmp r3, 0x3\n\
|
||||
ble _0817E5B8\n\
|
||||
movs r0, 0x64\n\
|
||||
ldr r1, [sp, 0x10]\n\
|
||||
muls r0, r1\n\
|
||||
adds r0, r5\n\
|
||||
adds r1, r6, 0\n\
|
||||
adds r1, 0xD\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
ldr r2, [sp, 0x1C]\n\
|
||||
cmp r2, 0\n\
|
||||
beq _0817E670\n\
|
||||
cmp r4, 0\n\
|
||||
beq _0817E670\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
movs r1, 0x40\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E65C\n\
|
||||
ldr r3, [sp, 0x10]\n\
|
||||
cmp r3, 0x2\n\
|
||||
bhi _0817E620\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r0, [r0]\n\
|
||||
bl GetLinkTrainerFlankId\n\
|
||||
lsls r0, 16\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E630\n\
|
||||
b _0817E670\n\
|
||||
.pool\n\
|
||||
adds r2, 0x2\n\
|
||||
adds r3, 0x1\n\
|
||||
cmp r3, 0x3\n\
|
||||
ble _0817E5B8\n\
|
||||
movs r0, 0x64\n\
|
||||
ldr r1, [sp, 0x10]\n\
|
||||
muls r0, r1\n\
|
||||
adds r0, r5\n\
|
||||
adds r1, r6, 0\n\
|
||||
adds r1, 0xD\n\
|
||||
movs r2, 0\n\
|
||||
bl GetMonData\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r4, r0, 16\n\
|
||||
ldr r2, [sp, 0x1C]\n\
|
||||
cmp r2, 0\n\
|
||||
beq _0817E670\n\
|
||||
cmp r4, 0\n\
|
||||
beq _0817E670\n\
|
||||
ldr r0, =gBattleTypeFlags\n\
|
||||
ldr r0, [r0]\n\
|
||||
movs r1, 0x40\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E65C\n\
|
||||
ldr r3, [sp, 0x10]\n\
|
||||
cmp r3, 0x2\n\
|
||||
bhi _0817E620\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r0, [r0]\n\
|
||||
bl GetLinkTrainerFlankId\n\
|
||||
lsls r0, 16\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E630\n\
|
||||
b _0817E670\n\
|
||||
.pool\n\
|
||||
_0817E620:\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r0, [r0]\n\
|
||||
bl GetLinkTrainerFlankId\n\
|
||||
lsls r0, 16\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E670\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r0, [r0]\n\
|
||||
bl GetLinkTrainerFlankId\n\
|
||||
lsls r0, 16\n\
|
||||
cmp r0, 0\n\
|
||||
beq _0817E670\n\
|
||||
_0817E630:\n\
|
||||
movs r3, 0\n\
|
||||
ldr r7, [sp, 0x14]\n\
|
||||
cmp r7, 0x2\n\
|
||||
bls _0817E63A\n\
|
||||
movs r3, 0x1\n\
|
||||
movs r3, 0\n\
|
||||
ldr r7, [sp, 0x14]\n\
|
||||
cmp r7, 0x2\n\
|
||||
bls _0817E63A\n\
|
||||
movs r3, 0x1\n\
|
||||
_0817E63A:\n\
|
||||
lsls r0, r3, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
ldr r1, =gBattleScripting\n\
|
||||
adds r1, 0x25\n\
|
||||
ldrb r1, [r1]\n\
|
||||
bl sub_806EF84\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
adds r1, r4, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
bl PutBattleUpdateOnTheAir\n\
|
||||
b _0817E670\n\
|
||||
.pool\n\
|
||||
lsls r0, r3, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
ldr r1, =gBattleScripting\n\
|
||||
adds r1, 0x25\n\
|
||||
ldrb r1, [r1]\n\
|
||||
bl sub_806EF84\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
adds r1, r4, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
bl PutBattleUpdateOnTheAir\n\
|
||||
b _0817E670\n\
|
||||
.pool\n\
|
||||
_0817E65C:\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r1, [r0]\n\
|
||||
movs r0, 0x1\n\
|
||||
eors r0, r1\n\
|
||||
adds r1, r4, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
bl PutBattleUpdateOnTheAir\n\
|
||||
ldr r0, =gBattleScripting\n\
|
||||
adds r0, 0x25\n\
|
||||
ldrb r1, [r0]\n\
|
||||
movs r0, 0x1\n\
|
||||
eors r0, r1\n\
|
||||
adds r1, r4, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
bl PutBattleUpdateOnTheAir\n\
|
||||
_0817E670:\n\
|
||||
add sp, 0x20\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool");
|
||||
add sp, 0x20\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@ -891,12 +891,12 @@ u8 DoFieldEndTurnEffects(void)
|
||||
}
|
||||
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
// fall through
|
||||
case ENDTURN_REFLECT:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].reflectBattlerId;
|
||||
if (gSideStatuses[side] & SIDE_STATUS_REFLECT)
|
||||
{
|
||||
@ -908,20 +908,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_LIGHT_SCREEN:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].lightscreenBattlerId;
|
||||
if (gSideStatuses[side] & SIDE_STATUS_LIGHTSCREEN)
|
||||
{
|
||||
@ -934,20 +934,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_AURORA_VEIL:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].auroraVeilBattlerId;
|
||||
if (gSideStatuses[side] & SIDE_STATUS_AURORA_VEIL)
|
||||
{
|
||||
@ -960,20 +960,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_MIST:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].mistBattlerId;
|
||||
if (gSideTimers[side].mistTimer != 0
|
||||
&& --gSideTimers[side].mistTimer == 0)
|
||||
@ -984,20 +984,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST);
|
||||
effect++;
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_SAFEGUARD:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].safeguardBattlerId;
|
||||
if (gSideStatuses[side] & SIDE_STATUS_SAFEGUARD)
|
||||
{
|
||||
@ -1008,20 +1008,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_LUCKY_CHANT:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].luckyChantBattlerId;
|
||||
if (gSideStatuses[side] & SIDE_STATUS_LUCKY_CHANT)
|
||||
{
|
||||
@ -1032,20 +1032,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_TAILWIND:
|
||||
while (gBattleStruct->turnEffectsSide < 2)
|
||||
while (gBattleStruct->turnSideTracker < 2)
|
||||
{
|
||||
side = gBattleStruct->turnEffectsSide;
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].tailwindBattlerId;
|
||||
if (gSideStatuses[side] & SIDE_STATUS_TAILWIND)
|
||||
{
|
||||
@ -1056,20 +1056,20 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnEffectsSide = 0;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
break;
|
||||
case ENDTURN_WISH:
|
||||
while (gBattleStruct->turnEffectsSide < gBattlersCount)
|
||||
while (gBattleStruct->turnSideTracker < gBattlersCount)
|
||||
{
|
||||
gActiveBattler = gBattlerByTurnOrder[gBattleStruct->turnEffectsSide];
|
||||
gActiveBattler = gBattlerByTurnOrder[gBattleStruct->turnSideTracker];
|
||||
if (gWishFutureKnock.wishCounter[gActiveBattler] != 0
|
||||
&& --gWishFutureKnock.wishCounter[gActiveBattler] == 0
|
||||
&& gBattleMons[gActiveBattler].hp != 0)
|
||||
@ -1078,7 +1078,7 @@ u8 DoFieldEndTurnEffects(void)
|
||||
BattleScriptExecute(BattleScript_WishComesTrue);
|
||||
effect++;
|
||||
}
|
||||
gBattleStruct->turnEffectsSide++;
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
break;
|
||||
}
|
||||
@ -1857,7 +1857,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
|
||||
// fall through
|
||||
case 2:
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
&& gBattleStruct->field_DA == 2
|
||||
&& gBattleStruct->arenaTurnCounter == 2
|
||||
&& gBattleMons[0].hp != 0 && gBattleMons[1].hp != 0)
|
||||
{
|
||||
s32 i;
|
||||
@ -1903,7 +1903,7 @@ bool8 HandleFaintedMonActions(void)
|
||||
{
|
||||
gBattlerFainted = gBattlerTarget = gBattleStruct->faintedActionsBattlerId;
|
||||
if (gBattleMons[gBattleStruct->faintedActionsBattlerId].hp == 0
|
||||
&& !(gBattleStruct->field_DF & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]])
|
||||
&& !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]])
|
||||
&& !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBattlerId]))
|
||||
{
|
||||
BattleScriptExecute(BattleScript_GiveExp);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "pokemon.h"
|
||||
#include "event_data.h"
|
||||
#include "constants/abilities.h"
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
#include "bg.h"
|
||||
#include "palette.h"
|
||||
#include "decompress.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "text.h"
|
||||
#include "text_window.h"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "multiboot.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "bg.h"
|
||||
#include "graphics.h"
|
||||
#include "main.h"
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "bg.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "bg.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/event_objects.h"
|
||||
#include "constants/moves.h"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#include "main.h"
|
||||
#include "task.h"
|
||||
#include "bg.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "window.h"
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -247,253 +247,253 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldM
|
||||
|
||||
|
||||
const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] = {
|
||||
&gEventObjectGraphicsInfo_BrendanNormal,
|
||||
&gEventObjectGraphicsInfo_BrendanMachBike,
|
||||
&gEventObjectGraphicsInfo_BrendanSurfing,
|
||||
&gEventObjectGraphicsInfo_BrendanFieldMove,
|
||||
&gEventObjectGraphicsInfo_QuintyPlump,
|
||||
&gEventObjectGraphicsInfo_NinjaBoy,
|
||||
&gEventObjectGraphicsInfo_Twin,
|
||||
&gEventObjectGraphicsInfo_Boy1,
|
||||
&gEventObjectGraphicsInfo_Girl1,
|
||||
&gEventObjectGraphicsInfo_Boy2,
|
||||
&gEventObjectGraphicsInfo_Girl2,
|
||||
&gEventObjectGraphicsInfo_LittleBoy,
|
||||
&gEventObjectGraphicsInfo_LittleGirl,
|
||||
&gEventObjectGraphicsInfo_Boy3,
|
||||
&gEventObjectGraphicsInfo_Girl3,
|
||||
&gEventObjectGraphicsInfo_RichBoy,
|
||||
&gEventObjectGraphicsInfo_Woman1,
|
||||
&gEventObjectGraphicsInfo_FatMan,
|
||||
&gEventObjectGraphicsInfo_PokefanF,
|
||||
&gEventObjectGraphicsInfo_Man1,
|
||||
&gEventObjectGraphicsInfo_Woman2,
|
||||
&gEventObjectGraphicsInfo_ExpertM,
|
||||
&gEventObjectGraphicsInfo_ExpertF,
|
||||
&gEventObjectGraphicsInfo_Man2,
|
||||
&gEventObjectGraphicsInfo_Woman3,
|
||||
&gEventObjectGraphicsInfo_PokefanM,
|
||||
&gEventObjectGraphicsInfo_Woman4,
|
||||
&gEventObjectGraphicsInfo_Cook,
|
||||
&gEventObjectGraphicsInfo_LinkReceptionist,
|
||||
&gEventObjectGraphicsInfo_OldMan,
|
||||
&gEventObjectGraphicsInfo_OldWoman,
|
||||
&gEventObjectGraphicsInfo_Camper,
|
||||
&gEventObjectGraphicsInfo_Picnicker,
|
||||
&gEventObjectGraphicsInfo_Man3,
|
||||
&gEventObjectGraphicsInfo_Woman5,
|
||||
&gEventObjectGraphicsInfo_Youngster,
|
||||
&gEventObjectGraphicsInfo_BugCatcher,
|
||||
&gEventObjectGraphicsInfo_PsychicM,
|
||||
&gEventObjectGraphicsInfo_SchoolKidM,
|
||||
&gEventObjectGraphicsInfo_Maniac,
|
||||
&gEventObjectGraphicsInfo_HexManiac,
|
||||
&gEventObjectGraphicsInfo_Rayquaza1,
|
||||
&gEventObjectGraphicsInfo_SwimmerM,
|
||||
&gEventObjectGraphicsInfo_SwimmerF,
|
||||
&gEventObjectGraphicsInfo_BlackBelt,
|
||||
&gEventObjectGraphicsInfo_Beauty,
|
||||
&gEventObjectGraphicsInfo_Scientist1,
|
||||
&gEventObjectGraphicsInfo_Lass,
|
||||
&gEventObjectGraphicsInfo_Gentleman,
|
||||
&gEventObjectGraphicsInfo_Sailor,
|
||||
&gEventObjectGraphicsInfo_Fisherman,
|
||||
&gEventObjectGraphicsInfo_RunningTriathleteM,
|
||||
&gEventObjectGraphicsInfo_RunningTriathleteF,
|
||||
&gEventObjectGraphicsInfo_TuberF,
|
||||
&gEventObjectGraphicsInfo_TuberM,
|
||||
&gEventObjectGraphicsInfo_Hiker,
|
||||
&gEventObjectGraphicsInfo_CyclingTriathleteM,
|
||||
&gEventObjectGraphicsInfo_CyclingTriathleteF,
|
||||
&gEventObjectGraphicsInfo_Nurse,
|
||||
&gEventObjectGraphicsInfo_ItemBall,
|
||||
&gEventObjectGraphicsInfo_BerryTree,
|
||||
&gEventObjectGraphicsInfo_BerryTreeEarlyStages,
|
||||
&gEventObjectGraphicsInfo_BerryTreeLateStages,
|
||||
&gEventObjectGraphicsInfo_BrendanAcroBike,
|
||||
&gEventObjectGraphicsInfo_ProfBirch,
|
||||
&gEventObjectGraphicsInfo_Man4,
|
||||
&gEventObjectGraphicsInfo_Man5,
|
||||
&gEventObjectGraphicsInfo_ReporterM,
|
||||
&gEventObjectGraphicsInfo_ReporterF,
|
||||
&gEventObjectGraphicsInfo_Bard,
|
||||
&gEventObjectGraphicsInfo_Anabel,
|
||||
&gEventObjectGraphicsInfo_Tucker,
|
||||
&gEventObjectGraphicsInfo_Greta,
|
||||
&gEventObjectGraphicsInfo_Spenser,
|
||||
&gEventObjectGraphicsInfo_Noland,
|
||||
&gEventObjectGraphicsInfo_Lucy,
|
||||
&gEventObjectGraphicsInfo_UnusedNatuDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedMagnemiteDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedSquirtleDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedWooperDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedPikachuDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedPorygon2Doll,
|
||||
&gEventObjectGraphicsInfo_CuttableTree,
|
||||
&gEventObjectGraphicsInfo_MartEmployee,
|
||||
&gEventObjectGraphicsInfo_RooftopSaleWoman,
|
||||
&gEventObjectGraphicsInfo_Teala,
|
||||
&gEventObjectGraphicsInfo_BreakableRock,
|
||||
&gEventObjectGraphicsInfo_PushableBoulder,
|
||||
&gEventObjectGraphicsInfo_MrBrineysBoat,
|
||||
&gEventObjectGraphicsInfo_MayNormal,
|
||||
&gEventObjectGraphicsInfo_MayMachBike,
|
||||
&gEventObjectGraphicsInfo_MayAcroBike,
|
||||
&gEventObjectGraphicsInfo_MaySurfing,
|
||||
&gEventObjectGraphicsInfo_MayFieldMove,
|
||||
&gEventObjectGraphicsInfo_Truck,
|
||||
&gEventObjectGraphicsInfo_VigorothCarryingBox,
|
||||
&gEventObjectGraphicsInfo_VigorothFacingAway,
|
||||
&gEventObjectGraphicsInfo_BirchsBag,
|
||||
&gEventObjectGraphicsInfo_EnemyZigzagoon,
|
||||
&gEventObjectGraphicsInfo_Artist,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanNormal,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanMachBike,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanAcroBike,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanSurfing,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanFieldMove,
|
||||
&gEventObjectGraphicsInfo_RivalMayNormal,
|
||||
&gEventObjectGraphicsInfo_RivalMayMachBike,
|
||||
&gEventObjectGraphicsInfo_RivalMayAcroBike,
|
||||
&gEventObjectGraphicsInfo_RivalMaySurfing,
|
||||
&gEventObjectGraphicsInfo_RivalMayFieldMove,
|
||||
&gEventObjectGraphicsInfo_Cameraman,
|
||||
&gEventObjectGraphicsInfo_BrendanUnderwater,
|
||||
&gEventObjectGraphicsInfo_MayUnderwater,
|
||||
&gEventObjectGraphicsInfo_MovingBox,
|
||||
&gEventObjectGraphicsInfo_CableCar,
|
||||
&gEventObjectGraphicsInfo_Scientist2,
|
||||
&gEventObjectGraphicsInfo_DevonEmployee,
|
||||
&gEventObjectGraphicsInfo_AquaMemberM,
|
||||
&gEventObjectGraphicsInfo_AquaMemberF,
|
||||
&gEventObjectGraphicsInfo_MagmaMemberM,
|
||||
&gEventObjectGraphicsInfo_MagmaMemberF,
|
||||
&gEventObjectGraphicsInfo_Sidney,
|
||||
&gEventObjectGraphicsInfo_Phoebe,
|
||||
&gEventObjectGraphicsInfo_Glacia,
|
||||
&gEventObjectGraphicsInfo_Drake,
|
||||
&gEventObjectGraphicsInfo_Roxanne,
|
||||
&gEventObjectGraphicsInfo_Brawly,
|
||||
&gEventObjectGraphicsInfo_Wattson,
|
||||
&gEventObjectGraphicsInfo_Flannery,
|
||||
&gEventObjectGraphicsInfo_Norman,
|
||||
&gEventObjectGraphicsInfo_Winona,
|
||||
&gEventObjectGraphicsInfo_Liza,
|
||||
&gEventObjectGraphicsInfo_Tate,
|
||||
&gEventObjectGraphicsInfo_Wallace,
|
||||
&gEventObjectGraphicsInfo_Steven,
|
||||
&gEventObjectGraphicsInfo_Wally,
|
||||
&gEventObjectGraphicsInfo_RubySapphireLittleBoy,
|
||||
&gEventObjectGraphicsInfo_BrendanFishing,
|
||||
&gEventObjectGraphicsInfo_MayFishing,
|
||||
&gEventObjectGraphicsInfo_HotSpringsOldWoman,
|
||||
&gEventObjectGraphicsInfo_SSTidal,
|
||||
&gEventObjectGraphicsInfo_SubmarineShadow,
|
||||
&gEventObjectGraphicsInfo_PichuDoll,
|
||||
&gEventObjectGraphicsInfo_PikachuDoll,
|
||||
&gEventObjectGraphicsInfo_MarillDoll,
|
||||
&gEventObjectGraphicsInfo_TogepiDoll,
|
||||
&gEventObjectGraphicsInfo_CyndaquilDoll,
|
||||
&gEventObjectGraphicsInfo_ChikoritaDoll,
|
||||
&gEventObjectGraphicsInfo_TotodileDoll,
|
||||
&gEventObjectGraphicsInfo_JigglypuffDoll,
|
||||
&gEventObjectGraphicsInfo_MeowthDoll,
|
||||
&gEventObjectGraphicsInfo_ClefairyDoll,
|
||||
&gEventObjectGraphicsInfo_DittoDoll,
|
||||
&gEventObjectGraphicsInfo_SmoochumDoll,
|
||||
&gEventObjectGraphicsInfo_TreeckoDoll,
|
||||
&gEventObjectGraphicsInfo_TorchicDoll,
|
||||
&gEventObjectGraphicsInfo_MudkipDoll,
|
||||
&gEventObjectGraphicsInfo_DuskullDoll,
|
||||
&gEventObjectGraphicsInfo_WynautDoll,
|
||||
&gEventObjectGraphicsInfo_BaltoyDoll,
|
||||
&gEventObjectGraphicsInfo_KecleonDoll,
|
||||
&gEventObjectGraphicsInfo_AzurillDoll,
|
||||
&gEventObjectGraphicsInfo_SkittyDoll,
|
||||
&gEventObjectGraphicsInfo_SwabluDoll,
|
||||
&gEventObjectGraphicsInfo_GulpinDoll,
|
||||
&gEventObjectGraphicsInfo_LotadDoll,
|
||||
&gEventObjectGraphicsInfo_SeedotDoll,
|
||||
&gEventObjectGraphicsInfo_PikaCushion,
|
||||
&gEventObjectGraphicsInfo_RoundCushion,
|
||||
&gEventObjectGraphicsInfo_KissCushion,
|
||||
&gEventObjectGraphicsInfo_ZigzagCushion,
|
||||
&gEventObjectGraphicsInfo_SpinCushion,
|
||||
&gEventObjectGraphicsInfo_DiamondCushion,
|
||||
&gEventObjectGraphicsInfo_BallCushion,
|
||||
&gEventObjectGraphicsInfo_GrassCushion,
|
||||
&gEventObjectGraphicsInfo_FireCushion,
|
||||
&gEventObjectGraphicsInfo_WaterCushion,
|
||||
&gEventObjectGraphicsInfo_BigSnorlaxDoll,
|
||||
&gEventObjectGraphicsInfo_BigRhydonDoll,
|
||||
&gEventObjectGraphicsInfo_BigLaprasDoll,
|
||||
&gEventObjectGraphicsInfo_BigVenusaurDoll,
|
||||
&gEventObjectGraphicsInfo_BigCharizardDoll,
|
||||
&gEventObjectGraphicsInfo_BigBlastoiseDoll,
|
||||
&gEventObjectGraphicsInfo_BigWailmerDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegirockDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegiceDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegisteelDoll,
|
||||
&gEventObjectGraphicsInfo_Latias,
|
||||
&gEventObjectGraphicsInfo_Latios,
|
||||
&gEventObjectGraphicsInfo_GameboyKid,
|
||||
&gEventObjectGraphicsInfo_ContestJudge,
|
||||
&gEventObjectGraphicsInfo_BrendanWatering,
|
||||
&gEventObjectGraphicsInfo_MayWatering,
|
||||
&gEventObjectGraphicsInfo_BrendanDecorating,
|
||||
&gEventObjectGraphicsInfo_MayDecorating,
|
||||
&gEventObjectGraphicsInfo_Archie,
|
||||
&gEventObjectGraphicsInfo_Maxie,
|
||||
&gEventObjectGraphicsInfo_Kyogre1,
|
||||
&gEventObjectGraphicsInfo_Groudon1,
|
||||
&gEventObjectGraphicsInfo_Fossil,
|
||||
&gEventObjectGraphicsInfo_Regirock,
|
||||
&gEventObjectGraphicsInfo_Regice,
|
||||
&gEventObjectGraphicsInfo_Registeel,
|
||||
&gEventObjectGraphicsInfo_Skitty,
|
||||
&gEventObjectGraphicsInfo_Kecleon1,
|
||||
&gEventObjectGraphicsInfo_Kyogre2,
|
||||
&gEventObjectGraphicsInfo_Groudon2,
|
||||
&gEventObjectGraphicsInfo_Rayquaza2,
|
||||
&gEventObjectGraphicsInfo_Zigzagoon,
|
||||
&gEventObjectGraphicsInfo_Pikachu,
|
||||
&gEventObjectGraphicsInfo_Azumarill,
|
||||
&gEventObjectGraphicsInfo_Wingull,
|
||||
&gEventObjectGraphicsInfo_Kecleon2,
|
||||
&gEventObjectGraphicsInfo_TuberMSwimming,
|
||||
&gEventObjectGraphicsInfo_Azurill,
|
||||
&gEventObjectGraphicsInfo_Mom,
|
||||
&gEventObjectGraphicsInfo_LinkBrendan,
|
||||
&gEventObjectGraphicsInfo_LinkMay,
|
||||
&gEventObjectGraphicsInfo_Juan,
|
||||
&gEventObjectGraphicsInfo_Scott,
|
||||
&gEventObjectGraphicsInfo_Poochyena,
|
||||
&gEventObjectGraphicsInfo_Kyogre3,
|
||||
&gEventObjectGraphicsInfo_Groudon3,
|
||||
&gEventObjectGraphicsInfo_MysteryEventDeliveryman,
|
||||
&gEventObjectGraphicsInfo_Statue,
|
||||
&gEventObjectGraphicsInfo_Kirlia,
|
||||
&gEventObjectGraphicsInfo_Dusclops,
|
||||
&gEventObjectGraphicsInfo_UnionRoomAttendant,
|
||||
&gEventObjectGraphicsInfo_Sudowoodo,
|
||||
&gEventObjectGraphicsInfo_Mew,
|
||||
&gEventObjectGraphicsInfo_Red,
|
||||
&gEventObjectGraphicsInfo_Leaf,
|
||||
&gEventObjectGraphicsInfo_Deoxys,
|
||||
&gEventObjectGraphicsInfo_BirthIslandStone,
|
||||
&gEventObjectGraphicsInfo_Brandon,
|
||||
&gEventObjectGraphicsInfo_RubySapphireBrendan,
|
||||
&gEventObjectGraphicsInfo_RubySapphireMay,
|
||||
&gEventObjectGraphicsInfo_Lugia,
|
||||
&gEventObjectGraphicsInfo_HoOh,
|
||||
&gEventObjectGraphicsInfo_BrendanNormal,
|
||||
&gEventObjectGraphicsInfo_BrendanMachBike,
|
||||
&gEventObjectGraphicsInfo_BrendanSurfing,
|
||||
&gEventObjectGraphicsInfo_BrendanFieldMove,
|
||||
&gEventObjectGraphicsInfo_QuintyPlump,
|
||||
&gEventObjectGraphicsInfo_NinjaBoy,
|
||||
&gEventObjectGraphicsInfo_Twin,
|
||||
&gEventObjectGraphicsInfo_Boy1,
|
||||
&gEventObjectGraphicsInfo_Girl1,
|
||||
&gEventObjectGraphicsInfo_Boy2,
|
||||
&gEventObjectGraphicsInfo_Girl2,
|
||||
&gEventObjectGraphicsInfo_LittleBoy,
|
||||
&gEventObjectGraphicsInfo_LittleGirl,
|
||||
&gEventObjectGraphicsInfo_Boy3,
|
||||
&gEventObjectGraphicsInfo_Girl3,
|
||||
&gEventObjectGraphicsInfo_RichBoy,
|
||||
&gEventObjectGraphicsInfo_Woman1,
|
||||
&gEventObjectGraphicsInfo_FatMan,
|
||||
&gEventObjectGraphicsInfo_PokefanF,
|
||||
&gEventObjectGraphicsInfo_Man1,
|
||||
&gEventObjectGraphicsInfo_Woman2,
|
||||
&gEventObjectGraphicsInfo_ExpertM,
|
||||
&gEventObjectGraphicsInfo_ExpertF,
|
||||
&gEventObjectGraphicsInfo_Man2,
|
||||
&gEventObjectGraphicsInfo_Woman3,
|
||||
&gEventObjectGraphicsInfo_PokefanM,
|
||||
&gEventObjectGraphicsInfo_Woman4,
|
||||
&gEventObjectGraphicsInfo_Cook,
|
||||
&gEventObjectGraphicsInfo_LinkReceptionist,
|
||||
&gEventObjectGraphicsInfo_OldMan,
|
||||
&gEventObjectGraphicsInfo_OldWoman,
|
||||
&gEventObjectGraphicsInfo_Camper,
|
||||
&gEventObjectGraphicsInfo_Picnicker,
|
||||
&gEventObjectGraphicsInfo_Man3,
|
||||
&gEventObjectGraphicsInfo_Woman5,
|
||||
&gEventObjectGraphicsInfo_Youngster,
|
||||
&gEventObjectGraphicsInfo_BugCatcher,
|
||||
&gEventObjectGraphicsInfo_PsychicM,
|
||||
&gEventObjectGraphicsInfo_SchoolKidM,
|
||||
&gEventObjectGraphicsInfo_Maniac,
|
||||
&gEventObjectGraphicsInfo_HexManiac,
|
||||
&gEventObjectGraphicsInfo_Rayquaza1,
|
||||
&gEventObjectGraphicsInfo_SwimmerM,
|
||||
&gEventObjectGraphicsInfo_SwimmerF,
|
||||
&gEventObjectGraphicsInfo_BlackBelt,
|
||||
&gEventObjectGraphicsInfo_Beauty,
|
||||
&gEventObjectGraphicsInfo_Scientist1,
|
||||
&gEventObjectGraphicsInfo_Lass,
|
||||
&gEventObjectGraphicsInfo_Gentleman,
|
||||
&gEventObjectGraphicsInfo_Sailor,
|
||||
&gEventObjectGraphicsInfo_Fisherman,
|
||||
&gEventObjectGraphicsInfo_RunningTriathleteM,
|
||||
&gEventObjectGraphicsInfo_RunningTriathleteF,
|
||||
&gEventObjectGraphicsInfo_TuberF,
|
||||
&gEventObjectGraphicsInfo_TuberM,
|
||||
&gEventObjectGraphicsInfo_Hiker,
|
||||
&gEventObjectGraphicsInfo_CyclingTriathleteM,
|
||||
&gEventObjectGraphicsInfo_CyclingTriathleteF,
|
||||
&gEventObjectGraphicsInfo_Nurse,
|
||||
&gEventObjectGraphicsInfo_ItemBall,
|
||||
&gEventObjectGraphicsInfo_BerryTree,
|
||||
&gEventObjectGraphicsInfo_BerryTreeEarlyStages,
|
||||
&gEventObjectGraphicsInfo_BerryTreeLateStages,
|
||||
&gEventObjectGraphicsInfo_BrendanAcroBike,
|
||||
&gEventObjectGraphicsInfo_ProfBirch,
|
||||
&gEventObjectGraphicsInfo_Man4,
|
||||
&gEventObjectGraphicsInfo_Man5,
|
||||
&gEventObjectGraphicsInfo_ReporterM,
|
||||
&gEventObjectGraphicsInfo_ReporterF,
|
||||
&gEventObjectGraphicsInfo_Bard,
|
||||
&gEventObjectGraphicsInfo_Anabel,
|
||||
&gEventObjectGraphicsInfo_Tucker,
|
||||
&gEventObjectGraphicsInfo_Greta,
|
||||
&gEventObjectGraphicsInfo_Spenser,
|
||||
&gEventObjectGraphicsInfo_Noland,
|
||||
&gEventObjectGraphicsInfo_Lucy,
|
||||
&gEventObjectGraphicsInfo_UnusedNatuDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedMagnemiteDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedSquirtleDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedWooperDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedPikachuDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedPorygon2Doll,
|
||||
&gEventObjectGraphicsInfo_CuttableTree,
|
||||
&gEventObjectGraphicsInfo_MartEmployee,
|
||||
&gEventObjectGraphicsInfo_RooftopSaleWoman,
|
||||
&gEventObjectGraphicsInfo_Teala,
|
||||
&gEventObjectGraphicsInfo_BreakableRock,
|
||||
&gEventObjectGraphicsInfo_PushableBoulder,
|
||||
&gEventObjectGraphicsInfo_MrBrineysBoat,
|
||||
&gEventObjectGraphicsInfo_MayNormal,
|
||||
&gEventObjectGraphicsInfo_MayMachBike,
|
||||
&gEventObjectGraphicsInfo_MayAcroBike,
|
||||
&gEventObjectGraphicsInfo_MaySurfing,
|
||||
&gEventObjectGraphicsInfo_MayFieldMove,
|
||||
&gEventObjectGraphicsInfo_Truck,
|
||||
&gEventObjectGraphicsInfo_VigorothCarryingBox,
|
||||
&gEventObjectGraphicsInfo_VigorothFacingAway,
|
||||
&gEventObjectGraphicsInfo_BirchsBag,
|
||||
&gEventObjectGraphicsInfo_EnemyZigzagoon,
|
||||
&gEventObjectGraphicsInfo_Artist,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanNormal,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanMachBike,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanAcroBike,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanSurfing,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanFieldMove,
|
||||
&gEventObjectGraphicsInfo_RivalMayNormal,
|
||||
&gEventObjectGraphicsInfo_RivalMayMachBike,
|
||||
&gEventObjectGraphicsInfo_RivalMayAcroBike,
|
||||
&gEventObjectGraphicsInfo_RivalMaySurfing,
|
||||
&gEventObjectGraphicsInfo_RivalMayFieldMove,
|
||||
&gEventObjectGraphicsInfo_Cameraman,
|
||||
&gEventObjectGraphicsInfo_BrendanUnderwater,
|
||||
&gEventObjectGraphicsInfo_MayUnderwater,
|
||||
&gEventObjectGraphicsInfo_MovingBox,
|
||||
&gEventObjectGraphicsInfo_CableCar,
|
||||
&gEventObjectGraphicsInfo_Scientist2,
|
||||
&gEventObjectGraphicsInfo_DevonEmployee,
|
||||
&gEventObjectGraphicsInfo_AquaMemberM,
|
||||
&gEventObjectGraphicsInfo_AquaMemberF,
|
||||
&gEventObjectGraphicsInfo_MagmaMemberM,
|
||||
&gEventObjectGraphicsInfo_MagmaMemberF,
|
||||
&gEventObjectGraphicsInfo_Sidney,
|
||||
&gEventObjectGraphicsInfo_Phoebe,
|
||||
&gEventObjectGraphicsInfo_Glacia,
|
||||
&gEventObjectGraphicsInfo_Drake,
|
||||
&gEventObjectGraphicsInfo_Roxanne,
|
||||
&gEventObjectGraphicsInfo_Brawly,
|
||||
&gEventObjectGraphicsInfo_Wattson,
|
||||
&gEventObjectGraphicsInfo_Flannery,
|
||||
&gEventObjectGraphicsInfo_Norman,
|
||||
&gEventObjectGraphicsInfo_Winona,
|
||||
&gEventObjectGraphicsInfo_Liza,
|
||||
&gEventObjectGraphicsInfo_Tate,
|
||||
&gEventObjectGraphicsInfo_Wallace,
|
||||
&gEventObjectGraphicsInfo_Steven,
|
||||
&gEventObjectGraphicsInfo_Wally,
|
||||
&gEventObjectGraphicsInfo_RubySapphireLittleBoy,
|
||||
&gEventObjectGraphicsInfo_BrendanFishing,
|
||||
&gEventObjectGraphicsInfo_MayFishing,
|
||||
&gEventObjectGraphicsInfo_HotSpringsOldWoman,
|
||||
&gEventObjectGraphicsInfo_SSTidal,
|
||||
&gEventObjectGraphicsInfo_SubmarineShadow,
|
||||
&gEventObjectGraphicsInfo_PichuDoll,
|
||||
&gEventObjectGraphicsInfo_PikachuDoll,
|
||||
&gEventObjectGraphicsInfo_MarillDoll,
|
||||
&gEventObjectGraphicsInfo_TogepiDoll,
|
||||
&gEventObjectGraphicsInfo_CyndaquilDoll,
|
||||
&gEventObjectGraphicsInfo_ChikoritaDoll,
|
||||
&gEventObjectGraphicsInfo_TotodileDoll,
|
||||
&gEventObjectGraphicsInfo_JigglypuffDoll,
|
||||
&gEventObjectGraphicsInfo_MeowthDoll,
|
||||
&gEventObjectGraphicsInfo_ClefairyDoll,
|
||||
&gEventObjectGraphicsInfo_DittoDoll,
|
||||
&gEventObjectGraphicsInfo_SmoochumDoll,
|
||||
&gEventObjectGraphicsInfo_TreeckoDoll,
|
||||
&gEventObjectGraphicsInfo_TorchicDoll,
|
||||
&gEventObjectGraphicsInfo_MudkipDoll,
|
||||
&gEventObjectGraphicsInfo_DuskullDoll,
|
||||
&gEventObjectGraphicsInfo_WynautDoll,
|
||||
&gEventObjectGraphicsInfo_BaltoyDoll,
|
||||
&gEventObjectGraphicsInfo_KecleonDoll,
|
||||
&gEventObjectGraphicsInfo_AzurillDoll,
|
||||
&gEventObjectGraphicsInfo_SkittyDoll,
|
||||
&gEventObjectGraphicsInfo_SwabluDoll,
|
||||
&gEventObjectGraphicsInfo_GulpinDoll,
|
||||
&gEventObjectGraphicsInfo_LotadDoll,
|
||||
&gEventObjectGraphicsInfo_SeedotDoll,
|
||||
&gEventObjectGraphicsInfo_PikaCushion,
|
||||
&gEventObjectGraphicsInfo_RoundCushion,
|
||||
&gEventObjectGraphicsInfo_KissCushion,
|
||||
&gEventObjectGraphicsInfo_ZigzagCushion,
|
||||
&gEventObjectGraphicsInfo_SpinCushion,
|
||||
&gEventObjectGraphicsInfo_DiamondCushion,
|
||||
&gEventObjectGraphicsInfo_BallCushion,
|
||||
&gEventObjectGraphicsInfo_GrassCushion,
|
||||
&gEventObjectGraphicsInfo_FireCushion,
|
||||
&gEventObjectGraphicsInfo_WaterCushion,
|
||||
&gEventObjectGraphicsInfo_BigSnorlaxDoll,
|
||||
&gEventObjectGraphicsInfo_BigRhydonDoll,
|
||||
&gEventObjectGraphicsInfo_BigLaprasDoll,
|
||||
&gEventObjectGraphicsInfo_BigVenusaurDoll,
|
||||
&gEventObjectGraphicsInfo_BigCharizardDoll,
|
||||
&gEventObjectGraphicsInfo_BigBlastoiseDoll,
|
||||
&gEventObjectGraphicsInfo_BigWailmerDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegirockDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegiceDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegisteelDoll,
|
||||
&gEventObjectGraphicsInfo_Latias,
|
||||
&gEventObjectGraphicsInfo_Latios,
|
||||
&gEventObjectGraphicsInfo_GameboyKid,
|
||||
&gEventObjectGraphicsInfo_ContestJudge,
|
||||
&gEventObjectGraphicsInfo_BrendanWatering,
|
||||
&gEventObjectGraphicsInfo_MayWatering,
|
||||
&gEventObjectGraphicsInfo_BrendanDecorating,
|
||||
&gEventObjectGraphicsInfo_MayDecorating,
|
||||
&gEventObjectGraphicsInfo_Archie,
|
||||
&gEventObjectGraphicsInfo_Maxie,
|
||||
&gEventObjectGraphicsInfo_Kyogre1,
|
||||
&gEventObjectGraphicsInfo_Groudon1,
|
||||
&gEventObjectGraphicsInfo_Fossil,
|
||||
&gEventObjectGraphicsInfo_Regirock,
|
||||
&gEventObjectGraphicsInfo_Regice,
|
||||
&gEventObjectGraphicsInfo_Registeel,
|
||||
&gEventObjectGraphicsInfo_Skitty,
|
||||
&gEventObjectGraphicsInfo_Kecleon1,
|
||||
&gEventObjectGraphicsInfo_Kyogre2,
|
||||
&gEventObjectGraphicsInfo_Groudon2,
|
||||
&gEventObjectGraphicsInfo_Rayquaza2,
|
||||
&gEventObjectGraphicsInfo_Zigzagoon,
|
||||
&gEventObjectGraphicsInfo_Pikachu,
|
||||
&gEventObjectGraphicsInfo_Azumarill,
|
||||
&gEventObjectGraphicsInfo_Wingull,
|
||||
&gEventObjectGraphicsInfo_Kecleon2,
|
||||
&gEventObjectGraphicsInfo_TuberMSwimming,
|
||||
&gEventObjectGraphicsInfo_Azurill,
|
||||
&gEventObjectGraphicsInfo_Mom,
|
||||
&gEventObjectGraphicsInfo_LinkBrendan,
|
||||
&gEventObjectGraphicsInfo_LinkMay,
|
||||
&gEventObjectGraphicsInfo_Juan,
|
||||
&gEventObjectGraphicsInfo_Scott,
|
||||
&gEventObjectGraphicsInfo_Poochyena,
|
||||
&gEventObjectGraphicsInfo_Kyogre3,
|
||||
&gEventObjectGraphicsInfo_Groudon3,
|
||||
&gEventObjectGraphicsInfo_MysteryEventDeliveryman,
|
||||
&gEventObjectGraphicsInfo_Statue,
|
||||
&gEventObjectGraphicsInfo_Kirlia,
|
||||
&gEventObjectGraphicsInfo_Dusclops,
|
||||
&gEventObjectGraphicsInfo_UnionRoomAttendant,
|
||||
&gEventObjectGraphicsInfo_Sudowoodo,
|
||||
&gEventObjectGraphicsInfo_Mew,
|
||||
&gEventObjectGraphicsInfo_Red,
|
||||
&gEventObjectGraphicsInfo_Leaf,
|
||||
&gEventObjectGraphicsInfo_Deoxys,
|
||||
&gEventObjectGraphicsInfo_BirthIslandStone,
|
||||
&gEventObjectGraphicsInfo_Brandon,
|
||||
&gEventObjectGraphicsInfo_RubySapphireBrendan,
|
||||
&gEventObjectGraphicsInfo_RubySapphireMay,
|
||||
&gEventObjectGraphicsInfo_Lugia,
|
||||
&gEventObjectGraphicsInfo_HoOh,
|
||||
};
|
||||
|
||||
const struct EventObjectGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[] = {
|
||||
&gEventObjectGraphicsInfo_Bard,
|
||||
&gEventObjectGraphicsInfo_Hipster,
|
||||
&gEventObjectGraphicsInfo_Trader,
|
||||
&gEventObjectGraphicsInfo_Storyteller,
|
||||
&gEventObjectGraphicsInfo_Giddy,
|
||||
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan1,
|
||||
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan2,
|
||||
&gEventObjectGraphicsInfo_Bard,
|
||||
&gEventObjectGraphicsInfo_Hipster,
|
||||
&gEventObjectGraphicsInfo_Trader,
|
||||
&gEventObjectGraphicsInfo_Storyteller,
|
||||
&gEventObjectGraphicsInfo_Giddy,
|
||||
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan1,
|
||||
&gEventObjectGraphicsInfo_UnusedMauvilleOldMan2,
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -134,7 +134,7 @@ const u32 gItemIconPalette_GreenShard[] = INCBIN_U32("graphics/items/icon_palett
|
||||
const u32 gItemIcon_HPUp[] = INCBIN_U32("graphics/items/icons/hp_up.4bpp.lz");
|
||||
const u32 gItemIconPalette_HPUp[] = INCBIN_U32("graphics/items/icon_palettes/hp_up.gbapal.lz");
|
||||
|
||||
const u32 gItemIcon_Vitamin[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz");
|
||||
const u32 gItemIcon_Vitamin[] = INCBIN_U32("graphics/items/icons/vitamin.4bpp.lz");
|
||||
const u32 gItemIconPalette_Protein[] = INCBIN_U32("graphics/items/icon_palettes/protein.gbapal.lz");
|
||||
const u32 gItemIconPalette_Iron[] = INCBIN_U32("graphics/items/icon_palettes/iron.gbapal.lz");
|
||||
const u32 gItemIconPalette_Carbos[] = INCBIN_U32("graphics/items/icon_palettes/carbos.gbapal.lz");
|
||||
|
||||
@ -311,64 +311,64 @@ const u32 *const gItemIconTable[][2] =
|
||||
[ITEM_CLAW_FOSSIL] = {gItemIcon_ClawFossil, gItemIconPalette_HoennFossil},
|
||||
[ITEM_DEVON_SCOPE] = {gItemIcon_DevonScope, gItemIconPalette_DevonScope},
|
||||
// TMs / HMs
|
||||
[ITEM_TM01] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, // TM01
|
||||
[ITEM_TM02] = {gItemIcon_TM, gItemIconPalette_DragonTMHM}, // TM02
|
||||
[ITEM_TM03] = {gItemIcon_TM, gItemIconPalette_WaterTMHM}, // TM03
|
||||
[ITEM_TM04] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM04
|
||||
[ITEM_TM05] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM05
|
||||
[ITEM_TM06] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM}, // TM06
|
||||
[ITEM_TM07] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, // TM07
|
||||
[ITEM_TM08] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, // TM08
|
||||
[ITEM_TM09] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, // TM09
|
||||
[ITEM_TM10] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM10
|
||||
[ITEM_TM11] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM11
|
||||
[ITEM_TM12] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM12
|
||||
[ITEM_TM13] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, // TM13
|
||||
[ITEM_TM14] = {gItemIcon_TM, gItemIconPalette_IceTMHM}, // TM14
|
||||
[ITEM_TM15] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM15
|
||||
[ITEM_TM16] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM16
|
||||
[ITEM_TM17] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM17
|
||||
[ITEM_TM18] = {gItemIcon_TM, gItemIconPalette_WaterTMHM}, // TM18
|
||||
[ITEM_TM19] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, // TM19
|
||||
[ITEM_TM20] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM20
|
||||
[ITEM_TM21] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM21
|
||||
[ITEM_TM22] = {gItemIcon_TM, gItemIconPalette_GrassTMHM}, // TM22
|
||||
[ITEM_TM23] = {gItemIcon_TM, gItemIconPalette_SteelTMHM}, // TM23
|
||||
[ITEM_TM24] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, // TM24
|
||||
[ITEM_TM25] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, // TM25
|
||||
[ITEM_TM26] = {gItemIcon_TM, gItemIconPalette_GroundTMHM}, // TM26
|
||||
[ITEM_TM27] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM27
|
||||
[ITEM_TM28] = {gItemIcon_TM, gItemIconPalette_GroundTMHM}, // TM28
|
||||
[ITEM_TM29] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM29
|
||||
[ITEM_TM30] = {gItemIcon_TM, gItemIconPalette_GhostTMHM}, // TM30
|
||||
[ITEM_TM31] = {gItemIcon_TM, gItemIconPalette_FightingTMHM}, // TM31
|
||||
[ITEM_TM32] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM32
|
||||
[ITEM_TM33] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM33
|
||||
[ITEM_TM34] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM}, // TM34
|
||||
[ITEM_TM35] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM35
|
||||
[ITEM_TM36] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM}, // TM36
|
||||
[ITEM_TM37] = {gItemIcon_TM, gItemIconPalette_RockTMHM}, // TM37
|
||||
[ITEM_TM38] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM38
|
||||
[ITEM_TM39] = {gItemIcon_TM, gItemIconPalette_RockTMHM}, // TM39
|
||||
[ITEM_TM40] = {gItemIcon_TM, gItemIconPalette_FlyingTMHM}, // TM40
|
||||
[ITEM_TM41] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM41
|
||||
[ITEM_TM42] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM42
|
||||
[ITEM_TM43] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM43
|
||||
[ITEM_TM44] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM44
|
||||
[ITEM_TM45] = {gItemIcon_TM, gItemIconPalette_NormalTMHM}, // TM45
|
||||
[ITEM_TM46] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM46
|
||||
[ITEM_TM47] = {gItemIcon_TM, gItemIconPalette_SteelTMHM}, // TM47
|
||||
[ITEM_TM48] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM}, // TM48
|
||||
[ITEM_TM49] = {gItemIcon_TM, gItemIconPalette_DarkTMHM}, // TM49
|
||||
[ITEM_TM50] = {gItemIcon_TM, gItemIconPalette_FireTMHM}, // TM50
|
||||
[ITEM_HM01] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, // HM01
|
||||
[ITEM_HM02] = {gItemIcon_HM, gItemIconPalette_FlyingTMHM}, // HM02
|
||||
[ITEM_HM03] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, // HM03
|
||||
[ITEM_HM04] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, // HM04
|
||||
[ITEM_HM05] = {gItemIcon_HM, gItemIconPalette_NormalTMHM}, // HM05
|
||||
[ITEM_HM06] = {gItemIcon_HM, gItemIconPalette_FightingTMHM}, // HM06
|
||||
[ITEM_HM07] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, // HM07
|
||||
[ITEM_HM08] = {gItemIcon_HM, gItemIconPalette_WaterTMHM}, // HM08
|
||||
[ITEM_TM01] = {gItemIcon_TM, gItemIconPalette_FightingTMHM},
|
||||
[ITEM_TM02] = {gItemIcon_TM, gItemIconPalette_DragonTMHM},
|
||||
[ITEM_TM03] = {gItemIcon_TM, gItemIconPalette_WaterTMHM},
|
||||
[ITEM_TM04] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
|
||||
[ITEM_TM05] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM06] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM},
|
||||
[ITEM_TM07] = {gItemIcon_TM, gItemIconPalette_IceTMHM},
|
||||
[ITEM_TM08] = {gItemIcon_TM, gItemIconPalette_FightingTMHM},
|
||||
[ITEM_TM09] = {gItemIcon_TM, gItemIconPalette_GrassTMHM},
|
||||
[ITEM_TM10] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM11] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
|
||||
[ITEM_TM12] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
|
||||
[ITEM_TM13] = {gItemIcon_TM, gItemIconPalette_IceTMHM},
|
||||
[ITEM_TM14] = {gItemIcon_TM, gItemIconPalette_IceTMHM},
|
||||
[ITEM_TM15] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM16] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
|
||||
[ITEM_TM17] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM18] = {gItemIcon_TM, gItemIconPalette_WaterTMHM},
|
||||
[ITEM_TM19] = {gItemIcon_TM, gItemIconPalette_GrassTMHM},
|
||||
[ITEM_TM20] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM21] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM22] = {gItemIcon_TM, gItemIconPalette_GrassTMHM},
|
||||
[ITEM_TM23] = {gItemIcon_TM, gItemIconPalette_SteelTMHM},
|
||||
[ITEM_TM24] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM},
|
||||
[ITEM_TM25] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM},
|
||||
[ITEM_TM26] = {gItemIcon_TM, gItemIconPalette_GroundTMHM},
|
||||
[ITEM_TM27] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM28] = {gItemIcon_TM, gItemIconPalette_GroundTMHM},
|
||||
[ITEM_TM29] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
|
||||
[ITEM_TM30] = {gItemIcon_TM, gItemIconPalette_GhostTMHM},
|
||||
[ITEM_TM31] = {gItemIcon_TM, gItemIconPalette_FightingTMHM},
|
||||
[ITEM_TM32] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM33] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
|
||||
[ITEM_TM34] = {gItemIcon_TM, gItemIconPalette_ElectricTMHM},
|
||||
[ITEM_TM35] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
|
||||
[ITEM_TM36] = {gItemIcon_TM, gItemIconPalette_PoisonTMHM},
|
||||
[ITEM_TM37] = {gItemIcon_TM, gItemIconPalette_RockTMHM},
|
||||
[ITEM_TM38] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
|
||||
[ITEM_TM39] = {gItemIcon_TM, gItemIconPalette_RockTMHM},
|
||||
[ITEM_TM40] = {gItemIcon_TM, gItemIconPalette_FlyingTMHM},
|
||||
[ITEM_TM41] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
|
||||
[ITEM_TM42] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM43] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM44] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
|
||||
[ITEM_TM45] = {gItemIcon_TM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_TM46] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
|
||||
[ITEM_TM47] = {gItemIcon_TM, gItemIconPalette_SteelTMHM},
|
||||
[ITEM_TM48] = {gItemIcon_TM, gItemIconPalette_PsychicTMHM},
|
||||
[ITEM_TM49] = {gItemIcon_TM, gItemIconPalette_DarkTMHM},
|
||||
[ITEM_TM50] = {gItemIcon_TM, gItemIconPalette_FireTMHM},
|
||||
[ITEM_HM01] = {gItemIcon_HM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_HM02] = {gItemIcon_HM, gItemIconPalette_FlyingTMHM},
|
||||
[ITEM_HM03] = {gItemIcon_HM, gItemIconPalette_WaterTMHM},
|
||||
[ITEM_HM04] = {gItemIcon_HM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_HM05] = {gItemIcon_HM, gItemIconPalette_NormalTMHM},
|
||||
[ITEM_HM06] = {gItemIcon_HM, gItemIconPalette_FightingTMHM},
|
||||
[ITEM_HM07] = {gItemIcon_HM, gItemIconPalette_WaterTMHM},
|
||||
[ITEM_HM08] = {gItemIcon_HM, gItemIconPalette_WaterTMHM},
|
||||
// ????????
|
||||
[ITEM_15B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
|
||||
[ITEM_15C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
|
||||
|
||||
@ -1,138 +1,138 @@
|
||||
const u16 gSpeciesIdToCryId[] =
|
||||
{
|
||||
273, // TREECKO
|
||||
274, // GROVYLE
|
||||
275, // SCEPTILE
|
||||
270, // TORCHIC
|
||||
271, // COMBUSKEN
|
||||
272, // BLAZIKEN
|
||||
276, // MUDKIP
|
||||
277, // MARSHTOMP
|
||||
278, // SWAMPERT
|
||||
359, // POOCHYENA
|
||||
360, // MIGHTYENA
|
||||
378, // ZIGZAGOON
|
||||
375, // LINOONE
|
||||
290, // WURMPLE
|
||||
291, // SILCOON
|
||||
292, // BEAUTIFLY
|
||||
293, // CASCOON
|
||||
294, // DUSTOX
|
||||
283, // LOTAD
|
||||
284, // LOMBRE
|
||||
285, // LUDICOLO
|
||||
286, // SEEDOT
|
||||
287, // NUZLEAF
|
||||
288, // SHIFTRY
|
||||
301, // NINCADA
|
||||
302, // NINJASK
|
||||
303, // SHEDINJA
|
||||
266, // TAILLOW
|
||||
267, // SWELLOW
|
||||
374, // SHROOMISH
|
||||
373, // BRELOOM
|
||||
269, // SPINDA
|
||||
280, // WINGULL
|
||||
279, // PELIPPER
|
||||
310, // SURSKIT
|
||||
311, // MASQUERAIN
|
||||
377, // WAILMER
|
||||
381, // WAILORD
|
||||
312, // SKITTY
|
||||
313, // DELCATTY
|
||||
251, // KECLEON
|
||||
329, // BALTOY
|
||||
330, // CLAYDOL
|
||||
306, // NOSEPASS
|
||||
253, // TORKOAL
|
||||
362, // SABLEYE
|
||||
318, // BARBOACH
|
||||
319, // WHISCASH
|
||||
368, // LUVDISC
|
||||
320, // CORPHISH
|
||||
321, // CRAWDAUNT
|
||||
333, // FEEBAS
|
||||
334, // MILOTIC
|
||||
289, // CARVANHA
|
||||
260, // SHARPEDO
|
||||
324, // TRAPINCH
|
||||
325, // VIBRAVA
|
||||
326, // FLYGON
|
||||
304, // MAKUHITA
|
||||
305, // HARIYAMA
|
||||
254, // ELECTRIKE
|
||||
255, // MANECTRIC
|
||||
316, // NUMEL
|
||||
317, // CAMERUPT
|
||||
338, // SPHEAL
|
||||
339, // SEALEO
|
||||
340, // WALREIN
|
||||
327, // CACNEA
|
||||
328, // CACTURNE
|
||||
383, // SNORUNT
|
||||
307, // GLALIE
|
||||
331, // LUNATONE
|
||||
332, // SOLROCK
|
||||
262, // AZURILL
|
||||
322, // SPOINK
|
||||
323, // GRUMPIG
|
||||
308, // PLUSLE
|
||||
309, // MINUN
|
||||
363, // MAWILE
|
||||
336, // MEDITITE
|
||||
337, // MEDICHAM
|
||||
263, // SWABLU
|
||||
264, // ALTARIA
|
||||
258, // WYNAUT
|
||||
256, // DUSKULL
|
||||
361, // DUSCLOPS
|
||||
252, // ROSELIA
|
||||
298, // SLAKOTH
|
||||
299, // VIGOROTH
|
||||
300, // SLAKING
|
||||
314, // GULPIN
|
||||
315, // SWALOT
|
||||
376, // TROPIUS
|
||||
382, // WHISMUR
|
||||
380, // LOUDRED
|
||||
379, // EXPLOUD
|
||||
341, // CLAMPERL
|
||||
342, // HUNTAIL
|
||||
343, // GOREBYSS
|
||||
335, // ABSOL
|
||||
282, // SHUPPET
|
||||
281, // BANETTE
|
||||
259, // SEVIPER
|
||||
261, // ZANGOOSE
|
||||
367, // RELICANTH
|
||||
364, // ARON
|
||||
365, // LAIRON
|
||||
366, // AGGRON
|
||||
356, // CASTFORM
|
||||
357, // VOLBEAT
|
||||
358, // ILLUMISE
|
||||
344, // LILEEP
|
||||
345, // CRADILY
|
||||
346, // ANORITH
|
||||
347, // ARMALDO
|
||||
295, // RALTS
|
||||
296, // KIRLIA
|
||||
297, // GARDEVOIR
|
||||
351, // BAGON
|
||||
352, // SHELGON
|
||||
372, // SALAMENCE
|
||||
348, // BELDUM
|
||||
349, // METANG
|
||||
350, // METAGROSS
|
||||
353, // REGIROCK
|
||||
354, // REGICE
|
||||
355, // REGISTEEL
|
||||
370, // KYOGRE
|
||||
369, // GROUDON
|
||||
371, // RAYQUAZA
|
||||
257, // LATIAS
|
||||
384, // LATIOS
|
||||
385, // JIRACHI
|
||||
386, // DEOXYS
|
||||
387 // CHIMECHO
|
||||
[SPECIES_TREECKO - 277] = 273,
|
||||
[SPECIES_GROVYLE - 277] = 274,
|
||||
[SPECIES_SCEPTILE - 277] = 275,
|
||||
[SPECIES_TORCHIC - 277] = 270,
|
||||
[SPECIES_COMBUSKEN - 277] = 271,
|
||||
[SPECIES_BLAZIKEN - 277] = 272,
|
||||
[SPECIES_MUDKIP - 277] = 276,
|
||||
[SPECIES_MARSHTOMP - 277] = 277,
|
||||
[SPECIES_SWAMPERT - 277] = 278,
|
||||
[SPECIES_POOCHYENA - 277] = 359,
|
||||
[SPECIES_MIGHTYENA - 277] = 360,
|
||||
[SPECIES_ZIGZAGOON - 277] = 378,
|
||||
[SPECIES_LINOONE - 277] = 375,
|
||||
[SPECIES_WURMPLE - 277] = 290,
|
||||
[SPECIES_SILCOON - 277] = 291,
|
||||
[SPECIES_BEAUTIFLY - 277] = 292,
|
||||
[SPECIES_CASCOON - 277] = 293,
|
||||
[SPECIES_DUSTOX - 277] = 294,
|
||||
[SPECIES_LOTAD - 277] = 283,
|
||||
[SPECIES_LOMBRE - 277] = 284,
|
||||
[SPECIES_LUDICOLO - 277] = 285,
|
||||
[SPECIES_SEEDOT - 277] = 286,
|
||||
[SPECIES_NUZLEAF - 277] = 287,
|
||||
[SPECIES_SHIFTRY - 277] = 288,
|
||||
[SPECIES_NINCADA - 277] = 301,
|
||||
[SPECIES_NINJASK - 277] = 302,
|
||||
[SPECIES_SHEDINJA - 277] = 303,
|
||||
[SPECIES_TAILLOW - 277] = 266,
|
||||
[SPECIES_SWELLOW - 277] = 267,
|
||||
[SPECIES_SHROOMISH - 277] = 374,
|
||||
[SPECIES_BRELOOM - 277] = 373,
|
||||
[SPECIES_SPINDA - 277] = 269,
|
||||
[SPECIES_WINGULL - 277] = 280,
|
||||
[SPECIES_PELIPPER - 277] = 279,
|
||||
[SPECIES_SURSKIT - 277] = 310,
|
||||
[SPECIES_MASQUERAIN - 277] = 311,
|
||||
[SPECIES_WAILMER - 277] = 377,
|
||||
[SPECIES_WAILORD - 277] = 381,
|
||||
[SPECIES_SKITTY - 277] = 312,
|
||||
[SPECIES_DELCATTY - 277] = 313,
|
||||
[SPECIES_KECLEON - 277] = 251,
|
||||
[SPECIES_BALTOY - 277] = 329,
|
||||
[SPECIES_CLAYDOL - 277] = 330,
|
||||
[SPECIES_NOSEPASS - 277] = 306,
|
||||
[SPECIES_TORKOAL - 277] = 253,
|
||||
[SPECIES_SABLEYE - 277] = 362,
|
||||
[SPECIES_BARBOACH - 277] = 318,
|
||||
[SPECIES_WHISCASH - 277] = 319,
|
||||
[SPECIES_LUVDISC - 277] = 368,
|
||||
[SPECIES_CORPHISH - 277] = 320,
|
||||
[SPECIES_CRAWDAUNT - 277] = 321,
|
||||
[SPECIES_FEEBAS - 277] = 333,
|
||||
[SPECIES_MILOTIC - 277] = 334,
|
||||
[SPECIES_CARVANHA - 277] = 289,
|
||||
[SPECIES_SHARPEDO - 277] = 260,
|
||||
[SPECIES_TRAPINCH - 277] = 324,
|
||||
[SPECIES_VIBRAVA - 277] = 325,
|
||||
[SPECIES_FLYGON - 277] = 326,
|
||||
[SPECIES_MAKUHITA - 277] = 304,
|
||||
[SPECIES_HARIYAMA - 277] = 305,
|
||||
[SPECIES_ELECTRIKE - 277] = 254,
|
||||
[SPECIES_MANECTRIC - 277] = 255,
|
||||
[SPECIES_NUMEL - 277] = 316,
|
||||
[SPECIES_CAMERUPT - 277] = 317,
|
||||
[SPECIES_SPHEAL - 277] = 338,
|
||||
[SPECIES_SEALEO - 277] = 339,
|
||||
[SPECIES_WALREIN - 277] = 340,
|
||||
[SPECIES_CACNEA - 277] = 327,
|
||||
[SPECIES_CACTURNE - 277] = 328,
|
||||
[SPECIES_SNORUNT - 277] = 383,
|
||||
[SPECIES_GLALIE - 277] = 307,
|
||||
[SPECIES_LUNATONE - 277] = 331,
|
||||
[SPECIES_SOLROCK - 277] = 332,
|
||||
[SPECIES_AZURILL - 277] = 262,
|
||||
[SPECIES_SPOINK - 277] = 322,
|
||||
[SPECIES_GRUMPIG - 277] = 323,
|
||||
[SPECIES_PLUSLE - 277] = 308,
|
||||
[SPECIES_MINUN - 277] = 309,
|
||||
[SPECIES_MAWILE - 277] = 363,
|
||||
[SPECIES_MEDITITE - 277] = 336,
|
||||
[SPECIES_MEDICHAM - 277] = 337,
|
||||
[SPECIES_SWABLU - 277] = 263,
|
||||
[SPECIES_ALTARIA - 277] = 264,
|
||||
[SPECIES_WYNAUT - 277] = 258,
|
||||
[SPECIES_DUSKULL - 277] = 256,
|
||||
[SPECIES_DUSCLOPS - 277] = 361,
|
||||
[SPECIES_ROSELIA - 277] = 252,
|
||||
[SPECIES_SLAKOTH - 277] = 298,
|
||||
[SPECIES_VIGOROTH - 277] = 299,
|
||||
[SPECIES_SLAKING - 277] = 300,
|
||||
[SPECIES_GULPIN - 277] = 314,
|
||||
[SPECIES_SWALOT - 277] = 315,
|
||||
[SPECIES_TROPIUS - 277] = 376,
|
||||
[SPECIES_WHISMUR - 277] = 382,
|
||||
[SPECIES_LOUDRED - 277] = 380,
|
||||
[SPECIES_EXPLOUD - 277] = 379,
|
||||
[SPECIES_CLAMPERL - 277] = 341,
|
||||
[SPECIES_HUNTAIL - 277] = 342,
|
||||
[SPECIES_GOREBYSS - 277] = 343,
|
||||
[SPECIES_ABSOL - 277] = 335,
|
||||
[SPECIES_SHUPPET - 277] = 282,
|
||||
[SPECIES_BANETTE - 277] = 281,
|
||||
[SPECIES_SEVIPER - 277] = 259,
|
||||
[SPECIES_ZANGOOSE - 277] = 261,
|
||||
[SPECIES_RELICANTH - 277] = 367,
|
||||
[SPECIES_ARON - 277] = 364,
|
||||
[SPECIES_LAIRON - 277] = 365,
|
||||
[SPECIES_AGGRON - 277] = 366,
|
||||
[SPECIES_CASTFORM - 277] = 356,
|
||||
[SPECIES_VOLBEAT - 277] = 357,
|
||||
[SPECIES_ILLUMISE - 277] = 358,
|
||||
[SPECIES_LILEEP - 277] = 344,
|
||||
[SPECIES_CRADILY - 277] = 345,
|
||||
[SPECIES_ANORITH - 277] = 346,
|
||||
[SPECIES_ARMALDO - 277] = 347,
|
||||
[SPECIES_RALTS - 277] = 295,
|
||||
[SPECIES_KIRLIA - 277] = 296,
|
||||
[SPECIES_GARDEVOIR - 277] = 297,
|
||||
[SPECIES_BAGON - 277] = 351,
|
||||
[SPECIES_SHELGON - 277] = 352,
|
||||
[SPECIES_SALAMENCE - 277] = 372,
|
||||
[SPECIES_BELDUM - 277] = 348,
|
||||
[SPECIES_METANG - 277] = 349,
|
||||
[SPECIES_METAGROSS - 277] = 350,
|
||||
[SPECIES_REGIROCK - 277] = 353,
|
||||
[SPECIES_REGICE - 277] = 354,
|
||||
[SPECIES_REGISTEEL - 277] = 355,
|
||||
[SPECIES_KYOGRE - 277] = 370,
|
||||
[SPECIES_GROUDON - 277] = 369,
|
||||
[SPECIES_RAYQUAZA - 277] = 371,
|
||||
[SPECIES_LATIAS - 277] = 257,
|
||||
[SPECIES_LATIOS - 277] = 384,
|
||||
[SPECIES_JIRACHI - 277] = 385,
|
||||
[SPECIES_DEOXYS - 277] = 386,
|
||||
[SPECIES_CHIMECHO - 277] = 387,
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,417 +1,419 @@
|
||||
#include "constants/species.h"
|
||||
|
||||
// This determines how much higher above the usual position the enemy Pokémon
|
||||
// is during battle. Species that float or fly have nonzero values.
|
||||
const u8 gEnemyMonElevation[] =
|
||||
{
|
||||
0, // 0
|
||||
0, // SPECIES_BULBASAUR
|
||||
0, // SPECIES_IVYSAUR
|
||||
0, // SPECIES_VENUSAUR
|
||||
0, // SPECIES_CHARMANDER
|
||||
0, // SPECIES_CHARMELEON
|
||||
0, // SPECIES_CHARIZARD
|
||||
0, // SPECIES_SQUIRTLE
|
||||
0, // SPECIES_WARTORTLE
|
||||
0, // SPECIES_BLASTOISE
|
||||
0, // SPECIES_CATERPIE
|
||||
0, // SPECIES_METAPOD
|
||||
8, // SPECIES_BUTTERFREE
|
||||
0, // SPECIES_WEEDLE
|
||||
0, // SPECIES_KAKUNA
|
||||
8, // SPECIES_BEEDRILL
|
||||
16, // SPECIES_PIDGEY
|
||||
0, // SPECIES_PIDGEOTTO
|
||||
4, // SPECIES_PIDGEOT
|
||||
0, // SPECIES_RATTATA
|
||||
0, // SPECIES_RATICATE
|
||||
0, // SPECIES_SPEAROW
|
||||
6, // SPECIES_FEAROW
|
||||
0, // SPECIES_EKANS
|
||||
0, // SPECIES_ARBOK
|
||||
0, // SPECIES_PIKACHU
|
||||
0, // SPECIES_RAICHU
|
||||
0, // SPECIES_SANDSHREW
|
||||
0, // SPECIES_SANDSLASH
|
||||
0, // SPECIES_NIDORAN_F
|
||||
0, // SPECIES_NIDORINA
|
||||
0, // SPECIES_NIDOQUEEN
|
||||
0, // SPECIES_NIDORAN_M
|
||||
0, // SPECIES_NIDORINO
|
||||
0, // SPECIES_NIDOKING
|
||||
0, // SPECIES_CLEFAIRY
|
||||
0, // SPECIES_CLEFABLE
|
||||
0, // SPECIES_VULPIX
|
||||
0, // SPECIES_NINETALES
|
||||
0, // SPECIES_JIGGLYPUFF
|
||||
0, // SPECIES_WIGGLYTUFF
|
||||
8, // SPECIES_ZUBAT
|
||||
8, // SPECIES_GOLBAT
|
||||
0, // SPECIES_ODDISH
|
||||
0, // SPECIES_GLOOM
|
||||
0, // SPECIES_VILEPLUME
|
||||
0, // SPECIES_PARAS
|
||||
0, // SPECIES_PARASECT
|
||||
0, // SPECIES_VENONAT
|
||||
8, // SPECIES_VENOMOTH
|
||||
0, // SPECIES_DIGLETT
|
||||
0, // SPECIES_DUGTRIO
|
||||
0, // SPECIES_MEOWTH
|
||||
0, // SPECIES_PERSIAN
|
||||
0, // SPECIES_PSYDUCK
|
||||
0, // SPECIES_GOLDUCK
|
||||
0, // SPECIES_MANKEY
|
||||
0, // SPECIES_PRIMEAPE
|
||||
0, // SPECIES_GROWLITHE
|
||||
0, // SPECIES_ARCANINE
|
||||
0, // SPECIES_POLIWAG
|
||||
0, // SPECIES_POLIWHIRL
|
||||
0, // SPECIES_POLIWRATH
|
||||
0, // SPECIES_ABRA
|
||||
0, // SPECIES_KADABRA
|
||||
0, // SPECIES_ALAKAZAM
|
||||
0, // SPECIES_MACHOP
|
||||
0, // SPECIES_MACHOKE
|
||||
0, // SPECIES_MACHAMP
|
||||
0, // SPECIES_BELLSPROUT
|
||||
0, // SPECIES_WEEPINBELL
|
||||
0, // SPECIES_VICTREEBEL
|
||||
0, // SPECIES_TENTACOOL
|
||||
0, // SPECIES_TENTACRUEL
|
||||
16, // SPECIES_GEODUDE
|
||||
0, // SPECIES_GRAVELER
|
||||
0, // SPECIES_GOLEM
|
||||
0, // SPECIES_PONYTA
|
||||
0, // SPECIES_RAPIDASH
|
||||
0, // SPECIES_SLOWPOKE
|
||||
0, // SPECIES_SLOWBRO
|
||||
16, // SPECIES_MAGNEMITE
|
||||
8, // SPECIES_MAGNETON
|
||||
0, // SPECIES_FARFETCHD
|
||||
0, // SPECIES_DODUO
|
||||
0, // SPECIES_DODRIO
|
||||
0, // SPECIES_SEEL
|
||||
0, // SPECIES_DEWGONG
|
||||
0, // SPECIES_GRIMER
|
||||
0, // SPECIES_MUK
|
||||
0, // SPECIES_SHELLDER
|
||||
0, // SPECIES_CLOYSTER
|
||||
4, // SPECIES_GASTLY
|
||||
4, // SPECIES_HAUNTER
|
||||
0, // SPECIES_GENGAR
|
||||
0, // SPECIES_ONIX
|
||||
0, // SPECIES_DROWZEE
|
||||
0, // SPECIES_HYPNO
|
||||
0, // SPECIES_KRABBY
|
||||
0, // SPECIES_KINGLER
|
||||
10, // SPECIES_VOLTORB
|
||||
12, // SPECIES_ELECTRODE
|
||||
0, // SPECIES_EXEGGCUTE
|
||||
0, // SPECIES_EXEGGUTOR
|
||||
0, // SPECIES_CUBONE
|
||||
0, // SPECIES_MAROWAK
|
||||
0, // SPECIES_HITMONLEE
|
||||
0, // SPECIES_HITMONCHAN
|
||||
0, // SPECIES_LICKITUNG
|
||||
8, // SPECIES_KOFFING
|
||||
6, // SPECIES_WEEZING
|
||||
0, // SPECIES_RHYHORN
|
||||
0, // SPECIES_RHYDON
|
||||
0, // SPECIES_CHANSEY
|
||||
0, // SPECIES_TANGELA
|
||||
0, // SPECIES_KANGASKHAN
|
||||
0, // SPECIES_HORSEA
|
||||
0, // SPECIES_SEADRA
|
||||
0, // SPECIES_GOLDEEN
|
||||
0, // SPECIES_SEAKING
|
||||
0, // SPECIES_STARYU
|
||||
0, // SPECIES_STARMIE
|
||||
0, // SPECIES_MR_MIME
|
||||
0, // SPECIES_SCYTHER
|
||||
0, // SPECIES_JYNX
|
||||
0, // SPECIES_ELECTABUZZ
|
||||
0, // SPECIES_MAGMAR
|
||||
0, // SPECIES_PINSIR
|
||||
0, // SPECIES_TAUROS
|
||||
0, // SPECIES_MAGIKARP
|
||||
0, // SPECIES_GYARADOS
|
||||
0, // SPECIES_LAPRAS
|
||||
0, // SPECIES_DITTO
|
||||
0, // SPECIES_EEVEE
|
||||
0, // SPECIES_VAPOREON
|
||||
0, // SPECIES_JOLTEON
|
||||
0, // SPECIES_FLAREON
|
||||
0, // SPECIES_PORYGON
|
||||
0, // SPECIES_OMANYTE
|
||||
0, // SPECIES_OMASTAR
|
||||
0, // SPECIES_KABUTO
|
||||
0, // SPECIES_KABUTOPS
|
||||
7, // SPECIES_AERODACTYL
|
||||
0, // SPECIES_SNORLAX
|
||||
6, // SPECIES_ARTICUNO
|
||||
8, // SPECIES_ZAPDOS
|
||||
5, // SPECIES_MOLTRES
|
||||
0, // SPECIES_DRATINI
|
||||
0, // SPECIES_DRAGONAIR
|
||||
6, // SPECIES_DRAGONITE
|
||||
0, // SPECIES_MEWTWO
|
||||
8, // SPECIES_MEW
|
||||
0, // SPECIES_CHIKORITA
|
||||
0, // SPECIES_BAYLEEF
|
||||
0, // SPECIES_MEGANIUM
|
||||
0, // SPECIES_CYNDAQUIL
|
||||
0, // SPECIES_QUILAVA
|
||||
0, // SPECIES_TYPHLOSION
|
||||
0, // SPECIES_TOTODILE
|
||||
0, // SPECIES_CROCONAW
|
||||
0, // SPECIES_FERALIGATR
|
||||
0, // SPECIES_SENTRET
|
||||
0, // SPECIES_FURRET
|
||||
0, // SPECIES_HOOTHOOT
|
||||
0, // SPECIES_NOCTOWL
|
||||
0, // SPECIES_LEDYBA
|
||||
8, // SPECIES_LEDIAN
|
||||
0, // SPECIES_SPINARAK
|
||||
0, // SPECIES_ARIADOS
|
||||
6, // SPECIES_CROBAT
|
||||
0, // SPECIES_CHINCHOU
|
||||
0, // SPECIES_LANTURN
|
||||
0, // SPECIES_PICHU
|
||||
0, // SPECIES_CLEFFA
|
||||
0, // SPECIES_IGGLYBUFF
|
||||
0, // SPECIES_TOGEPI
|
||||
0, // SPECIES_TOGETIC
|
||||
0, // SPECIES_NATU
|
||||
0, // SPECIES_XATU
|
||||
0, // SPECIES_MAREEP
|
||||
0, // SPECIES_FLAAFFY
|
||||
0, // SPECIES_AMPHAROS
|
||||
0, // SPECIES_BELLOSSOM
|
||||
0, // SPECIES_MARILL
|
||||
0, // SPECIES_AZUMARILL
|
||||
0, // SPECIES_SUDOWOODO
|
||||
0, // SPECIES_POLITOED
|
||||
11, // SPECIES_HOPPIP
|
||||
12, // SPECIES_SKIPLOOM
|
||||
9, // SPECIES_JUMPLUFF
|
||||
0, // SPECIES_AIPOM
|
||||
0, // SPECIES_SUNKERN
|
||||
0, // SPECIES_SUNFLORA
|
||||
8, // SPECIES_YANMA
|
||||
0, // SPECIES_WOOPER
|
||||
0, // SPECIES_QUAGSIRE
|
||||
0, // SPECIES_ESPEON
|
||||
0, // SPECIES_UMBREON
|
||||
0, // SPECIES_MURKROW
|
||||
0, // SPECIES_SLOWKING
|
||||
8, // SPECIES_MISDREAVUS
|
||||
8, // SPECIES_UNOWN
|
||||
0, // SPECIES_WOBBUFFET
|
||||
0, // SPECIES_GIRAFARIG
|
||||
0, // SPECIES_PINECO
|
||||
0, // SPECIES_FORRETRESS
|
||||
0, // SPECIES_DUNSPARCE
|
||||
6, // SPECIES_GLIGAR
|
||||
0, // SPECIES_STEELIX
|
||||
0, // SPECIES_SNUBBULL
|
||||
0, // SPECIES_GRANBULL
|
||||
0, // SPECIES_QWILFISH
|
||||
0, // SPECIES_SCIZOR
|
||||
0, // SPECIES_SHUCKLE
|
||||
0, // SPECIES_HERACROSS
|
||||
0, // SPECIES_SNEASEL
|
||||
0, // SPECIES_TEDDIURSA
|
||||
0, // SPECIES_URSARING
|
||||
0, // SPECIES_SLUGMA
|
||||
0, // SPECIES_MAGCARGO
|
||||
0, // SPECIES_SWINUB
|
||||
0, // SPECIES_PILOSWINE
|
||||
0, // SPECIES_CORSOLA
|
||||
0, // SPECIES_REMORAID
|
||||
0, // SPECIES_OCTILLERY
|
||||
0, // SPECIES_DELIBIRD
|
||||
0, // SPECIES_MANTINE
|
||||
0, // SPECIES_SKARMORY
|
||||
0, // SPECIES_HOUNDOUR
|
||||
0, // SPECIES_HOUNDOOM
|
||||
0, // SPECIES_KINGDRA
|
||||
0, // SPECIES_PHANPY
|
||||
0, // SPECIES_DONPHAN
|
||||
0, // SPECIES_PORYGON2
|
||||
0, // SPECIES_STANTLER
|
||||
0, // SPECIES_SMEARGLE
|
||||
0, // SPECIES_TYROGUE
|
||||
0, // SPECIES_HITMONTOP
|
||||
0, // SPECIES_SMOOCHUM
|
||||
0, // SPECIES_ELEKID
|
||||
0, // SPECIES_MAGBY
|
||||
0, // SPECIES_MILTANK
|
||||
0, // SPECIES_BLISSEY
|
||||
0, // SPECIES_RAIKOU
|
||||
0, // SPECIES_ENTEI
|
||||
0, // SPECIES_SUICUNE
|
||||
0, // SPECIES_LARVITAR
|
||||
0, // SPECIES_PUPITAR
|
||||
0, // SPECIES_TYRANITAR
|
||||
6, // SPECIES_LUGIA
|
||||
6, // SPECIES_HO_OH
|
||||
15, // SPECIES_CELEBI
|
||||
0, // 252
|
||||
0, // 253
|
||||
0, // 254
|
||||
0, // 255
|
||||
0, // 256
|
||||
0, // 257
|
||||
0, // 258
|
||||
0, // 259
|
||||
0, // 260
|
||||
0, // 261
|
||||
0, // 262
|
||||
0, // 263
|
||||
0, // 264
|
||||
0, // 265
|
||||
0, // 266
|
||||
0, // 267
|
||||
0, // 268
|
||||
0, // 269
|
||||
0, // 270
|
||||
0, // 271
|
||||
0, // 272
|
||||
0, // 273
|
||||
0, // 274
|
||||
0, // 275
|
||||
0, // 276
|
||||
0, // SPECIES_TREECKO
|
||||
0, // SPECIES_GROVYLE
|
||||
0, // SPECIES_SCEPTILE
|
||||
0, // SPECIES_TORCHIC
|
||||
0, // SPECIES_COMBUSKEN
|
||||
0, // SPECIES_BLAZIKEN
|
||||
0, // SPECIES_MUDKIP
|
||||
0, // SPECIES_MARSHTOMP
|
||||
0, // SPECIES_SWAMPERT
|
||||
0, // SPECIES_POOCHYENA
|
||||
0, // SPECIES_MIGHTYENA
|
||||
0, // SPECIES_ZIGZAGOON
|
||||
0, // SPECIES_LINOONE
|
||||
0, // SPECIES_WURMPLE
|
||||
0, // SPECIES_SILCOON
|
||||
8, // SPECIES_BEAUTIFLY
|
||||
0, // SPECIES_CASCOON
|
||||
10, // SPECIES_DUSTOX
|
||||
0, // SPECIES_LOTAD
|
||||
0, // SPECIES_LOMBRE
|
||||
0, // SPECIES_LUDICOLO
|
||||
0, // SPECIES_SEEDOT
|
||||
0, // SPECIES_NUZLEAF
|
||||
0, // SPECIES_SHIFTRY
|
||||
0, // SPECIES_NINCADA
|
||||
10, // SPECIES_NINJASK
|
||||
8, // SPECIES_SHEDINJA
|
||||
0, // SPECIES_TAILLOW
|
||||
0, // SPECIES_SWELLOW
|
||||
0, // SPECIES_SHROOMISH
|
||||
0, // SPECIES_BRELOOM
|
||||
0, // SPECIES_SPINDA
|
||||
16, // SPECIES_WINGULL
|
||||
8, // SPECIES_PELIPPER
|
||||
0, // SPECIES_SURSKIT
|
||||
10, // SPECIES_MASQUERAIN
|
||||
0, // SPECIES_WAILMER
|
||||
0, // SPECIES_WAILORD
|
||||
0, // SPECIES_SKITTY
|
||||
0, // SPECIES_DELCATTY
|
||||
0, // SPECIES_KECLEON
|
||||
4, // SPECIES_BALTOY
|
||||
10, // SPECIES_CLAYDOL
|
||||
0, // SPECIES_NOSEPASS
|
||||
0, // SPECIES_TORKOAL
|
||||
0, // SPECIES_SABLEYE
|
||||
0, // SPECIES_BARBOACH
|
||||
0, // SPECIES_WHISCASH
|
||||
0, // SPECIES_LUVDISC
|
||||
0, // SPECIES_CORPHISH
|
||||
0, // SPECIES_CRAWDAUNT
|
||||
0, // SPECIES_FEEBAS
|
||||
0, // SPECIES_MILOTIC
|
||||
0, // SPECIES_CARVANHA
|
||||
0, // SPECIES_SHARPEDO
|
||||
0, // SPECIES_TRAPINCH
|
||||
0, // SPECIES_VIBRAVA
|
||||
7, // SPECIES_FLYGON
|
||||
0, // SPECIES_MAKUHITA
|
||||
0, // SPECIES_HARIYAMA
|
||||
0, // SPECIES_ELECTRIKE
|
||||
0, // SPECIES_MANECTRIC
|
||||
0, // SPECIES_NUMEL
|
||||
0, // SPECIES_CAMERUPT
|
||||
0, // SPECIES_SPHEAL
|
||||
0, // SPECIES_SEALEO
|
||||
0, // SPECIES_WALREIN
|
||||
0, // SPECIES_CACNEA
|
||||
0, // SPECIES_CACTURNE
|
||||
0, // SPECIES_SNORUNT
|
||||
12, // SPECIES_GLALIE
|
||||
13, // SPECIES_LUNATONE
|
||||
4, // SPECIES_SOLROCK
|
||||
0, // SPECIES_AZURILL
|
||||
0, // SPECIES_SPOINK
|
||||
0, // SPECIES_GRUMPIG
|
||||
0, // SPECIES_PLUSLE
|
||||
0, // SPECIES_MINUN
|
||||
0, // SPECIES_MAWILE
|
||||
0, // SPECIES_MEDITITE
|
||||
0, // SPECIES_MEDICHAM
|
||||
12, // SPECIES_SWABLU
|
||||
8, // SPECIES_ALTARIA
|
||||
0, // SPECIES_WYNAUT
|
||||
9, // SPECIES_DUSKULL
|
||||
0, // SPECIES_DUSCLOPS
|
||||
0, // SPECIES_ROSELIA
|
||||
0, // SPECIES_SLAKOTH
|
||||
0, // SPECIES_VIGOROTH
|
||||
0, // SPECIES_SLAKING
|
||||
0, // SPECIES_GULPIN
|
||||
0, // SPECIES_SWALOT
|
||||
0, // SPECIES_TROPIUS
|
||||
0, // SPECIES_WHISMUR
|
||||
0, // SPECIES_LOUDRED
|
||||
0, // SPECIES_EXPLOUD
|
||||
0, // SPECIES_CLAMPERL
|
||||
0, // SPECIES_HUNTAIL
|
||||
0, // SPECIES_GOREBYSS
|
||||
0, // SPECIES_ABSOL
|
||||
12, // SPECIES_SHUPPET
|
||||
8, // SPECIES_BANETTE
|
||||
0, // SPECIES_SEVIPER
|
||||
0, // SPECIES_ZANGOOSE
|
||||
0, // SPECIES_RELICANTH
|
||||
0, // SPECIES_ARON
|
||||
0, // SPECIES_LAIRON
|
||||
0, // SPECIES_AGGRON
|
||||
16, // SPECIES_CASTFORM
|
||||
0, // SPECIES_VOLBEAT
|
||||
0, // SPECIES_ILLUMISE
|
||||
0, // SPECIES_LILEEP
|
||||
0, // SPECIES_CRADILY
|
||||
0, // SPECIES_ANORITH
|
||||
0, // SPECIES_ARMALDO
|
||||
0, // SPECIES_RALTS
|
||||
0, // SPECIES_KIRLIA
|
||||
0, // SPECIES_GARDEVOIR
|
||||
0, // SPECIES_BAGON
|
||||
0, // SPECIES_SHELGON
|
||||
0, // SPECIES_SALAMENCE
|
||||
8, // SPECIES_BELDUM
|
||||
0, // SPECIES_METANG
|
||||
0, // SPECIES_METAGROSS
|
||||
0, // SPECIES_REGIROCK
|
||||
0, // SPECIES_REGICE
|
||||
0, // SPECIES_REGISTEEL
|
||||
0, // SPECIES_KYOGRE
|
||||
0, // SPECIES_GROUDON
|
||||
6, // SPECIES_RAYQUAZA
|
||||
6, // SPECIES_LATIAS
|
||||
6, // SPECIES_LATIOS
|
||||
12, // SPECIES_JIRACHI
|
||||
8, // SPECIES_DEOXYS
|
||||
12, // SPECIES_CHIMECHO
|
||||
[SPECIES_NONE] = 0,
|
||||
[SPECIES_BULBASAUR] = 0,
|
||||
[SPECIES_IVYSAUR] = 0,
|
||||
[SPECIES_VENUSAUR] = 0,
|
||||
[SPECIES_CHARMANDER] = 0,
|
||||
[SPECIES_CHARMELEON] = 0,
|
||||
[SPECIES_CHARIZARD] = 0,
|
||||
[SPECIES_SQUIRTLE] = 0,
|
||||
[SPECIES_WARTORTLE] = 0,
|
||||
[SPECIES_BLASTOISE] = 0,
|
||||
[SPECIES_CATERPIE] = 0,
|
||||
[SPECIES_METAPOD] = 0,
|
||||
[SPECIES_BUTTERFREE] = 8,
|
||||
[SPECIES_WEEDLE] = 0,
|
||||
[SPECIES_KAKUNA] = 0,
|
||||
[SPECIES_BEEDRILL] = 8,
|
||||
[SPECIES_PIDGEY] = 16,
|
||||
[SPECIES_PIDGEOTTO] = 0,
|
||||
[SPECIES_PIDGEOT] = 4,
|
||||
[SPECIES_RATTATA] = 0,
|
||||
[SPECIES_RATICATE] = 0,
|
||||
[SPECIES_SPEAROW] = 0,
|
||||
[SPECIES_FEAROW] = 6,
|
||||
[SPECIES_EKANS] = 0,
|
||||
[SPECIES_ARBOK] = 0,
|
||||
[SPECIES_PIKACHU] = 0,
|
||||
[SPECIES_RAICHU] = 0,
|
||||
[SPECIES_SANDSHREW] = 0,
|
||||
[SPECIES_SANDSLASH] = 0,
|
||||
[SPECIES_NIDORAN_F] = 0,
|
||||
[SPECIES_NIDORINA] = 0,
|
||||
[SPECIES_NIDOQUEEN] = 0,
|
||||
[SPECIES_NIDORAN_M] = 0,
|
||||
[SPECIES_NIDORINO] = 0,
|
||||
[SPECIES_NIDOKING] = 0,
|
||||
[SPECIES_CLEFAIRY] = 0,
|
||||
[SPECIES_CLEFABLE] = 0,
|
||||
[SPECIES_VULPIX] = 0,
|
||||
[SPECIES_NINETALES] = 0,
|
||||
[SPECIES_JIGGLYPUFF] = 0,
|
||||
[SPECIES_WIGGLYTUFF] = 0,
|
||||
[SPECIES_ZUBAT] = 8,
|
||||
[SPECIES_GOLBAT] = 8,
|
||||
[SPECIES_ODDISH] = 0,
|
||||
[SPECIES_GLOOM] = 0,
|
||||
[SPECIES_VILEPLUME] = 0,
|
||||
[SPECIES_PARAS] = 0,
|
||||
[SPECIES_PARASECT] = 0,
|
||||
[SPECIES_VENONAT] = 0,
|
||||
[SPECIES_VENOMOTH] = 8,
|
||||
[SPECIES_DIGLETT] = 0,
|
||||
[SPECIES_DUGTRIO] = 0,
|
||||
[SPECIES_MEOWTH] = 0,
|
||||
[SPECIES_PERSIAN] = 0,
|
||||
[SPECIES_PSYDUCK] = 0,
|
||||
[SPECIES_GOLDUCK] = 0,
|
||||
[SPECIES_MANKEY] = 0,
|
||||
[SPECIES_PRIMEAPE] = 0,
|
||||
[SPECIES_GROWLITHE] = 0,
|
||||
[SPECIES_ARCANINE] = 0,
|
||||
[SPECIES_POLIWAG] = 0,
|
||||
[SPECIES_POLIWHIRL] = 0,
|
||||
[SPECIES_POLIWRATH] = 0,
|
||||
[SPECIES_ABRA] = 0,
|
||||
[SPECIES_KADABRA] = 0,
|
||||
[SPECIES_ALAKAZAM] = 0,
|
||||
[SPECIES_MACHOP] = 0,
|
||||
[SPECIES_MACHOKE] = 0,
|
||||
[SPECIES_MACHAMP] = 0,
|
||||
[SPECIES_BELLSPROUT] = 0,
|
||||
[SPECIES_WEEPINBELL] = 0,
|
||||
[SPECIES_VICTREEBEL] = 0,
|
||||
[SPECIES_TENTACOOL] = 0,
|
||||
[SPECIES_TENTACRUEL] = 0,
|
||||
[SPECIES_GEODUDE] = 16,
|
||||
[SPECIES_GRAVELER] = 0,
|
||||
[SPECIES_GOLEM] = 0,
|
||||
[SPECIES_PONYTA] = 0,
|
||||
[SPECIES_RAPIDASH] = 0,
|
||||
[SPECIES_SLOWPOKE] = 0,
|
||||
[SPECIES_SLOWBRO] = 0,
|
||||
[SPECIES_MAGNEMITE] = 16,
|
||||
[SPECIES_MAGNETON] = 8,
|
||||
[SPECIES_FARFETCHD] = 0,
|
||||
[SPECIES_DODUO] = 0,
|
||||
[SPECIES_DODRIO] = 0,
|
||||
[SPECIES_SEEL] = 0,
|
||||
[SPECIES_DEWGONG] = 0,
|
||||
[SPECIES_GRIMER] = 0,
|
||||
[SPECIES_MUK] = 0,
|
||||
[SPECIES_SHELLDER] = 0,
|
||||
[SPECIES_CLOYSTER] = 0,
|
||||
[SPECIES_GASTLY] = 4,
|
||||
[SPECIES_HAUNTER] = 4,
|
||||
[SPECIES_GENGAR] = 0,
|
||||
[SPECIES_ONIX] = 0,
|
||||
[SPECIES_DROWZEE] = 0,
|
||||
[SPECIES_HYPNO] = 0,
|
||||
[SPECIES_KRABBY] = 0,
|
||||
[SPECIES_KINGLER] = 0,
|
||||
[SPECIES_VOLTORB] = 10,
|
||||
[SPECIES_ELECTRODE] = 12,
|
||||
[SPECIES_EXEGGCUTE] = 0,
|
||||
[SPECIES_EXEGGUTOR] = 0,
|
||||
[SPECIES_CUBONE] = 0,
|
||||
[SPECIES_MAROWAK] = 0,
|
||||
[SPECIES_HITMONLEE] = 0,
|
||||
[SPECIES_HITMONCHAN] = 0,
|
||||
[SPECIES_LICKITUNG] = 0,
|
||||
[SPECIES_KOFFING] = 8,
|
||||
[SPECIES_WEEZING] = 6,
|
||||
[SPECIES_RHYHORN] = 0,
|
||||
[SPECIES_RHYDON] = 0,
|
||||
[SPECIES_CHANSEY] = 0,
|
||||
[SPECIES_TANGELA] = 0,
|
||||
[SPECIES_KANGASKHAN] = 0,
|
||||
[SPECIES_HORSEA] = 0,
|
||||
[SPECIES_SEADRA] = 0,
|
||||
[SPECIES_GOLDEEN] = 0,
|
||||
[SPECIES_SEAKING] = 0,
|
||||
[SPECIES_STARYU] = 0,
|
||||
[SPECIES_STARMIE] = 0,
|
||||
[SPECIES_MR_MIME] = 0,
|
||||
[SPECIES_SCYTHER] = 0,
|
||||
[SPECIES_JYNX] = 0,
|
||||
[SPECIES_ELECTABUZZ] = 0,
|
||||
[SPECIES_MAGMAR] = 0,
|
||||
[SPECIES_PINSIR] = 0,
|
||||
[SPECIES_TAUROS] = 0,
|
||||
[SPECIES_MAGIKARP] = 0,
|
||||
[SPECIES_GYARADOS] = 0,
|
||||
[SPECIES_LAPRAS] = 0,
|
||||
[SPECIES_DITTO] = 0,
|
||||
[SPECIES_EEVEE] = 0,
|
||||
[SPECIES_VAPOREON] = 0,
|
||||
[SPECIES_JOLTEON] = 0,
|
||||
[SPECIES_FLAREON] = 0,
|
||||
[SPECIES_PORYGON] = 0,
|
||||
[SPECIES_OMANYTE] = 0,
|
||||
[SPECIES_OMASTAR] = 0,
|
||||
[SPECIES_KABUTO] = 0,
|
||||
[SPECIES_KABUTOPS] = 0,
|
||||
[SPECIES_AERODACTYL] = 7,
|
||||
[SPECIES_SNORLAX] = 0,
|
||||
[SPECIES_ARTICUNO] = 6,
|
||||
[SPECIES_ZAPDOS] = 8,
|
||||
[SPECIES_MOLTRES] = 5,
|
||||
[SPECIES_DRATINI] = 0,
|
||||
[SPECIES_DRAGONAIR] = 0,
|
||||
[SPECIES_DRAGONITE] = 6,
|
||||
[SPECIES_MEWTWO] = 0,
|
||||
[SPECIES_MEW] = 8,
|
||||
[SPECIES_CHIKORITA] = 0,
|
||||
[SPECIES_BAYLEEF] = 0,
|
||||
[SPECIES_MEGANIUM] = 0,
|
||||
[SPECIES_CYNDAQUIL] = 0,
|
||||
[SPECIES_QUILAVA] = 0,
|
||||
[SPECIES_TYPHLOSION] = 0,
|
||||
[SPECIES_TOTODILE] = 0,
|
||||
[SPECIES_CROCONAW] = 0,
|
||||
[SPECIES_FERALIGATR] = 0,
|
||||
[SPECIES_SENTRET] = 0,
|
||||
[SPECIES_FURRET] = 0,
|
||||
[SPECIES_HOOTHOOT] = 0,
|
||||
[SPECIES_NOCTOWL] = 0,
|
||||
[SPECIES_LEDYBA] = 0,
|
||||
[SPECIES_LEDIAN] = 8,
|
||||
[SPECIES_SPINARAK] = 0,
|
||||
[SPECIES_ARIADOS] = 0,
|
||||
[SPECIES_CROBAT] = 6,
|
||||
[SPECIES_CHINCHOU] = 0,
|
||||
[SPECIES_LANTURN] = 0,
|
||||
[SPECIES_PICHU] = 0,
|
||||
[SPECIES_CLEFFA] = 0,
|
||||
[SPECIES_IGGLYBUFF] = 0,
|
||||
[SPECIES_TOGEPI] = 0,
|
||||
[SPECIES_TOGETIC] = 0,
|
||||
[SPECIES_NATU] = 0,
|
||||
[SPECIES_XATU] = 0,
|
||||
[SPECIES_MAREEP] = 0,
|
||||
[SPECIES_FLAAFFY] = 0,
|
||||
[SPECIES_AMPHAROS] = 0,
|
||||
[SPECIES_BELLOSSOM] = 0,
|
||||
[SPECIES_MARILL] = 0,
|
||||
[SPECIES_AZUMARILL] = 0,
|
||||
[SPECIES_SUDOWOODO] = 0,
|
||||
[SPECIES_POLITOED] = 0,
|
||||
[SPECIES_HOPPIP] = 11,
|
||||
[SPECIES_SKIPLOOM] = 12,
|
||||
[SPECIES_JUMPLUFF] = 9,
|
||||
[SPECIES_AIPOM] = 0,
|
||||
[SPECIES_SUNKERN] = 0,
|
||||
[SPECIES_SUNFLORA] = 0,
|
||||
[SPECIES_YANMA] = 8,
|
||||
[SPECIES_WOOPER] = 0,
|
||||
[SPECIES_QUAGSIRE] = 0,
|
||||
[SPECIES_ESPEON] = 0,
|
||||
[SPECIES_UMBREON] = 0,
|
||||
[SPECIES_MURKROW] = 0,
|
||||
[SPECIES_SLOWKING] = 0,
|
||||
[SPECIES_MISDREAVUS] = 8,
|
||||
[SPECIES_UNOWN] = 8,
|
||||
[SPECIES_WOBBUFFET] = 0,
|
||||
[SPECIES_GIRAFARIG] = 0,
|
||||
[SPECIES_PINECO] = 0,
|
||||
[SPECIES_FORRETRESS] = 0,
|
||||
[SPECIES_DUNSPARCE] = 0,
|
||||
[SPECIES_GLIGAR] = 6,
|
||||
[SPECIES_STEELIX] = 0,
|
||||
[SPECIES_SNUBBULL] = 0,
|
||||
[SPECIES_GRANBULL] = 0,
|
||||
[SPECIES_QWILFISH] = 0,
|
||||
[SPECIES_SCIZOR] = 0,
|
||||
[SPECIES_SHUCKLE] = 0,
|
||||
[SPECIES_HERACROSS] = 0,
|
||||
[SPECIES_SNEASEL] = 0,
|
||||
[SPECIES_TEDDIURSA] = 0,
|
||||
[SPECIES_URSARING] = 0,
|
||||
[SPECIES_SLUGMA] = 0,
|
||||
[SPECIES_MAGCARGO] = 0,
|
||||
[SPECIES_SWINUB] = 0,
|
||||
[SPECIES_PILOSWINE] = 0,
|
||||
[SPECIES_CORSOLA] = 0,
|
||||
[SPECIES_REMORAID] = 0,
|
||||
[SPECIES_OCTILLERY] = 0,
|
||||
[SPECIES_DELIBIRD] = 0,
|
||||
[SPECIES_MANTINE] = 0,
|
||||
[SPECIES_SKARMORY] = 0,
|
||||
[SPECIES_HOUNDOUR] = 0,
|
||||
[SPECIES_HOUNDOOM] = 0,
|
||||
[SPECIES_KINGDRA] = 0,
|
||||
[SPECIES_PHANPY] = 0,
|
||||
[SPECIES_DONPHAN] = 0,
|
||||
[SPECIES_PORYGON2] = 0,
|
||||
[SPECIES_STANTLER] = 0,
|
||||
[SPECIES_SMEARGLE] = 0,
|
||||
[SPECIES_TYROGUE] = 0,
|
||||
[SPECIES_HITMONTOP] = 0,
|
||||
[SPECIES_SMOOCHUM] = 0,
|
||||
[SPECIES_ELEKID] = 0,
|
||||
[SPECIES_MAGBY] = 0,
|
||||
[SPECIES_MILTANK] = 0,
|
||||
[SPECIES_BLISSEY] = 0,
|
||||
[SPECIES_RAIKOU] = 0,
|
||||
[SPECIES_ENTEI] = 0,
|
||||
[SPECIES_SUICUNE] = 0,
|
||||
[SPECIES_LARVITAR] = 0,
|
||||
[SPECIES_PUPITAR] = 0,
|
||||
[SPECIES_TYRANITAR] = 0,
|
||||
[SPECIES_LUGIA] = 6,
|
||||
[SPECIES_HO_OH] = 6,
|
||||
[SPECIES_CELEBI] = 15,
|
||||
[SPECIES_OLD_UNOWN_B] = 0,
|
||||
[SPECIES_OLD_UNOWN_C] = 0,
|
||||
[SPECIES_OLD_UNOWN_D] = 0,
|
||||
[SPECIES_OLD_UNOWN_E] = 0,
|
||||
[SPECIES_OLD_UNOWN_F] = 0,
|
||||
[SPECIES_OLD_UNOWN_G] = 0,
|
||||
[SPECIES_OLD_UNOWN_H] = 0,
|
||||
[SPECIES_OLD_UNOWN_I] = 0,
|
||||
[SPECIES_OLD_UNOWN_J] = 0,
|
||||
[SPECIES_OLD_UNOWN_K] = 0,
|
||||
[SPECIES_OLD_UNOWN_L] = 0,
|
||||
[SPECIES_OLD_UNOWN_M] = 0,
|
||||
[SPECIES_OLD_UNOWN_N] = 0,
|
||||
[SPECIES_OLD_UNOWN_O] = 0,
|
||||
[SPECIES_OLD_UNOWN_P] = 0,
|
||||
[SPECIES_OLD_UNOWN_Q] = 0,
|
||||
[SPECIES_OLD_UNOWN_R] = 0,
|
||||
[SPECIES_OLD_UNOWN_S] = 0,
|
||||
[SPECIES_OLD_UNOWN_T] = 0,
|
||||
[SPECIES_OLD_UNOWN_U] = 0,
|
||||
[SPECIES_OLD_UNOWN_V] = 0,
|
||||
[SPECIES_OLD_UNOWN_W] = 0,
|
||||
[SPECIES_OLD_UNOWN_X] = 0,
|
||||
[SPECIES_OLD_UNOWN_Y] = 0,
|
||||
[SPECIES_OLD_UNOWN_Z] = 0,
|
||||
[SPECIES_TREECKO] = 0,
|
||||
[SPECIES_GROVYLE] = 0,
|
||||
[SPECIES_SCEPTILE] = 0,
|
||||
[SPECIES_TORCHIC] = 0,
|
||||
[SPECIES_COMBUSKEN] = 0,
|
||||
[SPECIES_BLAZIKEN] = 0,
|
||||
[SPECIES_MUDKIP] = 0,
|
||||
[SPECIES_MARSHTOMP] = 0,
|
||||
[SPECIES_SWAMPERT] = 0,
|
||||
[SPECIES_POOCHYENA] = 0,
|
||||
[SPECIES_MIGHTYENA] = 0,
|
||||
[SPECIES_ZIGZAGOON] = 0,
|
||||
[SPECIES_LINOONE] = 0,
|
||||
[SPECIES_WURMPLE] = 0,
|
||||
[SPECIES_SILCOON] = 0,
|
||||
[SPECIES_BEAUTIFLY] = 8,
|
||||
[SPECIES_CASCOON] = 0,
|
||||
[SPECIES_DUSTOX] = 10,
|
||||
[SPECIES_LOTAD] = 0,
|
||||
[SPECIES_LOMBRE] = 0,
|
||||
[SPECIES_LUDICOLO] = 0,
|
||||
[SPECIES_SEEDOT] = 0,
|
||||
[SPECIES_NUZLEAF] = 0,
|
||||
[SPECIES_SHIFTRY] = 0,
|
||||
[SPECIES_NINCADA] = 0,
|
||||
[SPECIES_NINJASK] = 10,
|
||||
[SPECIES_SHEDINJA] = 8,
|
||||
[SPECIES_TAILLOW] = 0,
|
||||
[SPECIES_SWELLOW] = 0,
|
||||
[SPECIES_SHROOMISH] = 0,
|
||||
[SPECIES_BRELOOM] = 0,
|
||||
[SPECIES_SPINDA] = 0,
|
||||
[SPECIES_WINGULL] = 16,
|
||||
[SPECIES_PELIPPER] = 8,
|
||||
[SPECIES_SURSKIT] = 0,
|
||||
[SPECIES_MASQUERAIN] = 10,
|
||||
[SPECIES_WAILMER] = 0,
|
||||
[SPECIES_WAILORD] = 0,
|
||||
[SPECIES_SKITTY] = 0,
|
||||
[SPECIES_DELCATTY] = 0,
|
||||
[SPECIES_KECLEON] = 0,
|
||||
[SPECIES_BALTOY] = 4,
|
||||
[SPECIES_CLAYDOL] = 10,
|
||||
[SPECIES_NOSEPASS] = 0,
|
||||
[SPECIES_TORKOAL] = 0,
|
||||
[SPECIES_SABLEYE] = 0,
|
||||
[SPECIES_BARBOACH] = 0,
|
||||
[SPECIES_WHISCASH] = 0,
|
||||
[SPECIES_LUVDISC] = 0,
|
||||
[SPECIES_CORPHISH] = 0,
|
||||
[SPECIES_CRAWDAUNT] = 0,
|
||||
[SPECIES_FEEBAS] = 0,
|
||||
[SPECIES_MILOTIC] = 0,
|
||||
[SPECIES_CARVANHA] = 0,
|
||||
[SPECIES_SHARPEDO] = 0,
|
||||
[SPECIES_TRAPINCH] = 0,
|
||||
[SPECIES_VIBRAVA] = 0,
|
||||
[SPECIES_FLYGON] = 7,
|
||||
[SPECIES_MAKUHITA] = 0,
|
||||
[SPECIES_HARIYAMA] = 0,
|
||||
[SPECIES_ELECTRIKE] = 0,
|
||||
[SPECIES_MANECTRIC] = 0,
|
||||
[SPECIES_NUMEL] = 0,
|
||||
[SPECIES_CAMERUPT] = 0,
|
||||
[SPECIES_SPHEAL] = 0,
|
||||
[SPECIES_SEALEO] = 0,
|
||||
[SPECIES_WALREIN] = 0,
|
||||
[SPECIES_CACNEA] = 0,
|
||||
[SPECIES_CACTURNE] = 0,
|
||||
[SPECIES_SNORUNT] = 0,
|
||||
[SPECIES_GLALIE] = 12,
|
||||
[SPECIES_LUNATONE] = 13,
|
||||
[SPECIES_SOLROCK] = 4,
|
||||
[SPECIES_AZURILL] = 0,
|
||||
[SPECIES_SPOINK] = 0,
|
||||
[SPECIES_GRUMPIG] = 0,
|
||||
[SPECIES_PLUSLE] = 0,
|
||||
[SPECIES_MINUN] = 0,
|
||||
[SPECIES_MAWILE] = 0,
|
||||
[SPECIES_MEDITITE] = 0,
|
||||
[SPECIES_MEDICHAM] = 0,
|
||||
[SPECIES_SWABLU] = 12,
|
||||
[SPECIES_ALTARIA] = 8,
|
||||
[SPECIES_WYNAUT] = 0,
|
||||
[SPECIES_DUSKULL] = 9,
|
||||
[SPECIES_DUSCLOPS] = 0,
|
||||
[SPECIES_ROSELIA] = 0,
|
||||
[SPECIES_SLAKOTH] = 0,
|
||||
[SPECIES_VIGOROTH] = 0,
|
||||
[SPECIES_SLAKING] = 0,
|
||||
[SPECIES_GULPIN] = 0,
|
||||
[SPECIES_SWALOT] = 0,
|
||||
[SPECIES_TROPIUS] = 0,
|
||||
[SPECIES_WHISMUR] = 0,
|
||||
[SPECIES_LOUDRED] = 0,
|
||||
[SPECIES_EXPLOUD] = 0,
|
||||
[SPECIES_CLAMPERL] = 0,
|
||||
[SPECIES_HUNTAIL] = 0,
|
||||
[SPECIES_GOREBYSS] = 0,
|
||||
[SPECIES_ABSOL] = 0,
|
||||
[SPECIES_SHUPPET] = 12,
|
||||
[SPECIES_BANETTE] = 8,
|
||||
[SPECIES_SEVIPER] = 0,
|
||||
[SPECIES_ZANGOOSE] = 0,
|
||||
[SPECIES_RELICANTH] = 0,
|
||||
[SPECIES_ARON] = 0,
|
||||
[SPECIES_LAIRON] = 0,
|
||||
[SPECIES_AGGRON] = 0,
|
||||
[SPECIES_CASTFORM] = 16,
|
||||
[SPECIES_VOLBEAT] = 0,
|
||||
[SPECIES_ILLUMISE] = 0,
|
||||
[SPECIES_LILEEP] = 0,
|
||||
[SPECIES_CRADILY] = 0,
|
||||
[SPECIES_ANORITH] = 0,
|
||||
[SPECIES_ARMALDO] = 0,
|
||||
[SPECIES_RALTS] = 0,
|
||||
[SPECIES_KIRLIA] = 0,
|
||||
[SPECIES_GARDEVOIR] = 0,
|
||||
[SPECIES_BAGON] = 0,
|
||||
[SPECIES_SHELGON] = 0,
|
||||
[SPECIES_SALAMENCE] = 0,
|
||||
[SPECIES_BELDUM] = 8,
|
||||
[SPECIES_METANG] = 0,
|
||||
[SPECIES_METAGROSS] = 0,
|
||||
[SPECIES_REGIROCK] = 0,
|
||||
[SPECIES_REGICE] = 0,
|
||||
[SPECIES_REGISTEEL] = 0,
|
||||
[SPECIES_KYOGRE] = 0,
|
||||
[SPECIES_GROUDON] = 0,
|
||||
[SPECIES_RAYQUAZA] = 6,
|
||||
[SPECIES_LATIAS] = 6,
|
||||
[SPECIES_LATIOS] = 6,
|
||||
[SPECIES_JIRACHI] = 12,
|
||||
[SPECIES_DEOXYS] = 8,
|
||||
[SPECIES_CHIMECHO] = 12,
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ const u8 gPokeBallItemDescription[] = _("A tool used for\ncatching wild\nPOKéMO
|
||||
const u8 gSafariBallItemDescription[] = _("A special BALL that\nis used only in the\nSAFARI ZONE.");
|
||||
const u8 gNetBallItemDescription[] = _("A BALL that works\nwell on WATER- and\nBUG-type POKéMON.");
|
||||
const u8 gDiveBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\non the ocean floor.");
|
||||
const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON.");
|
||||
const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON.");
|
||||
const u8 gRepeatBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\ncaught before.");
|
||||
const u8 gTimerBallItemDescription[] = _("A BALL that gains\npower in battles\ntaking many turns.");
|
||||
const u8 gLuxuryBallItemDescription[] = _("A cozy BALL that\nmakes POKéMON\nmore friendly.");
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "data2.h"
|
||||
#include "graphics.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal");
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#include "task.h"
|
||||
#include "window.h"
|
||||
#include "list_menu.h"
|
||||
#include "overworld.h"
|
||||
|
||||
#define EGG_MOVES_ARRAY_COUNT 10
|
||||
#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50
|
||||
@ -39,12 +40,8 @@ extern const u8 gDaycareText_PlayOther[];
|
||||
|
||||
extern u8 GetCursorSelectionMonId(void);
|
||||
extern u16 ItemIdToBattleMoveId(u16);
|
||||
extern s32 ListMenuHandleInputGetItemId(u8);
|
||||
extern void DestroyListMenuTask(u8, u16*, u16*);
|
||||
extern void sub_819746C(u8, bool8);
|
||||
extern void NewMenuHelpers_DrawStdWindowFrame(u8, bool8);
|
||||
extern void sub_81B9328(void);
|
||||
extern void CB2_ReturnToField(void);
|
||||
|
||||
// this file's functions
|
||||
static void ClearDaycareMonMail(struct DayCareMail *mail);
|
||||
@ -535,7 +532,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
|
||||
s32 i, j;
|
||||
u8 temp[NUM_STATS];
|
||||
|
||||
ivs[selectedIv] = 0xff;
|
||||
ivs[selectedIv] = 0xFF;
|
||||
for (i = 0; i < NUM_STATS; i++)
|
||||
{
|
||||
temp[i] = ivs[i];
|
||||
@ -544,7 +541,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
|
||||
j = 0;
|
||||
for (i = 0; i < NUM_STATS; i++)
|
||||
{
|
||||
if (temp[i] != 0xff)
|
||||
if (temp[i] != 0xFF)
|
||||
ivs[j++] = temp[i];
|
||||
}
|
||||
}
|
||||
@ -684,7 +681,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
|
||||
{
|
||||
if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j])
|
||||
{
|
||||
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xffff)
|
||||
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
|
||||
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
|
||||
break;
|
||||
}
|
||||
@ -703,7 +700,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
|
||||
{
|
||||
if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j))
|
||||
{
|
||||
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xffff)
|
||||
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
|
||||
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
|
||||
}
|
||||
}
|
||||
@ -728,7 +725,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
|
||||
{
|
||||
if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j])
|
||||
{
|
||||
if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xffff)
|
||||
if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF)
|
||||
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]);
|
||||
break;
|
||||
}
|
||||
|
||||
596
src/decompress.c
596
src/decompress.c
@ -2,7 +2,7 @@
|
||||
#include "decompress.h"
|
||||
#include "constants/species.h"
|
||||
#include "text.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "pokemon.h"
|
||||
|
||||
EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0};
|
||||
@ -122,346 +122,346 @@ void sub_803471C()
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x24\n\
|
||||
mov r9, r0\n\
|
||||
str r1, [sp]\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r5, r3, 0\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r9\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0803473C\n\
|
||||
b _080348D4\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x24\n\
|
||||
mov r9, r0\n\
|
||||
str r1, [sp]\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r5, r3, 0\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r9\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0803473C\n\
|
||||
b _080348D4\n\
|
||||
_0803473C:\n\
|
||||
asrs r0, r1, 1\n\
|
||||
adds r0, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x8]\n\
|
||||
movs r0, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r0, r2\n\
|
||||
blt _08034750\n\
|
||||
b _08034964\n\
|
||||
asrs r0, r1, 1\n\
|
||||
adds r0, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x8]\n\
|
||||
movs r0, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r0, r2\n\
|
||||
blt _08034750\n\
|
||||
b _08034964\n\
|
||||
_08034750:\n\
|
||||
movs r4, 0x8\n\
|
||||
subs r1, r4, r1\n\
|
||||
str r1, [sp, 0x10]\n\
|
||||
movs r4, 0x8\n\
|
||||
subs r1, r4, r1\n\
|
||||
str r1, [sp, 0x10]\n\
|
||||
_08034756:\n\
|
||||
movs r7, 0\n\
|
||||
adds r0, 0x1\n\
|
||||
str r0, [sp, 0x14]\n\
|
||||
ldr r0, [sp, 0x10]\n\
|
||||
cmp r7, r0\n\
|
||||
bge _080347D2\n\
|
||||
ldr r1, [sp, 0x8]\n\
|
||||
lsls r1, 8\n\
|
||||
str r1, [sp, 0x18]\n\
|
||||
movs r2, 0\n\
|
||||
mov r10, r2\n\
|
||||
mov r0, r9\n\
|
||||
movs r4, 0x8\n\
|
||||
subs r0, r4, r0\n\
|
||||
str r0, [sp, 0xC]\n\
|
||||
movs r7, 0\n\
|
||||
adds r0, 0x1\n\
|
||||
str r0, [sp, 0x14]\n\
|
||||
ldr r0, [sp, 0x10]\n\
|
||||
cmp r7, r0\n\
|
||||
bge _080347D2\n\
|
||||
ldr r1, [sp, 0x8]\n\
|
||||
lsls r1, 8\n\
|
||||
str r1, [sp, 0x18]\n\
|
||||
movs r2, 0\n\
|
||||
mov r10, r2\n\
|
||||
mov r0, r9\n\
|
||||
movs r4, 0x8\n\
|
||||
subs r0, r4, r0\n\
|
||||
str r0, [sp, 0xC]\n\
|
||||
_08034774:\n\
|
||||
movs r3, 0\n\
|
||||
asrs r0, r7, 1\n\
|
||||
adds r1, r7, 0\n\
|
||||
movs r2, 0x1\n\
|
||||
ands r1, r2\n\
|
||||
str r1, [sp, 0x20]\n\
|
||||
lsls r0, 8\n\
|
||||
mov r8, r0\n\
|
||||
mov r12, r5\n\
|
||||
movs r3, 0\n\
|
||||
asrs r0, r7, 1\n\
|
||||
adds r1, r7, 0\n\
|
||||
movs r2, 0x1\n\
|
||||
ands r1, r2\n\
|
||||
str r1, [sp, 0x20]\n\
|
||||
lsls r0, 8\n\
|
||||
mov r8, r0\n\
|
||||
mov r12, r5\n\
|
||||
_08034786:\n\
|
||||
lsls r1, r3, 5\n\
|
||||
ldr r4, [sp, 0x18]\n\
|
||||
adds r0, r5, r4\n\
|
||||
adds r0, r1\n\
|
||||
mov r1, r8\n\
|
||||
adds r2, r0, r1\n\
|
||||
mov r1, r12\n\
|
||||
add r1, r8\n\
|
||||
movs r6, 0xF\n\
|
||||
lsls r1, r3, 5\n\
|
||||
ldr r4, [sp, 0x18]\n\
|
||||
adds r0, r5, r4\n\
|
||||
adds r0, r1\n\
|
||||
mov r1, r8\n\
|
||||
adds r2, r0, r1\n\
|
||||
mov r1, r12\n\
|
||||
add r1, r8\n\
|
||||
movs r6, 0xF\n\
|
||||
_08034798:\n\
|
||||
ldr r4, [sp, 0x20]\n\
|
||||
cmp r4, 0\n\
|
||||
bne _080347A8\n\
|
||||
strb r4, [r1]\n\
|
||||
add r4, sp, 0x20\n\
|
||||
ldrb r4, [r4]\n\
|
||||
strb r4, [r2, 0x10]\n\
|
||||
b _080347B6\n\
|
||||
ldr r4, [sp, 0x20]\n\
|
||||
cmp r4, 0\n\
|
||||
bne _080347A8\n\
|
||||
strb r4, [r1]\n\
|
||||
add r4, sp, 0x20\n\
|
||||
ldrb r4, [r4]\n\
|
||||
strb r4, [r2, 0x10]\n\
|
||||
b _080347B6\n\
|
||||
_080347A8:\n\
|
||||
mov r0, r10\n\
|
||||
strb r0, [r1, 0x10]\n\
|
||||
movs r4, 0x80\n\
|
||||
lsls r4, 1\n\
|
||||
adds r4, r2, r4\n\
|
||||
str r4, [sp, 0x1C]\n\
|
||||
strb r0, [r4]\n\
|
||||
mov r0, r10\n\
|
||||
strb r0, [r1, 0x10]\n\
|
||||
movs r4, 0x80\n\
|
||||
lsls r4, 1\n\
|
||||
adds r4, r2, r4\n\
|
||||
str r4, [sp, 0x1C]\n\
|
||||
strb r0, [r4]\n\
|
||||
_080347B6:\n\
|
||||
adds r2, 0x1\n\
|
||||
adds r1, 0x1\n\
|
||||
subs r6, 0x1\n\
|
||||
cmp r6, 0\n\
|
||||
bge _08034798\n\
|
||||
movs r0, 0x20\n\
|
||||
add r12, r0\n\
|
||||
adds r3, 0x1\n\
|
||||
cmp r3, 0x7\n\
|
||||
ble _08034786\n\
|
||||
adds r7, 0x1\n\
|
||||
ldr r1, [sp, 0xC]\n\
|
||||
cmp r7, r1\n\
|
||||
blt _08034774\n\
|
||||
adds r2, 0x1\n\
|
||||
adds r1, 0x1\n\
|
||||
subs r6, 0x1\n\
|
||||
cmp r6, 0\n\
|
||||
bge _08034798\n\
|
||||
movs r0, 0x20\n\
|
||||
add r12, r0\n\
|
||||
adds r3, 0x1\n\
|
||||
cmp r3, 0x7\n\
|
||||
ble _08034786\n\
|
||||
adds r7, 0x1\n\
|
||||
ldr r1, [sp, 0xC]\n\
|
||||
cmp r7, r1\n\
|
||||
blt _08034774\n\
|
||||
_080347D2:\n\
|
||||
movs r7, 0\n\
|
||||
movs r2, 0\n\
|
||||
movs r7, 0\n\
|
||||
movs r2, 0\n\
|
||||
_080347D6:\n\
|
||||
movs r6, 0\n\
|
||||
adds r4, r7, 0x1\n\
|
||||
mov r8, r4\n\
|
||||
lsls r4, r7, 5\n\
|
||||
movs r6, 0\n\
|
||||
adds r4, r7, 0x1\n\
|
||||
mov r8, r4\n\
|
||||
lsls r4, r7, 5\n\
|
||||
_080347DE:\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
mov r10, r0\n\
|
||||
lsls r1, r6, 8\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xC0\n\
|
||||
adds r0, r5, r0\n\
|
||||
adds r0, r4\n\
|
||||
adds r1, r5, r1\n\
|
||||
adds r1, r4\n\
|
||||
movs r3, 0x1F\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
mov r10, r0\n\
|
||||
lsls r1, r6, 8\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xC0\n\
|
||||
adds r0, r5, r0\n\
|
||||
adds r0, r4\n\
|
||||
adds r1, r5, r1\n\
|
||||
adds r1, r4\n\
|
||||
movs r3, 0x1F\n\
|
||||
_080347F2:\n\
|
||||
strb r2, [r1]\n\
|
||||
strb r2, [r0]\n\
|
||||
adds r0, 0x1\n\
|
||||
adds r1, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _080347F2\n\
|
||||
mov r6, r10\n\
|
||||
cmp r6, 0x7\n\
|
||||
ble _080347DE\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, 0x1\n\
|
||||
ble _080347D6\n\
|
||||
mov r1, r9\n\
|
||||
cmp r1, 0x5\n\
|
||||
bne _08034818\n\
|
||||
movs r2, 0x90\n\
|
||||
lsls r2, 1\n\
|
||||
adds r5, r2\n\
|
||||
strb r2, [r1]\n\
|
||||
strb r2, [r0]\n\
|
||||
adds r0, 0x1\n\
|
||||
adds r1, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _080347F2\n\
|
||||
mov r6, r10\n\
|
||||
cmp r6, 0x7\n\
|
||||
ble _080347DE\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, 0x1\n\
|
||||
ble _080347D6\n\
|
||||
mov r1, r9\n\
|
||||
cmp r1, 0x5\n\
|
||||
bne _08034818\n\
|
||||
movs r2, 0x90\n\
|
||||
lsls r2, 1\n\
|
||||
adds r5, r2\n\
|
||||
_08034818:\n\
|
||||
movs r7, 0\n\
|
||||
cmp r7, r9\n\
|
||||
bge _080348AE\n\
|
||||
movs r7, 0\n\
|
||||
cmp r7, r9\n\
|
||||
bge _080348AE\n\
|
||||
_0803481E:\n\
|
||||
movs r3, 0\n\
|
||||
adds r7, 0x1\n\
|
||||
mov r8, r7\n\
|
||||
cmp r3, r9\n\
|
||||
bge _0803488E\n\
|
||||
movs r3, 0\n\
|
||||
adds r7, 0x1\n\
|
||||
mov r8, r7\n\
|
||||
cmp r3, r9\n\
|
||||
bge _0803488E\n\
|
||||
_08034828:\n\
|
||||
adds r3, 0x1\n\
|
||||
mov r10, r3\n\
|
||||
ldr r4, [sp, 0x4]\n\
|
||||
adds r4, 0x20\n\
|
||||
adds r7, r5, 0\n\
|
||||
adds r7, 0x20\n\
|
||||
movs r0, 0x12\n\
|
||||
adds r0, r5\n\
|
||||
mov r12, r0\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
adds r3, r5, 0\n\
|
||||
movs r6, 0x3\n\
|
||||
adds r3, 0x1\n\
|
||||
mov r10, r3\n\
|
||||
ldr r4, [sp, 0x4]\n\
|
||||
adds r4, 0x20\n\
|
||||
adds r7, r5, 0\n\
|
||||
adds r7, 0x20\n\
|
||||
movs r0, 0x12\n\
|
||||
adds r0, r5\n\
|
||||
mov r12, r0\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
adds r3, r5, 0\n\
|
||||
movs r6, 0x3\n\
|
||||
_08034840:\n\
|
||||
ldrb r0, [r2]\n\
|
||||
mov r1, r12\n\
|
||||
strb r0, [r1]\n\
|
||||
ldrb r0, [r2, 0x1]\n\
|
||||
strb r0, [r1, 0x1]\n\
|
||||
ldrb r0, [r2, 0x2]\n\
|
||||
strb r0, [r1, 0x1E]\n\
|
||||
ldrb r0, [r2, 0x3]\n\
|
||||
strb r0, [r1, 0x1F]\n\
|
||||
movs r0, 0x81\n\
|
||||
lsls r0, 1\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x10]\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, =0x00000103\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x11]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r0, 0x90\n\
|
||||
lsls r0, 1\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x12]\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, =0x00000121\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x13]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r1, 0x4\n\
|
||||
add r12, r1\n\
|
||||
adds r2, 0x4\n\
|
||||
adds r3, 0x4\n\
|
||||
subs r6, 0x1\n\
|
||||
cmp r6, 0\n\
|
||||
bge _08034840\n\
|
||||
str r4, [sp, 0x4]\n\
|
||||
adds r5, r7, 0\n\
|
||||
mov r3, r10\n\
|
||||
cmp r3, r9\n\
|
||||
blt _08034828\n\
|
||||
ldrb r0, [r2]\n\
|
||||
mov r1, r12\n\
|
||||
strb r0, [r1]\n\
|
||||
ldrb r0, [r2, 0x1]\n\
|
||||
strb r0, [r1, 0x1]\n\
|
||||
ldrb r0, [r2, 0x2]\n\
|
||||
strb r0, [r1, 0x1E]\n\
|
||||
ldrb r0, [r2, 0x3]\n\
|
||||
strb r0, [r1, 0x1F]\n\
|
||||
movs r0, 0x81\n\
|
||||
lsls r0, 1\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x10]\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, =0x00000103\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x11]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r0, 0x90\n\
|
||||
lsls r0, 1\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x12]\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, =0x00000121\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x13]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r1, 0x4\n\
|
||||
add r12, r1\n\
|
||||
adds r2, 0x4\n\
|
||||
adds r3, 0x4\n\
|
||||
subs r6, 0x1\n\
|
||||
cmp r6, 0\n\
|
||||
bge _08034840\n\
|
||||
str r4, [sp, 0x4]\n\
|
||||
adds r5, r7, 0\n\
|
||||
mov r3, r10\n\
|
||||
cmp r3, r9\n\
|
||||
blt _08034828\n\
|
||||
_0803488E:\n\
|
||||
mov r2, r9\n\
|
||||
cmp r2, 0x7\n\
|
||||
bne _080348A0\n\
|
||||
adds r5, 0x20\n\
|
||||
b _080348A8\n\
|
||||
.pool\n\
|
||||
mov r2, r9\n\
|
||||
cmp r2, 0x7\n\
|
||||
bne _080348A0\n\
|
||||
adds r5, 0x20\n\
|
||||
b _080348A8\n\
|
||||
.pool\n\
|
||||
_080348A0:\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x5\n\
|
||||
bne _080348A8\n\
|
||||
adds r5, 0x60\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x5\n\
|
||||
bne _080348A8\n\
|
||||
adds r5, 0x60\n\
|
||||
_080348A8:\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, r9\n\
|
||||
blt _0803481E\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, r9\n\
|
||||
blt _0803481E\n\
|
||||
_080348AE:\n\
|
||||
mov r0, r9\n\
|
||||
cmp r0, 0x7\n\
|
||||
bne _080348BC\n\
|
||||
movs r1, 0x80\n\
|
||||
lsls r1, 1\n\
|
||||
adds r5, r1\n\
|
||||
b _080348C8\n\
|
||||
mov r0, r9\n\
|
||||
cmp r0, 0x7\n\
|
||||
bne _080348BC\n\
|
||||
movs r1, 0x80\n\
|
||||
lsls r1, 1\n\
|
||||
adds r5, r1\n\
|
||||
b _080348C8\n\
|
||||
_080348BC:\n\
|
||||
mov r2, r9\n\
|
||||
cmp r2, 0x5\n\
|
||||
bne _080348C8\n\
|
||||
movs r4, 0xF0\n\
|
||||
lsls r4, 1\n\
|
||||
adds r5, r4\n\
|
||||
mov r2, r9\n\
|
||||
cmp r2, 0x5\n\
|
||||
bne _080348C8\n\
|
||||
movs r4, 0xF0\n\
|
||||
lsls r4, 1\n\
|
||||
adds r5, r4\n\
|
||||
_080348C8:\n\
|
||||
ldr r0, [sp, 0x14]\n\
|
||||
ldr r1, [sp]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _080348D2\n\
|
||||
b _08034756\n\
|
||||
ldr r0, [sp, 0x14]\n\
|
||||
ldr r1, [sp]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _080348D2\n\
|
||||
b _08034756\n\
|
||||
_080348D2:\n\
|
||||
b _08034964\n\
|
||||
b _08034964\n\
|
||||
_080348D4:\n\
|
||||
movs r6, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r6, r2\n\
|
||||
bge _08034964\n\
|
||||
movs r6, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r6, r2\n\
|
||||
bge _08034964\n\
|
||||
_080348DC:\n\
|
||||
adds r6, 0x1\n\
|
||||
mov r10, r6\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x6\n\
|
||||
bne _080348F4\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0xFF\n\
|
||||
adds r6, 0x1\n\
|
||||
mov r10, r6\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x6\n\
|
||||
bne _080348F4\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0xFF\n\
|
||||
_080348EA:\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _080348EA\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _080348EA\n\
|
||||
_080348F4:\n\
|
||||
movs r7, 0\n\
|
||||
cmp r7, r9\n\
|
||||
bge _08034948\n\
|
||||
movs r7, 0\n\
|
||||
cmp r7, r9\n\
|
||||
bge _08034948\n\
|
||||
_080348FA:\n\
|
||||
adds r7, 0x1\n\
|
||||
mov r8, r7\n\
|
||||
mov r1, r9\n\
|
||||
lsls r0, r1, 5\n\
|
||||
cmp r1, 0x6\n\
|
||||
bne _08034914\n\
|
||||
movs r1, 0\n\
|
||||
movs r3, 0x1F\n\
|
||||
adds r7, 0x1\n\
|
||||
mov r8, r7\n\
|
||||
mov r1, r9\n\
|
||||
lsls r0, r1, 5\n\
|
||||
cmp r1, 0x6\n\
|
||||
bne _08034914\n\
|
||||
movs r1, 0\n\
|
||||
movs r3, 0x1F\n\
|
||||
_0803490A:\n\
|
||||
strb r1, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0803490A\n\
|
||||
strb r1, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0803490A\n\
|
||||
_08034914:\n\
|
||||
adds r1, r0, 0\n\
|
||||
cmp r1, 0\n\
|
||||
ble _0803492E\n\
|
||||
adds r3, r1, 0\n\
|
||||
adds r1, r0, 0\n\
|
||||
cmp r1, 0\n\
|
||||
ble _0803492E\n\
|
||||
adds r3, r1, 0\n\
|
||||
_0803491C:\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
ldrb r0, [r2]\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r2, 0x1\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bne _0803491C\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
ldrb r0, [r2]\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r2, 0x1\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bne _0803491C\n\
|
||||
_0803492E:\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x6\n\
|
||||
bne _08034942\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0x1F\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x6\n\
|
||||
bne _08034942\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0x1F\n\
|
||||
_08034938:\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _08034938\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _08034938\n\
|
||||
_08034942:\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, r9\n\
|
||||
blt _080348FA\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, r9\n\
|
||||
blt _080348FA\n\
|
||||
_08034948:\n\
|
||||
mov r0, r9\n\
|
||||
cmp r0, 0x6\n\
|
||||
bne _0803495C\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0xFF\n\
|
||||
mov r0, r9\n\
|
||||
cmp r0, 0x6\n\
|
||||
bne _0803495C\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0xFF\n\
|
||||
_08034952:\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _08034952\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _08034952\n\
|
||||
_0803495C:\n\
|
||||
mov r6, r10\n\
|
||||
ldr r1, [sp]\n\
|
||||
cmp r6, r1\n\
|
||||
blt _080348DC\n\
|
||||
mov r6, r10\n\
|
||||
ldr r1, [sp]\n\
|
||||
cmp r6, r1\n\
|
||||
blt _080348DC\n\
|
||||
_08034964:\n\
|
||||
add sp, 0x24\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
add sp, 0x24\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.syntax divided");
|
||||
}
|
||||
|
||||
u32 GetDecompressedDataSize(const u32 *ptr)
|
||||
{
|
||||
const u8 *ptr8 = (const u8 *)ptr;
|
||||
const u8 *ptr8 = (const u8 *)ptr;
|
||||
return (ptr8[3] << 16) | (ptr8[2] << 8) | (ptr8[1]);
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "constants/decorations.h"
|
||||
#include "decompress.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "text.h"
|
||||
#include "string_util.h"
|
||||
#include "international_string_util.h"
|
||||
@ -312,7 +312,7 @@ const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate sDecorSelectorSpriteTemplate = {
|
||||
0xffff,
|
||||
0xFFFF,
|
||||
OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG,
|
||||
&sDecorSelectorOam,
|
||||
sDecorSelectorAnims,
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#include "easy_chat.h"
|
||||
#include "event_data.h"
|
||||
#include "link.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "random.h"
|
||||
#include "text.h"
|
||||
#include "tv.h"
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#include "gpu_regs.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "task.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "decompress.h"
|
||||
#include "bg.h"
|
||||
#include "window.h"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "constants/songs.h"
|
||||
#include "sound.h"
|
||||
#include "overworld.h"
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
#include "menu.h"
|
||||
#include "trig.h"
|
||||
#include "random.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "dma3.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "bg.h"
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
#include "field_effect_helpers.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "fieldmap.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "mauville_old_man.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "overworld.h"
|
||||
@ -142,255 +142,255 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = {
|
||||
// movement type callbacks
|
||||
static void (*const sMovementTypeCallbacks[])(struct Sprite *) =
|
||||
{
|
||||
MovementType_None, // MOVEMENT_TYPE_NONE
|
||||
MovementType_LookAround, // MOVEMENT_TYPE_LOOK_AROUND
|
||||
MovementType_WanderAround, // MOVEMENT_TYPE_WANDER_AROUND
|
||||
MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN
|
||||
MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP
|
||||
MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
|
||||
MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
|
||||
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_UP
|
||||
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_DOWN
|
||||
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_LEFT
|
||||
MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_RIGHT
|
||||
MovementType_Player, // MOVEMENT_TYPE_PLAYER
|
||||
MovementType_BerryTreeGrowth, // MOVEMENT_TYPE_BERRY_TREE_GROWTH
|
||||
MovementType_FaceDownAndUp, // MOVEMENT_TYPE_FACE_DOWN_AND_UP
|
||||
MovementType_FaceLeftAndRight, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
|
||||
MovementType_FaceUpAndLeft, // MOVEMENT_TYPE_FACE_UP_AND_LEFT
|
||||
MovementType_FaceUpAndRight, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT
|
||||
MovementType_FaceDownAndLeft, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
|
||||
MovementType_FaceDownAndRight, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
|
||||
MovementType_FaceDownUpAndLeft, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
|
||||
MovementType_FaceDownUpAndRight, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
|
||||
MovementType_FaceUpRightAndLeft, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
|
||||
MovementType_FaceDownRightAndLeft, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
|
||||
MovementType_RotateCounterclockwise, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
|
||||
MovementType_RotateClockwise, // MOVEMENT_TYPE_ROTATE_CLOCKWISE
|
||||
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_UP_AND_DOWN
|
||||
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_DOWN_AND_UP
|
||||
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
|
||||
MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
|
||||
MovementType_WalkSequenceUpRightLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
|
||||
MovementType_WalkSequenceRightLeftDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
|
||||
MovementType_WalkSequenceDownUpRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
|
||||
MovementType_WalkSequenceLeftDownUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
|
||||
MovementType_WalkSequenceUpLeftRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
|
||||
MovementType_WalkSequenceLeftRightDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
|
||||
MovementType_WalkSequenceDownUpLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
|
||||
MovementType_WalkSequenceRightDownUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
|
||||
MovementType_WalkSequenceLeftUpDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
|
||||
MovementType_WalkSequenceUpDownRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
|
||||
MovementType_WalkSequenceRightLeftUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
|
||||
MovementType_WalkSequenceDownRightLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
|
||||
MovementType_WalkSequenceRightUpDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
|
||||
MovementType_WalkSequenceUpDownLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
|
||||
MovementType_WalkSequenceLeftRightUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
|
||||
MovementType_WalkSequenceDownLeftRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
|
||||
MovementType_WalkSequenceUpLeftDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
|
||||
MovementType_WalkSequenceDownRightUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
|
||||
MovementType_WalkSequenceLeftDownRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
|
||||
MovementType_WalkSequenceRightUpLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
|
||||
MovementType_WalkSequenceUpRightDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
|
||||
MovementType_WalkSequenceDownLeftUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
|
||||
MovementType_WalkSequenceLeftUpRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
|
||||
MovementType_WalkSequenceRightDownLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
|
||||
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER
|
||||
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
|
||||
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
|
||||
MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
|
||||
MovementType_TreeDisguise, // MOVEMENT_TYPE_TREE_DISGUISE
|
||||
MovementType_MountainDisguise, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE
|
||||
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
|
||||
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
|
||||
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
|
||||
MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
|
||||
MovementType_Hidden, // MOVEMENT_TYPE_HIDDEN
|
||||
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
|
||||
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_UP
|
||||
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
|
||||
MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
|
||||
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
|
||||
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_UP
|
||||
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
|
||||
MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
|
||||
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
|
||||
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_UP
|
||||
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
|
||||
MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
|
||||
MovementType_Invisible, // MOVEMENT_TYPE_INVISIBLE
|
||||
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
|
||||
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
|
||||
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
|
||||
MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
|
||||
[MOVEMENT_TYPE_NONE] = MovementType_None,
|
||||
[MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround,
|
||||
[MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround,
|
||||
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = MovementType_WanderUpAndDown,
|
||||
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = MovementType_WanderUpAndDown,
|
||||
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = MovementType_WanderLeftAndRight,
|
||||
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = MovementType_WanderLeftAndRight,
|
||||
[MOVEMENT_TYPE_FACE_UP] = MovementType_FaceDirection,
|
||||
[MOVEMENT_TYPE_FACE_DOWN] = MovementType_FaceDirection,
|
||||
[MOVEMENT_TYPE_FACE_LEFT] = MovementType_FaceDirection,
|
||||
[MOVEMENT_TYPE_FACE_RIGHT] = MovementType_FaceDirection,
|
||||
[MOVEMENT_TYPE_PLAYER] = MovementType_Player,
|
||||
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = MovementType_BerryTreeGrowth,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = MovementType_FaceDownAndUp,
|
||||
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = MovementType_FaceLeftAndRight,
|
||||
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = MovementType_FaceUpAndLeft,
|
||||
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = MovementType_FaceUpAndRight,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = MovementType_FaceDownAndLeft,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = MovementType_FaceDownAndRight,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = MovementType_FaceDownUpAndLeft,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = MovementType_FaceDownUpAndRight,
|
||||
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = MovementType_FaceUpRightAndLeft,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = MovementType_FaceDownRightAndLeft,
|
||||
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = MovementType_RotateCounterclockwise,
|
||||
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = MovementType_RotateClockwise,
|
||||
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = MovementType_WalkBackAndForth,
|
||||
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = MovementType_WalkBackAndForth,
|
||||
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = MovementType_WalkBackAndForth,
|
||||
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = MovementType_WalkBackAndForth,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = MovementType_WalkSequenceUpRightLeftDown,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = MovementType_WalkSequenceRightLeftDownUp,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = MovementType_WalkSequenceDownUpRightLeft,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = MovementType_WalkSequenceLeftDownUpRight,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = MovementType_WalkSequenceUpLeftRightDown,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = MovementType_WalkSequenceLeftRightDownUp,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = MovementType_WalkSequenceDownUpLeftRight,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = MovementType_WalkSequenceRightDownUpLeft,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = MovementType_WalkSequenceLeftUpDownRight,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = MovementType_WalkSequenceUpDownRightLeft,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = MovementType_WalkSequenceRightLeftUpDown,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = MovementType_WalkSequenceDownRightLeftUp,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = MovementType_WalkSequenceRightUpDownLeft,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = MovementType_WalkSequenceUpDownLeftRight,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = MovementType_WalkSequenceLeftRightUpDown,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = MovementType_WalkSequenceDownLeftRightUp,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = MovementType_WalkSequenceUpLeftDownRight,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = MovementType_WalkSequenceDownRightUpLeft,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = MovementType_WalkSequenceLeftDownRightUp,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = MovementType_WalkSequenceRightUpLeftDown,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = MovementType_WalkSequenceUpRightDownLeft,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = MovementType_WalkSequenceDownLeftUpRight,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = MovementType_WalkSequenceLeftUpRightDown,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = MovementType_WalkSequenceRightDownLeftUp,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER] = MovementType_CopyPlayer,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = MovementType_CopyPlayer,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = MovementType_CopyPlayer,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = MovementType_CopyPlayer,
|
||||
[MOVEMENT_TYPE_TREE_DISGUISE] = MovementType_TreeDisguise,
|
||||
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = MovementType_MountainDisguise,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = MovementType_CopyPlayerInGrass,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
|
||||
[MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = MovementType_RunInPlace,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = MovementType_RunInPlace,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = MovementType_RunInPlace,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = MovementType_RunInPlace,
|
||||
[MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace,
|
||||
};
|
||||
|
||||
const u8 gRangedMovementTypes[] = {
|
||||
0, // MOVEMENT_TYPE_NONE
|
||||
0, // MOVEMENT_TYPE_LOOK_AROUND
|
||||
1, // MOVEMENT_TYPE_WANDER_AROUND
|
||||
1, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN
|
||||
1, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP
|
||||
1, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
|
||||
1, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
|
||||
0, // MOVEMENT_TYPE_FACE_UP
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN
|
||||
0, // MOVEMENT_TYPE_FACE_LEFT
|
||||
0, // MOVEMENT_TYPE_FACE_RIGHT
|
||||
0, // MOVEMENT_TYPE_PLAYER
|
||||
0, // MOVEMENT_TYPE_BERRY_TREE_GROWTH
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN_AND_UP
|
||||
0, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
|
||||
0, // MOVEMENT_TYPE_FACE_UP_AND_LEFT
|
||||
0, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
|
||||
0, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
|
||||
0, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
|
||||
0, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
|
||||
0, // MOVEMENT_TYPE_ROTATE_CLOCKWISE
|
||||
1, // MOVEMENT_TYPE_WALK_UP_AND_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_DOWN_AND_UP
|
||||
1, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
|
||||
1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
|
||||
0, // MOVEMENT_TYPE_TREE_DISGUISE
|
||||
0, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
|
||||
1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
|
||||
0, // MOVEMENT_TYPE_HIDDEN
|
||||
0, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
|
||||
0, // MOVEMENT_TYPE_WALK_IN_PLACE_UP
|
||||
0, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
|
||||
0, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
|
||||
0, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
|
||||
0, // MOVEMENT_TYPE_JOG_IN_PLACE_UP
|
||||
0, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
|
||||
0, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
|
||||
0, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
|
||||
0, // MOVEMENT_TYPE_RUN_IN_PLACE_UP
|
||||
0, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
|
||||
0, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
|
||||
0, // MOVEMENT_TYPE_INVISIBLE
|
||||
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
|
||||
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
|
||||
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
|
||||
0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
|
||||
[MOVEMENT_TYPE_NONE] = 0,
|
||||
[MOVEMENT_TYPE_LOOK_AROUND] = 0,
|
||||
[MOVEMENT_TYPE_WANDER_AROUND] = 1,
|
||||
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = 1,
|
||||
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_FACE_UP] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN] = 0,
|
||||
[MOVEMENT_TYPE_FACE_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_PLAYER] = 0,
|
||||
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = 0,
|
||||
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = 0,
|
||||
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = 0,
|
||||
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = 1,
|
||||
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = 1,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = 1,
|
||||
[MOVEMENT_TYPE_TREE_DISGUISE] = 0,
|
||||
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = 0,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1,
|
||||
[MOVEMENT_TYPE_HIDDEN] = 0,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = 0,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = 0,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = 0,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = 0,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = 0,
|
||||
[MOVEMENT_TYPE_INVISIBLE] = 0,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = 0,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = 0,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = 0,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = 0,
|
||||
};
|
||||
|
||||
const u8 gInitialMovementTypeFacingDirections[] = {
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_NONE
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_LOOK_AROUND
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WANDER_AROUND
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
|
||||
DIR_EAST, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN
|
||||
DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT
|
||||
DIR_EAST, // MOVEMENT_TYPE_FACE_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_PLAYER
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_BERRY_TREE_GROWTH
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_LEFT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_CLOCKWISE
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_UP_AND_DOWN
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_DOWN_AND_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
|
||||
DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
|
||||
DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
|
||||
DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_TREE_DISGUISE
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE
|
||||
DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
|
||||
DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
|
||||
DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_HIDDEN
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_IN_PLACE_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
|
||||
DIR_NORTH, // MOVEMENT_TYPE_JOG_IN_PLACE_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
|
||||
DIR_EAST, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
|
||||
DIR_NORTH, // MOVEMENT_TYPE_RUN_IN_PLACE_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
|
||||
DIR_EAST, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_INVISIBLE
|
||||
DIR_SOUTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
|
||||
DIR_NORTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
|
||||
DIR_WEST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
|
||||
DIR_EAST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
|
||||
[MOVEMENT_TYPE_NONE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_LOOK_AROUND] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WANDER_AROUND] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_FACE_UP] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_LEFT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_FACE_RIGHT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_PLAYER] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_TREE_DISGUISE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST,
|
||||
[MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST,
|
||||
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST,
|
||||
};
|
||||
|
||||
#define EVENT_OBJ_PAL_TAG_0 0x1103
|
||||
@ -668,181 +668,181 @@ const s16 gMovementDelaysShort[] = {32, 48, 64, 80};
|
||||
#include "data/field_event_obj/movement_type_func_tables.h"
|
||||
|
||||
const u8 gFaceDirectionAnimNums[] = {
|
||||
0, // DIR_NONE
|
||||
0, // DIR_SOUTH
|
||||
1, // DIR_NORTH
|
||||
2, // DIR_WEST
|
||||
3, // DIR_EAST
|
||||
0, // DIR_SOUTHWEST
|
||||
0, // DIR_SOUTHEAST
|
||||
1, // DIR_NORTHWEST
|
||||
1, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 0,
|
||||
[DIR_SOUTH] = 0,
|
||||
[DIR_NORTH] = 1,
|
||||
[DIR_WEST] = 2,
|
||||
[DIR_EAST] = 3,
|
||||
[DIR_SOUTHWEST] = 0,
|
||||
[DIR_SOUTHEAST] = 0,
|
||||
[DIR_NORTHWEST] = 1,
|
||||
[DIR_NORTHEAST] = 1,
|
||||
};
|
||||
const u8 gMoveDirectionAnimNums[] = {
|
||||
4, // DIR_NONE
|
||||
4, // DIR_SOUTH
|
||||
5, // DIR_NORTH
|
||||
6, // DIR_WEST
|
||||
7, // DIR_EAST
|
||||
4, // DIR_SOUTHWEST
|
||||
4, // DIR_SOUTHEAST
|
||||
5, // DIR_NORTHWEST
|
||||
5, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 4,
|
||||
[DIR_SOUTH] = 4,
|
||||
[DIR_NORTH] = 5,
|
||||
[DIR_WEST] = 6,
|
||||
[DIR_EAST] = 7,
|
||||
[DIR_SOUTHWEST] = 4,
|
||||
[DIR_SOUTHEAST] = 4,
|
||||
[DIR_NORTHWEST] = 5,
|
||||
[DIR_NORTHEAST] = 5,
|
||||
};
|
||||
const u8 gMoveDirectionFastAnimNums[] = {
|
||||
8, // DIR_NONE
|
||||
8, // DIR_SOUTH
|
||||
9, // DIR_NORTH
|
||||
10, // DIR_WEST
|
||||
11, // DIR_EAST
|
||||
8, // DIR_SOUTHWEST
|
||||
8, // DIR_SOUTHEAST
|
||||
9, // DIR_NORTHWEST
|
||||
9, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 8,
|
||||
[DIR_SOUTH] = 8,
|
||||
[DIR_NORTH] = 9,
|
||||
[DIR_WEST] = 10,
|
||||
[DIR_EAST] = 11,
|
||||
[DIR_SOUTHWEST] = 8,
|
||||
[DIR_SOUTHEAST] = 8,
|
||||
[DIR_NORTHWEST] = 9,
|
||||
[DIR_NORTHEAST] = 9,
|
||||
};
|
||||
const u8 gMoveDirectionFasterAnimNums[] = {
|
||||
12, // DIR_NONE
|
||||
12, // DIR_SOUTH
|
||||
13, // DIR_NORTH
|
||||
14, // DIR_WEST
|
||||
15, // DIR_EAST
|
||||
12, // DIR_SOUTHWEST
|
||||
12, // DIR_SOUTHEAST
|
||||
13, // DIR_NORTHWEST
|
||||
13, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 12,
|
||||
[DIR_SOUTH] = 12,
|
||||
[DIR_NORTH] = 13,
|
||||
[DIR_WEST] = 14,
|
||||
[DIR_EAST] = 15,
|
||||
[DIR_SOUTHWEST] = 12,
|
||||
[DIR_SOUTHEAST] = 12,
|
||||
[DIR_NORTHWEST] = 13,
|
||||
[DIR_NORTHEAST] = 13,
|
||||
};
|
||||
const u8 gMoveDirectionFastestAnimNums[] = {
|
||||
16, // DIR_NONE
|
||||
16, // DIR_SOUTH
|
||||
17, // DIR_NORTH
|
||||
18, // DIR_WEST
|
||||
19, // DIR_EAST
|
||||
16, // DIR_SOUTHWEST
|
||||
16, // DIR_SOUTHEAST
|
||||
17, // DIR_NORTHWEST
|
||||
17, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 16,
|
||||
[DIR_SOUTH] = 16,
|
||||
[DIR_NORTH] = 17,
|
||||
[DIR_WEST] = 18,
|
||||
[DIR_EAST] = 19,
|
||||
[DIR_SOUTHWEST] = 16,
|
||||
[DIR_SOUTHEAST] = 16,
|
||||
[DIR_NORTHWEST] = 17,
|
||||
[DIR_NORTHEAST] = 17,
|
||||
};
|
||||
const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon
|
||||
20, // DIR_NONE
|
||||
20, // DIR_SOUTH
|
||||
21, // DIR_NORTH
|
||||
22, // DIR_WEST
|
||||
23, // DIR_EAST
|
||||
20, // DIR_SOUTHWEST
|
||||
20, // DIR_SOUTHEAST
|
||||
21, // DIR_NORTHWEST
|
||||
21, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 20,
|
||||
[DIR_SOUTH] = 20,
|
||||
[DIR_NORTH] = 21,
|
||||
[DIR_WEST] = 22,
|
||||
[DIR_EAST] = 23,
|
||||
[DIR_SOUTHWEST] = 20,
|
||||
[DIR_SOUTHEAST] = 20,
|
||||
[DIR_NORTHWEST] = 21,
|
||||
[DIR_NORTHEAST] = 21,
|
||||
};
|
||||
const u8 gAcroWheelieDirectionAnimNums[] = {
|
||||
20, // DIR_NONE
|
||||
20, // DIR_SOUTH
|
||||
21, // DIR_NORTH
|
||||
22, // DIR_WEST
|
||||
23, // DIR_EAST
|
||||
20, // DIR_SOUTHWEST
|
||||
20, // DIR_SOUTHEAST
|
||||
21, // DIR_NORTHWEST
|
||||
21, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 20,
|
||||
[DIR_SOUTH] = 20,
|
||||
[DIR_NORTH] = 21,
|
||||
[DIR_WEST] = 22,
|
||||
[DIR_EAST] = 23,
|
||||
[DIR_SOUTHWEST] = 20,
|
||||
[DIR_SOUTHEAST] = 20,
|
||||
[DIR_NORTHWEST] = 21,
|
||||
[DIR_NORTHEAST] = 21,
|
||||
};
|
||||
const u8 gUnrefAnimNums_08375633[] = {
|
||||
24, // DIR_NONE
|
||||
24, // DIR_SOUTH
|
||||
25, // DIR_NORTH
|
||||
26, // DIR_WEST
|
||||
27, // DIR_EAST
|
||||
24, // DIR_SOUTHWEST
|
||||
24, // DIR_SOUTHEAST
|
||||
25, // DIR_NORTHWEST
|
||||
25, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 24,
|
||||
[DIR_SOUTH] = 24,
|
||||
[DIR_NORTH] = 25,
|
||||
[DIR_WEST] = 26,
|
||||
[DIR_EAST] = 27,
|
||||
[DIR_SOUTHWEST] = 24,
|
||||
[DIR_SOUTHEAST] = 24,
|
||||
[DIR_NORTHWEST] = 25,
|
||||
[DIR_NORTHEAST] = 25,
|
||||
};
|
||||
const u8 gAcroEndWheelieDirectionAnimNums[] = {
|
||||
28, // DIR_NONE
|
||||
28, // DIR_SOUTH
|
||||
29, // DIR_NORTH
|
||||
30, // DIR_WEST
|
||||
31, // DIR_EAST
|
||||
28, // DIR_SOUTHWEST
|
||||
28, // DIR_SOUTHEAST
|
||||
29, // DIR_NORTHWEST
|
||||
29, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 28,
|
||||
[DIR_SOUTH] = 28,
|
||||
[DIR_NORTH] = 29,
|
||||
[DIR_WEST] = 30,
|
||||
[DIR_EAST] = 31,
|
||||
[DIR_SOUTHWEST] = 28,
|
||||
[DIR_SOUTHEAST] = 28,
|
||||
[DIR_NORTHWEST] = 29,
|
||||
[DIR_NORTHEAST] = 29,
|
||||
};
|
||||
const u8 gAcroUnusedActionDirectionAnimNums[] = {
|
||||
32, // DIR_NONE
|
||||
32, // DIR_SOUTH
|
||||
33, // DIR_NORTH
|
||||
34, // DIR_WEST
|
||||
35, // DIR_EAST
|
||||
32, // DIR_SOUTHWEST
|
||||
32, // DIR_SOUTHEAST
|
||||
33, // DIR_NORTHWEST
|
||||
33, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 32,
|
||||
[DIR_SOUTH] = 32,
|
||||
[DIR_NORTH] = 33,
|
||||
[DIR_WEST] = 34,
|
||||
[DIR_EAST] = 35,
|
||||
[DIR_SOUTHWEST] = 32,
|
||||
[DIR_SOUTHEAST] = 32,
|
||||
[DIR_NORTHWEST] = 33,
|
||||
[DIR_NORTHEAST] = 33,
|
||||
};
|
||||
const u8 gAcroWheeliePedalDirectionAnimNums[] = {
|
||||
36, // DIR_NONE
|
||||
36, // DIR_SOUTH
|
||||
37, // DIR_NORTH
|
||||
38, // DIR_WEST
|
||||
39, // DIR_EAST
|
||||
36, // DIR_SOUTHWEST
|
||||
36, // DIR_SOUTHEAST
|
||||
37, // DIR_NORTHWEST
|
||||
37, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 36,
|
||||
[DIR_SOUTH] = 36,
|
||||
[DIR_NORTH] = 37,
|
||||
[DIR_WEST] = 38,
|
||||
[DIR_EAST] = 39,
|
||||
[DIR_SOUTHWEST] = 36,
|
||||
[DIR_SOUTHEAST] = 36,
|
||||
[DIR_NORTHWEST] = 37,
|
||||
[DIR_NORTHEAST] = 37,
|
||||
};
|
||||
const u8 gFishingDirectionAnimNums[] = {
|
||||
0, // DIR_NONE
|
||||
0, // DIR_SOUTH
|
||||
1, // DIR_NORTH
|
||||
2, // DIR_WEST
|
||||
3, // DIR_EAST
|
||||
0, // DIR_SOUTHWEST
|
||||
0, // DIR_SOUTHEAST
|
||||
1, // DIR_NORTHWEST
|
||||
1, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 0,
|
||||
[DIR_SOUTH] = 0,
|
||||
[DIR_NORTH] = 1,
|
||||
[DIR_WEST] = 2,
|
||||
[DIR_EAST] = 3,
|
||||
[DIR_SOUTHWEST] = 0,
|
||||
[DIR_SOUTHEAST] = 0,
|
||||
[DIR_NORTHWEST] = 1,
|
||||
[DIR_NORTHEAST] = 1,
|
||||
};
|
||||
const u8 gFishingNoCatchDirectionAnimNums[] = {
|
||||
4, // DIR_NONE
|
||||
4, // DIR_SOUTH
|
||||
5, // DIR_NORTH
|
||||
6, // DIR_WEST
|
||||
7, // DIR_EAST
|
||||
4, // DIR_SOUTHWEST
|
||||
4, // DIR_SOUTHEAST
|
||||
5, // DIR_NORTHWEST
|
||||
5, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 4,
|
||||
[DIR_SOUTH] = 4,
|
||||
[DIR_NORTH] = 5,
|
||||
[DIR_WEST] = 6,
|
||||
[DIR_EAST] = 7,
|
||||
[DIR_SOUTHWEST] = 4,
|
||||
[DIR_SOUTHEAST] = 4,
|
||||
[DIR_NORTHWEST] = 5,
|
||||
[DIR_NORTHEAST] = 5,
|
||||
};
|
||||
const u8 gFishingBiteDirectionAnimNums[] = {
|
||||
8, // DIR_NONE
|
||||
8, // DIR_SOUTH
|
||||
9, // DIR_NORTH
|
||||
10, // DIR_WEST
|
||||
11, // DIR_EAST
|
||||
8, // DIR_SOUTHWEST
|
||||
8, // DIR_SOUTHEAST
|
||||
9, // DIR_NORTHWEST
|
||||
9, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 8,
|
||||
[DIR_SOUTH] = 8,
|
||||
[DIR_NORTH] = 9,
|
||||
[DIR_WEST] = 10,
|
||||
[DIR_EAST] = 11,
|
||||
[DIR_SOUTHWEST] = 8,
|
||||
[DIR_SOUTHEAST] = 8,
|
||||
[DIR_NORTHWEST] = 9,
|
||||
[DIR_NORTHEAST] = 9,
|
||||
};
|
||||
const u8 gRunningDirectionAnimNums[] = {
|
||||
20, // DIR_NONE
|
||||
20, // DIR_SOUTH
|
||||
21, // DIR_NORTH
|
||||
22, // DIR_WEST
|
||||
23, // DIR_EAST
|
||||
20, // DIR_SOUTHWEST
|
||||
20, // DIR_SOUTHEAST
|
||||
21, // DIR_NORTHWEST
|
||||
21, // DIR_NORTHEAST
|
||||
[DIR_NONE] = 20,
|
||||
[DIR_SOUTH] = 20,
|
||||
[DIR_NORTH] = 21,
|
||||
[DIR_WEST] = 22,
|
||||
[DIR_EAST] = 23,
|
||||
[DIR_SOUTHWEST] = 20,
|
||||
[DIR_SOUTHEAST] = 20,
|
||||
[DIR_NORTHWEST] = 21,
|
||||
[DIR_NORTHEAST] = 21,
|
||||
};
|
||||
|
||||
const u8 gTrainerFacingDirectionMovementTypes[] = {
|
||||
MOVEMENT_TYPE_FACE_DOWN, // DIR_NONE
|
||||
MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTH
|
||||
MOVEMENT_TYPE_FACE_UP, // DIR_NORTH
|
||||
MOVEMENT_TYPE_FACE_LEFT, // DIR_WEST
|
||||
MOVEMENT_TYPE_FACE_RIGHT, // DIR_EAST
|
||||
MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHWEST
|
||||
MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHEAST
|
||||
MOVEMENT_TYPE_FACE_UP, // DIR_NORTHWEST
|
||||
MOVEMENT_TYPE_FACE_UP, // DIR_NORTHEAST
|
||||
[DIR_NONE] = MOVEMENT_TYPE_FACE_DOWN,
|
||||
[DIR_SOUTH] = MOVEMENT_TYPE_FACE_DOWN,
|
||||
[DIR_NORTH] = MOVEMENT_TYPE_FACE_UP,
|
||||
[DIR_WEST] = MOVEMENT_TYPE_FACE_LEFT,
|
||||
[DIR_EAST] = MOVEMENT_TYPE_FACE_RIGHT,
|
||||
[DIR_SOUTHWEST] = MOVEMENT_TYPE_FACE_DOWN,
|
||||
[DIR_SOUTHEAST] = MOVEMENT_TYPE_FACE_DOWN,
|
||||
[DIR_NORTHWEST] = MOVEMENT_TYPE_FACE_UP,
|
||||
[DIR_NORTHEAST] = MOVEMENT_TYPE_FACE_UP,
|
||||
};
|
||||
|
||||
bool8 (*const gOppositeDirectionBlockedMetatileFuncs[])(u8) = {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#include "evolution_scene.h"
|
||||
#include "evolution_graphics.h"
|
||||
#include "sprite.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "task.h"
|
||||
#include "palette.h"
|
||||
#include "main.h"
|
||||
|
||||
@ -305,7 +305,7 @@ const union AnimCmd *const gNewGameBirchImageAnimTable[] = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gNewGameBirchObjectTemplate = {
|
||||
.tileTag = 0xffff,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4102,
|
||||
.oam = &gNewGameBirchOamAttributes,
|
||||
.anims = gNewGameBirchImageAnimTable,
|
||||
@ -383,7 +383,7 @@ const union AnimCmd *const gSpriteAnimTable_855C300[] = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_855C304 = {
|
||||
.tileTag = 0xffff,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4103,
|
||||
.oam = &gOamData_855C218,
|
||||
.anims = gSpriteAnimTable_855C2F8,
|
||||
@ -393,7 +393,7 @@ const struct SpriteTemplate gSpriteTemplate_855C304 = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_855C31C = {
|
||||
.tileTag = 0xffff,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4100,
|
||||
.oam = &gOamData_855C220,
|
||||
.anims = gSpriteAnimTable_855C2F8,
|
||||
@ -403,7 +403,7 @@ const struct SpriteTemplate gSpriteTemplate_855C31C = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_855C334 = {
|
||||
.tileTag = 0xffff,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4112,
|
||||
.oam = &gOamData_855C220,
|
||||
.anims = gSpriteAnimTable_855C300,
|
||||
@ -413,7 +413,7 @@ const struct SpriteTemplate gSpriteTemplate_855C334 = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_855C34C = {
|
||||
.tileTag = 0xffff,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4112,
|
||||
.oam = &gOamData_855C26C,
|
||||
.anims = gSpriteAnimTable_855C300,
|
||||
@ -3591,7 +3591,7 @@ const union AnimCmd *const gSpriteAnimTable_855C5DC[] = {
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_0855C5EC = {
|
||||
.tileTag = 0xffff,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 4378,
|
||||
.oam = &gOamData_855C218,
|
||||
.anims = gSpriteAnimTable_855C5DC,
|
||||
|
||||
@ -1007,15 +1007,15 @@ void UpdateSurfBlobFieldEffect(struct Sprite *sprite)
|
||||
static void SynchroniseSurfAnim(struct EventObject *eventObject, struct Sprite *sprite)
|
||||
{
|
||||
u8 surfBlobDirectionAnims[] = {
|
||||
0, // DIR_NONE
|
||||
0, // DIR_SOUTH
|
||||
1, // DIR_NORTH
|
||||
2, // DIR_WEST
|
||||
3, // DIR_EAST
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
[DIR_NONE] = 0,
|
||||
[DIR_SOUTH] = 0,
|
||||
[DIR_NORTH] = 1,
|
||||
[DIR_WEST] = 2,
|
||||
[DIR_EAST] = 3,
|
||||
[DIR_SOUTHWEST] = 0,
|
||||
[DIR_SOUTHEAST] = 0,
|
||||
[DIR_NORTHWEST] = 1,
|
||||
[DIR_NORTHEAST] = 1,
|
||||
};
|
||||
|
||||
if (sub_8155640(sprite) == 0)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#include "gpu_regs.h"
|
||||
#include "international_string_util.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "palette.h"
|
||||
#include "region_map.h"
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
#include "link.h"
|
||||
#include "list_menu.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "match_call.h"
|
||||
#include "menu.h"
|
||||
#include "overworld.h"
|
||||
@ -1691,22 +1691,22 @@ const struct WindowTemplate gUnknown_085B2BAC = {
|
||||
};
|
||||
|
||||
const u8 *const gElevatorFloorsTable[] = {
|
||||
gText_B4F,
|
||||
gText_B3F,
|
||||
gText_B2F,
|
||||
gText_B1F,
|
||||
gText_1F,
|
||||
gText_2F,
|
||||
gText_3F,
|
||||
gText_4F,
|
||||
gText_5F,
|
||||
gText_6F,
|
||||
gText_7F,
|
||||
gText_8F,
|
||||
gText_9F,
|
||||
gText_10F,
|
||||
gText_11F,
|
||||
gText_Rooftop
|
||||
gText_B4F,
|
||||
gText_B3F,
|
||||
gText_B2F,
|
||||
gText_B1F,
|
||||
gText_1F,
|
||||
gText_2F,
|
||||
gText_3F,
|
||||
gText_4F,
|
||||
gText_5F,
|
||||
gText_6F,
|
||||
gText_7F,
|
||||
gText_8F,
|
||||
gText_9F,
|
||||
gText_10F,
|
||||
gText_11F,
|
||||
gText_Rooftop
|
||||
};
|
||||
|
||||
const u16 gUnknown_085B2BF4[][3] =
|
||||
@ -1957,7 +1957,7 @@ void sub_8139D98(void)
|
||||
|
||||
bool32 warp0_in_pokecenter(void)
|
||||
{
|
||||
static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xffff };
|
||||
static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xFFFF };
|
||||
|
||||
int i;
|
||||
u16 map = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum;
|
||||
@ -2946,10 +2946,10 @@ void sub_813AA44(void)
|
||||
|
||||
static void sub_813AA60(u16 a0, u16 a1)
|
||||
{
|
||||
static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xffff };
|
||||
static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xffff };
|
||||
static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xffff };
|
||||
static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xffff };
|
||||
static const u16 gUnknown_085B312C[] = { 0x004b, 0x0067, 0x0057, 0x004f, 0x0054, 0x0055, 0x0056, 0x0050, 0x0051, 0x0052, 0xFFFF };
|
||||
static const u16 gUnknown_085B3142[] = { 0x0071, 0x006f, 0x0072, 0x0073, 0x0074, 0xFFFF };
|
||||
static const u16 gUnknown_085B314E[] = { 0x0040, 0x0043, 0x0041, 0x0046, 0x0042, 0x003f, 0xFFFF };
|
||||
static const u16 gUnknown_085B315C[] = { 0x00c8, 0x00b4, 0x00b7, 0x00b9, 0x00b3, 0x00ba, 0x00bb, 0x00c4, 0x00c6, 0xFFFF };
|
||||
|
||||
static const u8 *const gUnknown_085B3170[] = {
|
||||
BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA,
|
||||
@ -3841,7 +3841,7 @@ bool32 sub_813B9C0(void)
|
||||
MAP_TRADE_CENTER,
|
||||
MAP_RECORD_CORNER,
|
||||
MAP_DOUBLE_BATTLE_COLOSSEUM,
|
||||
0xffff
|
||||
0xFFFF
|
||||
};
|
||||
|
||||
int i;
|
||||
|
||||
@ -496,7 +496,7 @@ u16 GetBehaviorByMetatileId(u16 metatile)
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0xff;
|
||||
return 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
923
src/fire.c
923
src/fire.c
@ -1,24 +1,43 @@
|
||||
#include "global.h"
|
||||
#include "battle_anim.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
#include "sound.h"
|
||||
#include "util.h"
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
|
||||
extern void sub_8108EC8(struct Sprite *);
|
||||
extern void sub_8108F08(struct Sprite *);
|
||||
extern void sub_8108FBC(struct Sprite *);
|
||||
extern void sub_8108F4C(struct Sprite *);
|
||||
extern void sub_8109064(struct Sprite *);
|
||||
extern void sub_810916C(struct Sprite *);
|
||||
extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *);
|
||||
extern void sub_8109198(struct Sprite *);
|
||||
extern void sub_8109200(struct Sprite *);
|
||||
extern void sub_810921C(struct Sprite *);
|
||||
extern void sub_8109364(struct Sprite *);
|
||||
extern void sub_81093A4(struct Sprite *);
|
||||
extern void sub_80A8EE4(struct Sprite *);
|
||||
extern void sub_81098EC(struct Sprite *);
|
||||
extern void sub_8109A10(struct Sprite *);
|
||||
extern void sub_8109AFC(struct Sprite *);
|
||||
extern void sub_8109CB0(struct Sprite *);
|
||||
static void sub_8108EC8(struct Sprite *);
|
||||
static void sub_8108F08(struct Sprite *);
|
||||
static void sub_8108F4C(struct Sprite *);
|
||||
static void sub_8108FBC(struct Sprite *);
|
||||
static void sub_8109028(struct Sprite *);
|
||||
static void sub_8109064(struct Sprite *);
|
||||
static void sub_81090D8(struct Sprite *);
|
||||
static void sub_810916C(struct Sprite *);
|
||||
static void AnimEmberFlare(struct Sprite *);
|
||||
static void sub_8109200(struct Sprite *);
|
||||
static void AnimFireRing(struct Sprite *);
|
||||
static void AnimFireRingStep1(struct Sprite *);
|
||||
static void AnimFireRingStep2(struct Sprite *);
|
||||
static void AnimFireRingStep3(struct Sprite *);
|
||||
static void UpdateFireRingCircleOffset(struct Sprite *);
|
||||
static void AnimFireCross(struct Sprite *);
|
||||
static void sub_81093A4(struct Sprite *);
|
||||
static void sub_81093E4(struct Sprite *);
|
||||
static void sub_810940C(struct Sprite *);
|
||||
static void sub_81094D0(u8 taskId);
|
||||
static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3);
|
||||
static void sub_81098EC(struct Sprite *);
|
||||
static u16 sub_8109930(u8 spriteId);
|
||||
static void sub_8109984(struct Sprite *sprite, s16 x, s16 y);
|
||||
static void sub_81099A0(struct Sprite *);
|
||||
static void sub_8109A10(struct Sprite *);
|
||||
static void sub_8109A64(struct Sprite *);
|
||||
static void sub_8109AFC(struct Sprite *);
|
||||
static void sub_8109C4C(struct Sprite *);
|
||||
static void sub_8109CB0(struct Sprite *);
|
||||
static void sub_8109E2C(u8 taskId);
|
||||
|
||||
const union AnimCmd gUnknown_08595340[] =
|
||||
{
|
||||
@ -234,7 +253,7 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate =
|
||||
.anims = gUnknown_085954D0,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_8109198,
|
||||
.callback = AnimEmberFlare,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_08595504 =
|
||||
@ -256,7 +275,7 @@ const struct SpriteTemplate gUnknown_0859551C =
|
||||
.anims = gUnknown_085954D0,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_810921C,
|
||||
.callback = AnimFireRing,
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_08595534[] =
|
||||
@ -297,7 +316,7 @@ const struct SpriteTemplate gUnknown_0859556C =
|
||||
.anims = gUnknown_08595540,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_8109364,
|
||||
.callback = AnimFireCross,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gBattleAnimSpriteTemplate_8595584 =
|
||||
@ -436,3 +455,867 @@ const s8 gUnknown_08595694[16] =
|
||||
{
|
||||
-1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1,
|
||||
};
|
||||
|
||||
static void sub_8108EC8(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = gBattleAnimArgs[0];
|
||||
sprite->data[1] = 0x3C;
|
||||
sprite->data[2] = 0x9;
|
||||
sprite->data[3] = 0x1E;
|
||||
sprite->data[4] = 0xFE00;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
|
||||
sprite->callback = sub_80A634C;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void sub_8108F08(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6864(sprite, gBattleAnimArgs[0]);
|
||||
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = gBattleAnimArgs[3];
|
||||
|
||||
sprite->callback = sub_80A656C;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
static void sub_8108F4C(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[2] = -gBattleAnimArgs[4];
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
}
|
||||
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[4] = gBattleAnimArgs[3];
|
||||
sprite->data[3] = gBattleAnimArgs[5];
|
||||
|
||||
sprite->callback = sub_8109028;
|
||||
}
|
||||
|
||||
static void sub_8108FBC(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[2] = -gBattleAnimArgs[4];
|
||||
}
|
||||
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[4] = gBattleAnimArgs[3];
|
||||
sprite->data[3] = gBattleAnimArgs[5];
|
||||
|
||||
sprite->callback = sub_8109028;
|
||||
}
|
||||
|
||||
static void sub_8109028(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] < sprite->data[4])
|
||||
{
|
||||
sprite->pos2.x += sprite->data[2];
|
||||
sprite->pos2.y += sprite->data[3];
|
||||
}
|
||||
|
||||
if (sprite->data[0] == sprite->data[1])
|
||||
move_anim_8074EE0(sprite);
|
||||
}
|
||||
|
||||
static void sub_8109064(struct Sprite *sprite)
|
||||
{
|
||||
sub_80A6838(sprite);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
sprite->pos1.x -= gBattleAnimArgs[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->subpriority = 8;
|
||||
}
|
||||
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
sprite->data[3] = gBattleAnimArgs[5];
|
||||
sprite->data[4] = gBattleAnimArgs[6];
|
||||
sprite->data[5] = 0;
|
||||
|
||||
sprite->callback = sub_81090D8;
|
||||
}
|
||||
|
||||
static void sub_81090D8(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[3])
|
||||
{
|
||||
if(sprite->data[5] > 10000)
|
||||
sprite->subpriority = 1;
|
||||
|
||||
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8));
|
||||
sprite->pos2.y = Cos(sprite->data[0], sprite->data[1] + (sprite->data[5] >> 8));
|
||||
|
||||
sprite->data[0] += sprite->data[2];
|
||||
sprite->data[5] += sprite->data[4];
|
||||
|
||||
if (sprite->data[0] > 255)
|
||||
sprite->data[0] -= 256;
|
||||
else if (sprite->data[0] < 0)
|
||||
sprite->data[0] += 256;
|
||||
|
||||
sprite->data[3]--;
|
||||
}
|
||||
else
|
||||
{
|
||||
move_anim_8074EE0(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
//sunlight
|
||||
static void sub_810916C(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = 0;
|
||||
sprite->pos1.y = 0;
|
||||
sprite->data[0] = 60;
|
||||
sprite->data[2] = 140;
|
||||
sprite->data[4] = 80;
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
}
|
||||
|
||||
//fire 2
|
||||
|
||||
// Animates the secondary effect of MOVE_EMBER, where the flames grow and slide
|
||||
// horizontally a bit.
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: target x pixel offset
|
||||
// arg 3: target y pixel offset
|
||||
// arg 4: duration
|
||||
// arg 5: ? (todo: something related to which mon the pixel offsets are based on)
|
||||
// arg 6: ? (todo: something related to which mon the pixel offsets are based on)
|
||||
static void AnimEmberFlare(struct Sprite *sprite)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)
|
||||
&& (gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)
|
||||
|| gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
sprite->callback = sub_80A7938;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void sub_8109200(struct Sprite *sprite)
|
||||
{
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
sprite->callback = sub_80A7938;
|
||||
}
|
||||
|
||||
// Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST
|
||||
// animation. The fire sprite first moves in a circle around the mon,
|
||||
// and then it is translated towards the target mon, while still rotating.
|
||||
// Lastly, it moves in a circle around the target mon.
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: initial wave offset
|
||||
//void AnimFireRing(struct Sprite *sprite)
|
||||
void AnimFireRing(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
|
||||
sprite->data[7] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = 0;
|
||||
|
||||
sprite->callback = AnimFireRingStep1;
|
||||
}
|
||||
|
||||
static void AnimFireRingStep1(struct Sprite *sprite)
|
||||
{
|
||||
UpdateFireRingCircleOffset(sprite);
|
||||
|
||||
if (++sprite->data[0] == 0x12)
|
||||
{
|
||||
sprite->data[0] = 0x19;
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
|
||||
InitAnimLinearTranslation(sprite);
|
||||
|
||||
sprite->callback = AnimFireRingStep2;
|
||||
}
|
||||
}
|
||||
|
||||
static void AnimFireRingStep2(struct Sprite *sprite)
|
||||
{
|
||||
if (TranslateAnimLinear(sprite))
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
|
||||
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
sprite->pos2.y = 0;
|
||||
sprite->pos2.x = 0;
|
||||
|
||||
sprite->callback = AnimFireRingStep3;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos2.x += Sin(sprite->data[7], 28);
|
||||
sprite->pos2.y += Cos(sprite->data[7], 28);
|
||||
|
||||
sprite->data[7] = (sprite->data[7] + 20) & 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
static void AnimFireRingStep3(struct Sprite *sprite)
|
||||
{
|
||||
UpdateFireRingCircleOffset(sprite);
|
||||
|
||||
if (++sprite->data[0] == 0x1F)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
static void UpdateFireRingCircleOffset(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.x = Sin(sprite->data[7], 28);
|
||||
sprite->pos2.y = Cos(sprite->data[7], 28);
|
||||
|
||||
sprite->data[7] = (sprite->data[7] + 20) & 0xFF;
|
||||
}
|
||||
|
||||
// arg 0: initial x pixel offset
|
||||
// arg 1: initial y pixel offset
|
||||
// arg 2: duration
|
||||
// arg 3: x delta
|
||||
// arg 4: y delta
|
||||
// AnimFireCross(struct Sprite *sprite)
|
||||
static void AnimFireCross(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x += gBattleAnimArgs[0];
|
||||
sprite->pos1.y += gBattleAnimArgs[1];
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = gBattleAnimArgs[4];
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
|
||||
|
||||
sprite->callback = sub_80A653C; //TranslateSpriteOverDuration
|
||||
}
|
||||
|
||||
static void sub_81093A4(struct Sprite *sprite)
|
||||
{
|
||||
InitAnimSpritePos(sprite, 1);
|
||||
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
|
||||
sprite->invisible = TRUE;
|
||||
sprite->callback = WaitAnimForDuration;
|
||||
|
||||
StoreSpriteCallbackInData6(sprite, sub_81093E4);
|
||||
}
|
||||
|
||||
static void sub_81093E4(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = FALSE;
|
||||
|
||||
sprite->data[0] = sprite->data[1];
|
||||
sprite->data[1] = 0;
|
||||
|
||||
sprite->callback = sub_810940C;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void sub_810940C(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8);
|
||||
sprite->pos2.y = Cos(sprite->data[1], sprite->data[2] >> 8);
|
||||
|
||||
sprite->data[1] = (sprite->data[1] + 10) & 0xFF;
|
||||
sprite->data[2] += 0xD0;
|
||||
|
||||
if (--sprite->data[0] == -1)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION?
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[15] = GetAnimBattlerSpriteId(0);
|
||||
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = 0;
|
||||
task->data[4] = gSprites[task->data[15]].pos1.y;
|
||||
task->data[5] = GetBattlerSide(gBattleAnimAttacker);
|
||||
task->data[6] = 0;
|
||||
|
||||
sub_80A7270(task->data[15], 0);
|
||||
|
||||
task->func = sub_81094D0;
|
||||
}
|
||||
|
||||
static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
sub_80A805C(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20);
|
||||
|
||||
task->data[0]++;
|
||||
case 1:
|
||||
if (++task->data[1] > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
|
||||
if (++task->data[2] & 0x1)
|
||||
gSprites[task->data[15]].pos2.x = 3;
|
||||
else
|
||||
gSprites[task->data[15]].pos2.x = -3;
|
||||
}
|
||||
|
||||
if (task->data[5])
|
||||
{
|
||||
if (++task->data[3] > 4)
|
||||
{
|
||||
task->data[3] = 0;
|
||||
gSprites[task->data[15]].pos1.y++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!sub_80A80C8(task))
|
||||
{
|
||||
sub_80A7E6C(task->data[15]);
|
||||
gSprites[task->data[15]].pos2.x = 0;
|
||||
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (++task->data[1] > 4)
|
||||
{
|
||||
if (task->data[5])
|
||||
sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6);
|
||||
else
|
||||
sub_80A805C(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6);
|
||||
|
||||
task->data[1] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!sub_80A80C8(task))
|
||||
{
|
||||
sub_81097B4(task->data[15], taskId, 6);
|
||||
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (++task->data[1] > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
|
||||
if (++task->data[2] & 1)
|
||||
gSprites[task->data[15]].pos2.y += 3;
|
||||
else
|
||||
gSprites[task->data[15]].pos2.y -= 3;
|
||||
}
|
||||
|
||||
if (++task->data[3] > 0x18)
|
||||
{
|
||||
if (task->data[5])
|
||||
sub_80A805C(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8);
|
||||
else
|
||||
sub_80A805C(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8);
|
||||
|
||||
if (task->data[2] & 1)
|
||||
gSprites[task->data[15]].pos2.y -= 3;
|
||||
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (task->data[5])
|
||||
gSprites[task->data[15]].pos1.y--;
|
||||
|
||||
if (!sub_80A80C8(task))
|
||||
{
|
||||
gSprites[task->data[15]].pos1.y = task->data[4];
|
||||
sub_80A7344(task->data[15]);
|
||||
|
||||
task->data[2] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (!task->data[6])
|
||||
DestroyAnimVisualTask(taskId);
|
||||
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81097B4(u8 spriteId, u8 taskId, u8 a3)
|
||||
{
|
||||
u16 i, j;
|
||||
s8 sign;
|
||||
|
||||
u16 y = sub_8109930(spriteId);
|
||||
u16 x = gSprites[spriteId].pos1.x;
|
||||
|
||||
if(!GetBattlerSide(gBattleAnimAttacker))
|
||||
{
|
||||
x -= 0xC;
|
||||
sign = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
x += 0x10;
|
||||
sign = -1;
|
||||
}
|
||||
|
||||
for (i = 0, j = 0; i <= 6; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gUnknown_085955B4, x, y, 2);
|
||||
|
||||
if (spriteId != 0x40)
|
||||
{
|
||||
gSprites[spriteId].oam.tileNum += j * 4 + 0x40;
|
||||
|
||||
if (++j >= 5)
|
||||
j = 0;
|
||||
//gHeatedRockCoords
|
||||
sub_8109984(&gSprites[spriteId], gUnknown_085955CC[i][0] * sign, gUnknown_085955CC[i][1]);
|
||||
gSprites[spriteId].data[6] = taskId;
|
||||
gSprites[spriteId].data[7] = a3;
|
||||
|
||||
gTasks[taskId].data[a3]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81098EC(struct Sprite *sprite)
|
||||
{
|
||||
sub_81099A0(sprite);
|
||||
|
||||
if (sprite->invisible)
|
||||
{
|
||||
gTasks[sprite->data[6]].data[sprite->data[7]]--;
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static u16 sub_8109930(u8 spriteId)
|
||||
{
|
||||
u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY;
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == 0)
|
||||
{
|
||||
var1 = ((var1 << 16) + 0x4A0000) >> 16;
|
||||
}
|
||||
else
|
||||
{
|
||||
var1 = ((var1 << 16) + 0x2C0000) >> 16;
|
||||
}
|
||||
|
||||
return var1;
|
||||
}
|
||||
|
||||
static void sub_8109984(struct Sprite *sprite, s16 x, s16 y)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = (u16)sprite->pos1.x * 8;
|
||||
sprite->data[3] = (u16)sprite->pos1.y * 8;
|
||||
sprite->data[4] = x * 8;
|
||||
sprite->data[5] = y * 8;
|
||||
}
|
||||
|
||||
static void sub_81099A0(struct Sprite *sprite)
|
||||
{
|
||||
int var1;
|
||||
if (++sprite->data[0] > 2)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
++sprite->data[1];
|
||||
var1 = (u16)sprite->data[1] * (u16)sprite->data[1];
|
||||
sprite->data[3] += var1;
|
||||
}
|
||||
|
||||
sprite->data[2] += sprite->data[4];
|
||||
sprite->pos1.x = sprite->data[2] >> 3;
|
||||
sprite->data[3] += sprite->data[5];
|
||||
sprite->pos1.y = sprite->data[3] >> 3;
|
||||
|
||||
if (sprite->pos1.x < -8 || sprite->pos1.x > 0xf8 || sprite->pos1.y < -8 || sprite->pos1.y > 120)
|
||||
sprite->invisible = TRUE;
|
||||
}
|
||||
|
||||
static void sub_8109A10(struct Sprite *sprite)
|
||||
{
|
||||
sprite->pos1.x = gBattleAnimArgs[0];
|
||||
sprite->pos1.y = gBattleAnimArgs[1];
|
||||
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[6] = gBattleAnimArgs[2];
|
||||
sprite->data[7] = gBattleAnimArgs[3];
|
||||
|
||||
sprite->oam.tileNum += gBattleAnimArgs[4] * 16;
|
||||
sprite->callback = sub_8109A64;
|
||||
}
|
||||
|
||||
static void sub_8109A64(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
if (sprite->data[6] != 0)
|
||||
{
|
||||
sprite->data[6]--;
|
||||
return;
|
||||
}
|
||||
|
||||
sprite->data[0]++;
|
||||
// fall through
|
||||
case 1:
|
||||
sprite->pos1.y += 8;
|
||||
if (sprite->pos1.y >= sprite->data[7])
|
||||
{
|
||||
sprite->pos1.y = sprite->data[7];
|
||||
sprite->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (++sprite->data[1] > 1)
|
||||
{
|
||||
sprite->data[1] = 0;
|
||||
if ((++sprite->data[2] & 1) != 0)
|
||||
{
|
||||
sprite->pos2.y = -3;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos2.y = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if (++sprite->data[3] > 16)
|
||||
{
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//wisp orb
|
||||
static void sub_8109AFC(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
InitAnimSpritePos(sprite, 0);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
|
||||
sprite->data[7] = gBattleAnimArgs[2];
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != 0)
|
||||
{
|
||||
sprite->data[4] = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->data[4] = -4;
|
||||
}
|
||||
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
sprite->data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
sprite->data[1] += 192;
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != 0)
|
||||
{
|
||||
sprite->pos2.y = -(sprite->data[1] >> 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos2.y = sprite->data[1] >> 8;
|
||||
}
|
||||
|
||||
sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]);
|
||||
sprite->data[2] = (sprite->data[2] + 4) & 0xFF;
|
||||
|
||||
if (++sprite->data[3] == 1)
|
||||
{
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sprite->pos2.x = Sin(sprite->data[2], sprite->data[4]);
|
||||
sprite->data[2] = (sprite->data[2] + 4) & 0xFF;
|
||||
|
||||
if (++sprite->data[3] == 31)
|
||||
{
|
||||
sprite->pos1.x += sprite->pos2.x;
|
||||
sprite->pos1.y += sprite->pos2.y;
|
||||
sprite->pos2.y = 0;
|
||||
sprite->pos2.x = 0;
|
||||
|
||||
sprite->data[0] = 256;
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
|
||||
sprite->data[3] = sprite->pos1.y;
|
||||
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
|
||||
|
||||
sub_80A6FD4(sprite);
|
||||
sprite->callback = sub_8109C4C;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8109C4C(struct Sprite *sprite)
|
||||
{
|
||||
s16 initialData5;
|
||||
s16 newData5;
|
||||
|
||||
if (!TranslateAnimLinear(sprite))
|
||||
{
|
||||
sprite->pos2.x += Sin(sprite->data[5], 16);
|
||||
initialData5 = sprite->data[5];
|
||||
sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
|
||||
newData5 = sprite->data[5];
|
||||
|
||||
if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0)
|
||||
{
|
||||
PlaySE12WithPanning(SE_W172, gUnknown_02038440);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
//wisp fire
|
||||
void sub_8109CB0(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
{
|
||||
sprite->data[1] = gBattleAnimArgs[0];
|
||||
sprite->data[0] += 1;
|
||||
}
|
||||
|
||||
sprite->data[3] += 0xC0 * 2;
|
||||
sprite->data[4] += 0xA0;
|
||||
|
||||
sprite->pos2.x = Sin(sprite->data[1], sprite->data[3] >> 8);
|
||||
sprite->pos2.y = Cos(sprite->data[1], sprite->data[4] >> 8);
|
||||
|
||||
sprite->data[1] = (sprite->data[1] + 7) & 0xFF;
|
||||
|
||||
if (!IsContest())
|
||||
{
|
||||
if (sprite->data[1] < 64 || sprite->data[1] > 195)
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget);
|
||||
else
|
||||
sprite->oam.priority = sub_80A8328(gBattleAnimTarget) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sprite->data[1] < 64 || sprite->data[1] > 195)
|
||||
sprite->subpriority = 0x1D;
|
||||
else
|
||||
sprite->subpriority = 0x1F;
|
||||
}
|
||||
|
||||
if (++sprite->data[2] > 0x14)
|
||||
sprite->invisible ^= 1;
|
||||
|
||||
if (sprite->data[2] == 0x1E)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
void sub_8109DBC(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1;
|
||||
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1;
|
||||
task->data[14] = GetAnimBattlerSpriteId(1);
|
||||
task->data[15] = GetAnimBattlerSpriteId(3);
|
||||
|
||||
task->func = sub_8109E2C;
|
||||
}
|
||||
|
||||
static void sub_8109E2C(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
case 0:
|
||||
task->data[10] += task->data[12] * 2;
|
||||
if (++task->data[1] >= 2)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->data[2]++;
|
||||
if (task->data[2] & 1)
|
||||
task->data[11] = 2;
|
||||
else
|
||||
task->data[11] = -2;
|
||||
}
|
||||
|
||||
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
|
||||
{
|
||||
gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
|
||||
}
|
||||
|
||||
if (++task->data[9] == 16)
|
||||
{
|
||||
task->data[9] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (++task->data[1] >= 5)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->data[2]++;
|
||||
|
||||
if (task->data[2] & 1)
|
||||
task->data[11] = 2;
|
||||
else
|
||||
task->data[11] = -2;
|
||||
}
|
||||
|
||||
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
|
||||
{
|
||||
gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
|
||||
}
|
||||
|
||||
if (++task->data[9] == 96)
|
||||
{
|
||||
task->data[9] = 0;
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
task->data[10] -= task->data[12] * 2;
|
||||
|
||||
if (++task->data[1] >= 2)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->data[2]++;
|
||||
|
||||
if (task->data[2] & 1)
|
||||
task->data[11] = 2;
|
||||
else
|
||||
task->data[11] = -2;
|
||||
}
|
||||
|
||||
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
|
||||
{
|
||||
gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
|
||||
}
|
||||
|
||||
if (++task->data[9] == 16)
|
||||
{
|
||||
task->data[0]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
|
||||
{
|
||||
gSprites[task->data[task->data[3] + 14]].pos2.x = 0;
|
||||
}
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Used to add a color mask to the battle interface / HUD in Heat Wave.
|
||||
// arg 0: opacity
|
||||
// arg 1: color code
|
||||
void AnimTask_BlendBackground(u8 taskId)
|
||||
{
|
||||
struct UnknownAnimStruct2 unk;
|
||||
sub_80A6B30(&unk);
|
||||
BlendPalette(unk.unk8 << 4, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
void sub_810A094(u8 taskId)
|
||||
{
|
||||
s8 unk;
|
||||
u8 spriteId;
|
||||
|
||||
if (gTasks[taskId].data[0] == 0)
|
||||
{
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[3] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].data[4] = gBattleAnimArgs[3];
|
||||
}
|
||||
gTasks[taskId].data[0]++;
|
||||
|
||||
spriteId = gBattlerSpriteIds[gBattleAnimTarget];
|
||||
|
||||
if (!gTasks[taskId].data[4])
|
||||
unk = gUnknown_08595684[gTasks[taskId].data[0] % 10];
|
||||
else
|
||||
unk = gUnknown_08595694[gTasks[taskId].data[0] % 10];
|
||||
|
||||
if (gTasks[taskId].data[3] == 1)
|
||||
gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk;
|
||||
else
|
||||
gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * unk;
|
||||
|
||||
if (gTasks[taskId].data[0] == gTasks[taskId].data[1])
|
||||
{
|
||||
gSprites[spriteId].pos2.x = 0;
|
||||
gSprites[spriteId].pos2.y = 0;
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,7 @@
|
||||
#include "field_player_avatar.h"
|
||||
#include "fieldmap.h"
|
||||
#include "fldeff_cut.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "overworld.h"
|
||||
#include "party_menu.h"
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#include "event_data.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "field_camera.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "random.h"
|
||||
#include "roulette_util.h"
|
||||
#include "script.h"
|
||||
@ -32,7 +32,17 @@ static void sub_81BEA20(void);
|
||||
static void sub_81BEAD8(struct Sprite* sprite);
|
||||
|
||||
// rodata
|
||||
static const u8 gUnknown_08617E18[] = {0x3b, 0x43, 0x61, 0x00, 0x0f, 0x05, 0xff, 0x9b};
|
||||
const struct InnerStruct203CF18_3 gUnknown_08617E18 = {
|
||||
.unk0 = 0x433b,
|
||||
.unk2 = 0x61,
|
||||
.unk4 = 0x0F,
|
||||
.unk5 = 0x05,
|
||||
.unk6 = 0xFF,
|
||||
.unk7_0 = 0xB,
|
||||
.unk7_4 = 0x1,
|
||||
.unk7_6 = 0,
|
||||
.unk7_7 = 1,
|
||||
};
|
||||
|
||||
static const union AnimCmd gSpriteAnim_8617E20[] =
|
||||
{
|
||||
@ -131,7 +141,7 @@ void sub_81BE6B8(void)
|
||||
|
||||
gUnknown_0203CF18 = (struct Struct203CF18 *)AllocZeroed(sizeof(struct Struct203CF18));
|
||||
sub_8151B3C(&(gUnknown_0203CF18->unk4));
|
||||
sub_8151B68(&(gUnknown_0203CF18->unk4), gUnknown_08617E18);
|
||||
sub_8151B68(&(gUnknown_0203CF18->unk4), &gUnknown_08617E18);
|
||||
sub_8151CA8(&(gUnknown_0203CF18->unk4), 1, 1);
|
||||
gUnknown_0203CF18->taskId = CreateTask(sub_81BE698, 0xFF);
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
#include "fieldmap.h"
|
||||
#include "global.fieldmap.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "random.h"
|
||||
#include "script.h"
|
||||
@ -458,104 +458,104 @@ static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e)
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x8\n\
|
||||
str r0, [sp]\n\
|
||||
mov r10, r1\n\
|
||||
adds r6, r2, 0\n\
|
||||
mov r8, r3\n\
|
||||
ldr r0, [sp, 0x28]\n\
|
||||
mov r9, r0\n\
|
||||
lsls r1, 16\n\
|
||||
lsrs r1, 16\n\
|
||||
mov r10, r1\n\
|
||||
lsls r6, 24\n\
|
||||
lsrs r6, 24\n\
|
||||
mov r0, r8\n\
|
||||
lsls r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
mov r1, r9\n\
|
||||
lsls r1, 24\n\
|
||||
lsrs r1, 24\n\
|
||||
mov r9, r1\n\
|
||||
mov r0, r10\n\
|
||||
adds r1, r7, 0\n\
|
||||
bl __divsi3\n\
|
||||
adds r5, r0, 0\n\
|
||||
lsls r5, 24\n\
|
||||
lsrs r4, r5, 24\n\
|
||||
ldr r3, =gUnknown_030012A8\n\
|
||||
strh r4, [r3]\n\
|
||||
mov r0, r10\n\
|
||||
adds r1, r7, 0\n\
|
||||
str r3, [sp, 0x4]\n\
|
||||
bl __modsi3\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
strh r2, [r3, 0x2]\n\
|
||||
movs r1, 0x7\n\
|
||||
ands r4, r1\n\
|
||||
ands r2, r1\n\
|
||||
strh r4, [r3, 0x4]\n\
|
||||
strh r2, [r3, 0x6]\n\
|
||||
lsrs r0, 27\n\
|
||||
lsrs r5, 27\n\
|
||||
strh r0, [r3, 0x8]\n\
|
||||
strh r5, [r3, 0xA]\n\
|
||||
mov r1, r8\n\
|
||||
lsrs r1, 27\n\
|
||||
lsls r1, 6\n\
|
||||
mov r8, r1\n\
|
||||
mov r1, r8\n\
|
||||
muls r1, r5\n\
|
||||
lsls r0, 6\n\
|
||||
adds r1, r0\n\
|
||||
lsls r1, 16\n\
|
||||
lsrs r1, 16\n\
|
||||
strh r1, [r3, 0xC]\n\
|
||||
lsls r4, 3\n\
|
||||
adds r4, r2\n\
|
||||
adds r1, r4\n\
|
||||
lsls r4, r1, 16\n\
|
||||
lsrs r4, 17\n\
|
||||
strh r1, [r3, 0xE]\n\
|
||||
movs r1, 0x1\n\
|
||||
mov r0, r10\n\
|
||||
ands r1, r0\n\
|
||||
movs r2, 0x1\n\
|
||||
eors r1, r2\n\
|
||||
lsls r0, r1, 2\n\
|
||||
lsls r6, r0\n\
|
||||
eors r1, r2\n\
|
||||
lsls r1, 2\n\
|
||||
movs r0, 0xF\n\
|
||||
lsls r0, r1\n\
|
||||
orrs r6, r0\n\
|
||||
lsls r6, 24\n\
|
||||
lsrs r6, 24\n\
|
||||
mov r1, r9\n\
|
||||
lsls r1, 5\n\
|
||||
mov r9, r1\n\
|
||||
add r9, r4\n\
|
||||
ldr r1, [sp]\n\
|
||||
add r1, r9\n\
|
||||
ldrb r0, [r1]\n\
|
||||
ands r6, r0\n\
|
||||
strb r6, [r1]\n\
|
||||
add sp, 0x8\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x8\n\
|
||||
str r0, [sp]\n\
|
||||
mov r10, r1\n\
|
||||
adds r6, r2, 0\n\
|
||||
mov r8, r3\n\
|
||||
ldr r0, [sp, 0x28]\n\
|
||||
mov r9, r0\n\
|
||||
lsls r1, 16\n\
|
||||
lsrs r1, 16\n\
|
||||
mov r10, r1\n\
|
||||
lsls r6, 24\n\
|
||||
lsrs r6, 24\n\
|
||||
mov r0, r8\n\
|
||||
lsls r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
lsrs r7, r0, 24\n\
|
||||
mov r1, r9\n\
|
||||
lsls r1, 24\n\
|
||||
lsrs r1, 24\n\
|
||||
mov r9, r1\n\
|
||||
mov r0, r10\n\
|
||||
adds r1, r7, 0\n\
|
||||
bl __divsi3\n\
|
||||
adds r5, r0, 0\n\
|
||||
lsls r5, 24\n\
|
||||
lsrs r4, r5, 24\n\
|
||||
ldr r3, =gUnknown_030012A8\n\
|
||||
strh r4, [r3]\n\
|
||||
mov r0, r10\n\
|
||||
adds r1, r7, 0\n\
|
||||
str r3, [sp, 0x4]\n\
|
||||
bl __modsi3\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
ldr r3, [sp, 0x4]\n\
|
||||
strh r2, [r3, 0x2]\n\
|
||||
movs r1, 0x7\n\
|
||||
ands r4, r1\n\
|
||||
ands r2, r1\n\
|
||||
strh r4, [r3, 0x4]\n\
|
||||
strh r2, [r3, 0x6]\n\
|
||||
lsrs r0, 27\n\
|
||||
lsrs r5, 27\n\
|
||||
strh r0, [r3, 0x8]\n\
|
||||
strh r5, [r3, 0xA]\n\
|
||||
mov r1, r8\n\
|
||||
lsrs r1, 27\n\
|
||||
lsls r1, 6\n\
|
||||
mov r8, r1\n\
|
||||
mov r1, r8\n\
|
||||
muls r1, r5\n\
|
||||
lsls r0, 6\n\
|
||||
adds r1, r0\n\
|
||||
lsls r1, 16\n\
|
||||
lsrs r1, 16\n\
|
||||
strh r1, [r3, 0xC]\n\
|
||||
lsls r4, 3\n\
|
||||
adds r4, r2\n\
|
||||
adds r1, r4\n\
|
||||
lsls r4, r1, 16\n\
|
||||
lsrs r4, 17\n\
|
||||
strh r1, [r3, 0xE]\n\
|
||||
movs r1, 0x1\n\
|
||||
mov r0, r10\n\
|
||||
ands r1, r0\n\
|
||||
movs r2, 0x1\n\
|
||||
eors r1, r2\n\
|
||||
lsls r0, r1, 2\n\
|
||||
lsls r6, r0\n\
|
||||
eors r1, r2\n\
|
||||
lsls r1, 2\n\
|
||||
movs r0, 0xF\n\
|
||||
lsls r0, r1\n\
|
||||
orrs r6, r0\n\
|
||||
lsls r6, 24\n\
|
||||
lsrs r6, 24\n\
|
||||
mov r1, r9\n\
|
||||
lsls r1, 5\n\
|
||||
mov r9, r1\n\
|
||||
add r9, r4\n\
|
||||
ldr r1, [sp]\n\
|
||||
add r1, r9\n\
|
||||
ldrb r0, [r1]\n\
|
||||
ands r6, r0\n\
|
||||
strb r6, [r1]\n\
|
||||
add sp, 0x8\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool\n\
|
||||
");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
#include "data2.h"
|
||||
#include "record_mixing.h"
|
||||
#include "strings.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "save.h"
|
||||
#include "load_save.h"
|
||||
#include "battle_dome.h"
|
||||
|
||||
192
src/gpu_regs.c
192
src/gpu_regs.c
@ -20,166 +20,166 @@ static void UpdateRegDispstatIntrBits(u16 regIE);
|
||||
|
||||
void InitGpuRegManager(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
|
||||
{
|
||||
sGpuRegBuffer[i] = 0;
|
||||
sGpuRegWaitingList[i] = EMPTY_SLOT;
|
||||
}
|
||||
sGpuRegBuffer[i] = 0;
|
||||
sGpuRegWaitingList[i] = EMPTY_SLOT;
|
||||
}
|
||||
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
sShouldSyncRegIE = FALSE;
|
||||
sRegIE = 0;
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
sShouldSyncRegIE = FALSE;
|
||||
sRegIE = 0;
|
||||
}
|
||||
|
||||
static void CopyBufferedValueToGpuReg(u8 regOffset)
|
||||
{
|
||||
if (regOffset == REG_OFFSET_DISPSTAT)
|
||||
if (regOffset == REG_OFFSET_DISPSTAT)
|
||||
{
|
||||
REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
|
||||
REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT);
|
||||
}
|
||||
else
|
||||
REG_DISPSTAT &= ~(DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
|
||||
REG_DISPSTAT |= GPU_REG_BUF(REG_OFFSET_DISPSTAT);
|
||||
}
|
||||
else
|
||||
{
|
||||
GPU_REG(regOffset) = GPU_REG_BUF(regOffset);
|
||||
}
|
||||
GPU_REG(regOffset) = GPU_REG_BUF(regOffset);
|
||||
}
|
||||
}
|
||||
|
||||
void CopyBufferedValuesToGpuRegs(void)
|
||||
{
|
||||
if (!sGpuRegBufferLocked)
|
||||
if (!sGpuRegBufferLocked)
|
||||
{
|
||||
s32 i;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE; i++)
|
||||
{
|
||||
u8 regOffset = sGpuRegWaitingList[i];
|
||||
if (regOffset == EMPTY_SLOT)
|
||||
return;
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
sGpuRegWaitingList[i] = EMPTY_SLOT;
|
||||
}
|
||||
}
|
||||
u8 regOffset = sGpuRegWaitingList[i];
|
||||
if (regOffset == EMPTY_SLOT)
|
||||
return;
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
sGpuRegWaitingList[i] = EMPTY_SLOT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetGpuReg(u8 regOffset, u16 value)
|
||||
{
|
||||
if (regOffset < GPU_REG_BUF_SIZE)
|
||||
{
|
||||
u16 vcount;
|
||||
if (regOffset < GPU_REG_BUF_SIZE)
|
||||
{
|
||||
u16 vcount;
|
||||
|
||||
GPU_REG_BUF(regOffset) = value;
|
||||
vcount = REG_VCOUNT & 0xFF;
|
||||
GPU_REG_BUF(regOffset) = value;
|
||||
vcount = REG_VCOUNT & 0xFF;
|
||||
|
||||
if ((vcount >= 161 && vcount <= 225)
|
||||
|| (REG_DISPCNT & DISPCNT_FORCED_BLANK)) {
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
} else {
|
||||
s32 i;
|
||||
if ((vcount >= 161 && vcount <= 225)
|
||||
|| (REG_DISPCNT & DISPCNT_FORCED_BLANK)) {
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
} else {
|
||||
s32 i;
|
||||
|
||||
sGpuRegBufferLocked = TRUE;
|
||||
sGpuRegBufferLocked = TRUE;
|
||||
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
|
||||
if (sGpuRegWaitingList[i] == regOffset) {
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
|
||||
if (sGpuRegWaitingList[i] == regOffset) {
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sGpuRegWaitingList[i] = regOffset;
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
}
|
||||
}
|
||||
sGpuRegWaitingList[i] = regOffset;
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetGpuReg_ForcedBlank(u8 regOffset, u16 value)
|
||||
{
|
||||
if (regOffset < GPU_REG_BUF_SIZE)
|
||||
{
|
||||
GPU_REG_BUF(regOffset) = value;
|
||||
if (regOffset < GPU_REG_BUF_SIZE)
|
||||
{
|
||||
GPU_REG_BUF(regOffset) = value;
|
||||
|
||||
if (REG_DISPCNT & DISPCNT_FORCED_BLANK) {
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
} else {
|
||||
s32 i;
|
||||
if (REG_DISPCNT & DISPCNT_FORCED_BLANK) {
|
||||
CopyBufferedValueToGpuReg(regOffset);
|
||||
} else {
|
||||
s32 i;
|
||||
|
||||
sGpuRegBufferLocked = TRUE;
|
||||
sGpuRegBufferLocked = TRUE;
|
||||
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
|
||||
if (sGpuRegWaitingList[i] == regOffset) {
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < GPU_REG_BUF_SIZE && sGpuRegWaitingList[i] != EMPTY_SLOT; i++) {
|
||||
if (sGpuRegWaitingList[i] == regOffset) {
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sGpuRegWaitingList[i] = regOffset;
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
}
|
||||
}
|
||||
sGpuRegWaitingList[i] = regOffset;
|
||||
sGpuRegBufferLocked = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u16 GetGpuReg(u8 regOffset)
|
||||
{
|
||||
if (regOffset == REG_OFFSET_DISPSTAT)
|
||||
return REG_DISPSTAT;
|
||||
if (regOffset == REG_OFFSET_DISPSTAT)
|
||||
return REG_DISPSTAT;
|
||||
|
||||
if (regOffset == REG_OFFSET_VCOUNT)
|
||||
return REG_VCOUNT;
|
||||
if (regOffset == REG_OFFSET_VCOUNT)
|
||||
return REG_VCOUNT;
|
||||
|
||||
return GPU_REG_BUF(regOffset);
|
||||
return GPU_REG_BUF(regOffset);
|
||||
}
|
||||
|
||||
void SetGpuRegBits(u8 regOffset, u16 mask)
|
||||
{
|
||||
u16 regValue = GPU_REG_BUF(regOffset);
|
||||
SetGpuReg(regOffset, regValue | mask);
|
||||
u16 regValue = GPU_REG_BUF(regOffset);
|
||||
SetGpuReg(regOffset, regValue | mask);
|
||||
}
|
||||
|
||||
void ClearGpuRegBits(u8 regOffset, u16 mask)
|
||||
{
|
||||
u16 regValue = GPU_REG_BUF(regOffset);
|
||||
SetGpuReg(regOffset, regValue & ~mask);
|
||||
u16 regValue = GPU_REG_BUF(regOffset);
|
||||
SetGpuReg(regOffset, regValue & ~mask);
|
||||
}
|
||||
|
||||
static void SyncRegIE(void)
|
||||
{
|
||||
if (sShouldSyncRegIE) {
|
||||
u16 temp = REG_IME;
|
||||
REG_IME = 0;
|
||||
REG_IE = sRegIE;
|
||||
REG_IME = temp;
|
||||
sShouldSyncRegIE = FALSE;
|
||||
}
|
||||
if (sShouldSyncRegIE) {
|
||||
u16 temp = REG_IME;
|
||||
REG_IME = 0;
|
||||
REG_IE = sRegIE;
|
||||
REG_IME = temp;
|
||||
sShouldSyncRegIE = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void EnableInterrupts(u16 mask)
|
||||
{
|
||||
sRegIE |= mask;
|
||||
sShouldSyncRegIE = TRUE;
|
||||
SyncRegIE();
|
||||
UpdateRegDispstatIntrBits(sRegIE);
|
||||
sRegIE |= mask;
|
||||
sShouldSyncRegIE = TRUE;
|
||||
SyncRegIE();
|
||||
UpdateRegDispstatIntrBits(sRegIE);
|
||||
}
|
||||
|
||||
void DisableInterrupts(u16 mask)
|
||||
{
|
||||
sRegIE &= ~mask;
|
||||
sShouldSyncRegIE = TRUE;
|
||||
SyncRegIE();
|
||||
UpdateRegDispstatIntrBits(sRegIE);
|
||||
sRegIE &= ~mask;
|
||||
sShouldSyncRegIE = TRUE;
|
||||
SyncRegIE();
|
||||
UpdateRegDispstatIntrBits(sRegIE);
|
||||
}
|
||||
|
||||
static void UpdateRegDispstatIntrBits(u16 regIE)
|
||||
{
|
||||
u16 oldValue = GetGpuReg(REG_OFFSET_DISPSTAT) & (DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
|
||||
u16 newValue = 0;
|
||||
u16 oldValue = GetGpuReg(REG_OFFSET_DISPSTAT) & (DISPSTAT_HBLANK_INTR | DISPSTAT_VBLANK_INTR);
|
||||
u16 newValue = 0;
|
||||
|
||||
if (regIE & INTR_FLAG_VBLANK)
|
||||
newValue |= DISPSTAT_VBLANK_INTR;
|
||||
if (regIE & INTR_FLAG_VBLANK)
|
||||
newValue |= DISPSTAT_VBLANK_INTR;
|
||||
|
||||
if (regIE & INTR_FLAG_HBLANK)
|
||||
newValue |= DISPSTAT_HBLANK_INTR;
|
||||
if (regIE & INTR_FLAG_HBLANK)
|
||||
newValue |= DISPSTAT_HBLANK_INTR;
|
||||
|
||||
if (oldValue != newValue)
|
||||
SetGpuReg(REG_OFFSET_DISPSTAT, newValue);
|
||||
if (oldValue != newValue)
|
||||
SetGpuReg(REG_OFFSET_DISPSTAT, newValue);
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
#include "pokemon.h"
|
||||
#include "text.h"
|
||||
#include "text_window.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "main.h"
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#include "task.h"
|
||||
#include "title_screen.h"
|
||||
#include "libgcnmultiboot.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "link.h"
|
||||
#include "multiboot_pokemon_colosseum.h"
|
||||
@ -62,10 +62,10 @@ static const u32 gIntro3MiscTiles[] = INCBIN_U32("graphics/intro/intro3_misc.4bp
|
||||
static const u16 gIntro1FlygonPalette[] = INCBIN_U16("graphics/intro/intro1_flygon.gbapal");
|
||||
static const u32 gIntro1EonTiles_Unused[] = INCBIN_U32("graphics/intro/intro1_eon.4bpp.lz");
|
||||
static const u8 sUnknownBytes[] = {
|
||||
0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D,
|
||||
0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x02, 0x0D,
|
||||
0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x02, 0x0D, 0x0E, 0x0F,
|
||||
0x10, 0x11, 0x12, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x02, 0x0D, 0x0E, 0x0F, 0x10,
|
||||
0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00
|
||||
0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00
|
||||
};
|
||||
static const struct CompressedSpriteSheet gUnknown_085E4A74[] =
|
||||
{
|
||||
|
||||
270
src/item.c
270
src/item.c
@ -4,7 +4,7 @@
|
||||
#include "string_util.h"
|
||||
#include "text.h"
|
||||
#include "event_data.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "secret_base.h"
|
||||
#include "item_menu.h"
|
||||
#include "strings.h"
|
||||
@ -244,152 +244,152 @@ NAKED
|
||||
bool8 CheckBagHasSpace(u16 itemId, u16 count)
|
||||
{
|
||||
asm_unified("push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
lsls r1, 16\n\
|
||||
lsrs r5, r1, 16\n\
|
||||
bl ItemId_GetPocket\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
beq _080D6906\n\
|
||||
bl InBattlePyramid\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080D6838\n\
|
||||
ldr r0, =0x00004004\n\
|
||||
bl FlagGet\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080D684C\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x4\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r0, 16\n\
|
||||
mov r8, r0\n\
|
||||
lsls r1, 16\n\
|
||||
lsrs r5, r1, 16\n\
|
||||
bl ItemId_GetPocket\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
beq _080D6906\n\
|
||||
bl InBattlePyramid\n\
|
||||
lsls r0, 24\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080D6838\n\
|
||||
ldr r0, =0x00004004\n\
|
||||
bl FlagGet\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
cmp r0, 0x1\n\
|
||||
bne _080D684C\n\
|
||||
_080D6838:\n\
|
||||
mov r0, r8\n\
|
||||
adds r1, r5, 0\n\
|
||||
bl CheckPyramidBagHasSpace\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
b _080D6916\n\
|
||||
.pool\n\
|
||||
mov r0, r8\n\
|
||||
adds r1, r5, 0\n\
|
||||
bl CheckPyramidBagHasSpace\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
b _080D6916\n\
|
||||
.pool\n\
|
||||
_080D684C:\n\
|
||||
mov r0, r8\n\
|
||||
bl ItemId_GetPocket\n\
|
||||
subs r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
ldr r7, =0x000003e7\n\
|
||||
cmp r2, 0x3\n\
|
||||
beq _080D6860\n\
|
||||
movs r7, 0x63\n\
|
||||
mov r0, r8\n\
|
||||
bl ItemId_GetPocket\n\
|
||||
subs r0, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
ldr r7, =0x000003e7\n\
|
||||
cmp r2, 0x3\n\
|
||||
beq _080D6860\n\
|
||||
movs r7, 0x63\n\
|
||||
_080D6860:\n\
|
||||
movs r6, 0\n\
|
||||
ldr r1, =gBagPockets\n\
|
||||
lsls r4, r2, 3\n\
|
||||
adds r0, r4, r1\n\
|
||||
mov r9, r4\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcs _080D68BC\n\
|
||||
subs r0, r2, 0x2\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r10, r0\n\
|
||||
movs r6, 0\n\
|
||||
ldr r1, =gBagPockets\n\
|
||||
lsls r4, r2, 3\n\
|
||||
adds r0, r4, r1\n\
|
||||
mov r9, r4\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcs _080D68BC\n\
|
||||
subs r0, r2, 0x2\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r10, r0\n\
|
||||
_080D6878:\n\
|
||||
adds r0, r4, r1\n\
|
||||
ldr r1, [r0]\n\
|
||||
lsls r0, r6, 2\n\
|
||||
adds r1, r0, r1\n\
|
||||
ldrh r0, [r1]\n\
|
||||
cmp r0, r8\n\
|
||||
bne _080D68AC\n\
|
||||
adds r0, r1, 0x2\n\
|
||||
str r2, [sp]\n\
|
||||
bl GetBagItemQuantity\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r1, r0, 16\n\
|
||||
adds r0, r1, r5\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r0, r7\n\
|
||||
ble _080D6914\n\
|
||||
mov r0, r10\n\
|
||||
cmp r0, 0x1\n\
|
||||
bls _080D6906\n\
|
||||
subs r0, r7, r1\n\
|
||||
subs r0, r5, r0\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080D6914\n\
|
||||
adds r0, r4, r1\n\
|
||||
ldr r1, [r0]\n\
|
||||
lsls r0, r6, 2\n\
|
||||
adds r1, r0, r1\n\
|
||||
ldrh r0, [r1]\n\
|
||||
cmp r0, r8\n\
|
||||
bne _080D68AC\n\
|
||||
adds r0, r1, 0x2\n\
|
||||
str r2, [sp]\n\
|
||||
bl GetBagItemQuantity\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r1, r0, 16\n\
|
||||
adds r0, r1, r5\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r0, r7\n\
|
||||
ble _080D6914\n\
|
||||
mov r0, r10\n\
|
||||
cmp r0, 0x1\n\
|
||||
bls _080D6906\n\
|
||||
subs r0, r7, r1\n\
|
||||
subs r0, r5, r0\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080D6914\n\
|
||||
_080D68AC:\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
ldr r1, =gBagPockets\n\
|
||||
adds r0, r4, r1\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcc _080D6878\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
ldr r1, =gBagPockets\n\
|
||||
adds r0, r4, r1\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcc _080D6878\n\
|
||||
_080D68BC:\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080D6914\n\
|
||||
movs r6, 0\n\
|
||||
ldr r3, =gBagPockets\n\
|
||||
mov r1, r9\n\
|
||||
adds r0, r1, r3\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcs _080D6902\n\
|
||||
adds r4, r3, 0\n\
|
||||
subs r0, r2, 0x2\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080D6914\n\
|
||||
movs r6, 0\n\
|
||||
ldr r3, =gBagPockets\n\
|
||||
mov r1, r9\n\
|
||||
adds r0, r1, r3\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcs _080D6902\n\
|
||||
adds r4, r3, 0\n\
|
||||
subs r0, r2, 0x2\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r2, r0, 24\n\
|
||||
_080D68D6:\n\
|
||||
adds r0, r1, r4\n\
|
||||
ldr r1, [r0]\n\
|
||||
lsls r0, r6, 2\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r0, [r0]\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080D68F2\n\
|
||||
cmp r5, r7\n\
|
||||
bls _080D6914\n\
|
||||
cmp r2, 0x1\n\
|
||||
bls _080D6906\n\
|
||||
subs r0, r5, r7\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
adds r0, r1, r4\n\
|
||||
ldr r1, [r0]\n\
|
||||
lsls r0, r6, 2\n\
|
||||
adds r0, r1\n\
|
||||
ldrh r0, [r0]\n\
|
||||
cmp r0, 0\n\
|
||||
bne _080D68F2\n\
|
||||
cmp r5, r7\n\
|
||||
bls _080D6914\n\
|
||||
cmp r2, 0x1\n\
|
||||
bls _080D6906\n\
|
||||
subs r0, r5, r7\n\
|
||||
lsls r0, 16\n\
|
||||
lsrs r5, r0, 16\n\
|
||||
_080D68F2:\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
mov r1, r9\n\
|
||||
adds r0, r1, r3\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcc _080D68D6\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
mov r1, r9\n\
|
||||
adds r0, r1, r3\n\
|
||||
ldrb r0, [r0, 0x4]\n\
|
||||
cmp r6, r0\n\
|
||||
bcc _080D68D6\n\
|
||||
_080D6902:\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080D6914\n\
|
||||
cmp r5, 0\n\
|
||||
beq _080D6914\n\
|
||||
_080D6906:\n\
|
||||
movs r0, 0\n\
|
||||
b _080D6916\n\
|
||||
.pool\n\
|
||||
movs r0, 0\n\
|
||||
b _080D6916\n\
|
||||
.pool\n\
|
||||
_080D6914:\n\
|
||||
movs r0, 0x1\n\
|
||||
movs r0, 0x1\n\
|
||||
_080D6916:\n\
|
||||
add sp, 0x4\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r1}\n\
|
||||
bx r1");
|
||||
add sp, 0x4\n\
|
||||
pop {r3-r5}\n\
|
||||
mov r8, r3\n\
|
||||
mov r9, r4\n\
|
||||
mov r10, r5\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r1}\n\
|
||||
bx r1");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#include "decompress.h"
|
||||
#include "graphics.h"
|
||||
#include "item_icon.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "sprite.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
#include "link.h"
|
||||
#include "mail.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "map_name_popup.h"
|
||||
#include "menu.h"
|
||||
#include "money.h"
|
||||
|
||||
@ -338,8 +338,8 @@ static const struct Landmark *const Landmarks_MtChimney_2[] =
|
||||
|
||||
static const struct LandmarkList gLandmarkLists[] =
|
||||
{
|
||||
{MAPSEC_ROUTE_103, 2, Landmarks_Route103_2},
|
||||
{MAPSEC_ROUTE_104, 0, Landmarks_Route104_0},
|
||||
{MAPSEC_ROUTE_103, 2, Landmarks_Route103_2},
|
||||
{MAPSEC_ROUTE_104, 0, Landmarks_Route104_0},
|
||||
{MAPSEC_ROUTE_104, 1, Landmarks_Route104_1},
|
||||
{MAPSEC_ROUTE_105, 0, Landmarks_Route105_0},
|
||||
{MAPSEC_ROUTE_106, 1, Landmarks_Route106_1},
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
#include "gpu_regs.h"
|
||||
#include "learn_move.h"
|
||||
#include "list_menu.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "overworld.h"
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "m4a.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "reset_save_heap.h"
|
||||
#include "save.h"
|
||||
#include "bg.h"
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "battle.h"
|
||||
#include "berry_blender.h"
|
||||
#include "decompress.h"
|
||||
@ -7,7 +8,6 @@
|
||||
#include "librfu.h"
|
||||
#include "link.h"
|
||||
#include "link_rfu.h"
|
||||
#include "malloc.h"
|
||||
#include "overworld.h"
|
||||
#include "random.h"
|
||||
#include "palette.h"
|
||||
@ -276,7 +276,7 @@ const struct {
|
||||
{ gBlockSendBuffer, 40 }
|
||||
};
|
||||
const u16 gUnknown_082ED6E0[] = {
|
||||
0x0002, 0x7f7d, 0x0000, 0xffff
|
||||
0x0002, 0x7f7d, 0x0000, 0xFFFF
|
||||
};
|
||||
|
||||
const char sUnref_082ED6E8[][15] = {
|
||||
@ -1469,7 +1469,7 @@ static u8 sub_800D294(void)
|
||||
|
||||
for (i = 0; i < gUnknown_03007890->unk_08; i++)
|
||||
{
|
||||
for (ptr = gUnknown_03004140.unk_20; *ptr != 0xffff; ptr++)
|
||||
for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_04 == *ptr)
|
||||
{
|
||||
@ -3077,7 +3077,7 @@ bool32 sub_800F1E0(void)
|
||||
{
|
||||
if (gUnknown_03005000.unk_14[i][1])
|
||||
{
|
||||
if (gUnknown_03005000.unk_cee[i] != 0xff && (gUnknown_03005000.unk_14[i][0] >> 5) != ((gUnknown_03005000.unk_cee[i] + 1) & 7))
|
||||
if (gUnknown_03005000.unk_cee[i] != 0xFF && (gUnknown_03005000.unk_14[i][0] >> 5) != ((gUnknown_03005000.unk_cee[i] + 1) & 7))
|
||||
{
|
||||
if (++gUnknown_03005000.unk_cea[i] > 4)
|
||||
sub_8011170(0x8100);
|
||||
@ -3778,7 +3778,7 @@ bool32 sub_8010454(u32 a0)
|
||||
s32 i;
|
||||
for (i = 0; gUnknown_082ED6E0[i] != a0; i++)
|
||||
{
|
||||
if (gUnknown_082ED6E0[i] == 0xffff)
|
||||
if (gUnknown_082ED6E0[i] == 0xFFFF)
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@ -3906,7 +3906,7 @@ void sub_80106D4(void)
|
||||
u32 sub_8010714(u16 a0, const u8 *a1)
|
||||
{
|
||||
u8 r0 = sub_8011CE4(a1, a0);
|
||||
if (r0 == 0xff)
|
||||
if (r0 == 0xFF)
|
||||
return 2;
|
||||
if (gUnknown_03007880[r0]->unk_0 == 0)
|
||||
return 1;
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
#include "trig.h"
|
||||
#include "decompress.h"
|
||||
#include "palette.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "strings.h"
|
||||
#include "sound.h"
|
||||
#include "constants/songs.h"
|
||||
@ -953,52 +953,52 @@ void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
|
||||
case 0:
|
||||
case 1:
|
||||
data->field_4 = (void*)(value);
|
||||
break;
|
||||
break;
|
||||
case 2:
|
||||
data->field_C = value;
|
||||
break;
|
||||
break;
|
||||
case 3:
|
||||
data->field_E = value;
|
||||
break;
|
||||
break;
|
||||
case 4:
|
||||
data->field_10 = value;
|
||||
break;
|
||||
break;
|
||||
case 5:
|
||||
data->field_11 = value;
|
||||
break;
|
||||
break;
|
||||
case 6:
|
||||
data->field_12 = value;
|
||||
break;
|
||||
break;
|
||||
case 7:
|
||||
data->field_13 = value;
|
||||
break;
|
||||
break;
|
||||
case 8:
|
||||
data->field_14_0 = value;
|
||||
break;
|
||||
break;
|
||||
case 9:
|
||||
data->field_14_1 = value;
|
||||
break;
|
||||
break;
|
||||
case 10:
|
||||
data->field_15_0 = value;
|
||||
break;
|
||||
break;
|
||||
case 11:
|
||||
data->field_15_1 = value;
|
||||
break;
|
||||
break;
|
||||
case 12:
|
||||
data->field_16_0 = value;
|
||||
break;
|
||||
break;
|
||||
case 13:
|
||||
data->field_16_1 = value;
|
||||
break;
|
||||
break;
|
||||
case 14:
|
||||
data->field_16_2 = value;
|
||||
break;
|
||||
break;
|
||||
case 15:
|
||||
data->field_17_0 = value;
|
||||
break;
|
||||
break;
|
||||
case 16:
|
||||
data->field_17_1 = value;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
#include "main.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "item.h"
|
||||
#include "overworld.h"
|
||||
#include "decoration_inventory.h"
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
#include "bg.h"
|
||||
#include "pokemon_icon.h"
|
||||
#include "constants/species.h"
|
||||
#include "malloc.h"
|
||||
#include "alloc.h"
|
||||
#include "easy_chat.h"
|
||||
|
||||
extern const u16 gMailPalette_Orange[];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user