Merge pull request #2 from pret/master

update
This commit is contained in:
Frogg
2021-04-10 19:04:59 -04:00
committed by GitHub
135 changed files with 4561 additions and 4208 deletions
+1 -1
View File
@@ -1311,7 +1311,7 @@
various \battler, 15 various \battler, 15
.endm .endm
.macro arenajudmengtstring id:req .macro arenajudgmentstring id:req
various \id, VARIOUS_ARENA_JUDGMENT_STRING various \id, VARIOUS_ARENA_JUDGMENT_STRING
.endm .endm
+2 -2
View File
@@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00 TRANSPARENT = 00
WHITE = 01 WHITE = 01
DARK_GREY = 02 DARK_GRAY = 02
LIGHT_GREY = 03 LIGHT_GRAY = 03
RED = 04 RED = 04
LIGHT_RED = 05 LIGHT_RED = 05
GREEN = 06 GREEN = 06
+2 -2
View File
@@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00 TRANSPARENT = 00
WHITE = 01 WHITE = 01
DARK_GREY = 02 DARK_GRAY = 02
LIGHT_GREY = 03 LIGHT_GRAY = 03
RED = 04 RED = 04
LIGHT_RED = 05 LIGHT_RED = 05
GREEN = 06 GREEN = 06
+2 -2
View File
@@ -438,8 +438,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00 TRANSPARENT = 00
WHITE = 01 WHITE = 01
DARK_GREY = 02 DARK_GRAY = 02
LIGHT_GREY = 03 LIGHT_GRAY = 03
RED = 04 RED = 04
LIGHT_RED = 05 LIGHT_RED = 05
GREEN = 06 GREEN = 06
+586 -581
View File
File diff suppressed because it is too large Load Diff
+34 -39
View File
@@ -34,7 +34,7 @@ gBattlescriptsForUsingItem:: @ 82DBD3C
.4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP .4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP
.4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION .4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION
.4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT .4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT
.4byte BattleScript_OpponentUsesGuardSpecs @ AI_ITEM_GUARD_SPECS .4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPEC
.align 2 .align 2
gBattlescriptsForRunningByItem:: @ 82DBD54 gBattlescriptsForRunningByItem:: @ 82DBD54
@@ -69,16 +69,16 @@ BattleScript_PrintCaughtMonInfo::
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
printstring STRINGID_PKMNDATAADDEDTODEX printstring STRINGID_PKMNDATAADDEDTODEX
waitstate waitstate
setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication, 0
displaydexinfo displaydexinfo
BattleScript_TryNicknameCaughtMon:: BattleScript_TryNicknameCaughtMon::
printstring STRINGID_GIVENICKNAMECAPTURED printstring STRINGID_GIVENICKNAMECAPTURED
waitstate waitstate
setbyte gBattleCommunication, 0x0 setbyte gBattleCommunication, 0
trygivecaughtmonnick BattleScript_GiveCaughtMonEnd trygivecaughtmonnick BattleScript_GiveCaughtMonEnd
givecaughtmon givecaughtmon
printfromtable gCaughtMonStringIds printfromtable gCaughtMonStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
goto BattleScript_SuccessBallThrowEnd goto BattleScript_SuccessBallThrowEnd
BattleScript_GiveCaughtMonEnd:: BattleScript_GiveCaughtMonEnd::
givecaughtmon givecaughtmon
@@ -93,83 +93,78 @@ BattleScript_WallyBallThrow::
BattleScript_ShakeBallThrow:: BattleScript_ShakeBallThrow::
printfromtable gBallEscapeStringIds printfromtable gBallEscapeStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd
jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_ShakeBallThrowEnd jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd
printstring STRINGID_OUTOFSAFARIBALLS printstring STRINGID_OUTOFSAFARIBALLS
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS
BattleScript_ShakeBallThrowEnd:: BattleScript_ShakeBallThrowEnd::
finishaction finishaction
BattleScript_TrainerBallBlock:: BattleScript_TrainerBallBlock::
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
printstring STRINGID_TRAINERBLOCKEDBALL printstring STRINGID_TRAINERBLOCKEDBALL
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
printstring STRINGID_DONTBEATHIEF printstring STRINGID_DONTBEATHIEF
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
finishaction finishaction
BattleScript_PlayerUsesItem:: BattleScript_PlayerUsesItem::
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
end end
BattleScript_OpponentUsesHealItem:: BattleScript_OpponentUsesHealItem::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER datahpupdate BS_ATTACKER
printstring STRINGID_PKMNSITEMRESTOREDHEALTH printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER updatestatusicon BS_ATTACKER
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_OpponentUsesStatusCureItem:: BattleScript_OpponentUsesStatusCureItem::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
printfromtable gTrainerItemCuredStatusStringIds printfromtable gTrainerItemCuredStatusStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER updatestatusicon BS_ATTACKER
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_OpponentUsesXItem:: BattleScript_OpponentUsesXItem::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
printfromtable gStatUpStringIds printfromtable gStatUpStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_OpponentUsesGuardSpecs:: BattleScript_OpponentUsesGuardSpec::
printstring STRINGID_EMPTYSTRING3 printstring STRINGID_EMPTYSTRING3
pause 0x30 pause B_WAIT_TIME_MED
playse SE_USE_ITEM playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
useitemonopponent useitemonopponent
printfromtable gMistUsedStringIds printfromtable gMistUsedStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
setbyte sMOVEEND_STATE, 0xF moveendcase MOVEEND_MIRROR_MOVE
moveend 0x1, 0x0
finishaction finishaction
BattleScript_RunByUsingItem:: BattleScript_RunByUsingItem::
@@ -179,29 +174,29 @@ BattleScript_RunByUsingItem::
BattleScript_ActionWatchesCarefully: BattleScript_ActionWatchesCarefully:
printstring STRINGID_PKMNWATCHINGCAREFULLY printstring STRINGID_PKMNWATCHINGCAREFULLY
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_ActionGetNear: BattleScript_ActionGetNear:
printfromtable gSafariGetNearStringIds printfromtable gSafariGetNearStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_ActionThrowPokeblock: BattleScript_ActionThrowPokeblock:
printstring STRINGID_THREWPOKEBLOCKATPKMN printstring STRINGID_THREWPOKEBLOCKATPKMN
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL
printfromtable gSafariPokeblockResultStringIds printfromtable gSafariPokeblockResultStringIds
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
BattleScript_ActionWallyThrow: BattleScript_ActionWallyThrow:
printstring STRINGID_RETURNMON printstring STRINGID_RETURNMON
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
returnatktoball returnatktoball
waitstate waitstate
trainerslidein BS_TARGET trainerslidein BS_TARGET
waitstate waitstate
printstring STRINGID_YOUTHROWABALLNOWRIGHT printstring STRINGID_YOUTHROWABALLNOWRIGHT
waitmessage 0x40 waitmessage B_WAIT_TIME_LONG
end2 end2
+4 -4
View File
@@ -15,7 +15,7 @@
"connections": null, "connections": null,
"object_events": [ "object_events": [
{ {
"graphics_id": "OBJ_EVENT_GFX_GROUDON_1", "graphics_id": "OBJ_EVENT_GFX_GROUDON_FRONT",
"x": 16, "x": 16,
"y": 17, "y": 17,
"elevation": 0, "elevation": 0,
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "0x0", "script": "0x0",
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1" "flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_MAGMA_MEMBER_M", "graphics_id": "OBJ_EVENT_GFX_MAGMA_MEMBER_M",
@@ -93,7 +93,7 @@
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS" "flag": "FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_GROUDON_2", "graphics_id": "OBJ_EVENT_GFX_GROUDON_ASLEEP",
"x": 16, "x": 16,
"y": 17, "y": 17,
"elevation": 3, "elevation": 3,
@@ -103,7 +103,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "0x0", "script": "0x0",
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_2" "flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
+1 -1
View File
@@ -15,7 +15,7 @@
"connections": null, "connections": null,
"object_events": [ "object_events": [
{ {
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_1", "graphics_id": "OBJ_EVENT_GFX_KYOGRE_FRONT",
"x": 9, "x": 9,
"y": 22, "y": 22,
"elevation": 1, "elevation": 1,
+4 -4
View File
@@ -15,7 +15,7 @@
"connections": null, "connections": null,
"object_events": [ "object_events": [
{ {
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_1", "graphics_id": "OBJ_EVENT_GFX_KYOGRE_FRONT",
"x": 17, "x": 17,
"y": 38, "y": 38,
"elevation": 3, "elevation": 3,
@@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "0x0", "script": "0x0",
"flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1" "flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_ARCHIE", "graphics_id": "OBJ_EVENT_GFX_ARCHIE",
@@ -93,7 +93,7 @@
"flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26" "flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_2", "graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP",
"x": 17, "x": 17,
"y": 38, "y": 38,
"elevation": 3, "elevation": 3,
@@ -103,7 +103,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "0x0", "script": "0x0",
"flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_2" "flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP"
} }
], ],
"warp_events": [ "warp_events": [
+1 -1
View File
@@ -142,7 +142,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS setflag FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS
setflag FLAG_HIDE_MAP_NAME_POPUP setflag FLAG_HIDE_MAP_NAME_POPUP
warp MAP_ROUTE128, 255, 38, 22 warp MAP_ROUTE128, 255, 38, 22
+4 -4
View File
@@ -15,7 +15,7 @@
"connections": null, "connections": null,
"object_events": [ "object_events": [
{ {
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_2", "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA",
"x": 14, "x": 14,
"y": 7, "y": 7,
"elevation": 3, "elevation": 3,
@@ -25,10 +25,10 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "0x0", "script": "0x0",
"flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_2" "flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_1", "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_STILL",
"x": 14, "x": 14,
"y": 6, "y": 6,
"elevation": 3, "elevation": 3,
@@ -38,7 +38,7 @@
"trainer_type": "TRAINER_TYPE_NONE", "trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0", "trainer_sight_or_berry_tree_id": "0",
"script": "SkyPillar_Top_EventScript_Rayquaza", "script": "SkyPillar_Top_EventScript_Rayquaza",
"flag": "FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT" "flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL"
} }
], ],
"warp_events": [ "warp_events": [
+9 -7
View File
@@ -34,7 +34,7 @@ SkyPillar_Top_EventScript_TryShowRayquaza:: @ 8239705
return return
SkyPillar_Top_EventScript_ShowRayquaza:: @ 823970F SkyPillar_Top_EventScript_ShowRayquaza:: @ 823970F
clearflag FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT clearflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL
return return
SkyPillar_Top_OnWarp: @ 8239713 SkyPillar_Top_OnWarp: @ 8239713
@@ -138,17 +138,19 @@ SkyPillar_Top_EventScript_AwakenRayquaza:: @ 823979A
releaseall releaseall
end end
@ Rayquaza has unusual movement frames
@ See comments, or sAnimTable_Rayquaza
SkyPillar_Top_Movement_RayquazaStir: @ 823983A SkyPillar_Top_Movement_RayquazaStir: @ 823983A
delay_16 delay_16
walk_in_place_fast_left walk_in_place_fast_left @ Coiled, awake
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
walk_in_place_left walk_in_place_left @ Coiled, mouth open
delay_16 delay_16
walk_in_place_right walk_in_place_right @ Normal, awake
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
@@ -159,11 +161,11 @@ SkyPillar_Top_Movement_RayquazaStir: @ 823983A
SkyPillar_Top_Movement_RayquazaFlyOff: @ 823984B SkyPillar_Top_Movement_RayquazaFlyOff: @ 823984B
delay_16 delay_16
walk_in_place_down walk_in_place_down @ Coiled, asleep
delay_8 delay_8
walk_in_place_right walk_in_place_right @ Normal, awake
delay_8 delay_8
walk_fastest_up walk_fastest_up @ Fly up
slide_up slide_up
slide_up slide_up
slide_up slide_up
+3 -3
View File
@@ -119,7 +119,7 @@
"flag": "0" "flag": "0"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_GROUDON_3", "graphics_id": "OBJ_EVENT_GFX_GROUDON_SIDE",
"x": 28, "x": 28,
"y": 44, "y": 44,
"elevation": 0, "elevation": 0,
@@ -132,7 +132,7 @@
"flag": "FLAG_HIDE_SOOTOPOLIS_CITY_GROUDON" "flag": "FLAG_HIDE_SOOTOPOLIS_CITY_GROUDON"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_3", "graphics_id": "OBJ_EVENT_GFX_KYOGRE_SIDE",
"x": 34, "x": 34,
"y": 44, "y": 44,
"elevation": 1, "elevation": 1,
@@ -145,7 +145,7 @@
"flag": "FLAG_HIDE_SOOTOPOLIS_CITY_KYOGRE" "flag": "FLAG_HIDE_SOOTOPOLIS_CITY_KYOGRE"
}, },
{ {
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_2", "graphics_id": "OBJ_EVENT_GFX_RAYQUAZA",
"x": 31, "x": 31,
"y": 41, "y": 41,
"elevation": 1, "elevation": 1,
+6 -6
View File
@@ -258,8 +258,8 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946
waitmovement 0 waitmovement 0
waitse waitse
playmoncry SPECIES_GROUDON, 2 playmoncry SPECIES_GROUDON, 2
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_GroudonAttack applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_GROUDON, SootopolisCity_Movement_KyogreDefend applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack
waitmovement 0 waitmovement 0
setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan setvar VAR_0x8005, 1 @ horizontal pan
@@ -358,8 +358,8 @@ SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82
waitmovement 0 waitmovement 0
waitse waitse
playmoncry SPECIES_GROUDON, 2 playmoncry SPECIES_GROUDON, 2
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_GroudonAttack applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_GROUDON, SootopolisCity_Movement_KyogreDefend applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack
waitmovement 0 waitmovement 0
setvar VAR_0x8004, 1 @ vertical pan setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan setvar VAR_0x8005, 1 @ horizontal pan
@@ -431,7 +431,7 @@ SootopolisCity_Movement_KyogreAttack: @ 81E5BB8
clear_affine_anim clear_affine_anim
step_end step_end
SootopolisCity_Movement_GroudonAttack: @ 81E5BC2 SootopolisCity_Movement_KyogreDefend: @ 81E5BC2
delay_16 delay_16
delay_16 delay_16
delay_16 delay_16
@@ -464,7 +464,7 @@ SootopolisCity_Movement_KyogreIdle: @ 81E5BD6
walk_in_place_slow_left walk_in_place_slow_left
step_end step_end
SootopolisCity_Movement_KyogreDefend: @ 81E5BDD SootopolisCity_Movement_GroudonAttack: @ 81E5BDD
walk_in_place_slow_right walk_in_place_slow_right
walk_in_place_slow_right walk_in_place_slow_right
walk_in_place_slow_right walk_in_place_slow_right
+1 -1
View File
@@ -15,7 +15,7 @@
"connections": null, "connections": null,
"object_events": [ "object_events": [
{ {
"graphics_id": "OBJ_EVENT_GFX_GROUDON_1", "graphics_id": "OBJ_EVENT_GFX_GROUDON_FRONT",
"x": 17, "x": 17,
"y": 22, "y": 22,
"elevation": 1, "elevation": 1,
+1 -1
View File
@@ -889,7 +889,7 @@ RecordCorner_EventScript_AlreadyMixed:: @ 82774E0
closemessage closemessage
end end
EventScript_ConfirmLeaveTradeRoom:: @ 82774EF EventScript_ConfirmLeaveCableClubRoom:: @ 82774EF
msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO
compare VAR_RESULT, YES compare VAR_RESULT, YES
goto_if_eq EventScript_TerminateLink goto_if_eq EventScript_TerminateLink
+3 -3
View File
@@ -179,8 +179,8 @@ EventScript_ResetAllMapFlags:: @ 82715DE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE
setflag FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1 setflag FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON
setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN
setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT
setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE
@@ -271,6 +271,6 @@ EventScript_ResetAllMapFlags:: @ 82715DE
setflag FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT setflag FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT
setflag FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT setflag FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT
setflag FLAG_HIDE_SKY_PILLAR_WALLACE setflag FLAG_HIDE_SKY_PILLAR_WALLACE
setflag FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT setflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL
call EventScript_ResetAllBerries call EventScript_ResetAllBerries
end end
+4 -4
View File
@@ -2925,7 +2925,7 @@ gTVInSearchOfTrainersText08:: @ 0828C011
.string "That's all for today!\n" .string "That's all for today!\n"
.string "See you again on our next broadcast!$" .string "See you again on our next broadcast!$"
gTVPokemonContestLiveUpdates2Text00:: @ 0828C137 ContestLadyShow_Text_Intro:: @ 0828C137
.string "“POKéMON CONTEST LIVE UPDATES!”\p" .string "“POKéMON CONTEST LIVE UPDATES!”\p"
.string "MC: Sorry to interrupt the regular\n" .string "MC: Sorry to interrupt the regular\n"
.string "programming, and thanks for joining us!\p" .string "programming, and thanks for joining us!\p"
@@ -2940,7 +2940,7 @@ gTVPokemonContestLiveUpdates2Text00:: @ 0828C137
.string "Spectators: ?!!!!\n" .string "Spectators: ?!!!!\n"
.string "?!!!!$" .string "?!!!!$"
gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C ContestLadyShow_Text_Won:: @ 0828C28C
.string "MC: Excuse me!\n" .string "MC: Excuse me!\n"
.string "Thanks for joining us on live TV!\p" .string "Thanks for joining us on live TV!\p"
.string "May I congratulate you on your win?\p" .string "May I congratulate you on your win?\p"
@@ -2959,7 +2959,7 @@ gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C
.string "We did it!\l" .string "We did it!\l"
.string "Thank you!$" .string "Thank you!$"
gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B ContestLadyShow_Text_Lost:: @ 0828C45B
.string "MC: Excuse me!\n" .string "MC: Excuse me!\n"
.string "Thanks for joining us on live TV!\p" .string "Thanks for joining us on live TV!\p"
.string "You must be disappointed by that turn\n" .string "You must be disappointed by that turn\n"
@@ -2979,7 +2979,7 @@ gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B
.string "Uh… That's all the time we have today!\n" .string "Uh… That's all the time we have today!\n"
.string "Thanks for tuning in!$" .string "Thanks for tuning in!$"
gTVPokemonContestLiveUpdates2Text03:: @ 0828C662 ContestLadyShow_Text_LostBadly:: @ 0828C662
.string "MC: Excuse me!\n" .string "MC: Excuse me!\n"
.string "Thanks for joining us on live TV!\p" .string "Thanks for joining us on live TV!\p"
.string "How did your CONTEST appearance go?\p" .string "How did your CONTEST appearance go?\p"
+2 -2
View File
@@ -1416,9 +1416,9 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)
fgColor = TEXT_COLOR_WHITE; fgColor = TEXT_COLOR_WHITE;
bgColor = TEXT_COLOR_TRANSPARENT; bgColor = TEXT_COLOR_TRANSPARENT;
shadowColor = TEXT_COLOR_LIGHT_GREY; shadowColor = TEXT_COLOR_LIGHT_GRAY;
GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY); GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY);
strLocal = str; strLocal = str;
strPos = 0; strPos = 0;
+2 -2
View File
@@ -233,8 +233,8 @@
#define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1 #define TEXT_COLOR_WHITE 0x1
#define TEXT_COLOR_DARK_GREY 0x2 #define TEXT_COLOR_DARK_GRAY 0x2
#define TEXT_COLOR_LIGHT_GREY 0x3 #define TEXT_COLOR_LIGHT_GRAY 0x3
#define TEXT_COLOR_RED 0x4 #define TEXT_COLOR_RED 0x4
#define TEXT_COLOR_LIGHT_RED 0x5 #define TEXT_COLOR_LIGHT_RED 0x5
#define TEXT_COLOR_GREEN 0x6 #define TEXT_COLOR_GREEN 0x6
+11 -10
View File
@@ -40,16 +40,17 @@
#define MAX_TRAINER_ITEMS 4 #define MAX_TRAINER_ITEMS 4
// array entries for battle communication // array entries for battle communication
#define MULTIUSE_STATE 0x0 #define MULTIUSE_STATE 0
#define CURSOR_POSITION 0x1 #define CURSOR_POSITION 1
#define TASK_ID 0x1 // task Id and cursor position share the same field #define TASK_ID 1 // task Id and cursor position share the same field
#define SPRITES_INIT_STATE1 0x1 // shares the Id as well #define SPRITES_INIT_STATE1 1 // shares the Id as well
#define SPRITES_INIT_STATE2 0x2 #define SPRITES_INIT_STATE2 2
#define MOVE_EFFECT_BYTE 0x3 #define MOVE_EFFECT_BYTE 3
#define ACTIONS_CONFIRMED_COUNT 0x4 #define ACTIONS_CONFIRMED_COUNT 4
#define MULTISTRING_CHOOSER 0x5 #define MULTISTRING_CHOOSER 5
#define MSG_DISPLAY 0x7 #define MISS_TYPE 6
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 #define MSG_DISPLAY 7
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
#define MOVE_TARGET_SELECTED 0x0 #define MOVE_TARGET_SELECTED 0x0
#define MOVE_TARGET_DEPENDS 0x1 #define MOVE_TARGET_DEPENDS 0x1
+21 -1
View File
@@ -7,10 +7,30 @@ enum
AI_ITEM_HEAL_HP, AI_ITEM_HEAL_HP,
AI_ITEM_CURE_CONDITION, AI_ITEM_CURE_CONDITION,
AI_ITEM_X_STAT, AI_ITEM_X_STAT,
AI_ITEM_GUARD_SPECS, AI_ITEM_GUARD_SPEC,
AI_ITEM_NOT_RECOGNIZABLE AI_ITEM_NOT_RECOGNIZABLE
}; };
enum {
AI_HEAL_CONFUSION,
AI_HEAL_PARALYSIS,
AI_HEAL_FREEZE,
AI_HEAL_BURN,
AI_HEAL_POISON,
AI_HEAL_SLEEP,
};
enum {
AI_X_ATTACK,
AI_X_DEFEND,
AI_X_SPEED,
AI_X_SPATK,
AI_X_SPDEF, // Unused
AI_X_ACCURACY,
AI_X_EVASION, // Unused
AI_DIRE_HIT,
};
void AI_TrySwitchOrUseItem(void); void AI_TrySwitchOrUseItem(void);
u8 GetMostSuitableMonToSwitchInto(void); u8 GetMostSuitableMonToSwitchInto(void);
+2 -2
View File
@@ -156,7 +156,7 @@ enum
CONTROLLER_CLEARUNKFLAG, CONTROLLER_CLEARUNKFLAG,
CONTROLLER_TOGGLEUNKFLAG, CONTROLLER_TOGGLEUNKFLAG,
CONTROLLER_HITANIMATION, CONTROLLER_HITANIMATION,
CONTROLLER_42, CONTROLLER_CANTSWITCH,
CONTROLLER_PLAYSE, CONTROLLER_PLAYSE,
CONTROLLER_PLAYFANFAREORBGM, CONTROLLER_PLAYFANFAREORBGM,
CONTROLLER_FAINTINGCRY, CONTROLLER_FAINTINGCRY,
@@ -227,7 +227,7 @@ void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused
void BtlController_EmitClearUnkFlag(u8 bufferId); // unused void BtlController_EmitClearUnkFlag(u8 bufferId); // unused
void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused
void BtlController_EmitHitAnimation(u8 bufferId); void BtlController_EmitHitAnimation(u8 bufferId);
void BtlController_EmitCmd42(u8 bufferId); void BtlController_EmitCantSwitch(u8 bufferId);
void BtlController_EmitPlaySE(u8 bufferId, u16 songId); void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
void BtlController_EmitFaintingCry(u8 bufferId); void BtlController_EmitFaintingCry(u8 bufferId);
+1 -2
View File
@@ -223,7 +223,6 @@ extern const u8* const gBattleStringsTable[];
extern const u8* const gStatNamesTable[]; extern const u8* const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[]; extern const u8* const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[];
extern const u8 *const gRoundsStringTable[]; extern const u8 *const gRoundsStringTable[];
extern const u8 gText_PkmnIsEvolving[]; extern const u8 gText_PkmnIsEvolving[];
@@ -269,7 +268,7 @@ extern const u8 gText_Win[];
extern const u8 gText_Loss[]; extern const u8 gText_Loss[];
extern const u8 gText_Draw[]; extern const u8 gText_Draw[];
extern const u8 gText_StatRose[]; extern const u8 gText_StatRose[];
extern const u8 gText_PkmnsStatChanged2[]; extern const u8 gText_DefendersStatRose[];
extern const u8 gText_PkmnGettingPumped[]; extern const u8 gText_PkmnGettingPumped[];
extern const u8 gText_PkmnShroudedInMist[]; extern const u8 gText_PkmnShroudedInMist[];
extern const u8 gText_PkmnsXPreventsSwitching[]; extern const u8 gText_PkmnsXPreventsSwitching[];
+1
View File
@@ -2,6 +2,7 @@
#define GUARD_CABLE_CLUB_H #define GUARD_CABLE_CLUB_H
#include "task.h" #include "task.h"
#include "constants/cable_club.h"
void CreateTask_EnterCableClubSeat(TaskFunc taskFunc); void CreateTask_EnterCableClubSeat(TaskFunc taskFunc);
u8 CreateTask_ReestablishCableClubLink(void); u8 CreateTask_ReestablishCableClubLink(void);
+4
View File
@@ -302,4 +302,8 @@
#define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9 #define BATTLE_TERRAIN_PLAIN 9
#define B_WAIT_TIME_LONG 64
#define B_WAIT_TIME_MED 48
#define B_WAIT_TIME_SHORT 32
#endif // GUARD_CONSTANTS_BATTLE_H #endif // GUARD_CONSTANTS_BATTLE_H
+27 -22
View File
@@ -32,14 +32,17 @@
#define cEFFECT_CHOOSER gBattleCommunication + 3 #define cEFFECT_CHOOSER gBattleCommunication + 3
#define cMULTISTRING_CHOOSER gBattleCommunication + 5 #define cMULTISTRING_CHOOSER gBattleCommunication + 5
#define cMISS_TYPE gBattleCommunication + 6
// Battle Script defines for getting the wanted battler // Battle Script defines for getting the wanted battler
#define BS_TARGET 0 #define BS_TARGET 0
#define BS_ATTACKER 1 #define BS_ATTACKER 1
#define BS_EFFECT_BATTLER 2 #define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3 #define BS_FAINTED 3
#define BS_BATTLER_0 7
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon #define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
#define BS_UNK_5 5
#define BS_UNK_6 6
#define BS_BATTLER_0 7
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability #define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability #define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10 #define BS_SCRIPTING 10
@@ -54,12 +57,12 @@
#define ACC_CURR_MOVE 0 #define ACC_CURR_MOVE 0
// compare operands // compare operands
#define CMP_EQUAL 0x0 #define CMP_EQUAL 0
#define CMP_NOT_EQUAL 0x1 #define CMP_NOT_EQUAL 1
#define CMP_GREATER_THAN 0x2 #define CMP_GREATER_THAN 2
#define CMP_LESS_THAN 0x3 #define CMP_LESS_THAN 3
#define CMP_COMMON_BITS 0x4 #define CMP_COMMON_BITS 4
#define CMP_NO_COMMON_BITS 0x5 #define CMP_NO_COMMON_BITS 5
// Cmd_various // Cmd_various
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 #define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
@@ -92,27 +95,29 @@
#define DMG_DOUBLED 2 #define DMG_DOUBLED 2
// Cmd_jumpifcantswitch // Cmd_jumpifcantswitch
#define SWITCH_IGNORE_ESCAPE_PREVENTION 0x80 #define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// Cmd_statbuffchange // Cmd_statbuffchange
#define STAT_BUFF_ALLOW_PTR 0x1 // If set, allow use of jumpptr. Set in every use of statbuffchange #define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
#define STAT_BUFF_NOT_PROTECT_AFFECTED 0x20 #define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5)
// stat change flags for Cmd_playstatchangeanimation // stat change flags for Cmd_playstatchangeanimation
#define STAT_CHANGE_NEGATIVE 0x1 #define STAT_CHANGE_NEGATIVE (1 << 0)
#define STAT_CHANGE_BY_TWO 0x2 #define STAT_CHANGE_BY_TWO (1 << 1)
#define STAT_CHANGE_MULTIPLE_STATS 0x4 #define STAT_CHANGE_MULTIPLE_STATS (1 << 2)
#define STAT_CHANGE_CANT_PREVENT 0x8 #define STAT_CHANGE_CANT_PREVENT (1 << 3)
// stat flags for Cmd_playstatchangeanimation // stat flags for Cmd_playstatchangeanimation
#define BIT_HP 0x1 #define BIT_HP (1 << 0)
#define BIT_ATK 0x2 #define BIT_ATK (1 << 1)
#define BIT_DEF 0x4 #define BIT_DEF (1 << 2)
#define BIT_SPEED 0x8 #define BIT_SPEED (1 << 3)
#define BIT_SPATK 0x10 #define BIT_SPATK (1 << 4)
#define BIT_SPDEF 0x20 #define BIT_SPDEF (1 << 5)
#define BIT_ACC 0x40 #define BIT_ACC (1 << 6)
#define BIT_EVASION 0x80 #define BIT_EVASION (1 << 7)
#define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen
// cases for Cmd_moveend // cases for Cmd_moveend
#define MOVEEND_RAGE 0 #define MOVEEND_RAGE 0
+219 -5
View File
@@ -214,10 +214,10 @@
#define STRINGID_STATROSE 210 #define STRINGID_STATROSE 210
#define STRINGID_STATHARSHLY 211 #define STRINGID_STATHARSHLY 211
#define STRINGID_STATFELL 212 #define STRINGID_STATFELL 212
#define STRINGID_PKMNSSTATCHANGED 213 #define STRINGID_ATTACKERSSTATROSE 213
#define STRINGID_PKMNSSTATCHANGED2 214 #define STRINGID_DEFENDERSSTATROSE 214
#define STRINGID_PKMNSSTATCHANGED3 215 #define STRINGID_ATTACKERSSTATFELL 215
#define STRINGID_PKMNSSTATCHANGED4 216 #define STRINGID_DEFENDERSSTATFELL 216
#define STRINGID_CRITICALHIT 217 #define STRINGID_CRITICALHIT 217
#define STRINGID_ONEHITKO 218 #define STRINGID_ONEHITKO 218
#define STRINGID_123POOF 219 #define STRINGID_123POOF 219
@@ -326,7 +326,7 @@
#define STRINGID_SOOTHINGAROMA 322 #define STRINGID_SOOTHINGAROMA 322
#define STRINGID_ITEMSCANTBEUSEDNOW 323 #define STRINGID_ITEMSCANTBEUSEDNOW 323
#define STRINGID_FORXCOMMAYZ 324 #define STRINGID_FORXCOMMAYZ 324
#define STRINGID_USINGXTHEYOFZN 325 #define STRINGID_USINGITEMSTATOFPKMNROSE 325
#define STRINGID_PKMNUSEDXTOGETPUMPED 326 #define STRINGID_PKMNUSEDXTOGETPUMPED 326
#define STRINGID_PKMNSXMADEYUSELESS 327 #define STRINGID_PKMNSXMADEYUSELESS 327
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 #define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
@@ -383,4 +383,218 @@
#define STRINGID_TRAINER1WINTEXT 379 #define STRINGID_TRAINER1WINTEXT 379
#define STRINGID_TRAINER2WINTEXT 380 #define STRINGID_TRAINER2WINTEXT 380
// The below IDs are all indexes into battle message tables,
// used to determine which of a set of messages to print.
// They are assigned to the MULTISTRING_CHOOSER byte of gBattleCommunication
// and read when e.g. the command printfromtable is used.
// gStatUpStringIds
#define B_MSG_ATTACKER_STAT_ROSE 0
#define B_MSG_DEFENDER_STAT_ROSE 1
#define B_MSG_STAT_WONT_INCREASE 2
#define B_MSG_STAT_ROSE_EMPTY 3
#define B_MSG_STAT_ROSE_ITEM 4
#define B_MSG_USED_DIRE_HIT 5
// gStatDownStringIds
#define B_MSG_ATTACKER_STAT_FELL 0
#define B_MSG_DEFENDER_STAT_FELL 1
#define B_MSG_STAT_WONT_DECREASE 2
#define B_MSG_STAT_FELL_EMPTY 3
// gMissStringIds
#define B_MSG_MISSED 0
#define B_MSG_PROTECTED 1
#define B_MSG_AVOIDED_ATK 2
#define B_MSG_AVOIDED_DMG 3
#define B_MSG_GROUND_MISS 4
// gAbsorbDrainStringIds
#define B_MSG_ABSORB 0
#define B_MSG_ABSORB_OOZE 1
// gLeechSeedStringIds
#define B_MSG_LEECH_SEED_SET 0
#define B_MSG_LEECH_SEED_MISS 1
#define B_MSG_LEECH_SEED_FAIL 2
#define B_MSG_LEECH_SEED_DRAIN 3
#define B_MSG_LEECH_SEED_OOZE 4
// gFirstTurnOfTwoStringIds
#define B_MSG_TURN1_RAZOR_WIND 0
#define B_MSG_TURN1_SOLAR_BEAM 1
#define B_MSG_TURN1_SKULL_BASH 2
#define B_MSG_TURN1_SKY_ATTACK 3
#define B_MSG_TURN1_FLY 4
#define B_MSG_TURN1_DIG 5
#define B_MSG_TURN1_DIVE 6
#define B_MSG_TURN1_BOUNCE 7
// gMoveWeatherChangeStringIds
#define B_MSG_STARTED_RAIN 0
#define B_MSG_STARTED_DOWNPOUR 1
#define B_MSG_WEATHER_FAILED 2
#define B_MSG_STARTED_SANDSTORM 3
#define B_MSG_STARTED_SUNLIGHT 4
#define B_MSG_STARTED_HAIL 5
// gRainContinuesStringIds
#define B_MSG_RAIN_CONTINUES 0
#define B_MSG_DOWNPOUR_CONTINUES 1
#define B_MSG_RAIN_STOPPED 2
// gSandStormHailContinuesStringIds / gSandStormHailDmgStringIds/ gSandStormHailEndStringIds
#define B_MSG_SANDSTORM 0
#define B_MSG_HAIL 1
// gReflectLightScreenSafeguardStringIds
#define B_MSG_SIDE_STATUS_FAILED 0
#define B_MSG_SET_REFLECT_SINGLE 1
#define B_MSG_SET_REFLECT_DOUBLE 2
#define B_MSG_SET_LIGHTSCREEN_SINGLE 3
#define B_MSG_SET_LIGHTSCREEN_DOUBLE 4
#define B_MSG_SET_SAFEGUARD 5
// gProtectLikeUsedStringIds
#define B_MSG_PROTECTED_ITSELF 0
#define B_MSG_BRACED_ITSELF 1
#define B_MSG_PROTECT_FAILED 2
// gRestUsedStringIds
#define B_MSG_REST 0
#define B_MSG_REST_STATUSED 1
// gWokeUpStringIds
#define B_MSG_WOKE_UP 0
#define B_MSG_WOKE_UP_UPROAR 1
// gUproarAwakeStringIds
#define B_MSG_CANT_SLEEP_UPROAR 0
#define B_MSG_UPROAR_KEPT_AWAKE 1
#define B_MSG_STAYED_AWAKE_USING 2
// gUproarOverTurnStringIds
#define B_MSG_UPROAR_CONTINUES 0
#define B_MSG_UPROAR_ENDS 1
// gStockpileUsedStringIds
#define B_MSG_STOCKPILED 0
#define B_MSG_CANT_STOCKPILE 1
// gSwallowFailStringIds
#define B_MSG_SWALLOW_FAILED 0
#define B_MSG_SWALLOW_FULL_HP 1
// gKOFailedStringIds
#define B_MSG_KO_MISS 0
#define B_MSG_KO_UNAFFECTED 1
// gMistUsedStringIds
#define B_MSG_SET_MIST 0
#define B_MSG_MIST_FAILED 1
// gFocusEnergyUsedStringIds
#define B_MSG_GETTING_PUMPED 0
#define B_MSG_FOCUS_ENERGY_FAILED 1
// gTransformUsedStringIds
#define B_MSG_TRANSFORMED 0
#define B_MSG_TRANSFORM_FAILED 1
// gSubsituteUsedStringIds
#define B_MSG_SET_SUBSTITUTE 0
#define B_MSG_SUBSTITUTE_FAILED 1
// gPartyStatusHealStringIds
#define B_MSG_BELL 0
#define B_MSG_BELL_SOUNDPROOF_ATTACKER 1
#define B_MSG_BELL_SOUNDPROOF_PARTNER 2
#define B_MSG_BELL_BOTH_SOUNDPROOF 3
#define B_MSG_SOOTHING_AROMA 4
// gFutureMoveUsedStringIds
#define B_MSG_FUTURE_SIGHT 0
#define B_MSG_DOOM_DESIRE 1
// gItemSwapStringIds
#define B_MSG_ITEM_SWAP_TAKEN 0
#define B_MSG_ITEM_SWAP_GIVEN 1
#define B_MSG_ITEM_SWAP_BOTH 2
// gSportsUsedStringIds
#define B_MSG_WEAKEN_ELECTRIC 0
#define B_MSG_WEAKEN_FIRE 1
// gCaughtMonStringIds
#define B_MSG_SENT_SOMEONES_PC 0
#define B_MSG_SENT_LANETTES_PC 1
#define B_MSG_SOMEONES_BOX_FULL 2
#define B_MSG_LANETTES_BOX_FULL 3
// gInobedientStringIds
#define B_MSG_LOAFING 0
#define B_MSG_WONT_OBEY 1
#define B_MSG_TURNED_AWAY 2
#define B_MSG_PRETEND_NOT_NOTICE 3
#define B_MSG_INCAPABLE_OF_POWER 4
// For randomly selecting a disobey string
// Skips the one used for Battle Palace
#define NUM_LOAF_STRINGS 4
// gSafariGetNearStringIds
#define B_MSG_CREPT_CLOSER 0
#define B_MSG_CANT_GET_CLOSER 1
// gSafariPokeblockResultStringIds
#define B_MSG_MON_CURIOUS 0
#define B_MSG_MON_ENTHRALLED 1
#define B_MSG_MON_IGNORED 2
// gFlashFireStringIds
#define B_MSG_FLASH_FIRE_BOOST 0
#define B_MSG_FLASH_FIRE_NO_BOOST 1
// gBerryEffectStringIds
#define B_MSG_CURED_PROBLEM 0
#define B_MSG_NORMALIZED_STATUS 1
// gNoEscapeStringIds
#define B_MSG_CANT_ESCAPE 0
#define B_MSG_DONT_LEAVE_BIRCH 1
#define B_MSG_PREVENTS_ESCAPE 2
#define B_MSG_CANT_ESCAPE_2 3
#define B_MSG_ATTACKER_CANT_ESCAPE 4
// gGotPoisonedStringIds / gGotParalyzedStringIds / gFellAsleepStringIds
// gGotBurnedStringIds / gGotFrozenStringIds / gAttractUsedStringIds
#define B_MSG_STATUSED 0
#define B_MSG_STATUSED_BY_ABILITY 1
// gBRNPreventionStringIds / gPRLZPreventionStringIds / gPSNPreventionStringIds
#define B_MSG_ABILITY_PREVENTS_MOVE_STATUS 0
#define B_MSG_ABILITY_PREVENTS_ABILITY_STATUS 1
#define B_MSG_STATUS_HAD_NO_EFFECT 2
// gGotDefrostedStringIds
#define B_MSG_DEFROSTED 0
#define B_MSG_DEFROSTED_BY_MOVE 1
// gBattlePalaceFlavorTextTable
#define B_MSG_GLINT_IN_EYE 0
#define B_MSG_GETTING_IN_POS 1
#define B_MSG_GROWL_DEEPLY 2
#define B_MSG_EAGER_FOR_MORE 3
// gRefereeStringsTable
#define B_MSG_REF_NOTHING_IS_DECIDED 0
#define B_MSG_REF_THATS_IT 1
#define B_MSG_REF_JUDGE_MIND 2
#define B_MSG_REF_JUDGE_SKILL 3
#define B_MSG_REF_JUDGE_BODY 4
#define B_MSG_REF_PLAYER_WON 5
#define B_MSG_REF_OPPONENT_WON 6
#define B_MSG_REF_DRAW 7
#define B_MSG_REF_COMMENCE_BATTLE 8
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H #endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H
+4
View File
@@ -28,4 +28,8 @@
#define LINKUP_FAILED_BATTLE_TOWER 11 #define LINKUP_FAILED_BATTLE_TOWER 11
#define LINKUP_FOREIGN_GAME 12 #define LINKUP_FOREIGN_GAME 12
#define CABLE_SEAT_WAITING 0
#define CABLE_SEAT_SUCCESS 1
#define CABLE_SEAT_FAILED 2
#endif //GUARD_CONSTANTS_CABLE_CLUB_H #endif //GUARD_CONSTANTS_CABLE_CLUB_H
+2 -1
View File
@@ -237,11 +237,12 @@
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97 #define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
#define MOVEMENT_ACTION_LEVITATE 0x98 #define MOVEMENT_ACTION_LEVITATE 0x98
#define MOVEMENT_ACTION_STOP_LEVITATE 0x99 #define MOVEMENT_ACTION_STOP_LEVITATE 0x99
#define MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP 0x9A #define MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP 0x9A
#define MOVEMENT_ACTION_FIGURE_8 0x9B #define MOVEMENT_ACTION_FIGURE_8 0x9B
#define MOVEMENT_ACTION_FLY_UP 0x9C #define MOVEMENT_ACTION_FLY_UP 0x9C
#define MOVEMENT_ACTION_FLY_DOWN 0x9D #define MOVEMENT_ACTION_FLY_DOWN 0x9D
#define MOVEMENT_ACTION_STEP_END 0xFE #define MOVEMENT_ACTION_STEP_END 0xFE
#define MOVEMENT_ACTION_NONE 0xFF
#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H #endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
+8 -8
View File
@@ -42,7 +42,7 @@
#define OBJ_EVENT_GFX_SCHOOL_KID_M 38 #define OBJ_EVENT_GFX_SCHOOL_KID_M 38
#define OBJ_EVENT_GFX_MANIAC 39 #define OBJ_EVENT_GFX_MANIAC 39
#define OBJ_EVENT_GFX_HEX_MANIAC 40 #define OBJ_EVENT_GFX_HEX_MANIAC 40
#define OBJ_EVENT_GFX_RAYQUAZA_1 41 #define OBJ_EVENT_GFX_RAYQUAZA_STILL 41
#define OBJ_EVENT_GFX_SWIMMER_M 42 #define OBJ_EVENT_GFX_SWIMMER_M 42
#define OBJ_EVENT_GFX_SWIMMER_F 43 #define OBJ_EVENT_GFX_SWIMMER_F 43
#define OBJ_EVENT_GFX_BLACK_BELT 44 #define OBJ_EVENT_GFX_BLACK_BELT 44
@@ -198,17 +198,17 @@
#define OBJ_EVENT_GFX_MAY_DECORATING 194 #define OBJ_EVENT_GFX_MAY_DECORATING 194
#define OBJ_EVENT_GFX_ARCHIE 195 #define OBJ_EVENT_GFX_ARCHIE 195
#define OBJ_EVENT_GFX_MAXIE 196 #define OBJ_EVENT_GFX_MAXIE 196
#define OBJ_EVENT_GFX_KYOGRE_1 197 #define OBJ_EVENT_GFX_KYOGRE_FRONT 197
#define OBJ_EVENT_GFX_GROUDON_1 198 #define OBJ_EVENT_GFX_GROUDON_FRONT 198
#define OBJ_EVENT_GFX_FOSSIL 199 #define OBJ_EVENT_GFX_FOSSIL 199
#define OBJ_EVENT_GFX_REGIROCK 200 #define OBJ_EVENT_GFX_REGIROCK 200
#define OBJ_EVENT_GFX_REGICE 201 #define OBJ_EVENT_GFX_REGICE 201
#define OBJ_EVENT_GFX_REGISTEEL 202 #define OBJ_EVENT_GFX_REGISTEEL 202
#define OBJ_EVENT_GFX_SKITTY 203 #define OBJ_EVENT_GFX_SKITTY 203
#define OBJ_EVENT_GFX_KECLEON 204 #define OBJ_EVENT_GFX_KECLEON 204
#define OBJ_EVENT_GFX_KYOGRE_2 205 #define OBJ_EVENT_GFX_KYOGRE_ASLEEP 205
#define OBJ_EVENT_GFX_GROUDON_2 206 #define OBJ_EVENT_GFX_GROUDON_ASLEEP 206
#define OBJ_EVENT_GFX_RAYQUAZA_2 207 #define OBJ_EVENT_GFX_RAYQUAZA 207
#define OBJ_EVENT_GFX_ZIGZAGOON_2 208 #define OBJ_EVENT_GFX_ZIGZAGOON_2 208
#define OBJ_EVENT_GFX_PIKACHU 209 #define OBJ_EVENT_GFX_PIKACHU 209
#define OBJ_EVENT_GFX_AZUMARILL 210 #define OBJ_EVENT_GFX_AZUMARILL 210
@@ -222,8 +222,8 @@
#define OBJ_EVENT_GFX_JUAN 218 #define OBJ_EVENT_GFX_JUAN 218
#define OBJ_EVENT_GFX_SCOTT 219 #define OBJ_EVENT_GFX_SCOTT 219
#define OBJ_EVENT_GFX_POOCHYENA 220 #define OBJ_EVENT_GFX_POOCHYENA 220
#define OBJ_EVENT_GFX_KYOGRE_3 221 #define OBJ_EVENT_GFX_KYOGRE_SIDE 221
#define OBJ_EVENT_GFX_GROUDON_3 222 #define OBJ_EVENT_GFX_GROUDON_SIDE 222
#define OBJ_EVENT_GFX_MYSTERY_GIFT_MAN 223 #define OBJ_EVENT_GFX_MYSTERY_GIFT_MAN 223
#define OBJ_EVENT_GFX_TRICK_HOUSE_STATUE 224 #define OBJ_EVENT_GFX_TRICK_HOUSE_STATUE 224
#define OBJ_EVENT_GFX_KIRLIA 225 #define OBJ_EVENT_GFX_KIRLIA 225
+9 -9
View File
@@ -91,10 +91,10 @@
#define FLAG_UNUSED_0x04F 0x4F // Unused Flag #define FLAG_UNUSED_0x04F 0x4F // Unused Flag
// Scripts // Scripts
#define FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT 0x50 #define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL 0x50
#define FLAG_SET_WALL_CLOCK 0x51 #define FLAG_SET_WALL_CLOCK 0x51
#define FLAG_RESCUED_BIRCH 0x52 #define FLAG_RESCUED_BIRCH 0x52
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 #define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
#define FLAG_UNUSED_0x054 0x54 // Unused Flag #define FLAG_UNUSED_0x054 0x54 // Unused Flag
#define FLAG_UNUSED_0x055 0x55 // Unused Flag #define FLAG_UNUSED_0x055 0x55 // Unused Flag
@@ -775,7 +775,7 @@
#define FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER 0x2DA #define FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER 0x2DA
#define FLAG_HIDE_RUSTBORO_CITY_AQUA_GRUNT 0x2DB #define FLAG_HIDE_RUSTBORO_CITY_AQUA_GRUNT 0x2DB
#define FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 0x2DC #define FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 0x2DC
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_2 0x2DD #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP 0x2DD
#define FLAG_HIDE_PLAYERS_HOUSE_DAD 0x2DE #define FLAG_HIDE_PLAYERS_HOUSE_DAD 0x2DE
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0x2DF #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0x2DF
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0x2E0 #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0x2E0
@@ -815,7 +815,7 @@
#define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0x302 #define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0x302
#define FLAG_HIDE_ROUTE_111_VICKY_WINSTRATE 0x303 #define FLAG_HIDE_ROUTE_111_VICKY_WINSTRATE 0x303
#define FLAG_HIDE_PETALBURG_GYM_NORMAN 0x304 #define FLAG_HIDE_PETALBURG_GYM_NORMAN 0x304
#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_2 0x305 #define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA 0x305
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_1 0x306 #define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_1 0x306
#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307 #define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307
#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 0x308 #define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 0x308
@@ -892,16 +892,16 @@
#define FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD 0x34F #define FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD 0x34F
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW 0x350 #define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW 0x350
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL 0x351 #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL 0x351
#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_2 0x352 #define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP 0x352
#define FLAG_HIDE_ROUTE_119_RIVAL 0x353 #define FLAG_HIDE_ROUTE_119_RIVAL 0x353
#define FLAG_HIDE_LILYCOVE_CITY_AQUA_GRUNTS 0x354 #define FLAG_HIDE_LILYCOVE_CITY_AQUA_GRUNTS 0x354
#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1 0x355 #define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON 0x355
#define FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS 0x356 #define FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS 0x356
#define FLAG_HIDE_SKY_PILLAR_WALLACE 0x357 #define FLAG_HIDE_SKY_PILLAR_WALLACE 0x357
#define FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE 0x358 #define FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE 0x358
#define FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS 0x359 #define FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS 0x359
#define FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY 0x35A #define FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY 0x35A
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1 0x35B #define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE 0x35B
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL 0x35C #define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL 0x35C
#define FLAG_HIDE_LILYCOVE_HARBOR_SSTIDAL 0x35D #define FLAG_HIDE_LILYCOVE_HARBOR_SSTIDAL 0x35D
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA 0x35E #define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA 0x35E
+7 -1
View File
@@ -23,4 +23,10 @@
#define QUIZ_QUESTION_LEN 9 #define QUIZ_QUESTION_LEN 9
#endif // Constants for how many good Pokéblocks the Contest Lady was given
// This determines how her performance is described when her TV show comes on
#define CONTEST_LADY_NORMAL 0
#define CONTEST_LADY_GOOD 1
#define CONTEST_LADY_BAD 2
#endif // GUARD_LILYCOVE_LADY_CONSTANTS_H
+1
View File
@@ -241,5 +241,6 @@
#define MB_UNUSED_ED 0xED #define MB_UNUSED_ED 0xED
#define MB_UNUSED_EE 0xEE #define MB_UNUSED_EE 0xEE
#define MB_UNUSED_EF 0xEF #define MB_UNUSED_EF 0xEF
#define MB_INVALID 0xFF
#endif // GUARD_METATILE_BEHAVIORS_H #endif // GUARD_METATILE_BEHAVIORS_H
+7 -1
View File
@@ -19,7 +19,7 @@
#define TVSHOW_3_CHEERS_FOR_POKEBLOCKS 9 #define TVSHOW_3_CHEERS_FOR_POKEBLOCKS 9
#define TVSHOW_BATTLE_UPDATE 10 #define TVSHOW_BATTLE_UPDATE 10
#define TVSHOW_FAN_CLUB_SPECIAL 11 #define TVSHOW_FAN_CLUB_SPECIAL 11
#define TVSHOW_CONTEST_LIVE_UPDATES_2 12 #define TVSHOW_LILYCOVE_CONTEST_LADY 12
// // // //
#define TVSHOW_POKEMON_TODAY_CAUGHT 21 #define TVSHOW_POKEMON_TODAY_CAUGHT 21
#define TVSHOW_SMART_SHOPPER 22 #define TVSHOW_SMART_SHOPPER 22
@@ -215,4 +215,10 @@
#define TRENDWATCHER_STATE_BIGGER_FEMALE 5 #define TRENDWATCHER_STATE_BIGGER_FEMALE 5
#define TRENDWATCHER_STATE_OUTRO 6 #define TRENDWATCHER_STATE_OUTRO 6
// TV Show states for the Contest Lady's Live Updates show
#define CONTESTLADYLIVE_STATE_INTRO 0
#define CONTESTLADYLIVE_STATE_WON 1
#define CONTESTLADYLIVE_STATE_LOST 2
#define CONTESTLADYLIVE_STATE_LOST_BADLY 3
#endif //GUARD_CONSTANTS_TV_H #endif //GUARD_CONSTANTS_TV_H
+6 -16
View File
@@ -47,7 +47,7 @@ enum ReflectionTypes
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18) #define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19) #define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
struct UnkStruct_085094AC struct StepAnimTable
{ {
const union AnimCmd *const *anims; const union AnimCmd *const *anims;
u8 animPos[4]; u8 animPos[4];
@@ -65,7 +65,6 @@ struct LockedAnimObjectEvents
u8 count; u8 count;
}; };
extern const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[];
extern const struct OamData gObjectEventBaseOam_32x8; extern const struct OamData gObjectEventBaseOam_32x8;
extern const struct OamData gObjectEventBaseOam_32x32; extern const struct OamData gObjectEventBaseOam_32x32;
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
@@ -87,9 +86,9 @@ void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8); void LoadSpecialObjectReflectionPalette(u16, u8);
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16); void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8); void PatchObjectPalette(u16, u8);
void sub_808E16C(s16, s16); void SpawnObjectEventsOnReturnToField(s16, s16);
void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void sub_8092FF0(s16, s16, s16 *, s16 *); void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *);
u8 GetFaceDirectionAnimNum(u8); u8 GetFaceDirectionAnimNum(u8);
void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16); void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16);
void ObjectEventClearHeldMovement(struct ObjectEvent *); void ObjectEventClearHeldMovement(struct ObjectEvent *);
@@ -111,7 +110,7 @@ void FreeAndReserveObjectSpritePalettes(void);
void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
void ResetObjectPriority(u8, u8, u8); void ResetObjectPriority(u8, u8, u8);
void SetObjectPriority(u8, u8, u8, u8); void SetObjectPriority(u8, u8, u8, u8);
void sub_808E75C(s16, s16); void AllowObjectAtPosTriggerGroundEffects(s16, s16);
void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup); void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup);
void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16); void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16);
void MoveObjectEventToMapCoords(struct ObjectEvent *, s16, s16); void MoveObjectEventToMapCoords(struct ObjectEvent *, s16, s16);
@@ -175,17 +174,8 @@ void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
bool8 IsZCoordMismatchAt(u8, s16, s16); bool8 IsZCoordMismatchAt(u8, s16, s16);
void UnfreezeObjectEvent(struct ObjectEvent *); void UnfreezeObjectEvent(struct ObjectEvent *);
u8 FindLockedObjectEventIndex(struct ObjectEvent *); u8 FindLockedObjectEventIndex(struct ObjectEvent *);
bool8 obj_npc_ministep(struct Sprite *sprite);
bool8 sub_80976EC(struct Sprite *sprite);
void sub_80976DC(struct Sprite *, u8);
void sub_809783C(struct Sprite *, u8, u8, u8);
void DoShadowFieldEffect(struct ObjectEvent *);
u8 sub_809785C(struct Sprite *);
u8 sub_80978E4(struct Sprite *);
void SetAndStartSpriteAnim(struct Sprite *, u8, u8); void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
bool8 SpriteAnimEnded(struct Sprite *); bool8 SpriteAnimEnded(struct Sprite *);
void CreateLevitateMovementTask(struct ObjectEvent *);
void DestroyExtraMovementTask(u8);
void UnfreezeObjectEvents(void); void UnfreezeObjectEvents(void);
void FreezeObjectEventsExceptOne(u8 objectEventId); void FreezeObjectEventsExceptOne(u8 objectEventId);
void TurnObjectEventSprite(u8, u8); void TurnObjectEventSprite(u8, u8);
@@ -196,9 +186,9 @@ u8 GetMoveDirectionFastAnimNum(u8);
u8 GetMoveDirectionFasterAnimNum(u8); u8 GetMoveDirectionFasterAnimNum(u8);
u8 GetMoveDirectionFastestAnimNum(u8); u8 GetMoveDirectionFastestAnimNum(u8);
u8 GetLedgeJumpDirection(s16, s16, u8); u8 GetLedgeJumpDirection(s16, s16, u8);
void CameraObjectSetFollowedObjectId(u8 objectId); void CameraObjectSetFollowedSpriteId(u8 objectId);
u16 GetObjectPaletteTag(u8 palSlot); u16 GetObjectPaletteTag(u8 palSlot);
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible);
s16 GetFigure8XOffset(s16 idx); s16 GetFigure8XOffset(s16 idx);
s16 GetFigure8YOffset(s16 idx); s16 GetFigure8YOffset(s16 idx);
void CameraObjectReset2(void); void CameraObjectReset2(void);
+5 -5
View File
@@ -344,10 +344,10 @@ extern const u8 gTVInSearchOfTrainersText05[];
extern const u8 gTVInSearchOfTrainersText06[]; extern const u8 gTVInSearchOfTrainersText06[];
extern const u8 gTVInSearchOfTrainersText07[]; extern const u8 gTVInSearchOfTrainersText07[];
extern const u8 gTVInSearchOfTrainersText08[]; extern const u8 gTVInSearchOfTrainersText08[];
extern const u8 gTVPokemonContestLiveUpdates2Text00[]; extern const u8 ContestLadyShow_Text_Intro[];
extern const u8 gTVPokemonContestLiveUpdates2Text01[]; extern const u8 ContestLadyShow_Text_Won[];
extern const u8 gTVPokemonContestLiveUpdates2Text02[]; extern const u8 ContestLadyShow_Text_Lost[];
extern const u8 gTVPokemonContestLiveUpdates2Text03[]; extern const u8 ContestLadyShow_Text_LostBadly[];
extern const u8 gPokeNewsTextSlateport_Upcoming[]; extern const u8 gPokeNewsTextSlateport_Upcoming[];
extern const u8 gPokeNewsTextSlateport_Ongoing[]; extern const u8 gPokeNewsTextSlateport_Ongoing[];
extern const u8 gPokeNewsTextSlateport_Ending[]; extern const u8 gPokeNewsTextSlateport_Ending[];
@@ -607,7 +607,7 @@ extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[];
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[]; extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[];
extern const u8 EventScript_TradeCenter_Chair1[]; extern const u8 EventScript_TradeCenter_Chair1[];
extern const u8 EventScript_TradeCenter_Chair0[]; extern const u8 EventScript_TradeCenter_Chair0[];
extern const u8 EventScript_ConfirmLeaveTradeRoom[]; extern const u8 EventScript_ConfirmLeaveCableClubRoom[];
extern const u8 EventScript_TerminateLink[]; extern const u8 EventScript_TerminateLink[];
#endif // GUARD_EVENT_SCRIPTS_H #endif // GUARD_EVENT_SCRIPTS_H
+1 -6
View File
@@ -1,8 +1,6 @@
#ifndef GUARD_FIELD_CAMERA_H #ifndef GUARD_FIELD_CAMERA_H
#define GUARD_FIELD_CAMERA_H #define GUARD_FIELD_CAMERA_H
// Exported type declarations
struct CameraObject struct CameraObject
{ {
void (*callback)(struct CameraObject *); void (*callback)(struct CameraObject *);
@@ -13,18 +11,15 @@ struct CameraObject
s32 y; s32 y;
}; };
// Exported RAM declarations
extern struct CameraObject gFieldCamera; extern struct CameraObject gFieldCamera;
extern u16 gTotalCameraPixelOffsetX; extern u16 gTotalCameraPixelOffsetX;
extern u16 gTotalCameraPixelOffsetY; extern u16 gTotalCameraPixelOffsetY;
// Exported ROM declarations
void DrawWholeMapView(void); void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y); void CurrentMapDrawMetatileAt(int x, int y);
void sub_8089C08(s16 *a0, s16 *a1); void GetCameraOffsetWithPan(s16 *a0, s16 *a1);
void DrawDoorMetatileAt(int x, int y, u16 *arr); void DrawDoorMetatileAt(int x, int y, u16 *arr);
void ResetFieldCamera(void); void ResetFieldCamera(void);
void sub_8057A58(void);
void ResetCameraUpdateInfo(void); void ResetCameraUpdateInfo(void);
u32 InitCameraUpdateCallback(u8 a); u32 InitCameraUpdateCallback(u8 a);
void CameraUpdate(void); void CameraUpdate(void);
+16 -10
View File
@@ -1,18 +1,24 @@
#ifndef GUARD_FIELD_EFFECT_HELPERS_H #ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H #define GUARD_FIELD_EFFECT_HELPERS_H
// Exported type declarations // States for bobbing up and down while surfing
enum {
// No bobbing
BOB_NONE,
// Both the surf blob/mon should bob up and down
BOB_PLAYER_AND_MON,
// Only the surf blob/mon should bob up and down
// For when the player has jumped/flown off
BOB_JUST_MON,
};
// Exported RAM declarations
// Exported ROM declarations
u8 CreateWarpArrowSprite(void); u8 CreateWarpArrowSprite(void);
u8 sub_8155800(u8 oldSpriteId); u8 StartUnderwaterSurfBlobBobbing(u8 oldSpriteId);
void SetSurfBobState(u8 spriteId, u8 value); void SetSurfBlob_BobState(u8 spriteId, u8 state);
void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value); void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 dontSync);
void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1); void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset);
bool8 sub_8155DA0(struct ObjectEvent *); bool8 UpdateRevealDisguise(struct ObjectEvent *);
void sub_8155D78(struct ObjectEvent *); void StartRevealDisguise(struct ObjectEvent *);
void StartAshFieldEffect(s16, s16, u16, s16); void StartAshFieldEffect(s16, s16, u16, s16);
void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8); void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8);
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*); u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*);
+1 -1
View File
@@ -6,7 +6,7 @@ void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8); void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8); u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8); bool8 TestPlayerAvatarFlags(u8);
u8 GetPlayerAvatarObjectId(void); u8 GetPlayerAvatarSpriteId(void);
void PlayerGetDestCoords(s16 *, s16 *); void PlayerGetDestCoords(s16 *, s16 *);
u8 GetPlayerFacingDirection(void); u8 GetPlayerFacingDirection(void);
u8 GetPlayerMovementDirection(void); u8 GetPlayerMovementDirection(void);
+49 -32
View File
@@ -4,6 +4,21 @@
#include "sprite.h" #include "sprite.h"
#include "constants/field_weather.h" #include "constants/field_weather.h"
#define TAG_WEATHER_START 0x1200
enum {
GFXTAG_CLOUD = TAG_WEATHER_START,
GFXTAG_FOG_H,
GFXTAG_ASH,
GFXTAG_FOG_D,
GFXTAG_SANDSTORM,
GFXTAG_BUBBLE,
GFXTAG_RAIN,
};
enum {
PALTAG_WEATHER = TAG_WEATHER_START,
PALTAG_WEATHER_2
};
struct Weather struct Weather
{ {
union union
@@ -31,12 +46,12 @@ struct Weather
u8 gammaStepDelay; u8 gammaStepDelay;
u8 gammaStepFrameCounter; u8 gammaStepFrameCounter;
u16 fadeDestColor; u16 fadeDestColor;
/*0x6C6*/ u8 palProcessingState; u8 palProcessingState;
/*0x6C7*/ u8 fadeScreenCounter; u8 fadeScreenCounter;
/*0x6C8*/ bool8 readyForInit; bool8 readyForInit;
/*0x6C9*/ u8 taskId; u8 taskId;
/*0x6CA*/ u8 unknown_6CA; u8 fadeInFirstFrame;
u8 unknown_6CB; u8 fadeInTimer;
u16 initStep; u16 initStep;
u16 finishStep; u16 finishStep;
u8 currWeather; u8 currWeather;
@@ -45,6 +60,7 @@ struct Weather
bool8 weatherChangeComplete; bool8 weatherChangeComplete;
u8 weatherPicSpritePalIndex; u8 weatherPicSpritePalIndex;
u8 altGammaSpritePalIndex; u8 altGammaSpritePalIndex;
// Rain
u16 rainSpriteVisibleCounter; u16 rainSpriteVisibleCounter;
u8 curRainSpriteIndex; u8 curRainSpriteIndex;
u8 targetRainSpriteCount; u8 targetRainSpriteCount;
@@ -52,37 +68,41 @@ struct Weather
u8 rainSpriteVisibleDelay; u8 rainSpriteVisibleDelay;
u8 isDownpour; u8 isDownpour;
u8 rainStrength; u8 rainStrength;
/*0x6DE*/ u8 cloudSpritesCreated; u8 cloudSpritesCreated;
u8 filler_6DF[1]; // Snow
u16 snowflakeVisibleCounter; u16 snowflakeVisibleCounter;
u16 unknown_6E2; u16 snowflakeTimer;
u8 snowflakeSpriteCount; u8 snowflakeSpriteCount;
u8 targetSnowflakeSpriteCount; u8 targetSnowflakeSpriteCount;
u16 unknown_6E6; // Thunderstorm
u16 thunderDelay;
u16 thunderCounter; u16 thunderCounter;
u8 unknown_6EA; bool8 thunderAllowEnd;
u8 unknown_6EB; bool8 thunderSkipShort;
u8 unknown_6EC; u8 thunderShortRetries;
u8 thunderTriggered; bool8 thunderTriggered;
// Horizontal fog
u16 fogHScrollPosX; u16 fogHScrollPosX;
u16 fogHScrollCounter; u16 fogHScrollCounter;
u16 fogHScrollOffset; u16 fogHScrollOffset;
u8 lightenedFogSpritePals[6]; u8 lightenedFogSpritePals[6];
u8 lightenedFogSpritePalsCount; u8 lightenedFogSpritePalsCount;
u8 fogHSpritesCreated; u8 fogHSpritesCreated;
// Ash
u16 ashBaseSpritesX; u16 ashBaseSpritesX;
u16 unknown_6FE; u16 ashUnused;
u8 ashSpritesCreated; u8 ashSpritesCreated;
u8 filler_701[3]; // Sandstorm
u32 sandstormXOffset; u32 sandstormXOffset;
u32 sandstormYOffset; u32 sandstormYOffset;
u8 filler_70C[2]; u16 sandstormUnused;
u16 sandstormBaseSpritesX; u16 sandstormBaseSpritesX;
u16 sandstormPosY; u16 sandstormPosY;
u16 sandstormWaveIndex; u16 sandstormWaveIndex;
u16 sandstormWaveCounter; u16 sandstormWaveCounter;
u8 sandstormSpritesCreated; u8 sandstormSpritesCreated;
u8 sandstormSwirlSpritesCreated; u8 sandstormSwirlSpritesCreated;
// Diagonal fog
u16 fogDBaseSpritesX; u16 fogDBaseSpritesX;
u16 fogDPosY; u16 fogDPosY;
u16 fogDScrollXCounter; u16 fogDScrollXCounter;
@@ -90,13 +110,13 @@ struct Weather
u16 fogDXOffset; u16 fogDXOffset;
u16 fogDYOffset; u16 fogDYOffset;
u8 fogDSpritesCreated; u8 fogDSpritesCreated;
u8 filler_725[1]; // Bubbles
u16 bubblesDelayCounter; u16 bubblesDelayCounter;
u16 bubblesDelayIndex; u16 bubblesDelayIndex;
u16 bubblesCoordsIndex; u16 bubblesCoordsIndex;
u16 bubblesSpriteCount; u16 bubblesSpriteCount;
u8 bubblesSpritesCreated; u8 bubblesSpritesCreated;
u8 filler_72F;
u16 currBlendEVA; u16 currBlendEVA;
u16 currBlendEVB; u16 currBlendEVB;
u16 targetBlendEVA; u16 targetBlendEVA;
@@ -104,12 +124,12 @@ struct Weather
u8 blendUpdateCounter; u8 blendUpdateCounter;
u8 blendFrameCounter; u8 blendFrameCounter;
u8 blendDelay; u8 blendDelay;
u8 filler_73B[0x3C-0x3B]; // Drought
s16 unknown_73C; s16 droughtBrightnessStage;
s16 unknown_73E; s16 droughtLastBrightnessStage;
s16 unknown_740; s16 droughtTimer;
s16 unknown_742; s16 droughtState;
u8 filler_744[0xD-4]; u8 droughtUnused[9];
s8 loadDroughtPalsIndex; s8 loadDroughtPalsIndex;
u8 loadDroughtPalsOffset; u8 loadDroughtPalsOffset;
}; };
@@ -126,29 +146,26 @@ void StartWeather(void);
void SetNextWeather(u8 weather); void SetNextWeather(u8 weather);
void SetCurrentAndNextWeather(u8 weather); void SetCurrentAndNextWeather(u8 weather);
void SetCurrentAndNextWeatherNoDelay(u8 weather); void SetCurrentAndNextWeatherNoDelay(u8 weather);
void sub_80ABC48(s8 gammaIndex); void ApplyWeatherGammaShiftIfIdle(s8 gammaIndex);
void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay); void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
void FadeScreen(u8 mode, s8 delay); void FadeScreen(u8 mode, s8 delay);
bool8 IsWeatherNotFadingIn(void); bool8 IsWeatherNotFadingIn(void);
void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex); void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex);
void ApplyWeatherGammaShiftToPal(u8 paletteIndex); void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
u8 sub_80ABF20(void);
void LoadCustomWeatherSpritePalette(const u16 *palette); void LoadCustomWeatherSpritePalette(const u16 *palette);
void ResetDroughtWeatherPaletteLoading(void); void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void); bool8 LoadDroughtWeatherPalettes(void);
void sub_80ABFE0(s8 gammaIndex); void DroughtStateInit(void);
void sub_80ABFF0(void); void DroughtStateRun(void);
void sub_80AC01C(void);
void Weather_SetBlendCoeffs(u8 eva, u8 evb); void Weather_SetBlendCoeffs(u8 eva, u8 evb);
void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay); void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay);
bool8 Weather_UpdateBlend(void); bool8 Weather_UpdateBlend(void);
void sub_80AC274(u8 a);
u8 GetCurrentWeather(void); u8 GetCurrentWeather(void);
void SetRainStrengthFromSoundEffect(u16 soundEffect); void SetRainStrengthFromSoundEffect(u16 soundEffect);
void PlayRainStoppingSoundEffect(void); void PlayRainStoppingSoundEffect(void);
u8 IsWeatherChangeComplete(void); u8 IsWeatherChangeComplete(void);
void SetWeatherScreenFadeOut(void); void SetWeatherScreenFadeOut(void);
void sub_80AC3E4(void); void SetWeatherPalStateIdle(void);
void PreservePaletteInWeather(u8 preservedPalIndex); void PreservePaletteInWeather(u8 preservedPalIndex);
void ResetPreservedPalettesInWeather(void); void ResetPreservedPalettesInWeather(void);
+2 -5
View File
@@ -20,16 +20,13 @@ void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16*, u16*); void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(int, int); bool8 MapGridIsImpassableAt(int, int);
int GetMapBorderIdAt(int x, int y); int GetMapBorderIdAt(int x, int y);
int CanCameraMoveInDirection(int direction); bool32 CanCameraMoveInDirection(int direction);
u16 GetBehaviorByMetatileId(u16 metatileId); u16 GetBehaviorByMetatileId(u16 metatileId);
void GetCameraFocusCoords(u16 *x, u16 *y); void GetCameraFocusCoords(u16 *x, u16 *y);
u8 MapGridGetMetatileLayerTypeAt(int x, int y); u8 MapGridGetMetatileLayerTypeAt(int x, int y);
u8 MapGridGetZCoordAt(int x, int y); u8 MapGridGetZCoordAt(int x, int y);
bool8 CameraMove(int deltaX, int deltaY); bool8 CameraMove(int deltaX, int deltaY);
struct MapConnection *sub_8088950(u8 direction, int x, int y); void SaveMapView(void);
bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
void save_serialize_map(void);
void SetCameraFocusCoords(u16 x, u16 y); void SetCameraFocusCoords(u16 x, u16 y);
void InitMap(void); void InitMap(void);
void InitMapFromSavedGame(void); void InitMapFromSavedGame(void);
+4 -1
View File
@@ -1,6 +1,7 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H #ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H
#define METATILE_BEHAVIOR_MASK 0x00FF
#define METATILE_COLLISION_MASK 0x0C00 #define METATILE_COLLISION_MASK 0x0C00
#define METATILE_ID_MASK 0x03FF #define METATILE_ID_MASK 0x03FF
#define METATILE_ID_UNDEFINED 0x03FF #define METATILE_ID_UNDEFINED 0x03FF
@@ -12,7 +13,9 @@
enum enum
{ {
CONNECTION_SOUTH = 1, CONNECTION_INVALID = -1,
CONNECTION_NONE,
CONNECTION_SOUTH,
CONNECTION_NORTH, CONNECTION_NORTH,
CONNECTION_WEST, CONNECTION_WEST,
CONNECTION_EAST, CONNECTION_EAST,
-10
View File
@@ -1055,14 +1055,4 @@ struct MapPosition
s8 height; s8 height;
}; };
struct TradeRoomPlayer
{
u8 playerId;
u8 isLocalPlayer;
u8 c;
u8 facing;
struct MapPosition pos;
u16 field_C;
};
#endif // GUARD_GLOBAL_H #endif // GUARD_GLOBAL_H
+2 -2
View File
@@ -179,7 +179,7 @@ typedef union // size = 0x24
/*0x18*/ u8 idolNameLanguage; /*0x18*/ u8 idolNameLanguage;
} fanClubSpecial; } fanClubSpecial;
// TVSHOW_CONTEST_LIVE_UPDATES_2 // TVSHOW_LILYCOVE_CONTEST_LADY
struct { struct {
/*0x00*/ u8 kind; /*0x00*/ u8 kind;
/*0x01*/ bool8 active; /*0x01*/ bool8 active;
@@ -189,7 +189,7 @@ typedef union // size = 0x24
/*0x16*/ u8 pokeblockState; /*0x16*/ u8 pokeblockState;
/*0x17*/ u8 language; /*0x17*/ u8 language;
/*0x18*/ u8 pokemonNameLanguage; /*0x18*/ u8 pokemonNameLanguage;
} contestLiveUpdates2; } contestLady;
// Record Mixing Shows // Record Mixing Shows
// TVSHOW_POKEMON_TODAY_CAUGHT // TVSHOW_POKEMON_TODAY_CAUGHT
+1 -1
View File
@@ -12,6 +12,6 @@ void BufferContestLadyMonName(u8 *dest1, u8 *dest2);
void BufferContestLadyPlayerName(u8 *dest); void BufferContestLadyPlayerName(u8 *dest);
void BufferContestLadyLanguage(u8 *dest); void BufferContestLadyLanguage(u8 *dest);
void BufferContestName(u8 *dest, u8 category); void BufferContestName(u8 *dest, u8 category);
u8 sub_818E880(void); u8 GetContestLadyPokeblockState(void);
#endif //GUARD_LILYCOVE_LADY_H #endif //GUARD_LILYCOVE_LADY_H
+8 -9
View File
@@ -7,17 +7,17 @@
#define LINK_KEY_CODE_DPAD_UP 0x13 #define LINK_KEY_CODE_DPAD_UP 0x13
#define LINK_KEY_CODE_DPAD_LEFT 0x14 #define LINK_KEY_CODE_DPAD_LEFT 0x14
#define LINK_KEY_CODE_DPAD_RIGHT 0x15 #define LINK_KEY_CODE_DPAD_RIGHT 0x15
#define LINK_KEY_CODE_UNK_2 0x16 #define LINK_KEY_CODE_READY 0x16
#define LINK_KEY_CODE_EXIT_ROOM 0x17 #define LINK_KEY_CODE_EXIT_ROOM 0x17
#define LINK_KEY_CODE_START_BUTTON 0x18 #define LINK_KEY_CODE_START_BUTTON 0x18
#define LINK_KEY_CODE_A_BUTTON 0x19 #define LINK_KEY_CODE_A_BUTTON 0x19
#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button? #define LINK_KEY_CODE_IDLE 0x1A
// These two are a hack to stop user input until link stuff can be // These two are a hack to stop user input until link stuff can be
// resolved. // resolved.
#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B #define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B
#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C #define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C
#define LINK_KEY_CODE_UNK_7 0x1D #define LINK_KEY_CODE_EXIT_SEAT 0x1D
#define LINK_KEY_CODE_UNK_8 0x1E #define LINK_KEY_CODE_UNK_8 0x1E
#define MOVEMENT_MODE_FREE 0 #define MOVEMENT_MODE_FREE 0
@@ -143,15 +143,14 @@ void CB2_ReturnToFieldFromMultiplayer(void);
void CB2_ReturnToFieldWithOpenMenu(void); void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_ReturnToFieldContinueScript(void); void CB2_ReturnToFieldContinueScript(void);
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void sub_80861E8(void); void CB2_ReturnToFieldFadeFromBlack(void);
void CB2_ContinueSavedGame(void); void CB2_ContinueSavedGame(void);
void ResetAllMultiplayerState(void); void ResetAllMultiplayerState(void);
u32 sub_8087214(void); u32 GetCableClubPartnersReady(void);
bool32 sub_808727C(void); u16 SetInCableClubSeat(void);
u16 sub_8087288(void); u16 SetLinkWaitingForScript(void);
u16 sub_808729C(void);
u16 QueueExitLinkRoomKey(void); u16 QueueExitLinkRoomKey(void);
u16 sub_80872C4(void); u16 SetStartedCableClubActivity(void);
bool32 Overworld_LinkRecvQueueLengthMoreThan2(void); bool32 Overworld_LinkRecvQueueLengthMoreThan2(void);
bool32 Overworld_RecvKeysFromLinkIsRunning(void); bool32 Overworld_RecvKeysFromLinkIsRunning(void);
bool32 Overworld_SendKeysToLinkIsRunning(void); bool32 Overworld_SendKeysToLinkIsRunning(void);
+16 -15
View File
@@ -789,7 +789,7 @@ static u8 GetAI_ItemType(u8 itemId, const u8 *itemEffect) // NOTE: should take u
else if (itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0) else if (itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0)
return AI_ITEM_X_STAT; return AI_ITEM_X_STAT;
else if (itemEffect[3] & ITEM3_GUARD_SPEC) else if (itemEffect[3] & ITEM3_GUARD_SPEC)
return AI_ITEM_GUARD_SPECS; return AI_ITEM_GUARD_SPEC;
else else
return AI_ITEM_NOT_RECOGNIZABLE; return AI_ITEM_NOT_RECOGNIZABLE;
} }
@@ -863,32 +863,33 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0;
if (itemEffects[3] & ITEM3_SLEEP && gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) if (itemEffects[3] & ITEM3_SLEEP && gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_SLEEP);
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & ITEM3_POISON && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON)) if (itemEffects[3] & ITEM3_POISON && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON
|| gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON))
{ {
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x10; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_POISON);
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & ITEM3_BURN && gBattleMons[gActiveBattler].status1 & STATUS1_BURN) if (itemEffects[3] & ITEM3_BURN && gBattleMons[gActiveBattler].status1 & STATUS1_BURN)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_BURN);
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & ITEM3_FREEZE && gBattleMons[gActiveBattler].status1 & STATUS1_FREEZE) if (itemEffects[3] & ITEM3_FREEZE && gBattleMons[gActiveBattler].status1 & STATUS1_FREEZE)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_FREEZE);
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & ITEM3_PARALYSIS && gBattleMons[gActiveBattler].status1 & STATUS1_PARALYSIS) if (itemEffects[3] & ITEM3_PARALYSIS && gBattleMons[gActiveBattler].status1 & STATUS1_PARALYSIS)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_PARALYSIS);
shouldUse = TRUE; shouldUse = TRUE;
} }
if (itemEffects[3] & ITEM3_CONFUSION && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) if (itemEffects[3] & ITEM3_CONFUSION && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)
{ {
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_HEAL_CONFUSION);
shouldUse = TRUE; shouldUse = TRUE;
} }
break; break;
@@ -897,20 +898,20 @@ static bool8 ShouldUseItem(void)
if (gDisableStructs[gActiveBattler].isFirstTurn == 0) if (gDisableStructs[gActiveBattler].isFirstTurn == 0)
break; break;
if (itemEffects[0] & ITEM0_X_ATTACK) if (itemEffects[0] & ITEM0_X_ATTACK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK);
if (itemEffects[1] & ITEM1_X_DEFEND) if (itemEffects[1] & ITEM1_X_DEFEND)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_DEFEND);
if (itemEffects[1] & ITEM1_X_SPEED) if (itemEffects[1] & ITEM1_X_SPEED)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPEED);
if (itemEffects[2] & ITEM2_X_SPATK) if (itemEffects[2] & ITEM2_X_SPATK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPATK);
if (itemEffects[2] & ITEM2_X_ACCURACY) if (itemEffects[2] & ITEM2_X_ACCURACY)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY);
if (itemEffects[0] & ITEM0_DIRE_HIT) if (itemEffects[0] & ITEM0_DIRE_HIT)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x80; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT);
shouldUse = TRUE; shouldUse = TRUE;
break; break;
case AI_ITEM_GUARD_SPECS: case AI_ITEM_GUARD_SPEC:
battlerSide = GetBattlerSide(gActiveBattler); battlerSide = GetBattlerSide(gActiveBattler);
if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[battlerSide].mistTimer == 0) if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[battlerSide].mistTimer == 0)
shouldUse = TRUE; shouldUse = TRUE;
+3 -3
View File
@@ -74,7 +74,7 @@ static void LinkOpponentHandleSetUnkVar(void);
static void LinkOpponentHandleClearUnkFlag(void); static void LinkOpponentHandleClearUnkFlag(void);
static void LinkOpponentHandleToggleUnkFlag(void); static void LinkOpponentHandleToggleUnkFlag(void);
static void LinkOpponentHandleHitAnimation(void); static void LinkOpponentHandleHitAnimation(void);
static void LinkOpponentHandleCmd42(void); static void LinkOpponentHandleCantSwitch(void);
static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlaySE(void);
static void LinkOpponentHandlePlayFanfareOrBGM(void); static void LinkOpponentHandlePlayFanfareOrBGM(void);
static void LinkOpponentHandleFaintingCry(void); static void LinkOpponentHandleFaintingCry(void);
@@ -146,7 +146,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = LinkOpponentHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = LinkOpponentHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = LinkOpponentHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = LinkOpponentHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = LinkOpponentHandleHitAnimation, [CONTROLLER_HITANIMATION] = LinkOpponentHandleHitAnimation,
[CONTROLLER_42] = LinkOpponentHandleCmd42, [CONTROLLER_CANTSWITCH] = LinkOpponentHandleCantSwitch,
[CONTROLLER_PLAYSE] = LinkOpponentHandlePlaySE, [CONTROLLER_PLAYSE] = LinkOpponentHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = LinkOpponentHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = LinkOpponentHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = LinkOpponentHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = LinkOpponentHandleFaintingCry,
@@ -1647,7 +1647,7 @@ static void LinkOpponentHandleHitAnimation(void)
} }
} }
static void LinkOpponentHandleCmd42(void) static void LinkOpponentHandleCantSwitch(void)
{ {
LinkOpponentBufferExecCompleted(); LinkOpponentBufferExecCompleted();
} }
+3 -3
View File
@@ -72,7 +72,7 @@ static void LinkPartnerHandleSetUnkVar(void);
static void LinkPartnerHandleClearUnkFlag(void); static void LinkPartnerHandleClearUnkFlag(void);
static void LinkPartnerHandleToggleUnkFlag(void); static void LinkPartnerHandleToggleUnkFlag(void);
static void LinkPartnerHandleHitAnimation(void); static void LinkPartnerHandleHitAnimation(void);
static void LinkPartnerHandleCmd42(void); static void LinkPartnerHandleCantSwitch(void);
static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlaySE(void);
static void LinkPartnerHandlePlayFanfareOrBGM(void); static void LinkPartnerHandlePlayFanfareOrBGM(void);
static void LinkPartnerHandleFaintingCry(void); static void LinkPartnerHandleFaintingCry(void);
@@ -143,7 +143,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = LinkPartnerHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = LinkPartnerHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = LinkPartnerHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = LinkPartnerHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = LinkPartnerHandleHitAnimation, [CONTROLLER_HITANIMATION] = LinkPartnerHandleHitAnimation,
[CONTROLLER_42] = LinkPartnerHandleCmd42, [CONTROLLER_CANTSWITCH] = LinkPartnerHandleCantSwitch,
[CONTROLLER_PLAYSE] = LinkPartnerHandlePlaySE, [CONTROLLER_PLAYSE] = LinkPartnerHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = LinkPartnerHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = LinkPartnerHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = LinkPartnerHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = LinkPartnerHandleFaintingCry,
@@ -1477,7 +1477,7 @@ static void LinkPartnerHandleHitAnimation(void)
} }
} }
static void LinkPartnerHandleCmd42(void) static void LinkPartnerHandleCantSwitch(void)
{ {
LinkPartnerBufferExecCompleted(); LinkPartnerBufferExecCompleted();
} }
+3 -3
View File
@@ -79,7 +79,7 @@ static void OpponentHandleSetUnkVar(void);
static void OpponentHandleClearUnkFlag(void); static void OpponentHandleClearUnkFlag(void);
static void OpponentHandleToggleUnkFlag(void); static void OpponentHandleToggleUnkFlag(void);
static void OpponentHandleHitAnimation(void); static void OpponentHandleHitAnimation(void);
static void OpponentHandleCmd42(void); static void OpponentHandleCantSwitch(void);
static void OpponentHandlePlaySE(void); static void OpponentHandlePlaySE(void);
static void OpponentHandlePlayFanfareOrBGM(void); static void OpponentHandlePlayFanfareOrBGM(void);
static void OpponentHandleFaintingCry(void); static void OpponentHandleFaintingCry(void);
@@ -151,7 +151,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = OpponentHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = OpponentHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = OpponentHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = OpponentHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = OpponentHandleHitAnimation, [CONTROLLER_HITANIMATION] = OpponentHandleHitAnimation,
[CONTROLLER_42] = OpponentHandleCmd42, [CONTROLLER_CANTSWITCH] = OpponentHandleCantSwitch,
[CONTROLLER_PLAYSE] = OpponentHandlePlaySE, [CONTROLLER_PLAYSE] = OpponentHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = OpponentHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = OpponentHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = OpponentHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = OpponentHandleFaintingCry,
@@ -1813,7 +1813,7 @@ static void OpponentHandleHitAnimation(void)
} }
} }
static void OpponentHandleCmd42(void) static void OpponentHandleCantSwitch(void)
{ {
OpponentBufferExecCompleted(); OpponentBufferExecCompleted();
} }
+3 -3
View File
@@ -80,7 +80,7 @@ static void PlayerHandleSetUnkVar(void);
static void PlayerHandleClearUnkFlag(void); static void PlayerHandleClearUnkFlag(void);
static void PlayerHandleToggleUnkFlag(void); static void PlayerHandleToggleUnkFlag(void);
static void PlayerHandleHitAnimation(void); static void PlayerHandleHitAnimation(void);
static void PlayerHandleCmd42(void); static void PlayerHandleCantSwitch(void);
static void PlayerHandlePlaySE(void); static void PlayerHandlePlaySE(void);
static void PlayerHandlePlayFanfareOrBGM(void); static void PlayerHandlePlayFanfareOrBGM(void);
static void PlayerHandleFaintingCry(void); static void PlayerHandleFaintingCry(void);
@@ -167,7 +167,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = PlayerHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = PlayerHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = PlayerHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = PlayerHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = PlayerHandleHitAnimation, [CONTROLLER_HITANIMATION] = PlayerHandleHitAnimation,
[CONTROLLER_42] = PlayerHandleCmd42, [CONTROLLER_CANTSWITCH] = PlayerHandleCantSwitch,
[CONTROLLER_PLAYSE] = PlayerHandlePlaySE, [CONTROLLER_PLAYSE] = PlayerHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = PlayerHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = PlayerHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = PlayerHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = PlayerHandleFaintingCry,
@@ -2890,7 +2890,7 @@ static void PlayerHandleHitAnimation(void)
} }
} }
static void PlayerHandleCmd42(void) static void PlayerHandleCantSwitch(void)
{ {
PlayerBufferExecCompleted(); PlayerBufferExecCompleted();
} }
+3 -3
View File
@@ -70,7 +70,7 @@ static void PlayerPartnerHandleSetUnkVar(void);
static void PlayerPartnerHandleClearUnkFlag(void); static void PlayerPartnerHandleClearUnkFlag(void);
static void PlayerPartnerHandleToggleUnkFlag(void); static void PlayerPartnerHandleToggleUnkFlag(void);
static void PlayerPartnerHandleHitAnimation(void); static void PlayerPartnerHandleHitAnimation(void);
static void PlayerPartnerHandleCmd42(void); static void PlayerPartnerHandleCantSwitch(void);
static void PlayerPartnerHandlePlaySE(void); static void PlayerPartnerHandlePlaySE(void);
static void PlayerPartnerHandlePlayFanfareOrBGM(void); static void PlayerPartnerHandlePlayFanfareOrBGM(void);
static void PlayerPartnerHandleFaintingCry(void); static void PlayerPartnerHandleFaintingCry(void);
@@ -146,7 +146,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = PlayerPartnerHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = PlayerPartnerHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = PlayerPartnerHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = PlayerPartnerHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = PlayerPartnerHandleHitAnimation, [CONTROLLER_HITANIMATION] = PlayerPartnerHandleHitAnimation,
[CONTROLLER_42] = PlayerPartnerHandleCmd42, [CONTROLLER_CANTSWITCH] = PlayerPartnerHandleCantSwitch,
[CONTROLLER_PLAYSE] = PlayerPartnerHandlePlaySE, [CONTROLLER_PLAYSE] = PlayerPartnerHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = PlayerPartnerHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = PlayerPartnerHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = PlayerPartnerHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = PlayerPartnerHandleFaintingCry,
@@ -1727,7 +1727,7 @@ static void PlayerPartnerHandleHitAnimation(void)
} }
} }
static void PlayerPartnerHandleCmd42(void) static void PlayerPartnerHandleCantSwitch(void)
{ {
PlayerPartnerBufferExecCompleted(); PlayerPartnerBufferExecCompleted();
} }
+3 -3
View File
@@ -74,7 +74,7 @@ static void RecordedOpponentHandleSetUnkVar(void);
static void RecordedOpponentHandleClearUnkFlag(void); static void RecordedOpponentHandleClearUnkFlag(void);
static void RecordedOpponentHandleToggleUnkFlag(void); static void RecordedOpponentHandleToggleUnkFlag(void);
static void RecordedOpponentHandleHitAnimation(void); static void RecordedOpponentHandleHitAnimation(void);
static void RecordedOpponentHandleCmd42(void); static void RecordedOpponentHandleCantSwitch(void);
static void RecordedOpponentHandlePlaySE(void); static void RecordedOpponentHandlePlaySE(void);
static void RecordedOpponentHandlePlayFanfareOrBGM(void); static void RecordedOpponentHandlePlayFanfareOrBGM(void);
static void RecordedOpponentHandleFaintingCry(void); static void RecordedOpponentHandleFaintingCry(void);
@@ -146,7 +146,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void
[CONTROLLER_CLEARUNKFLAG] = RecordedOpponentHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = RecordedOpponentHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = RecordedOpponentHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = RecordedOpponentHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = RecordedOpponentHandleHitAnimation, [CONTROLLER_HITANIMATION] = RecordedOpponentHandleHitAnimation,
[CONTROLLER_42] = RecordedOpponentHandleCmd42, [CONTROLLER_CANTSWITCH] = RecordedOpponentHandleCantSwitch,
[CONTROLLER_PLAYSE] = RecordedOpponentHandlePlaySE, [CONTROLLER_PLAYSE] = RecordedOpponentHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = RecordedOpponentHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = RecordedOpponentHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = RecordedOpponentHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = RecordedOpponentHandleFaintingCry,
@@ -1587,7 +1587,7 @@ static void RecordedOpponentHandleHitAnimation(void)
} }
} }
static void RecordedOpponentHandleCmd42(void) static void RecordedOpponentHandleCantSwitch(void)
{ {
RecordedOpponentBufferExecCompleted(); RecordedOpponentBufferExecCompleted();
} }
+3 -3
View File
@@ -70,7 +70,7 @@ static void RecordedPlayerHandleSetUnkVar(void);
static void RecordedPlayerHandleClearUnkFlag(void); static void RecordedPlayerHandleClearUnkFlag(void);
static void RecordedPlayerHandleToggleUnkFlag(void); static void RecordedPlayerHandleToggleUnkFlag(void);
static void RecordedPlayerHandleHitAnimation(void); static void RecordedPlayerHandleHitAnimation(void);
static void RecordedPlayerHandleCmd42(void); static void RecordedPlayerHandleCantSwitch(void);
static void RecordedPlayerHandlePlaySE(void); static void RecordedPlayerHandlePlaySE(void);
static void RecordedPlayerHandlePlayFanfareOrBGM(void); static void RecordedPlayerHandlePlayFanfareOrBGM(void);
static void RecordedPlayerHandleFaintingCry(void); static void RecordedPlayerHandleFaintingCry(void);
@@ -141,7 +141,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void)
[CONTROLLER_CLEARUNKFLAG] = RecordedPlayerHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = RecordedPlayerHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = RecordedPlayerHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = RecordedPlayerHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = RecordedPlayerHandleHitAnimation, [CONTROLLER_HITANIMATION] = RecordedPlayerHandleHitAnimation,
[CONTROLLER_42] = RecordedPlayerHandleCmd42, [CONTROLLER_CANTSWITCH] = RecordedPlayerHandleCantSwitch,
[CONTROLLER_PLAYSE] = RecordedPlayerHandlePlaySE, [CONTROLLER_PLAYSE] = RecordedPlayerHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = RecordedPlayerHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = RecordedPlayerHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = RecordedPlayerHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = RecordedPlayerHandleFaintingCry,
@@ -1610,7 +1610,7 @@ static void RecordedPlayerHandleHitAnimation(void)
} }
} }
static void RecordedPlayerHandleCmd42(void) static void RecordedPlayerHandleCantSwitch(void)
{ {
RecordedPlayerBufferExecCompleted(); RecordedPlayerBufferExecCompleted();
} }
+3 -3
View File
@@ -67,7 +67,7 @@ static void SafariHandleSetUnkVar(void);
static void SafariHandleClearUnkFlag(void); static void SafariHandleClearUnkFlag(void);
static void SafariHandleToggleUnkFlag(void); static void SafariHandleToggleUnkFlag(void);
static void SafariHandleHitAnimation(void); static void SafariHandleHitAnimation(void);
static void SafariHandleCmd42(void); static void SafariHandleCantSwitch(void);
static void SafariHandlePlaySE(void); static void SafariHandlePlaySE(void);
static void SafariHandlePlayFanfareOrBGM(void); static void SafariHandlePlayFanfareOrBGM(void);
static void SafariHandleFaintingCry(void); static void SafariHandleFaintingCry(void);
@@ -131,7 +131,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = SafariHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = SafariHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = SafariHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = SafariHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = SafariHandleHitAnimation, [CONTROLLER_HITANIMATION] = SafariHandleHitAnimation,
[CONTROLLER_42] = SafariHandleCmd42, [CONTROLLER_CANTSWITCH] = SafariHandleCantSwitch,
[CONTROLLER_PLAYSE] = SafariHandlePlaySE, [CONTROLLER_PLAYSE] = SafariHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = SafariHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = SafariHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = SafariHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = SafariHandleFaintingCry,
@@ -580,7 +580,7 @@ static void SafariHandleHitAnimation(void)
SafariBufferExecCompleted(); SafariBufferExecCompleted();
} }
static void SafariHandleCmd42(void) static void SafariHandleCantSwitch(void)
{ {
SafariBufferExecCompleted(); SafariBufferExecCompleted();
} }
+9 -9
View File
@@ -75,7 +75,7 @@ static void WallyHandleSetUnkVar(void);
static void WallyHandleClearUnkFlag(void); static void WallyHandleClearUnkFlag(void);
static void WallyHandleToggleUnkFlag(void); static void WallyHandleToggleUnkFlag(void);
static void WallyHandleHitAnimation(void); static void WallyHandleHitAnimation(void);
static void WallyHandleCmd42(void); static void WallyHandleCantSwitch(void);
static void WallyHandlePlaySE(void); static void WallyHandlePlaySE(void);
static void WallyHandlePlayFanfareOrBGM(void); static void WallyHandlePlayFanfareOrBGM(void);
static void WallyHandleFaintingCry(void); static void WallyHandleFaintingCry(void);
@@ -144,7 +144,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
[CONTROLLER_CLEARUNKFLAG] = WallyHandleClearUnkFlag, [CONTROLLER_CLEARUNKFLAG] = WallyHandleClearUnkFlag,
[CONTROLLER_TOGGLEUNKFLAG] = WallyHandleToggleUnkFlag, [CONTROLLER_TOGGLEUNKFLAG] = WallyHandleToggleUnkFlag,
[CONTROLLER_HITANIMATION] = WallyHandleHitAnimation, [CONTROLLER_HITANIMATION] = WallyHandleHitAnimation,
[CONTROLLER_42] = WallyHandleCmd42, [CONTROLLER_CANTSWITCH] = WallyHandleCantSwitch,
[CONTROLLER_PLAYSE] = WallyHandlePlaySE, [CONTROLLER_PLAYSE] = WallyHandlePlaySE,
[CONTROLLER_PLAYFANFAREORBGM] = WallyHandlePlayFanfareOrBGM, [CONTROLLER_PLAYFANFAREORBGM] = WallyHandlePlayFanfareOrBGM,
[CONTROLLER_FAINTINGCRY] = WallyHandleFaintingCry, [CONTROLLER_FAINTINGCRY] = WallyHandleFaintingCry,
@@ -190,7 +190,7 @@ static void WallyHandleActions(void)
switch (gBattleStruct->wallyBattleState) switch (gBattleStruct->wallyBattleState)
{ {
case 0: case 0:
gBattleStruct->wallyWaitFrames = 64; gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG;
gBattleStruct->wallyBattleState++; gBattleStruct->wallyBattleState++;
case 1: case 1:
if (--gBattleStruct->wallyWaitFrames == 0) if (--gBattleStruct->wallyWaitFrames == 0)
@@ -200,7 +200,7 @@ static void WallyHandleActions(void)
WallyBufferExecCompleted(); WallyBufferExecCompleted();
gBattleStruct->wallyBattleState++; gBattleStruct->wallyBattleState++;
gBattleStruct->wallyMovesState = 0; gBattleStruct->wallyMovesState = 0;
gBattleStruct->wallyWaitFrames = 64; gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG;
} }
break; break;
case 2: case 2:
@@ -211,17 +211,17 @@ static void WallyHandleActions(void)
WallyBufferExecCompleted(); WallyBufferExecCompleted();
gBattleStruct->wallyBattleState++; gBattleStruct->wallyBattleState++;
gBattleStruct->wallyMovesState = 0; gBattleStruct->wallyMovesState = 0;
gBattleStruct->wallyWaitFrames = 64; gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG;
} }
break; break;
case 3: case 3:
if (--gBattleStruct->wallyWaitFrames == 0) if (--gBattleStruct->wallyWaitFrames == 0)
{ {
BtlController_EmitTwoReturnValues(1, 9, 0); BtlController_EmitTwoReturnValues(1, B_ACTION_WALLY_THROW, 0);
WallyBufferExecCompleted(); WallyBufferExecCompleted();
gBattleStruct->wallyBattleState++; gBattleStruct->wallyBattleState++;
gBattleStruct->wallyMovesState = 0; gBattleStruct->wallyMovesState = 0;
gBattleStruct->wallyWaitFrames = 64; gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG;
} }
break; break;
case 4: case 4:
@@ -230,7 +230,7 @@ static void WallyHandleActions(void)
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
ActionSelectionDestroyCursorAt(0); ActionSelectionDestroyCursorAt(0);
ActionSelectionCreateCursorAt(1, 0); ActionSelectionCreateCursorAt(1, 0);
gBattleStruct->wallyWaitFrames = 64; gBattleStruct->wallyWaitFrames = B_WAIT_TIME_LONG;
gBattleStruct->wallyBattleState++; gBattleStruct->wallyBattleState++;
} }
break; break;
@@ -1385,7 +1385,7 @@ static void WallyHandleHitAnimation(void)
} }
} }
static void WallyHandleCmd42(void) static void WallyHandleCantSwitch(void)
{ {
WallyBufferExecCompleted(); WallyBufferExecCompleted();
} }
+5 -5
View File
@@ -1385,12 +1385,12 @@ void BtlController_EmitHitAnimation(u8 bufferId)
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
void BtlController_EmitCmd42(u8 bufferId) void BtlController_EmitCantSwitch(u8 bufferId)
{ {
sBattleBuffersTransferData[0] = CONTROLLER_42; sBattleBuffersTransferData[0] = CONTROLLER_CANTSWITCH;
sBattleBuffersTransferData[1] = CONTROLLER_42; sBattleBuffersTransferData[1] = CONTROLLER_CANTSWITCH;
sBattleBuffersTransferData[2] = CONTROLLER_42; sBattleBuffersTransferData[2] = CONTROLLER_CANTSWITCH;
sBattleBuffersTransferData[3] = CONTROLLER_42; sBattleBuffersTransferData[3] = CONTROLLER_CANTSWITCH;
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
} }
+2 -2
View File
@@ -5397,7 +5397,7 @@ static void Task_ShowTourneyTree(u8 taskId)
{ {
if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER)
{ {
textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY; textPrinter.fgColor = TEXT_COLOR_LIGHT_GRAY;
textPrinter.shadowColor = TEXT_COLOR_RED; textPrinter.shadowColor = TEXT_COLOR_RED;
} }
else else
@@ -5410,7 +5410,7 @@ static void Task_ShowTourneyTree(u8 taskId)
{ {
if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER)
{ {
textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY; textPrinter.fgColor = TEXT_COLOR_LIGHT_GRAY;
textPrinter.shadowColor = TEXT_COLOR_RED; textPrinter.shadowColor = TEXT_COLOR_RED;
} }
else else
+2 -2
View File
@@ -402,7 +402,7 @@ static const struct WindowTemplate sSelect_WindowTemplates[] =
}; };
static const u16 sSelectText_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/text.gbapal"); static const u16 sSelectText_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/text.gbapal");
static const u8 sMenuOptionTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_TRANSPARENT}; static const u8 sMenuOptionTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_TRANSPARENT};
static const u8 sSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT}; static const u8 sSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT};
static const struct OamData sOam_Select_Pokeball = static const struct OamData sOam_Select_Pokeball =
@@ -1024,7 +1024,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] =
}; };
static const u16 sSwapText_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/text.gbapal"); // Identical to sSelectText_Pal static const u16 sSwapText_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/text.gbapal"); // Identical to sSelectText_Pal
static const u8 sSwapMenuOptionsTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_TRANSPARENT}; static const u8 sSwapMenuOptionsTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_TRANSPARENT};
static const u8 sSwapSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT}; static const u8 sSwapSpeciesNameTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_TRANSPARENT};
#define SWAPACTION_MON 1 #define SWAPACTION_MON 1
+5 -5
View File
@@ -3959,7 +3959,7 @@ u8 IsRunningFromBattleImpossible(void)
{ {
gBattleScripting.battler = i; gBattleScripting.battler = i;
gLastUsedAbility = gBattleMons[i].ability; gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE;
return 2; return 2;
} }
if (side != GetBattlerSide(i) if (side != GetBattlerSide(i)
@@ -3969,7 +3969,7 @@ u8 IsRunningFromBattleImpossible(void)
{ {
gBattleScripting.battler = i; gBattleScripting.battler = i;
gLastUsedAbility = gBattleMons[i].ability; gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE;
return 2; return 2;
} }
} }
@@ -3978,18 +3978,18 @@ u8 IsRunningFromBattleImpossible(void)
{ {
gBattleScripting.battler = i - 1; gBattleScripting.battler = i - 1;
gLastUsedAbility = gBattleMons[i - 1].ability; gLastUsedAbility = gBattleMons[i - 1].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE;
return 2; return 2;
} }
if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED))
|| (gStatuses3[gActiveBattler] & STATUS3_ROOTED)) || (gStatuses3[gActiveBattler] & STATUS3_ROOTED))
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE;
return 1; return 1;
} }
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DONT_LEAVE_BIRCH;
return 1; return 1;
} }
return 0; return 0;
+176 -95
View File
@@ -305,11 +305,11 @@ static const u8 sText_StatSharply[] = _("sharply ");
const u8 gText_StatRose[] = _("rose!"); const u8 gText_StatRose[] = _("rose!");
static const u8 sText_StatHarshly[] = _("harshly "); static const u8 sText_StatHarshly[] = _("harshly ");
static const u8 sText_StatFell[] = _("fell!"); static const u8 sText_StatFell[] = _("fell!");
static const u8 sText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_AttackersStatRose[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); const u8 gText_DefendersStatRose[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
static const u8 sText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); static const u8 sText_UsingItemTheStatOfPkmnRose[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}");
static const u8 sText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_AttackersStatFell[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
static const u8 sText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); static const u8 sText_DefendersStatFell[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}");
static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!"); static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!");
static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!");
static const u8 sText_CriticalHit[] = _("A critical hit!"); static const u8 sText_CriticalHit[] = _("A critical hit!");
@@ -721,10 +721,10 @@ const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] =
[STRINGID_STATROSE - 12] = gText_StatRose, [STRINGID_STATROSE - 12] = gText_StatRose,
[STRINGID_STATHARSHLY - 12] = sText_StatHarshly, [STRINGID_STATHARSHLY - 12] = sText_StatHarshly,
[STRINGID_STATFELL - 12] = sText_StatFell, [STRINGID_STATFELL - 12] = sText_StatFell,
[STRINGID_PKMNSSTATCHANGED - 12] = sText_PkmnsStatChanged, [STRINGID_ATTACKERSSTATROSE - 12] = sText_AttackersStatRose,
[STRINGID_PKMNSSTATCHANGED2 - 12] = gText_PkmnsStatChanged2, [STRINGID_DEFENDERSSTATROSE - 12] = gText_DefendersStatRose,
[STRINGID_PKMNSSTATCHANGED3 - 12] = sText_PkmnsStatChanged3, [STRINGID_ATTACKERSSTATFELL - 12] = sText_AttackersStatFell,
[STRINGID_PKMNSSTATCHANGED4 - 12] = sText_PkmnsStatChanged4, [STRINGID_DEFENDERSSTATFELL - 12] = sText_DefendersStatFell,
[STRINGID_CRITICALHIT - 12] = sText_CriticalHit, [STRINGID_CRITICALHIT - 12] = sText_CriticalHit,
[STRINGID_ONEHITKO - 12] = sText_OneHitKO, [STRINGID_ONEHITKO - 12] = sText_OneHitKO,
[STRINGID_123POOF - 12] = sText_123Poof, [STRINGID_123POOF - 12] = sText_123Poof,
@@ -833,7 +833,7 @@ const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] =
[STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma, [STRINGID_SOOTHINGAROMA - 12] = sText_SoothingAroma,
[STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow, [STRINGID_ITEMSCANTBEUSEDNOW - 12] = sText_ItemsCantBeUsedNow,
[STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ, [STRINGID_FORXCOMMAYZ - 12] = sText_ForXCommaYZ,
[STRINGID_USINGXTHEYOFZN - 12] = sText_UsingXTheYOfZN, [STRINGID_USINGITEMSTATOFPKMNROSE - 12] = sText_UsingItemTheStatOfPkmnRose,
[STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped, [STRINGID_PKMNUSEDXTOGETPUMPED - 12] = sText_PkmnUsedXToGetPumped,
[STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless, [STRINGID_PKMNSXMADEYUSELESS - 12] = sText_PkmnsXMadeYUseless,
[STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb, [STRINGID_PKMNTRAPPEDBYSANDTOMB - 12] = sText_PkmnTrappedBySandTomb,
@@ -893,112 +893,149 @@ const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] =
const u16 gMissStringIds[] = const u16 gMissStringIds[] =
{ {
STRINGID_ATTACKMISSED, STRINGID_PKMNPROTECTEDITSELF, [B_MSG_MISSED] = STRINGID_ATTACKMISSED,
STRINGID_PKMNAVOIDEDATTACK, STRINGID_AVOIDEDDAMAGE, [B_MSG_PROTECTED] = STRINGID_PKMNPROTECTEDITSELF,
STRINGID_PKMNMAKESGROUNDMISS [B_MSG_AVOIDED_ATK] = STRINGID_PKMNAVOIDEDATTACK,
[B_MSG_AVOIDED_DMG] = STRINGID_AVOIDEDDAMAGE,
[B_MSG_GROUND_MISS] = STRINGID_PKMNMAKESGROUNDMISS
}; };
const u16 gNoEscapeStringIds[] = const u16 gNoEscapeStringIds[] =
{ {
STRINGID_CANTESCAPE, STRINGID_DONTLEAVEBIRCH, STRINGID_PREVENTSESCAPE, [B_MSG_CANT_ESCAPE] = STRINGID_CANTESCAPE,
STRINGID_CANTESCAPE2, STRINGID_ATTACKERCANTESCAPE [B_MSG_DONT_LEAVE_BIRCH] = STRINGID_DONTLEAVEBIRCH,
[B_MSG_PREVENTS_ESCAPE] = STRINGID_PREVENTSESCAPE,
[B_MSG_CANT_ESCAPE_2] = STRINGID_CANTESCAPE2,
[B_MSG_ATTACKER_CANT_ESCAPE] = STRINGID_ATTACKERCANTESCAPE
}; };
const u16 gMoveWeatherChangeStringIds[] = const u16 gMoveWeatherChangeStringIds[] =
{ {
STRINGID_STARTEDTORAIN, STRINGID_DOWNPOURSTARTED, STRINGID_BUTITFAILED, [B_MSG_STARTED_RAIN] = STRINGID_STARTEDTORAIN,
STRINGID_SANDSTORMBREWED, STRINGID_SUNLIGHTGOTBRIGHT, STRINGID_STARTEDHAIL [B_MSG_STARTED_DOWNPOUR] = STRINGID_DOWNPOURSTARTED, // Unused
[B_MSG_WEATHER_FAILED] = STRINGID_BUTITFAILED,
[B_MSG_STARTED_SANDSTORM] = STRINGID_SANDSTORMBREWED,
[B_MSG_STARTED_SUNLIGHT] = STRINGID_SUNLIGHTGOTBRIGHT,
[B_MSG_STARTED_HAIL] = STRINGID_STARTEDHAIL,
}; };
const u16 gSandStormHailContinuesStringIds[] = const u16 gSandStormHailContinuesStringIds[] =
{ {
STRINGID_SANDSTORMRAGES, STRINGID_HAILCONTINUES [B_MSG_SANDSTORM] = STRINGID_SANDSTORMRAGES,
[B_MSG_HAIL] = STRINGID_HAILCONTINUES
}; };
const u16 gSandStormHailDmgStringIds[] = const u16 gSandStormHailDmgStringIds[] =
{ {
STRINGID_PKMNBUFFETEDBYSANDSTORM, STRINGID_PKMNPELTEDBYHAIL [B_MSG_SANDSTORM] = STRINGID_PKMNBUFFETEDBYSANDSTORM,
[B_MSG_HAIL] = STRINGID_PKMNPELTEDBYHAIL
}; };
const u16 gSandStormHailEndStringIds[] = const u16 gSandStormHailEndStringIds[] =
{ {
STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED [B_MSG_SANDSTORM] = STRINGID_SANDSTORMSUBSIDED,
[B_MSG_HAIL] = STRINGID_HAILSTOPPED
}; };
const u16 gRainContinuesStringIds[] = const u16 gRainContinuesStringIds[] =
{ {
STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, STRINGID_RAINSTOPPED [B_MSG_RAIN_CONTINUES] = STRINGID_RAINCONTINUES,
[B_MSG_DOWNPOUR_CONTINUES] = STRINGID_DOWNPOURCONTINUES,
[B_MSG_RAIN_STOPPED] = STRINGID_RAINSTOPPED
}; };
const u16 gProtectLikeUsedStringIds[] = const u16 gProtectLikeUsedStringIds[] =
{ {
STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, STRINGID_BUTITFAILED [B_MSG_PROTECTED_ITSELF] = STRINGID_PKMNPROTECTEDITSELF2,
[B_MSG_BRACED_ITSELF] = STRINGID_PKMNBRACEDITSELF,
[B_MSG_PROTECT_FAILED] = STRINGID_BUTITFAILED,
}; };
const u16 gReflectLightScreenSafeguardStringIds[] = const u16 gReflectLightScreenSafeguardStringIds[] =
{ {
STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, STRINGID_PKMNRAISEDDEFALITTLE, [B_MSG_SIDE_STATUS_FAILED] = STRINGID_BUTITFAILED,
STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, STRINGID_PKMNCOVEREDBYVEIL [B_MSG_SET_REFLECT_SINGLE] = STRINGID_PKMNRAISEDDEF,
[B_MSG_SET_REFLECT_DOUBLE] = STRINGID_PKMNRAISEDDEFALITTLE,
[B_MSG_SET_LIGHTSCREEN_SINGLE] = STRINGID_PKMNRAISEDSPDEF,
[B_MSG_SET_LIGHTSCREEN_DOUBLE] = STRINGID_PKMNRAISEDSPDEFALITTLE,
[B_MSG_SET_SAFEGUARD] = STRINGID_PKMNCOVEREDBYVEIL,
}; };
const u16 gLeechSeedStringIds[] = const u16 gLeechSeedStringIds[] =
{ {
STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, [B_MSG_LEECH_SEED_SET] = STRINGID_PKMNSEEDED,
STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE, [B_MSG_LEECH_SEED_MISS] = STRINGID_PKMNEVADEDATTACK,
[B_MSG_LEECH_SEED_FAIL] = STRINGID_ITDOESNTAFFECT,
[B_MSG_LEECH_SEED_DRAIN] = STRINGID_PKMNSAPPEDBYLEECHSEED,
[B_MSG_LEECH_SEED_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE,
}; };
const u16 gRestUsedStringIds[] = const u16 gRestUsedStringIds[] =
{ {
STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY [B_MSG_REST] = STRINGID_PKMNWENTTOSLEEP,
[B_MSG_REST_STATUSED] = STRINGID_PKMNSLEPTHEALTHY
}; };
const u16 gUproarOverTurnStringIds[] = const u16 gUproarOverTurnStringIds[] =
{ {
STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN [B_MSG_UPROAR_CONTINUES] = STRINGID_PKMNMAKINGUPROAR,
[B_MSG_UPROAR_ENDS] = STRINGID_PKMNCALMEDDOWN
}; };
const u16 gStockpileUsedStringIds[] = const u16 gStockpileUsedStringIds[] =
{ {
STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE, [B_MSG_STOCKPILED] = STRINGID_PKMNSTOCKPILED,
[B_MSG_CANT_STOCKPILE] = STRINGID_PKMNCANTSTOCKPILE,
}; };
const u16 gWokeUpStringIds[] = const u16 gWokeUpStringIds[] =
{ {
STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR [B_MSG_WOKE_UP] = STRINGID_PKMNWOKEUP,
[B_MSG_WOKE_UP_UPROAR] = STRINGID_PKMNWOKEUPINUPROAR
}; };
const u16 gSwallowFailStringIds[] = const u16 gSwallowFailStringIds[] =
{ {
STRINGID_FAILEDTOSWALLOW, STRINGID_PKMNHPFULL [B_MSG_SWALLOW_FAILED] = STRINGID_FAILEDTOSWALLOW,
[B_MSG_SWALLOW_FULL_HP] = STRINGID_PKMNHPFULL
}; };
const u16 gUproarAwakeStringIds[] = const u16 gUproarAwakeStringIds[] =
{ {
STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, STRINGID_PKMNSTAYEDAWAKEUSING [B_MSG_CANT_SLEEP_UPROAR] = STRINGID_PKMNCANTSLEEPINUPROAR2,
[B_MSG_UPROAR_KEPT_AWAKE] = STRINGID_UPROARKEPTPKMNAWAKE,
[B_MSG_STAYED_AWAKE_USING] = STRINGID_PKMNSTAYEDAWAKEUSING,
}; };
const u16 gStatUpStringIds[] = const u16 gStatUpStringIds[] =
{ {
STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, STRINGID_STATSWONTINCREASE, [B_MSG_ATTACKER_STAT_ROSE] = STRINGID_ATTACKERSSTATROSE,
STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, STRINGID_PKMNUSEDXTOGETPUMPED [B_MSG_DEFENDER_STAT_ROSE] = STRINGID_DEFENDERSSTATROSE,
[B_MSG_STAT_WONT_INCREASE] = STRINGID_STATSWONTINCREASE,
[B_MSG_STAT_ROSE_EMPTY] = STRINGID_EMPTYSTRING3,
[B_MSG_STAT_ROSE_ITEM] = STRINGID_USINGITEMSTATOFPKMNROSE,
[B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED,
}; };
const u16 gStatDownStringIds[] = const u16 gStatDownStringIds[] =
{ {
STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3 [B_MSG_ATTACKER_STAT_FELL] = STRINGID_ATTACKERSSTATFELL,
[B_MSG_DEFENDER_STAT_FELL] = STRINGID_DEFENDERSSTATFELL,
[B_MSG_STAT_WONT_DECREASE] = STRINGID_STATSWONTDECREASE,
[B_MSG_STAT_FELL_EMPTY] = STRINGID_EMPTYSTRING3,
}; };
// Index read from sTWOTURN_STRINGID // Index read from sTWOTURN_STRINGID
const u16 gFirstTurnOfTwoStringIds[] = const u16 gFirstTurnOfTwoStringIds[] =
{ {
STRINGID_PKMNWHIPPEDWHIRLWIND, // MOVE_RAZOR_WIND [B_MSG_TURN1_RAZOR_WIND] = STRINGID_PKMNWHIPPEDWHIRLWIND,
STRINGID_PKMNTOOKSUNLIGHT, // MOVE_SOLAR_BEAM [B_MSG_TURN1_SOLAR_BEAM] = STRINGID_PKMNTOOKSUNLIGHT,
STRINGID_PKMNLOWEREDHEAD, // MOVE_SKULL_BASH [B_MSG_TURN1_SKULL_BASH] = STRINGID_PKMNLOWEREDHEAD,
STRINGID_PKMNISGLOWING, // MOVE_SKY_ATTACK [B_MSG_TURN1_SKY_ATTACK] = STRINGID_PKMNISGLOWING,
STRINGID_PKMNFLEWHIGH, // MOVE_FLY [B_MSG_TURN1_FLY] = STRINGID_PKMNFLEWHIGH,
STRINGID_PKMNDUGHOLE, // MOVE_DIG [B_MSG_TURN1_DIG] = STRINGID_PKMNDUGHOLE,
STRINGID_PKMNHIDUNDERWATER, // MOVE_DIVE [B_MSG_TURN1_DIVE] = STRINGID_PKMNHIDUNDERWATER,
STRINGID_PKMNSPRANGUP // MOVE_BOUNCE [B_MSG_TURN1_BOUNCE] = STRINGID_PKMNSPRANGUP,
}; };
// Index copied from move's index in gTrappingMoves // Index copied from move's index in gTrappingMoves
@@ -1014,89 +1051,109 @@ const u16 gWrappedStringIds[] =
const u16 gMistUsedStringIds[] = const u16 gMistUsedStringIds[] =
{ {
STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED [B_MSG_SET_MIST] = STRINGID_PKMNSHROUDEDINMIST,
[B_MSG_MIST_FAILED] = STRINGID_BUTITFAILED
}; };
const u16 gFocusEnergyUsedStringIds[] = const u16 gFocusEnergyUsedStringIds[] =
{ {
STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED [B_MSG_GETTING_PUMPED] = STRINGID_PKMNGETTINGPUMPED,
[B_MSG_FOCUS_ENERGY_FAILED] = STRINGID_BUTITFAILED
}; };
const u16 gTransformUsedStringIds[] = const u16 gTransformUsedStringIds[] =
{ {
STRINGID_PKMNTRANSFORMEDINTO, STRINGID_BUTITFAILED [B_MSG_TRANSFORMED] = STRINGID_PKMNTRANSFORMEDINTO,
[B_MSG_TRANSFORM_FAILED] = STRINGID_BUTITFAILED
}; };
const u16 gSubsituteUsedStringIds[] = const u16 gSubsituteUsedStringIds[] =
{ {
STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE [B_MSG_SET_SUBSTITUTE] = STRINGID_PKMNMADESUBSTITUTE,
[B_MSG_SUBSTITUTE_FAILED] = STRINGID_TOOWEAKFORSUBSTITUTE
}; };
const u16 gGotPoisonedStringIds[] = const u16 gGotPoisonedStringIds[] =
{ {
STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY [B_MSG_STATUSED] = STRINGID_PKMNWASPOISONED,
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNPOISONEDBY
}; };
const u16 gGotParalyzedStringIds[] = const u16 gGotParalyzedStringIds[] =
{ {
STRINGID_PKMNWASPARALYZED, STRINGID_PKMNWASPARALYZEDBY [B_MSG_STATUSED] = STRINGID_PKMNWASPARALYZED,
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNWASPARALYZEDBY
}; };
const u16 gFellAsleepStringIds[] = const u16 gFellAsleepStringIds[] =
{ {
STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP, [B_MSG_STATUSED] = STRINGID_PKMNFELLASLEEP,
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNMADESLEEP,
}; };
const u16 gGotBurnedStringIds[] = const u16 gGotBurnedStringIds[] =
{ {
STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY [B_MSG_STATUSED] = STRINGID_PKMNWASBURNED,
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNBURNEDBY
}; };
const u16 gGotFrozenStringIds[] = const u16 gGotFrozenStringIds[] =
{ {
STRINGID_PKMNWASFROZEN, STRINGID_PKMNFROZENBY [B_MSG_STATUSED] = STRINGID_PKMNWASFROZEN,
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNFROZENBY
}; };
const u16 gGotDefrostedStringIds[] = const u16 gGotDefrostedStringIds[] =
{ {
STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY [B_MSG_DEFROSTED] = STRINGID_PKMNWASDEFROSTED2,
[B_MSG_DEFROSTED_BY_MOVE] = STRINGID_PKMNWASDEFROSTEDBY
}; };
const u16 gKOFailedStringIds[] = const u16 gKOFailedStringIds[] =
{ {
STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED [B_MSG_KO_MISS] = STRINGID_ATTACKMISSED,
[B_MSG_KO_UNAFFECTED] = STRINGID_PKMNUNAFFECTED
}; };
const u16 gAttractUsedStringIds[] = const u16 gAttractUsedStringIds[] =
{ {
STRINGID_PKMNFELLINLOVE, STRINGID_PKMNSXINFATUATEDY [B_MSG_STATUSED] = STRINGID_PKMNFELLINLOVE,
[B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNSXINFATUATEDY
}; };
const u16 gLeechSeedDrainStringIds[] = const u16 gAbsorbDrainStringIds[] =
{ {
STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE [B_MSG_ABSORB] = STRINGID_PKMNENERGYDRAINED,
[B_MSG_ABSORB_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE
}; };
const u16 gSportsUsedStringIds[] = const u16 gSportsUsedStringIds[] =
{ {
STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED [B_MSG_WEAKEN_ELECTRIC] = STRINGID_ELECTRICITYWEAKENED,
[B_MSG_WEAKEN_FIRE] = STRINGID_FIREWEAKENED
}; };
const u16 gPartyStatusHealStringIds[] = const u16 gPartyStatusHealStringIds[] =
{ {
STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, [B_MSG_BELL] = STRINGID_BELLCHIMED,
// interesting how there are four instances of the same string [B_MSG_BELL_SOUNDPROOF_ATTACKER] = STRINGID_BELLCHIMED,
STRINGID_SOOTHINGAROMA [B_MSG_BELL_SOUNDPROOF_PARTNER] = STRINGID_BELLCHIMED,
[B_MSG_BELL_BOTH_SOUNDPROOF] = STRINGID_BELLCHIMED,
[B_MSG_SOOTHING_AROMA] = STRINGID_SOOTHINGAROMA
}; };
const u16 gFutureMoveUsedStringIds[] = const u16 gFutureMoveUsedStringIds[] =
{ {
STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY [B_MSG_FUTURE_SIGHT] = STRINGID_PKMNFORESAWATTACK,
[B_MSG_DOOM_DESIRE] = STRINGID_PKMNCHOSEXASDESTINY
}; };
const u16 gBallEscapeStringIds[] = const u16 gBallEscapeStringIds[] =
{ {
STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE [BALL_NO_SHAKES] = STRINGID_PKMNBROKEFREE,
[BALL_1_SHAKE] = STRINGID_ITAPPEAREDCAUGHT,
[BALL_2_SHAKES] = STRINGID_AARGHALMOSTHADIT,
[BALL_3_SHAKES_FAIL] = STRINGID_SHOOTSOCLOSE
}; };
// Overworld weathers that don't have an associated battle weather default to "It is raining." // Overworld weathers that don't have an associated battle weather default to "It is raining."
@@ -1122,59 +1179,82 @@ const u16 gWeatherStartsStringIds[] =
const u16 gInobedientStringIds[] = const u16 gInobedientStringIds[] =
{ {
STRINGID_PKMNLOAFING, STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, [B_MSG_LOAFING] = STRINGID_PKMNLOAFING,
STRINGID_PKMNPRETENDNOTNOTICE, STRINGID_PKMNINCAPABLEOFPOWER [B_MSG_WONT_OBEY] = STRINGID_PKMNWONTOBEY,
[B_MSG_TURNED_AWAY] = STRINGID_PKMNTURNEDAWAY,
[B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE,
[B_MSG_INCAPABLE_OF_POWER] = STRINGID_PKMNINCAPABLEOFPOWER
}; };
const u16 gSafariGetNearStringIds[] = const u16 gSafariGetNearStringIds[] =
{ {
STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER [B_MSG_CREPT_CLOSER] = STRINGID_CREPTCLOSER,
[B_MSG_CANT_GET_CLOSER] = STRINGID_CANTGETCLOSER
}; };
const u16 gSafariPokeblockResultStringIds[] = const u16 gSafariPokeblockResultStringIds[] =
{ {
STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX [B_MSG_MON_CURIOUS] = STRINGID_PKMNCURIOUSABOUTX,
[B_MSG_MON_ENTHRALLED] = STRINGID_PKMNENTHRALLEDBYX,
[B_MSG_MON_IGNORED] = STRINGID_PKMNIGNOREDX
}; };
const u16 gTrainerItemCuredStatusStringIds[] = const u16 gTrainerItemCuredStatusStringIds[] =
{ {
STRINGID_PKMNSITEMSNAPPEDOUT, STRINGID_PKMNSITEMCUREDPARALYSIS, STRINGID_PKMNSITEMDEFROSTEDIT, [AI_HEAL_CONFUSION] = STRINGID_PKMNSITEMSNAPPEDOUT,
STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT [AI_HEAL_PARALYSIS] = STRINGID_PKMNSITEMCUREDPARALYSIS,
[AI_HEAL_FREEZE] = STRINGID_PKMNSITEMDEFROSTEDIT,
[AI_HEAL_BURN] = STRINGID_PKMNSITEMHEALEDBURN,
[AI_HEAL_POISON] = STRINGID_PKMNSITEMCUREDPOISON,
[AI_HEAL_SLEEP] = STRINGID_PKMNSITEMWOKEIT
}; };
const u16 gBerryEffectStringIds[] = const u16 gBerryEffectStringIds[] =
{ {
STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS [B_MSG_CURED_PROBLEM] = STRINGID_PKMNSITEMCUREDPROBLEM,
[B_MSG_NORMALIZED_STATUS] = STRINGID_PKMNSITEMNORMALIZEDSTATUS
}; };
const u16 gBRNPreventionStringIds[] = const u16 gBRNPreventionStringIds[] =
{ {
STRINGID_PKMNSXPREVENTSBURNS, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNSXPREVENTSBURNS,
[B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ,
[B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY
}; };
const u16 gPRLZPreventionStringIds[] = const u16 gPRLZPreventionStringIds[] =
{ {
STRINGID_PKMNPREVENTSPARALYSISWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPARALYSISWITH,
[B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ,
[B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY
}; };
const u16 gPSNPreventionStringIds[] = const u16 gPSNPreventionStringIds[] =
{ {
STRINGID_PKMNPREVENTSPOISONINGWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPOISONINGWITH,
[B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ,
[B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY
}; };
const u16 gItemSwapStringIds[] = const u16 gItemSwapStringIds[] =
{ {
STRINGID_PKMNOBTAINEDX, STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ [B_MSG_ITEM_SWAP_TAKEN] = STRINGID_PKMNOBTAINEDX,
[B_MSG_ITEM_SWAP_GIVEN] = STRINGID_PKMNOBTAINEDX2,
[B_MSG_ITEM_SWAP_BOTH] = STRINGID_PKMNOBTAINEDXYOBTAINEDZ
}; };
const u16 gFlashFireStringIds[] = const u16 gFlashFireStringIds[] =
{ {
STRINGID_PKMNRAISEDFIREPOWERWITH, STRINGID_PKMNSXMADEYINEFFECTIVE [B_MSG_FLASH_FIRE_BOOST] = STRINGID_PKMNRAISEDFIREPOWERWITH,
[B_MSG_FLASH_FIRE_NO_BOOST] = STRINGID_PKMNSXMADEYINEFFECTIVE
}; };
const u16 gCaughtMonStringIds[] = const u16 gCaughtMonStringIds[] =
{ {
STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL, [B_MSG_SENT_SOMEONES_PC] = STRINGID_PKMNTRANSFERREDSOMEONESPC,
[B_MSG_SENT_LANETTES_PC] = STRINGID_PKMNTRANSFERREDLANETTESPC,
[B_MSG_SOMEONES_BOX_FULL] = STRINGID_PKMNBOXSOMEONESPCFULL,
[B_MSG_LANETTES_BOX_FULL] = STRINGID_PKMNBOXLANETTESPCFULL,
}; };
const u16 gTrappingMoves[] = const u16 gTrappingMoves[] =
@@ -1216,14 +1296,15 @@ static const u8 sText_Defense[] = _("DEFENSE");
static const u8 sText_SpAtk[] = _("SP. ATK"); static const u8 sText_SpAtk[] = _("SP. ATK");
static const u8 sText_SpDef[] = _("SP. DEF"); static const u8 sText_SpDef[] = _("SP. DEF");
const u8 * const gStatNamesTable2[] = // Unused
static const u8 * const sStatNamesTable2[] =
{ {
sText_HP, sText_SpAtk, sText_Attack, sText_HP, sText_SpAtk, sText_Attack,
sText_SpDef, sText_Defense, sText_Speed sText_SpDef, sText_Defense, sText_Speed
}; };
const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GREY}SAFARI BALLS"); const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GRAY}SAFARI BALLS");
const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GREY}Left: $" "{HIGHLIGHT DARK_GREY}"); const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GRAY}Left: $" "{HIGHLIGHT DARK_GRAY}");
const u8 gText_Sleep[] = _("sleep"); const u8 gText_Sleep[] = _("sleep");
const u8 gText_Poison[] = _("poison"); const u8 gText_Poison[] = _("poison");
const u8 gText_Burn[] = _("burn"); const u8 gText_Burn[] = _("burn");
@@ -1309,10 +1390,10 @@ static const u8 sText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is
const u16 gBattlePalaceFlavorTextTable[] = const u16 gBattlePalaceFlavorTextTable[] =
{ {
STRINGID_GLINTAPPEARSINEYE, [B_MSG_GLINT_IN_EYE] = STRINGID_GLINTAPPEARSINEYE,
STRINGID_PKMNGETTINGINTOPOSITION, [B_MSG_GETTING_IN_POS] = STRINGID_PKMNGETTINGINTOPOSITION,
STRINGID_PKMNBEGANGROWLINGDEEPLY, [B_MSG_GROWL_DEEPLY] = STRINGID_PKMNBEGANGROWLINGDEEPLY,
STRINGID_PKMNEAGERFORMORE [B_MSG_EAGER_FOR_MORE] = STRINGID_PKMNEAGERFORMORE,
}; };
static const u8 sText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); static const u8 sText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!");
@@ -1320,9 +1401,9 @@ static const u8 sText_RefThatsIt[] = _("REFEREE: That's it! We will now go to\nj
static const u8 sText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p"); static const u8 sText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p");
static const u8 sText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p"); static const u8 sText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p");
static const u8 sText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p"); static const u8 sText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p");
static const u8 sText_RefJudgement1[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p"); static const u8 sText_RefPlayerWon[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p");
static const u8 sText_RefJudgement2[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p"); static const u8 sText_RefOpponentWon[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p");
static const u8 sText_RefJudgement3[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); static const u8 sText_RefDraw[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p");
static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!");
static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!");
static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!");
@@ -1330,15 +1411,15 @@ static const u8 sText_RefCommenceBattle[] = _("REFEREE: {B_PLAYER_MON1_NAME} VS
const u8 * const gRefereeStringsTable[] = const u8 * const gRefereeStringsTable[] =
{ {
sText_RefIfNothingIsDecided, [B_MSG_REF_NOTHING_IS_DECIDED] = sText_RefIfNothingIsDecided,
sText_RefThatsIt, [B_MSG_REF_THATS_IT] = sText_RefThatsIt,
sText_RefJudgeMind, [B_MSG_REF_JUDGE_MIND] = sText_RefJudgeMind,
sText_RefJudgeSkill, [B_MSG_REF_JUDGE_SKILL] = sText_RefJudgeSkill,
sText_RefJudgeBody, [B_MSG_REF_JUDGE_BODY] = sText_RefJudgeBody,
sText_RefJudgement1, [B_MSG_REF_PLAYER_WON] = sText_RefPlayerWon,
sText_RefJudgement2, [B_MSG_REF_OPPONENT_WON] = sText_RefOpponentWon,
sText_RefJudgement3, [B_MSG_REF_DRAW] = sText_RefDraw,
sText_RefCommenceBattle, [B_MSG_REF_COMMENCE_BATTLE] = sText_RefCommenceBattle,
}; };
static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?"); static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?");
+1 -1
View File
@@ -711,7 +711,7 @@ static void SavePikeChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0); VarSet(VAR_TEMP_0, 0);
gSaveBlock2Ptr->frontier.challengePaused = TRUE; gSaveBlock2Ptr->frontier.challengePaused = TRUE;
save_serialize_map(); SaveMapView();
TrySavingData(SAVE_LINK); TrySavingData(SAVE_LINK);
} }
+1 -1
View File
@@ -933,7 +933,7 @@ static void SavePyramidChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0); VarSet(VAR_TEMP_0, 0);
gSaveBlock2Ptr->frontier.challengePaused = TRUE; gSaveBlock2Ptr->frontier.challengePaused = TRUE;
save_serialize_map(); SaveMapView();
TrySavingData(SAVE_LINK); TrySavingData(SAVE_LINK);
} }
+151 -148
View File
@@ -876,34 +876,33 @@ const ALIGNED(4) u8 gBattlePalaceNatureToMoveGroupLikelihood[NUM_NATURES][4] =
[NATURE_QUIRKY] = PALACE_STYLE(56, 22, 56, 22) // 22%, 22% [NATURE_QUIRKY] = PALACE_STYLE(56, 22, 56, 22) // 22%, 22%
}; };
// Indices into gBattlePalaceFlavorTextTable
static const u8 sBattlePalaceNatureToFlavorTextId[NUM_NATURES] = static const u8 sBattlePalaceNatureToFlavorTextId[NUM_NATURES] =
{ {
[NATURE_HARDY] = 3, [NATURE_HARDY] = B_MSG_EAGER_FOR_MORE,
[NATURE_LONELY] = 0, [NATURE_LONELY] = B_MSG_GLINT_IN_EYE,
[NATURE_BRAVE] = 1, [NATURE_BRAVE] = B_MSG_GETTING_IN_POS,
[NATURE_ADAMANT] = 0, [NATURE_ADAMANT] = B_MSG_GLINT_IN_EYE,
[NATURE_NAUGHTY] = 0, [NATURE_NAUGHTY] = B_MSG_GLINT_IN_EYE,
[NATURE_BOLD] = 1, [NATURE_BOLD] = B_MSG_GETTING_IN_POS,
[NATURE_DOCILE] = 3, [NATURE_DOCILE] = B_MSG_EAGER_FOR_MORE,
[NATURE_RELAXED] = 0, [NATURE_RELAXED] = B_MSG_GLINT_IN_EYE,
[NATURE_IMPISH] = 1, [NATURE_IMPISH] = B_MSG_GETTING_IN_POS,
[NATURE_LAX] = 2, [NATURE_LAX] = B_MSG_GROWL_DEEPLY,
[NATURE_TIMID] = 2, [NATURE_TIMID] = B_MSG_GROWL_DEEPLY,
[NATURE_HASTY] = 0, [NATURE_HASTY] = B_MSG_GLINT_IN_EYE,
[NATURE_SERIOUS] = 3, [NATURE_SERIOUS] = B_MSG_EAGER_FOR_MORE,
[NATURE_JOLLY] = 1, [NATURE_JOLLY] = B_MSG_GETTING_IN_POS,
[NATURE_NAIVE] = 3, [NATURE_NAIVE] = B_MSG_EAGER_FOR_MORE,
[NATURE_MODEST] = 1, [NATURE_MODEST] = B_MSG_GETTING_IN_POS,
[NATURE_MILD] = 2, [NATURE_MILD] = B_MSG_GROWL_DEEPLY,
[NATURE_QUIET] = 3, [NATURE_QUIET] = B_MSG_EAGER_FOR_MORE,
[NATURE_BASHFUL] = 3, [NATURE_BASHFUL] = B_MSG_EAGER_FOR_MORE,
[NATURE_RASH] = 2, [NATURE_RASH] = B_MSG_GROWL_DEEPLY,
[NATURE_CALM] = 1, [NATURE_CALM] = B_MSG_GETTING_IN_POS,
[NATURE_GENTLE] = 0, [NATURE_GENTLE] = B_MSG_GLINT_IN_EYE,
[NATURE_SASSY] = 2, [NATURE_SASSY] = B_MSG_GROWL_DEEPLY,
[NATURE_CAREFUL] = 2, [NATURE_CAREFUL] = B_MSG_GROWL_DEEPLY,
[NATURE_QUIRKY] = 3, [NATURE_QUIRKY] = B_MSG_EAGER_FOR_MORE,
}; };
static void Cmd_attackcanceler(void) static void Cmd_attackcanceler(void)
@@ -991,7 +990,7 @@ static void Cmd_attackcanceler(void)
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gLastLandedMoves[gBattlerTarget] = 0; gLastLandedMoves[gBattlerTarget] = 0;
gLastHitByType[gBattlerTarget] = 0; gLastHitByType[gBattlerTarget] = 0;
gBattleCommunication[6] = 1; gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED;
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
else else
@@ -1024,7 +1023,7 @@ static void Cmd_jumpifaffectedbyprotect(void)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(5, 0); JumpIfMoveFailed(5, 0);
gBattleCommunication[6] = 1; gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED;
} }
else else
{ {
@@ -1039,7 +1038,7 @@ bool8 JumpIfMoveAffectedByProtect(u16 move)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move); JumpIfMoveFailed(7, move);
gBattleCommunication[6] = 1; gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED;
affected = TRUE; affected = TRUE;
} }
return affected; return affected;
@@ -1172,9 +1171,9 @@ static void Cmd_accuracycheck(void)
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE &&
(gBattleMoves[move].target == MOVE_TARGET_BOTH || gBattleMoves[move].target == MOVE_TARGET_FOES_AND_ALLY)) (gBattleMoves[move].target == MOVE_TARGET_BOTH || gBattleMoves[move].target == MOVE_TARGET_FOES_AND_ALLY))
gBattleCommunication[6] = 2; gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_ATK;
else else
gBattleCommunication[6] = 0; gBattleCommunication[MISS_TYPE] = B_MSG_MISSED;
CheckWonderGuardAndLevitate(); CheckWonderGuardAndLevitate();
} }
@@ -1370,7 +1369,7 @@ static void Cmd_typecalc(void)
gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
gLastLandedMoves[gBattlerTarget] = 0; gLastLandedMoves[gBattlerTarget] = 0;
gLastHitByType[gBattlerTarget] = 0; gLastHitByType[gBattlerTarget] = 0;
gBattleCommunication[6] = moveType; gBattleCommunication[MISS_TYPE] = B_MSG_GROUND_MISS;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
} }
else else
@@ -1406,7 +1405,7 @@ static void Cmd_typecalc(void)
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gLastLandedMoves[gBattlerTarget] = 0; gLastLandedMoves[gBattlerTarget] = 0;
gLastHitByType[gBattlerTarget] = 0; gLastHitByType[gBattlerTarget] = 0;
gBattleCommunication[6] = 3; gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_DMG;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
} }
if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
@@ -1429,7 +1428,7 @@ static void CheckWonderGuardAndLevitate(void)
if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{ {
gLastUsedAbility = ABILITY_LEVITATE; gLastUsedAbility = ABILITY_LEVITATE;
gBattleCommunication[6] = moveType; gBattleCommunication[MISS_TYPE] = B_MSG_GROUND_MISS;
RecordAbilityBattle(gBattlerTarget, ABILITY_LEVITATE); RecordAbilityBattle(gBattlerTarget, ABILITY_LEVITATE);
return; return;
} }
@@ -1484,7 +1483,7 @@ static void CheckWonderGuardAndLevitate(void)
if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power) if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power)
{ {
gLastUsedAbility = ABILITY_WONDER_GUARD; gLastUsedAbility = ABILITY_WONDER_GUARD;
gBattleCommunication[6] = 3; gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_DMG;
RecordAbilityBattle(gBattlerTarget, ABILITY_WONDER_GUARD); RecordAbilityBattle(gBattlerTarget, ABILITY_WONDER_GUARD);
} }
} }
@@ -2019,9 +2018,9 @@ static void Cmd_resultmessage(void)
if (gBattleControllerExecFlags) if (gBattleControllerExecFlags)
return; return;
if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2)) if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK))
{ {
stringId = gMissStringIds[gBattleCommunication[6]]; stringId = gMissStringIds[gBattleCommunication[MISS_TYPE]];
gBattleCommunication[MSG_DISPLAY] = 1; gBattleCommunication[MSG_DISPLAY] = 1;
} }
else else
@@ -2273,12 +2272,12 @@ void SetMoveEffect(bool8 primary, u8 certain)
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS;
} }
RESET_RETURN RESET_RETURN
} }
@@ -2289,7 +2288,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
BattleScriptPush(gBattlescriptCurrInstr + 1); BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PSNPrevention; gBattlescriptCurrInstr = BattleScript_PSNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUS_HAD_NO_EFFECT;
RESET_RETURN RESET_RETURN
} }
if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_POISON)) if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_POISON))
@@ -2314,12 +2313,12 @@ void SetMoveEffect(bool8 primary, u8 certain)
gBattlescriptCurrInstr = BattleScript_BRNPrevention; gBattlescriptCurrInstr = BattleScript_BRNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS;
} }
RESET_RETURN RESET_RETURN
} }
@@ -2330,7 +2329,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
BattleScriptPush(gBattlescriptCurrInstr + 1); BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_BRNPrevention; gBattlescriptCurrInstr = BattleScript_BRNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUS_HAD_NO_EFFECT;
RESET_RETURN RESET_RETURN
} }
if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_FIRE)) if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_FIRE))
@@ -2370,12 +2369,12 @@ void SetMoveEffect(bool8 primary, u8 certain)
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS;
} }
RESET_RETURN RESET_RETURN
} }
@@ -2398,12 +2397,12 @@ void SetMoveEffect(bool8 primary, u8 certain)
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_MOVE_STATUS;
} }
RESET_RETURN RESET_RETURN
} }
@@ -2414,7 +2413,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
BattleScriptPush(gBattlescriptCurrInstr + 1); BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PSNPrevention; gBattlescriptCurrInstr = BattleScript_PSNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUS_HAD_NO_EFFECT;
RESET_RETURN RESET_RETURN
} }
if (gBattleMons[gEffectBattler].status1) if (gBattleMons[gEffectBattler].status1)
@@ -2453,12 +2452,12 @@ void SetMoveEffect(bool8 primary, u8 certain)
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUSED_BY_ABILITY;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD); gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUSED;
} }
// for synchronize // for synchronize
@@ -3579,7 +3578,7 @@ static void MoveValuesCleanUp(void)
gBattleScripting.dmgMultiplier = 1; gBattleScripting.dmgMultiplier = 1;
gCritMultiplier = 1; gCritMultiplier = 1;
gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattleCommunication[6] = 0; gBattleCommunication[MISS_TYPE] = 0;
gHitMarker &= ~(HITMARKER_DESTINYBOND); gHitMarker &= ~(HITMARKER_DESTINYBOND);
gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT);
} }
@@ -4459,7 +4458,7 @@ static void Cmd_typecalc2(void)
gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
gLastLandedMoves[gBattlerTarget] = 0; gLastLandedMoves[gBattlerTarget] = 0;
gBattleCommunication[6] = moveType; gBattleCommunication[MISS_TYPE] = B_MSG_GROUND_MISS;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
} }
else else
@@ -4534,7 +4533,7 @@ static void Cmd_typecalc2(void)
gLastUsedAbility = ABILITY_WONDER_GUARD; gLastUsedAbility = ABILITY_WONDER_GUARD;
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gLastLandedMoves[gBattlerTarget] = 0; gLastLandedMoves[gBattlerTarget] = 0;
gBattleCommunication[6] = 3; gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_DMG;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
} }
if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
@@ -4802,7 +4801,9 @@ static void Cmd_jumpifcantswitch(void)
} }
} }
static void sub_804CF10(u8 slotId) // Opens the party screen to choose a new Pokémon to send out
// slotId is the Pokémon to replace
static void ChooseMonToSendOut(u8 slotId)
{ {
*(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
@@ -4823,7 +4824,7 @@ static void Cmd_openpartyscreen(void)
flags = 0; flags = 0;
jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 2); jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
if (gBattlescriptCurrInstr[1] == 5) if (gBattlescriptCurrInstr[1] == BS_UNK_5)
{ {
if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE) if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE)
{ {
@@ -4831,7 +4832,7 @@ static void Cmd_openpartyscreen(void)
{ {
if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
{ {
if (HasNoMonsToSwitch(gActiveBattler, 6, 6)) if (HasNoMonsToSwitch(gActiveBattler, PARTY_SIZE, PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
@@ -4840,7 +4841,7 @@ static void Cmd_openpartyscreen(void)
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(PARTY_SIZE); ChooseMonToSendOut(PARTY_SIZE);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
} }
@@ -4860,16 +4861,16 @@ static void Cmd_openpartyscreen(void)
if (gBitTable[0] & hitmarkerFaintBits) if (gBitTable[0] & hitmarkerFaintBits)
{ {
gActiveBattler = 0; gActiveBattler = 0;
if (HasNoMonsToSwitch(0, 6, 6)) if (HasNoMonsToSwitch(0, PARTY_SIZE, PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
BtlController_EmitCmd42(0); BtlController_EmitCantSwitch(0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(gBattleStruct->monToSwitchIntoId[2]); ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[2]);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
else else
@@ -4882,16 +4883,16 @@ static void Cmd_openpartyscreen(void)
if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits)) if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits))
{ {
gActiveBattler = 2; gActiveBattler = 2;
if (HasNoMonsToSwitch(2, 6, 6)) if (HasNoMonsToSwitch(2, PARTY_SIZE, PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
BtlController_EmitCmd42(0); BtlController_EmitCantSwitch(0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(gBattleStruct->monToSwitchIntoId[0]); ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[0]);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
else if (!(flags & 1)) else if (!(flags & 1))
@@ -4903,16 +4904,16 @@ static void Cmd_openpartyscreen(void)
if (gBitTable[1] & hitmarkerFaintBits) if (gBitTable[1] & hitmarkerFaintBits)
{ {
gActiveBattler = 1; gActiveBattler = 1;
if (HasNoMonsToSwitch(1, 6, 6)) if (HasNoMonsToSwitch(1, PARTY_SIZE, PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
BtlController_EmitCmd42(0); BtlController_EmitCantSwitch(0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(gBattleStruct->monToSwitchIntoId[3]); ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[3]);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
else else
@@ -4925,16 +4926,16 @@ static void Cmd_openpartyscreen(void)
if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits)) if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits))
{ {
gActiveBattler = 3; gActiveBattler = 3;
if (HasNoMonsToSwitch(3, 6, 6)) if (HasNoMonsToSwitch(3, PARTY_SIZE, PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
BtlController_EmitCmd42(0); BtlController_EmitCantSwitch(0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(gBattleStruct->monToSwitchIntoId[1]); ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[1]);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
else if (!(flags & 2)) else if (!(flags & 2))
@@ -4978,7 +4979,7 @@ static void Cmd_openpartyscreen(void)
} }
gBattlescriptCurrInstr += 6; gBattlescriptCurrInstr += 6;
} }
else if (gBattlescriptCurrInstr[1] == 6) else if (gBattlescriptCurrInstr[1] == BS_UNK_6)
{ {
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{ {
@@ -4988,32 +4989,32 @@ static void Cmd_openpartyscreen(void)
if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits) if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits)
{ {
gActiveBattler = 2; gActiveBattler = 2;
if (HasNoMonsToSwitch(2, gBattleBufferB[0][1], 6)) if (HasNoMonsToSwitch(2, gBattleBufferB[0][1], PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
BtlController_EmitCmd42(0); BtlController_EmitCantSwitch(0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(gBattleStruct->monToSwitchIntoId[0]); ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[0]);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
} }
if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1]) if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1])
{ {
gActiveBattler = 3; gActiveBattler = 3;
if (HasNoMonsToSwitch(3, gBattleBufferB[1][1], 6)) if (HasNoMonsToSwitch(3, gBattleBufferB[1][1], PARTY_SIZE))
{ {
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
BtlController_EmitCmd42(0); BtlController_EmitCantSwitch(0);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
} }
else if (!gSpecialStatuses[gActiveBattler].flag40) else if (!gSpecialStatuses[gActiveBattler].flag40)
{ {
sub_804CF10(gBattleStruct->monToSwitchIntoId[1]); ChooseMonToSendOut(gBattleStruct->monToSwitchIntoId[1]);
gSpecialStatuses[gActiveBattler].flag40 = 1; gSpecialStatuses[gActiveBattler].flag40 = 1;
} }
} }
@@ -5041,17 +5042,17 @@ static void Cmd_openpartyscreen(void)
} }
else else
{ {
if (gBattlescriptCurrInstr[1] & 0x80) if (gBattlescriptCurrInstr[1] & PARTY_SCREEN_OPTIONAL)
hitmarkerFaintBits = PARTY_ACTION_CHOOSE_MON; // Used here as the caseId for the EmitChoose function. hitmarkerFaintBits = PARTY_ACTION_CHOOSE_MON; // Used here as the caseId for the EmitChoose function.
else else
hitmarkerFaintBits = PARTY_ACTION_SEND_OUT; hitmarkerFaintBits = PARTY_ACTION_SEND_OUT;
battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~(0x80)); battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~(PARTY_SCREEN_OPTIONAL));
if (gSpecialStatuses[battlerId].flag40) if (gSpecialStatuses[battlerId].flag40)
{ {
gBattlescriptCurrInstr += 6; gBattlescriptCurrInstr += 6;
} }
else if (HasNoMonsToSwitch(battlerId, 6, 6)) else if (HasNoMonsToSwitch(battlerId, PARTY_SIZE, PARTY_SIZE))
{ {
gActiveBattler = battlerId; gActiveBattler = battlerId;
gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gAbsentBattlerFlags |= gBitTable[gActiveBattler];
@@ -6033,7 +6034,7 @@ static void PutLevelAndGenderOnLvlUpBox(void)
printerTemplate.unk = 0; printerTemplate.unk = 0;
printerTemplate.fgColor = TEXT_COLOR_WHITE; printerTemplate.fgColor = TEXT_COLOR_WHITE;
printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT; printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT;
printerTemplate.shadowColor = TEXT_COLOR_DARK_GREY; printerTemplate.shadowColor = TEXT_COLOR_DARK_GRAY;
AddTextPrinter(&printerTemplate, 0xFF, NULL); AddTextPrinter(&printerTemplate, 0xFF, NULL);
@@ -6373,10 +6374,10 @@ static void Cmd_various(void)
break; break;
case VARIOUS_ARENA_JUDGMENT_STRING: case VARIOUS_ARENA_JUDGMENT_STRING:
BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]); BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]);
BattlePutTextOnWindow(gDisplayedStringBattle, 0x16); BattlePutTextOnWindow(gDisplayedStringBattle, 22);
break; break;
case VARIOUS_ARENA_WAIT_STRING: case VARIOUS_ARENA_WAIT_STRING:
if (IsTextPrinterActive(0x16)) if (IsTextPrinterActive(22))
return; return;
break; break;
case VARIOUS_WAIT_CRY: case VARIOUS_WAIT_CRY:
@@ -6446,19 +6447,19 @@ static void Cmd_setprotectlike(void) // protect and endure
if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT) if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT)
{ {
gProtectStructs[gBattlerAttacker].protected = 1; gProtectStructs[gBattlerAttacker].protected = 1;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECTED_ITSELF;
} }
if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE) if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE)
{ {
gProtectStructs[gBattlerAttacker].endured = 1; gProtectStructs[gBattlerAttacker].endured = 1;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_BRACED_ITSELF;
} }
gDisableStructs[gBattlerAttacker].protectUses++; gDisableStructs[gBattlerAttacker].protectUses++;
} }
else else
{ {
gDisableStructs[gBattlerAttacker].protectUses = 0; gDisableStructs[gBattlerAttacker].protectUses = 0;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECT_FAILED;
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
} }
@@ -6611,12 +6612,12 @@ static void Cmd_setrain(void)
if (gBattleWeather & WEATHER_RAIN_ANY) if (gBattleWeather & WEATHER_RAIN_ANY)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED;
} }
else else
{ {
gBattleWeather = WEATHER_RAIN_TEMPORARY; gBattleWeather = WEATHER_RAIN_TEMPORARY;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_RAIN;
gWishFutureKnock.weatherDuration = 5; gWishFutureKnock.weatherDuration = 5;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
@@ -6627,7 +6628,7 @@ static void Cmd_setreflect(void)
if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_REFLECT) if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_REFLECT)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED;
} }
else else
{ {
@@ -6636,9 +6637,9 @@ static void Cmd_setreflect(void)
gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectBattlerId = gBattlerAttacker; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectBattlerId = gBattlerAttacker;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_REFLECT_DOUBLE;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_REFLECT_SINGLE;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
@@ -6648,18 +6649,18 @@ static void Cmd_setseeded(void)
if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_MISS;
} }
else if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS)) else if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS))
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_FAIL;
} }
else else
{ {
gStatuses3[gBattlerTarget] |= gBattlerAttacker; gStatuses3[gBattlerTarget] |= gBattlerAttacker;
gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED; gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_SET;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
@@ -6700,11 +6701,11 @@ static void Cmd_trysetrest(void)
else else
{ {
if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP))) if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP)))
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_REST_STATUSED;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_REST;
gBattleMons[gBattlerTarget].status1 = 3; gBattleMons[gBattlerTarget].status1 = STATUS1_SLEEP_TURN(3);
BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 5; gBattlescriptCurrInstr += 5;
@@ -6740,9 +6741,9 @@ bool8 UproarWakeUpCheck(u8 battlerId)
if (gBattlerTarget == 0xFF) if (gBattlerTarget == 0xFF)
gBattlerTarget = i; gBattlerTarget = i;
else if (gBattlerTarget == i) else if (gBattlerTarget == i)
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_SLEEP_UPROAR;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_KEPT_AWAKE;
break; break;
} }
@@ -6765,7 +6766,7 @@ static void Cmd_jumpifcantmakeasleep(void)
|| gBattleMons[gBattlerTarget].ability == ABILITY_VITAL_SPIRIT) || gBattleMons[gBattlerTarget].ability == ABILITY_VITAL_SPIRIT)
{ {
gLastUsedAbility = gBattleMons[gBattlerTarget].ability; gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAYED_AWAKE_USING;
gBattlescriptCurrInstr = jumpPtr; gBattlescriptCurrInstr = jumpPtr;
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
} }
@@ -6780,7 +6781,7 @@ static void Cmd_stockpile(void)
if (gDisableStructs[gBattlerAttacker].stockpileCounter == 3) if (gDisableStructs[gBattlerAttacker].stockpileCounter == 3)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_STOCKPILE;
} }
else else
{ {
@@ -6788,7 +6789,7 @@ static void Cmd_stockpile(void)
PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattlerAttacker].stockpileCounter) PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattlerAttacker].stockpileCounter)
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STOCKPILED;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
@@ -6802,7 +6803,7 @@ static void Cmd_stockpiletobasedamage(void)
} }
else else
{ {
if (gBattleCommunication[6] != 1) if (gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED)
{ {
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove, gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)], 0, gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)], 0,
@@ -6826,14 +6827,14 @@ static void Cmd_stockpiletohpheal(void)
if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0)
{ {
gBattlescriptCurrInstr = jumpPtr; gBattlescriptCurrInstr = jumpPtr;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWALLOW_FAILED;
} }
else if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp) else if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp)
{ {
gDisableStructs[gBattlerAttacker].stockpileCounter = 0; gDisableStructs[gBattlerAttacker].stockpileCounter = 0;
gBattlescriptCurrInstr = jumpPtr; gBattlescriptCurrInstr = jumpPtr;
gBattlerTarget = gBattlerAttacker; gBattlerTarget = gBattlerAttacker;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWALLOW_FULL_HP;
} }
else else
{ {
@@ -6985,9 +6986,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
gBattleTextBuff2[index] = B_BUFF_EOS; gBattleTextBuff2[index] = B_BUFF_EOS;
if (gBattleMons[gActiveBattler].statStages[statId] == MIN_STAT_STAGE) if (gBattleMons[gActiveBattler].statStages[statId] == MIN_STAT_STAGE)
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_WONT_DECREASE;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); // B_MSG_ATTACKER_STAT_FELL or B_MSG_DEFENDER_STAT_FELL
} }
} }
@@ -7012,9 +7013,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
gBattleTextBuff2[index] = B_BUFF_EOS; gBattleTextBuff2[index] = B_BUFF_EOS;
if (gBattleMons[gActiveBattler].statStages[statId] == MAX_STAT_STAGE) if (gBattleMons[gActiveBattler].statStages[statId] == MAX_STAT_STAGE)
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_WONT_INCREASE;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler); // B_MSG_ATTACKER_STAT_ROSE or B_MSG_DEFENDER_STAT_ROSE
} }
gBattleMons[gActiveBattler].statStages[statId] += statValue; gBattleMons[gActiveBattler].statStages[statId] += statValue;
@@ -7023,10 +7024,10 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE) if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE)
gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE; gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE;
if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_BUFF_ALLOW_PTR) if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && flags & STAT_BUFF_ALLOW_PTR)
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_BUFF_ALLOW_PTR)) if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && !(flags & STAT_BUFF_ALLOW_PTR))
return STAT_BUFF_DIDNT_WORK; return STAT_BUFF_DIDNT_WORK;
return STAT_BUFF_WORKED; return STAT_BUFF_WORKED;
@@ -7314,7 +7315,7 @@ static void Cmd_tryconversiontypechange(void) // randomly changes user's type to
do do
{ {
while ((moveChecked = Random() & 3) >= validMoves); while ((moveChecked = Random() & (MAX_MON_MOVES - 1)) >= validMoves);
moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type; moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type;
@@ -7358,7 +7359,7 @@ static void Cmd_setlightscreen(void)
if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN) if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED;
} }
else else
{ {
@@ -7367,9 +7368,9 @@ static void Cmd_setlightscreen(void)
gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenBattlerId = gBattlerAttacker; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenBattlerId = gBattlerAttacker;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_LIGHTSCREEN_DOUBLE;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_LIGHTSCREEN_SINGLE;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
@@ -7453,9 +7454,9 @@ static void Cmd_tryKO(void)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level)
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_MISS;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_UNAFFECTED;
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
} }
} }
@@ -7475,12 +7476,12 @@ static void Cmd_setsandstorm(void)
if (gBattleWeather & WEATHER_SANDSTORM_ANY) if (gBattleWeather & WEATHER_SANDSTORM_ANY)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED;
} }
else else
{ {
gBattleWeather = WEATHER_SANDSTORM_TEMPORARY; gBattleWeather = WEATHER_SANDSTORM_TEMPORARY;
gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SANDSTORM;
gWishFutureKnock.weatherDuration = 5; gWishFutureKnock.weatherDuration = 5;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
@@ -7621,14 +7622,14 @@ static void Cmd_setmist(void)
if (gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer) if (gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer)
{ {
gMoveResultFlags |= MOVE_RESULT_FAILED; gMoveResultFlags |= MOVE_RESULT_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MIST_FAILED;
} }
else else
{ {
gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer = 5; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer = 5;
gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistBattlerId = gBattlerAttacker; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistBattlerId = gBattlerAttacker;
gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_MIST; gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_MIST;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_MIST;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
@@ -7638,12 +7639,12 @@ static void Cmd_setfocusenergy(void)
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY)
{ {
gMoveResultFlags |= MOVE_RESULT_FAILED; gMoveResultFlags |= MOVE_RESULT_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FOCUS_ENERGY_FAILED;
} }
else else
{ {
gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_GETTING_PUMPED;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
@@ -7656,7 +7657,7 @@ static void Cmd_transformdataexecution(void)
|| gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)
{ {
gMoveResultFlags |= MOVE_RESULT_FAILED; gMoveResultFlags |= MOVE_RESULT_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TRANSFORM_FAILED;
} }
else else
{ {
@@ -7688,7 +7689,7 @@ static void Cmd_transformdataexecution(void)
gActiveBattler = gBattlerAttacker; gActiveBattler = gBattlerAttacker;
BtlController_EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION); BtlController_EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION);
MarkBattlerForControllerExec(gActiveBattler); MarkBattlerForControllerExec(gActiveBattler);
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TRANSFORMED;
} }
} }
@@ -7701,7 +7702,7 @@ static void Cmd_setsubstitute(void)
if (gBattleMons[gBattlerAttacker].hp <= hp) if (gBattleMons[gBattlerAttacker].hp <= hp)
{ {
gBattleMoveDamage = 0; gBattleMoveDamage = 0;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SUBSTITUTE_FAILED;
} }
else else
{ {
@@ -7712,7 +7713,7 @@ static void Cmd_setsubstitute(void)
gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE; gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE;
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED); gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED);
gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage; gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SUBSTITUTE;
gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE;
} }
@@ -8139,7 +8140,7 @@ static void Cmd_trychoosesleeptalkmove(void)
do do
{ {
movePosition = Random() & 3; movePosition = Random() & (MAX_MON_MOVES - 1);
} while ((gBitTable[movePosition] & unusableMovesBits)); } while ((gBitTable[movePosition] & unusableMovesBits));
gCalledMove = gBattleMons[gBattlerAttacker].moves[movePosition]; gCalledMove = gBattleMons[gBattlerAttacker].moves[movePosition];
@@ -8250,7 +8251,7 @@ static void Cmd_healpartystatus(void)
struct Pokemon *party; struct Pokemon *party;
s32 i; s32 i;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_BELL;
if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
party = gPlayerParty; party = gPlayerParty;
@@ -8265,7 +8266,7 @@ static void Cmd_healpartystatus(void)
else else
{ {
RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability); RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability);
gBattleCommunication[MULTISTRING_CHOOSER] |= 1; gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_ATTACKER;
} }
gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
@@ -8281,10 +8282,12 @@ static void Cmd_healpartystatus(void)
else else
{ {
RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability);
gBattleCommunication[MULTISTRING_CHOOSER] |= 2; gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_PARTNER;
} }
} }
// Because the above MULTISTRING_CHOOSER are ORd, if both are set then it will be B_MSG_BELL_BOTH_SOUNDPROOF
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
u16 species = GetMonData(&party[i], MON_DATA_SPECIES2); u16 species = GetMonData(&party[i], MON_DATA_SPECIES2);
@@ -8310,7 +8313,7 @@ static void Cmd_healpartystatus(void)
} }
else // Aromatherapy else // Aromatherapy
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOOTHING_AROMA;
toHeal = 0x3F; toHeal = 0x3F;
gBattleMons[gBattlerAttacker].status1 = 0; gBattleMons[gBattlerAttacker].status1 = 0;
@@ -8514,14 +8517,14 @@ static void Cmd_setsafeguard(void)
if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD) if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED;
} }
else else
{ {
gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_SAFEGUARD; gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_SAFEGUARD;
gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardTimer = 5; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardTimer = 5;
gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardBattlerId = gBattlerAttacker; gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardBattlerId = gBattlerAttacker;
gBattleCommunication[MULTISTRING_CHOOSER] = 5; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SAFEGUARD;
} }
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
@@ -8630,12 +8633,12 @@ static void Cmd_setsunny(void)
if (gBattleWeather & WEATHER_SUN_ANY) if (gBattleWeather & WEATHER_SUN_ANY)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED;
} }
else else
{ {
gBattleWeather = WEATHER_SUN_TEMPORARY; gBattleWeather = WEATHER_SUN_TEMPORARY;
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SUNLIGHT;
gWishFutureKnock.weatherDuration = 5; gWishFutureKnock.weatherDuration = 5;
} }
@@ -8806,9 +8809,9 @@ static void Cmd_trysetfutureattack(void)
gWishFutureKnock.futureSightDmg[gBattlerTarget] = gWishFutureKnock.futureSightDmg[gBattlerTarget] * 15 / 10; gWishFutureKnock.futureSightDmg[gBattlerTarget] = gWishFutureKnock.futureSightDmg[gBattlerTarget] * 15 / 10;
if (gCurrentMove == MOVE_DOOM_DESIRE) if (gCurrentMove == MOVE_DOOM_DESIRE)
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOOM_DESIRE;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FUTURE_SIGHT;
gBattlescriptCurrInstr += 5; gBattlescriptCurrInstr += 5;
} }
@@ -8912,12 +8915,12 @@ static void Cmd_sethail(void)
if (gBattleWeather & WEATHER_HAIL_ANY) if (gBattleWeather & WEATHER_HAIL_ANY)
{ {
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED;
} }
else else
{ {
gBattleWeather = WEATHER_HAIL; gBattleWeather = WEATHER_HAIL;
gBattleCommunication[MULTISTRING_CHOOSER] = 5; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_HAIL;
gWishFutureKnock.weatherDuration = 5; gWishFutureKnock.weatherDuration = 5;
} }
@@ -8928,7 +8931,7 @@ static void Cmd_jumpifattackandspecialattackcannotfall(void) // memento
{ {
if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == MIN_STAT_STAGE if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == MIN_STAT_STAGE
&& gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == MIN_STAT_STAGE && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == MIN_STAT_STAGE
&& gBattleCommunication[6] != 1) && gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED)
{ {
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
} }
@@ -9113,11 +9116,11 @@ static void Cmd_tryswapitems(void) // trick
PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk) PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk)
if (oldItemAtk != 0 && *newItemAtk != 0) if (oldItemAtk != 0 && *newItemAtk != 0)
gBattleCommunication[MULTISTRING_CHOOSER] = 2; // attacker's item -> <- target's item gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ITEM_SWAP_BOTH; // attacker's item -> <- target's item
else if (oldItemAtk == 0 && *newItemAtk != 0) else if (oldItemAtk == 0 && *newItemAtk != 0)
gBattleCommunication[MULTISTRING_CHOOSER] = 0; // nothing -> <- target's item gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ITEM_SWAP_TAKEN; // nothing -> <- target's item
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; // attacker's item -> <- nothing gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ITEM_SWAP_GIVEN; // attacker's item -> <- nothing
} }
} }
} }
@@ -9605,7 +9608,7 @@ static void Cmd_settypebasedhalvers(void) // water and mud sport
if (!(gStatuses3[gBattlerAttacker] & STATUS3_MUDSPORT)) if (!(gStatuses3[gBattlerAttacker] & STATUS3_MUDSPORT))
{ {
gStatuses3[gBattlerAttacker] |= STATUS3_MUDSPORT; gStatuses3[gBattlerAttacker] |= STATUS3_MUDSPORT;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEAKEN_ELECTRIC;
worked = TRUE; worked = TRUE;
} }
} }
@@ -9614,7 +9617,7 @@ static void Cmd_settypebasedhalvers(void) // water and mud sport
if (!(gStatuses3[gBattlerAttacker] & STATUS3_WATERSPORT)) if (!(gStatuses3[gBattlerAttacker] & STATUS3_WATERSPORT))
{ {
gStatuses3[gBattlerAttacker] |= STATUS3_WATERSPORT; gStatuses3[gBattlerAttacker] |= STATUS3_WATERSPORT;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEAKEN_FIRE;
worked = TRUE; worked = TRUE;
} }
} }
@@ -9883,7 +9886,6 @@ static void Cmd_handleballthrow(void)
else // not caught else // not caught
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = shakes; gBattleCommunication[MULTISTRING_CHOOSER] = shakes;
// Maybe inject SpriteCB_TestBallThrow here
gBattlescriptCurrInstr = BattleScript_ShakeBallThrow; gBattlescriptCurrInstr = BattleScript_ShakeBallThrow;
} }
} }
@@ -9896,7 +9898,7 @@ static void Cmd_givecaughtmon(void)
{ {
if (!ShouldShowBoxWasFullMessage()) if (!ShouldShowBoxWasFullMessage())
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SENT_SOMEONES_PC;
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON)));
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
} }
@@ -9905,9 +9907,10 @@ static void Cmd_givecaughtmon(void)
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_PC_BOX_TO_SEND_MON))); // box the mon was sent to
GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2); GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to StringCopy(gStringVar3, GetBoxNamePtr(GetPCBoxToSendMon())); //box the mon was going to be sent to
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOMEONES_BOX_FULL;
} }
// Change to B_MSG_SENT_LANETTES_PC or B_MSG_LANETTES_BOX_FULL
if (FlagGet(FLAG_SYS_PC_LANETTE)) if (FlagGet(FLAG_SYS_PC_LANETTE))
gBattleCommunication[MULTISTRING_CHOOSER]++; gBattleCommunication[MULTISTRING_CHOOSER]++;
} }
+1 -1
View File
@@ -3675,7 +3675,7 @@ static bool8 Phase1_TransitionAll_Func2(struct Task *task)
static void InitTransitionStructVars(void) static void InitTransitionStructVars(void)
{ {
memset(sTransitionStructPtr, 0, sizeof(*sTransitionStructPtr)); memset(sTransitionStructPtr, 0, sizeof(*sTransitionStructPtr));
sub_8089C08(&sTransitionStructPtr->field_14, &sTransitionStructPtr->field_16); GetCameraOffsetWithPan(&sTransitionStructPtr->field_14, &sTransitionStructPtr->field_16);
} }
static void VBlankCB_BattleTransition(void) static void VBlankCB_BattleTransition(void)
+4 -4
View File
@@ -666,7 +666,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId)
case STRINGID_CRITICALHIT: case STRINGID_CRITICALHIT:
AddMovePoints(PTS_CRITICAL_HIT, moveSlot, 0, 0); AddMovePoints(PTS_CRITICAL_HIT, moveSlot, 0, 0);
break; break;
case STRINGID_PKMNSSTATCHANGED: case STRINGID_ATTACKERSSTATROSE:
if (gBattleTextBuff1[2] != 0) if (gBattleTextBuff1[2] != 0)
{ {
if (*statStringId == STRINGID_STATSHARPLY) if (*statStringId == STRINGID_STATSHARPLY)
@@ -675,7 +675,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId)
AddMovePoints(PTS_STAT_INCREASE_1, moveSlot, gBattleTextBuff1[2] - 1, 0); AddMovePoints(PTS_STAT_INCREASE_1, moveSlot, gBattleTextBuff1[2] - 1, 0);
} }
break; break;
case STRINGID_PKMNSSTATCHANGED2: case STRINGID_DEFENDERSSTATROSE:
if (gBattleTextBuff1[2] != 0) if (gBattleTextBuff1[2] != 0)
{ {
if (gBattlerAttacker == gBattlerTarget) if (gBattlerAttacker == gBattlerTarget)
@@ -691,11 +691,11 @@ void BattleTv_SetDataBasedOnString(u16 stringId)
} }
} }
break; break;
case STRINGID_PKMNSSTATCHANGED3: case STRINGID_ATTACKERSSTATFELL:
if (gBattleTextBuff1[2] != 0) if (gBattleTextBuff1[2] != 0)
AddMovePoints(PTS_STAT_DECREASE_SELF, moveSlot, gBattleTextBuff1[2] - 1, 0); AddMovePoints(PTS_STAT_DECREASE_SELF, moveSlot, gBattleTextBuff1[2] - 1, 0);
break; break;
case STRINGID_PKMNSSTATCHANGED4: case STRINGID_DEFENDERSSTATFELL:
if (gBattleTextBuff1[2] != 0) if (gBattleTextBuff1[2] != 0)
{ {
if (*statStringId == STRINGID_STATHARSHLY) if (*statStringId == STRINGID_STATHARSHLY)
+93 -54
View File
@@ -49,7 +49,29 @@ extern const u8 *const gBattlescriptsForRunningByItem[];
extern const u8 *const gBattlescriptsForUsingItem[]; extern const u8 *const gBattlescriptsForUsingItem[];
extern const u8 *const gBattlescriptsForSafariActions[]; extern const u8 *const gBattlescriptsForSafariActions[];
static const u8 sPkblToEscapeFactor[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}}; static const u8 sPkblToEscapeFactor[][3] = {
{
[B_MSG_MON_CURIOUS] = 0,
[B_MSG_MON_ENTHRALLED] = 0,
[B_MSG_MON_IGNORED] = 0
},{
[B_MSG_MON_CURIOUS] = 3,
[B_MSG_MON_ENTHRALLED] = 5,
[B_MSG_MON_IGNORED] = 0
},{
[B_MSG_MON_CURIOUS] = 2,
[B_MSG_MON_ENTHRALLED] = 3,
[B_MSG_MON_IGNORED] = 0
},{
[B_MSG_MON_CURIOUS] = 1,
[B_MSG_MON_ENTHRALLED] = 2,
[B_MSG_MON_IGNORED] = 0
},{
[B_MSG_MON_CURIOUS] = 1,
[B_MSG_MON_ENTHRALLED] = 1,
[B_MSG_MON_IGNORED] = 0
}
};
static const u8 sGoNearCounterToCatchFactor[] = {4, 3, 2, 1}; static const u8 sGoNearCounterToCatchFactor[] = {4, 3, 2, 1};
static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4}; static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4};
@@ -238,10 +260,9 @@ void HandleAction_UseMove(void)
} }
} }
// choose battlescript if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gProtectStructs[gBattlerAttacker].palaceUnableToUseMove)
if (gBattleTypeFlags & BATTLE_TYPE_PALACE
&& gProtectStructs[gBattlerAttacker].palaceUnableToUseMove)
{ {
// Battle Palace, select battle script for failure to use move
if (gBattleMons[gBattlerAttacker].hp == 0) if (gBattleMons[gBattlerAttacker].hp == 0)
{ {
gCurrentActionFuncId = B_ACTION_FINISHED; gCurrentActionFuncId = B_ACTION_FINISHED;
@@ -249,13 +270,13 @@ void HandleAction_UseMove(void)
} }
else if (gPalaceSelectionBattleScripts[gBattlerAttacker] != NULL) else if (gPalaceSelectionBattleScripts[gBattlerAttacker] != NULL)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_INCAPABLE_OF_POWER;
gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattlerAttacker]; gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattlerAttacker];
gPalaceSelectionBattleScripts[gBattlerAttacker] = NULL; gPalaceSelectionBattleScripts[gBattlerAttacker] = NULL;
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_INCAPABLE_OF_POWER;
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
} }
} }
@@ -318,26 +339,29 @@ void HandleAction_UseItem(void)
case AI_ITEM_HEAL_HP: case AI_ITEM_HEAL_HP:
break; break;
case AI_ITEM_CURE_CONDITION: case AI_ITEM_CURE_CONDITION:
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = AI_HEAL_CONFUSION;
if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1) if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & (1 << AI_HEAL_CONFUSION))
{ {
if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E) if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E)
gBattleCommunication[MULTISTRING_CHOOSER] = 5; gBattleCommunication[MULTISTRING_CHOOSER] = AI_HEAL_SLEEP;
} }
else else
{ {
// Check for other statuses, stopping at first (shouldn't be more than one)
while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)) while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1))
{ {
*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1; *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
gBattleCommunication[MULTISTRING_CHOOSER]++; gBattleCommunication[MULTISTRING_CHOOSER]++;
// MULTISTRING_CHOOSER will be either AI_HEAL_PARALYSIS, AI_HEAL_FREEZE,
// AI_HEAL_BURN, AI_HEAL_POISON, or AI_HEAL_SLEEP
} }
} }
break; break;
case AI_ITEM_X_STAT: case AI_ITEM_X_STAT:
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_ROSE_ITEM;
if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 0x80) if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & (1 << AI_DIRE_HIT))
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 5; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_USED_DIRE_HIT;
} }
else else
{ {
@@ -354,11 +378,20 @@ void HandleAction_UseItem(void)
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
} }
break; break;
case AI_ITEM_GUARD_SPECS: case AI_ITEM_GUARD_SPEC:
// It seems probable that at some point there was a special message for
// an AI trainer using Guard Spec in a double battle.
// There isn't now however, and the assignment to 2 below goes out of
// bounds for gMistUsedStringIds and instead prints "{mon} is getting pumped"
// from the next table, gFocusEnergyUsedStringIds.
// In any case this isn't an issue in the retail version, as no trainers
// are ever given any Guard Spec to use.
#ifndef UBFIX
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = 2;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 0; #endif
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_MIST;
break; break;
} }
@@ -479,7 +512,7 @@ void HandleAction_Run(void)
if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away
{ {
ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); ClearFuryCutterDestinyBondGrudge(gBattlerAttacker);
gBattleCommunication[MULTISTRING_CHOOSER] = 3; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE_2;
gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
} }
@@ -488,7 +521,7 @@ void HandleAction_Run(void)
{ {
if (gBattleMons[gBattlerAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) if (gBattleMons[gBattlerAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ATTACKER_CANT_ESCAPE;
gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
} }
@@ -567,11 +600,11 @@ void HandleAction_GoNear(void)
if (gBattleStruct->safariGoNearCounter < 3) if (gBattleStruct->safariGoNearCounter < 3)
{ {
gBattleStruct->safariGoNearCounter++; gBattleStruct->safariGoNearCounter++;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CREPT_CLOSER;
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; // Can't get closer. gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_GET_CLOSER;
} }
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1];
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
@@ -1295,20 +1328,20 @@ u8 DoFieldEndTurnEffects(void)
{ {
gBattleWeather &= ~WEATHER_RAIN_TEMPORARY; gBattleWeather &= ~WEATHER_RAIN_TEMPORARY;
gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR; gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR;
gBattleCommunication[MULTISTRING_CHOOSER] = 2; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_STOPPED;
} }
else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR)
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES;
} }
else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES;
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES;
} }
BattleScriptExecute(BattleScript_RainContinuesOrEnds); BattleScriptExecute(BattleScript_RainContinuesOrEnds);
@@ -1330,7 +1363,7 @@ u8 DoFieldEndTurnEffects(void)
} }
gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SANDSTORM;
BattleScriptExecute(gBattlescriptCurrInstr); BattleScriptExecute(gBattlescriptCurrInstr);
effect++; effect++;
} }
@@ -1368,7 +1401,7 @@ u8 DoFieldEndTurnEffects(void)
} }
gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES; gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_HAIL;
BattleScriptExecute(gBattlescriptCurrInstr); BattleScriptExecute(gBattlescriptCurrInstr);
effect++; effect++;
} }
@@ -1597,16 +1630,16 @@ u8 DoBattlerEndTurnEffects(void)
if (WasUnableToUseMove(gActiveBattler)) if (WasUnableToUseMove(gActiveBattler))
{ {
CancelMultiTurnMoves(gActiveBattler); CancelMultiTurnMoves(gActiveBattler);
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_ENDS;
} }
else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_CONTINUES;
gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS; gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS;
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_ENDS;
CancelMultiTurnMoves(gActiveBattler); CancelMultiTurnMoves(gActiveBattler);
} }
BattleScriptExecute(BattleScript_PrintUproarOverTurns); BattleScriptExecute(BattleScript_PrintUproarOverTurns);
@@ -1749,9 +1782,9 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
&& gBattleMons[gActiveBattler].hp != 0) && gBattleMons[gActiveBattler].hp != 0)
{ {
if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT) if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT)
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FUTURE_SIGHT;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOOM_DESIRE;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]); PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]);
@@ -1850,7 +1883,7 @@ bool8 HandleFaintedMonActions(void)
gBattleStruct->faintedActionsState++; gBattleStruct->faintedActionsState++;
for (i = 0; i < gBattlersCount; i++) for (i = 0; i < gBattlersCount; i++)
{ {
if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, 6, 6)) if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, PARTY_SIZE, PARTY_SIZE))
gAbsentBattlerFlags &= ~(gBitTable[i]); gAbsentBattlerFlags &= ~(gBitTable[i]);
} }
// fall through // fall through
@@ -1962,7 +1995,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP);
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2; effect = 2;
} }
@@ -1990,7 +2023,7 @@ u8 AtkCanceller_UnableToUseMove(void)
{ {
gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2; effect = 2;
} }
@@ -2019,7 +2052,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED;
} }
effect = 2; effect = 2;
} }
@@ -2030,7 +2063,7 @@ u8 AtkCanceller_UnableToUseMove(void)
{ {
CancelMultiTurnMoves(gBattlerAttacker); CancelMultiTurnMoves(gBattlerAttacker);
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LOAFING;
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
gMoveResultFlags |= MOVE_RESULT_MISSED; gMoveResultFlags |= MOVE_RESULT_MISSED;
effect = 1; effect = 1;
@@ -2103,12 +2136,14 @@ u8 AtkCanceller_UnableToUseMove(void)
{ {
if (Random() & 1) if (Random() & 1)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; // The MULTISTRING_CHOOSER is used here as a bool to signal
// to BattleScript_MoveUsedIsConfused whether or not damage was taken
gBattleCommunication[MULTISTRING_CHOOSER] = FALSE;
BattleScriptPushCursor(); BattleScriptPushCursor();
} }
else // confusion dmg else // confusion dmg
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = TRUE;
gBattlerTarget = gBattlerAttacker; gBattlerTarget = gBattlerAttacker;
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker);
gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1; gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1;
@@ -2195,7 +2230,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED_BY_MOVE;
} }
effect = 2; effect = 2;
} }
@@ -2593,7 +2628,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
if (gBattleMons[battler].statStages[STAT_SPEED] < MAX_STAT_STAGE && gDisableStructs[battler].isFirstTurn != 2) if (gBattleMons[battler].statStages[STAT_SPEED] < MAX_STAT_STAGE && gDisableStructs[battler].isFirstTurn != 2)
{ {
gBattleMons[battler].statStages[STAT_SPEED]++; gBattleMons[battler].statStages[STAT_SPEED]++;
gBattleScripting.animArg1 = 0x11; gBattleScripting.animArg1 = 14 + STAT_SPEED;
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates); BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates);
gBattleScripting.battler = battler; gBattleScripting.battler = battler;
@@ -2655,7 +2690,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
{ {
if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE))
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_BOOST;
if (gProtectStructs[gBattlerAttacker].notFirstStrike) if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost; gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else else
@@ -2666,7 +2701,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_NO_BOOST;
if (gProtectStructs[gBattlerAttacker].notFirstStrike) if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost; gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else else
@@ -3431,7 +3466,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gEffectBattler = battlerId; gEffectBattler = battlerId;
SET_STATCHANGER(STAT_ATK, 1, FALSE); SET_STATCHANGER(STAT_ATK, 1, FALSE);
gBattleScripting.animArg1 = 0xE + STAT_ATK; gBattleScripting.animArg1 = 14 + STAT_ATK;
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE; effect = ITEM_STATS_CHANGE;
@@ -3445,7 +3480,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gEffectBattler = battlerId; gEffectBattler = battlerId;
SET_STATCHANGER(STAT_DEF, 1, FALSE); SET_STATCHANGER(STAT_DEF, 1, FALSE);
gBattleScripting.animArg1 = 0xE + STAT_DEF; gBattleScripting.animArg1 = 14 + STAT_DEF;
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE; effect = ITEM_STATS_CHANGE;
@@ -3459,7 +3494,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gEffectBattler = battlerId; gEffectBattler = battlerId;
SET_STATCHANGER(STAT_SPEED, 1, FALSE); SET_STATCHANGER(STAT_SPEED, 1, FALSE);
gBattleScripting.animArg1 = 0xE + STAT_SPEED; gBattleScripting.animArg1 = 14 + STAT_SPEED;
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE; effect = ITEM_STATS_CHANGE;
@@ -3473,7 +3508,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gEffectBattler = battlerId; gEffectBattler = battlerId;
SET_STATCHANGER(STAT_SPATK, 1, FALSE); SET_STATCHANGER(STAT_SPATK, 1, FALSE);
gBattleScripting.animArg1 = 0xE + STAT_SPATK; gBattleScripting.animArg1 = 14 + STAT_SPATK;
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE; effect = ITEM_STATS_CHANGE;
@@ -3487,7 +3522,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gEffectBattler = battlerId; gEffectBattler = battlerId;
SET_STATCHANGER(STAT_SPDEF, 1, FALSE); SET_STATCHANGER(STAT_SPDEF, 1, FALSE);
gBattleScripting.animArg1 = 0xE + STAT_SPDEF; gBattleScripting.animArg1 = 14 + STAT_SPDEF;
gBattleScripting.animArg2 = 0; gBattleScripting.animArg2 = 0;
BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE; effect = ITEM_STATS_CHANGE;
@@ -3622,9 +3657,9 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
i++; i++;
} }
if (!(i > 1)) if (!(i > 1))
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM;
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS;
gBattleMons[battlerId].status1 = 0; gBattleMons[battlerId].status1 = 0;
gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION);
BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2);
@@ -3637,7 +3672,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION); gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION);
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2);
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM;
effect = ITEM_EFFECT_OTHER; effect = ITEM_EFFECT_OTHER;
} }
break; break;
@@ -3740,7 +3775,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION); gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION);
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM;
gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet;
effect = ITEM_EFFECT_OTHER; effect = ITEM_EFFECT_OTHER;
} }
@@ -3776,7 +3811,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
gBattleMons[battlerId].status1 = 0; gBattleMons[battlerId].status1 = 0;
gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM;
gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet;
effect = ITEM_STATUS_CHANGE; effect = ITEM_STATUS_CHANGE;
} }
@@ -4016,7 +4051,9 @@ u8 IsMonDisobedient(void)
calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF); calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF);
if (calc == 0xF) // all moves cannot be used if (calc == 0xF) // all moves cannot be used
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; // Randomly select, then print a disobedient string
// B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1);
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
return 1; return 1;
} }
@@ -4024,7 +4061,7 @@ u8 IsMonDisobedient(void)
{ {
do do
{ {
gCurrMovePos = gChosenMovePos = Random() & 3; gCurrMovePos = gChosenMovePos = Random() & (MAX_MON_MOVES - 1);
} while (gBitTable[gCurrMovePos] & calc); } while (gBitTable[gCurrMovePos] & calc);
gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
@@ -4065,7 +4102,9 @@ u8 IsMonDisobedient(void)
} }
else else
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; // Randomly select, then print a disobedient string
// B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1);
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
return 1; return 1;
} }
+4 -3
View File
@@ -10,6 +10,7 @@
#include "constants/abilities.h" #include "constants/abilities.h"
#include "random.h" #include "random.h"
#include "battle_scripts.h" #include "battle_scripts.h"
#include "constants/battle_string_ids.h"
void AllocateBattleResources(void) void AllocateBattleResources(void)
{ {
@@ -136,7 +137,7 @@ u32 sub_805725C(u8 battlerId)
gBattleMons[battlerId].status1 &= ~(STATUS1_SLEEP); gBattleMons[battlerId].status1 &= ~(STATUS1_SLEEP);
gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2; effect = 2;
} }
@@ -163,7 +164,7 @@ u32 sub_805725C(u8 battlerId)
{ {
gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2; effect = 2;
} }
@@ -183,7 +184,7 @@ u32 sub_805725C(u8 battlerId)
gBattleMons[battlerId].status1 &= ~(STATUS1_FREEZE); gBattleMons[battlerId].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor(); BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED;
} }
effect = 2; effect = 2;
} }
+4 -4
View File
@@ -3859,13 +3859,13 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3
case 0: case 0:
case 3: case 3:
txtColor[0] = TEXT_COLOR_WHITE; txtColor[0] = TEXT_COLOR_WHITE;
txtColor[1] = TEXT_COLOR_DARK_GREY; txtColor[1] = TEXT_COLOR_DARK_GRAY;
txtColor[2] = TEXT_COLOR_LIGHT_GREY; txtColor[2] = TEXT_COLOR_LIGHT_GRAY;
break; break;
case 1: case 1:
txtColor[0] = TEXT_COLOR_TRANSPARENT; txtColor[0] = TEXT_COLOR_TRANSPARENT;
txtColor[1] = TEXT_COLOR_DARK_GREY; txtColor[1] = TEXT_COLOR_DARK_GRAY;
txtColor[2] = TEXT_COLOR_LIGHT_GREY; txtColor[2] = TEXT_COLOR_LIGHT_GRAY;
break; break;
case 2: case 2:
txtColor[0] = TEXT_COLOR_TRANSPARENT; txtColor[0] = TEXT_COLOR_TRANSPARENT;
+21 -21
View File
@@ -152,9 +152,9 @@ enum {
#define PLAY_AGAIN_NO_BERRIES 3 #define PLAY_AGAIN_NO_BERRIES 3
enum { enum {
COLORID_GREY, COLORID_GRAY,
COLORID_BLACK, COLORID_BLACK,
COLORID_LIGHT_GREY, COLORID_LIGHT_GRAY,
COLORID_BLUE, COLORID_BLUE,
COLORID_GREEN, COLORID_GREEN,
COLORID_RED, COLORID_RED,
@@ -457,9 +457,9 @@ static const struct BgTemplate sBgTemplates[4] =
static const u8 sTextColorTable[][3] = static const u8 sTextColorTable[][3] =
{ {
[COLORID_GREY] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, [COLORID_GRAY] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY},
[COLORID_BLACK] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, [COLORID_BLACK] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY},
[COLORID_LIGHT_GREY] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_RED}, [COLORID_LIGHT_GRAY] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_RED},
[COLORID_BLUE] = {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, [COLORID_BLUE] = {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE},
[COLORID_GREEN] = {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN}, [COLORID_GREEN] = {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN},
[COLORID_RED] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, [COLORID_RED] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED},
@@ -1653,7 +1653,7 @@ static void PrintResultsText(struct BerryCrushGame * game, u8 page, u8 sp14, u8
break; break;
} }
x = GetStringRightAlignXOffset(2, gStringVar4, sp14 - 4); x = GetStringRightAlignXOffset(2, gStringVar4, sp14 - 4);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
if (playerId == game->localId) if (playerId == game->localId)
StringCopy(gStringVar3, gText_1DotBlueF700); StringCopy(gStringVar3, gText_1DotBlueF700);
else else
@@ -1661,7 +1661,7 @@ static void PrintResultsText(struct BerryCrushGame * game, u8 page, u8 sp14, u8
gStringVar3[0] = ranking + CHAR_1; gStringVar3[0] = ranking + CHAR_1;
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, game->players[playerId].name); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, game->players[playerId].name);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gStringVar3); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gStringVar3);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 4, y, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 4, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
} }
} }
@@ -1676,34 +1676,34 @@ static void PrintCrushingResults(struct BerryCrushGame *game)
FramesToMinSec(&game->gfx, results->time); FramesToMinSec(&game->gfx, results->time);
// Print time text // Print time text
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gText_TimeColon); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_TimeColon);
// Print seconds text // Print seconds text
x = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1); x = 176 - (u8)GetStringWidth(2, gText_SpaceSec, -1);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gText_SpaceSec); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_SpaceSec);
// Print seconds value // Print seconds value
ConvertIntToDecimalStringN(gStringVar1, game->gfx.secondsInt, STR_CONV_MODE_LEADING_ZEROS, 2); ConvertIntToDecimalStringN(gStringVar1, game->gfx.secondsInt, STR_CONV_MODE_LEADING_ZEROS, 2);
ConvertIntToDecimalStringN(gStringVar2, game->gfx.secondsFrac, STR_CONV_MODE_LEADING_ZEROS, 2); ConvertIntToDecimalStringN(gStringVar2, game->gfx.secondsFrac, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_XDotY2); StringExpandPlaceholders(gStringVar4, gText_XDotY2);
x -= GetStringWidth(2, gStringVar4, -1); x -= GetStringWidth(2, gStringVar4, -1);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
// Print minutes text // Print minutes text
x -= GetStringWidth(2, gText_SpaceMin, -1); x -= GetStringWidth(2, gText_SpaceMin, -1);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gText_SpaceMin); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_SpaceMin);
// Print minutes value // Print minutes value
ConvertIntToDecimalStringN(gStringVar1, game->gfx.minutes, STR_CONV_MODE_LEADING_ZEROS, 1); ConvertIntToDecimalStringN(gStringVar1, game->gfx.minutes, STR_CONV_MODE_LEADING_ZEROS, 1);
StringExpandPlaceholders(gStringVar4, gText_StrVar1); StringExpandPlaceholders(gStringVar4, gText_StrVar1);
x -= GetStringWidth(2, gStringVar4, -1); x -= GetStringWidth(2, gStringVar4, -1);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
// Print pressing speed text // Print pressing speed text
y += 14; y += 14;
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 0, y, sTextColorTable[COLORID_GREY], 0, gText_PressingSpeed); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 0, y, sTextColorTable[COLORID_GRAY], 0, gText_PressingSpeed);
x = 176 - (u8)GetStringWidth(2, gText_TimesPerSec, -1); x = 176 - (u8)GetStringWidth(2, gText_TimesPerSec, -1);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gText_TimesPerSec); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gText_TimesPerSec);
// Print pressing speed value // Print pressing speed value
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
@@ -1716,17 +1716,17 @@ static void PrintCrushingResults(struct BerryCrushGame *game)
if (game->newRecord) if (game->newRecord)
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_RED], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_RED], 0, gStringVar4);
else else
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
// Print silkiness text // Print silkiness text
y += 14; y += 14;
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 0, y, sTextColorTable[COLORID_GREY], 0, gText_Silkiness); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, 0, y, sTextColorTable[COLORID_GRAY], 0, gText_Silkiness);
// Print silkiness value // Print silkiness value
ConvertIntToDecimalStringN(gStringVar1, results->silkiness, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar1, results->silkiness, STR_CONV_MODE_RIGHT_ALIGN, 3);
StringExpandPlaceholders(gStringVar4, gText_Var1Percent); StringExpandPlaceholders(gStringVar4, gText_Var1Percent);
x = 176 - (u8)GetStringWidth(2, gStringVar4, -1); x = 176 - (u8)GetStringWidth(2, gStringVar4, -1);
AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(game->gfx.resultsWindowId, 2, x, y, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
} }
static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx) static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGame_Gfx *gfx)
@@ -1825,9 +1825,9 @@ static void Task_ShowRankings(u8 taskId)
{ {
ConvertIntToDecimalStringN(gStringVar1, i + 2, STR_CONV_MODE_LEFT_ALIGN, 1); ConvertIntToDecimalStringN(gStringVar1, i + 2, STR_CONV_MODE_LEFT_ALIGN, 1);
StringExpandPlaceholders(gStringVar4, gText_Var1Players); StringExpandPlaceholders(gStringVar4, gText_Var1Players);
AddTextPrinterParameterized3(tWindowId, 1, 0, yPos, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(tWindowId, 1, 0, yPos, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
xPos = 192 - (u8)GetStringWidth(1, gText_TimesPerSec, -1); xPos = 192 - (u8)GetStringWidth(1, gText_TimesPerSec, -1);
AddTextPrinterParameterized3(tWindowId, 1, xPos, yPos, sTextColorTable[COLORID_GREY], 0, gText_TimesPerSec); AddTextPrinterParameterized3(tWindowId, 1, xPos, yPos, sTextColorTable[COLORID_GRAY], 0, gText_TimesPerSec);
for (j = 0; j < 8; j++) for (j = 0; j < 8; j++)
{ {
if (((tPressingSpeeds(i) & 0xFF) >> (7 - j)) & 1) if (((tPressingSpeeds(i) & 0xFF) >> (7 - j)) & 1)
@@ -1837,7 +1837,7 @@ static void Task_ShowRankings(u8 taskId)
ConvertIntToDecimalStringN(gStringVar2, score / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2); ConvertIntToDecimalStringN(gStringVar2, score / 1000000, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_XDotY3); StringExpandPlaceholders(gStringVar4, gText_XDotY3);
xPos -= GetStringWidth(1, gStringVar4, -1); xPos -= GetStringWidth(1, gStringVar4, -1);
AddTextPrinterParameterized3(tWindowId, 1, xPos, yPos, sTextColorTable[COLORID_GREY], 0, gStringVar4); AddTextPrinterParameterized3(tWindowId, 1, xPos, yPos, sTextColorTable[COLORID_GRAY], 0, gStringVar4);
yPos += 16; yPos += 16;
score = 0; score = 0;
} }
@@ -1933,7 +1933,7 @@ static void DrawPlayerNameWindows(struct BerryCrushGame *game)
1, 1,
0, 0,
0, 0,
sTextColorTable[COLORID_LIGHT_GREY], sTextColorTable[COLORID_LIGHT_GRAY],
0, 0,
game->players[i].name game->players[i].name
); );
+9 -7
View File
@@ -1053,29 +1053,31 @@ static void Task_EnterCableClubSeat(u8 taskId)
case 1: case 1:
if (IsFieldMessageBoxHidden()) if (IsFieldMessageBoxHidden())
{ {
sub_8087288(); SetInCableClubSeat();
SetLocalLinkPlayerId(gSpecialVar_0x8005); SetLocalLinkPlayerId(gSpecialVar_0x8005);
task->tState = 2; task->tState = 2;
} }
break; break;
case 2: case 2:
switch (sub_8087214()) switch (GetCableClubPartnersReady())
{ {
case 0: case CABLE_SEAT_WAITING:
break; break;
case 1: case CABLE_SEAT_SUCCESS:
// Partners linked and ready, switch to relevant link function
HideFieldMessageBox(); HideFieldMessageBox();
task->tState = 0; task->tState = 0;
sub_80872C4(); SetStartedCableClubActivity();
SwitchTaskToFollowupFunc(taskId); SwitchTaskToFollowupFunc(taskId);
break; break;
case 2: case CABLE_SEAT_FAILED:
task->tState = 3; task->tState = 3;
break; break;
} }
break; break;
case 3: case 3:
sub_808729C(); // Exit, failure
SetLinkWaitingForScript();
sub_8197AE8(TRUE); sub_8197AE8(TRUE);
DestroyTask(taskId); DestroyTask(taskId);
EnableBothScriptContexts(); EnableBothScriptContexts();
+2 -2
View File
@@ -391,13 +391,13 @@ static void PrintCreditsText(const u8 *string, u8 y, bool8 isTitle)
if (isTitle == TRUE) if (isTitle == TRUE)
{ {
color[1] = TEXT_COLOR_LIGHT_GREY; color[1] = TEXT_COLOR_LIGHT_GRAY;
color[2] = TEXT_COLOR_RED; color[2] = TEXT_COLOR_RED;
} }
else else
{ {
color[1] = TEXT_COLOR_WHITE; color[1] = TEXT_COLOR_WHITE;
color[2] = TEXT_COLOR_DARK_GREY; color[2] = TEXT_COLOR_DARK_GRAY;
} }
x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, DISPLAY_WIDTH, 1); x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, DISPLAY_WIDTH, 1);
@@ -1263,16 +1263,16 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle = {
const struct SpritePalette gSpritePalette_SmallSparkle = {gFieldEffectPal_SmallSparkle, FLDEFF_PAL_TAG_SMALL_SPARKLE}; const struct SpritePalette gSpritePalette_SmallSparkle = {gFieldEffectPal_SmallSparkle, FLDEFF_PAL_TAG_SMALL_SPARKLE};
static const union AnimCmd sAnim_Rayquaza[] = { static const union AnimCmd sAnim_RayquazaSpotlightEffect[] = {
ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(0, 1),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const sAnimTable_Rayquaza[] = { static const union AnimCmd *const sAnimTable_RayquazaSpotlightEffect[] = {
sAnim_Rayquaza, sAnim_RayquazaSpotlightEffect,
}; };
const struct SpriteFrameImage sPicTable_Rayquaza[] = { const struct SpriteFrameImage sPicTable_RayquazaSpotlightEffect[] = {
overworld_frame(gObjectEventPic_Rayquaza, 4, 4, 0), overworld_frame(gObjectEventPic_Rayquaza, 4, 4, 0),
}; };
@@ -1280,8 +1280,8 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {
.tileTag = 0xFFFF, .tileTag = 0xFFFF,
.paletteTag = 0xFFFF, .paletteTag = 0xFFFF,
.oam = &gObjectEventBaseOam_32x32, .oam = &gObjectEventBaseOam_32x32,
.anims = sAnimTable_Rayquaza, .anims = sAnimTable_RayquazaSpotlightEffect,
.images = sPicTable_Rayquaza, .images = sPicTable_RayquazaSpotlightEffect,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = UpdateRayquazaSpotlightEffect, .callback = UpdateRayquazaSpotlightEffect,
}; };
@@ -1,4 +1,4 @@
const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[] = { static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -12,7 +12,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_KelpsyBerryTree[] = { static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -26,7 +26,7 @@ const struct SpriteFrameImage gObjectEventPicTable_KelpsyBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_WepearBerryTree[] = { static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -40,7 +40,7 @@ const struct SpriteFrameImage gObjectEventPicTable_WepearBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_IapapaBerryTree[] = { static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -54,7 +54,7 @@ const struct SpriteFrameImage gObjectEventPicTable_IapapaBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_CheriBerryTree[] = { static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -68,7 +68,7 @@ const struct SpriteFrameImage gObjectEventPicTable_CheriBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_FigyBerryTree[] = { static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -82,7 +82,7 @@ const struct SpriteFrameImage gObjectEventPicTable_FigyBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_MagoBerryTree[] = { static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -96,7 +96,7 @@ const struct SpriteFrameImage gObjectEventPicTable_MagoBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_LumBerryTree[] = { static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -110,7 +110,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LumBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_RazzBerryTree[] = { static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -124,7 +124,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RazzBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_GrepaBerryTree[] = { static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -138,7 +138,7 @@ const struct SpriteFrameImage gObjectEventPicTable_GrepaBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_RabutaBerryTree[] = { static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -152,7 +152,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RabutaBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_NomelBerryTree[] = { static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -166,7 +166,7 @@ const struct SpriteFrameImage gObjectEventPicTable_NomelBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_LeppaBerryTree[] = { static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -180,7 +180,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LeppaBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_LiechiBerryTree[] = { static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -194,7 +194,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LiechiBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_HondewBerryTree[] = { static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -208,7 +208,7 @@ const struct SpriteFrameImage gObjectEventPicTable_HondewBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5}; const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5};
const struct SpriteFrameImage gObjectEventPicTable_AguavBerryTree[] = { static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -222,7 +222,7 @@ const struct SpriteFrameImage gObjectEventPicTable_AguavBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_WikiBerryTree[] = { static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -236,7 +236,7 @@ const struct SpriteFrameImage gObjectEventPicTable_WikiBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_PomegBerryTree[] = { static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -250,7 +250,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PomegBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_RawstBerryTree[] = { static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -264,7 +264,7 @@ const struct SpriteFrameImage gObjectEventPicTable_RawstBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_SpelonBerryTree[] = { static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -278,7 +278,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SpelonBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_ChestoBerryTree[] = { static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -292,7 +292,7 @@ const struct SpriteFrameImage gObjectEventPicTable_ChestoBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_OranBerryTree[] = { static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -306,7 +306,7 @@ const struct SpriteFrameImage gObjectEventPicTable_OranBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_PersimBerryTree[] = { static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -320,7 +320,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PersimBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_SitrusBerryTree[] = { static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -334,7 +334,7 @@ const struct SpriteFrameImage gObjectEventPicTable_SitrusBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_AspearBerryTree[] = { static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -348,7 +348,7 @@ const struct SpriteFrameImage gObjectEventPicTable_AspearBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3}; const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3};
const struct SpriteFrameImage gObjectEventPicTable_PamtreBerryTree[] = { static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -362,7 +362,7 @@ const struct SpriteFrameImage gObjectEventPicTable_PamtreBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_CornnBerryTree[] = { static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -376,7 +376,7 @@ const struct SpriteFrameImage gObjectEventPicTable_CornnBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_LansatBerryTree[] = { static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -390,7 +390,7 @@ const struct SpriteFrameImage gObjectEventPicTable_LansatBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2}; const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage gObjectEventPicTable_DurinBerryTree[] = { static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -404,7 +404,7 @@ const struct SpriteFrameImage gObjectEventPicTable_DurinBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4}; const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage gObjectEventPicTable_TamatoBerryTree[] = { static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1), overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
@@ -423,49 +423,49 @@ const u8 gDeadBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_
const u8 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES}; const u8 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES};
const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = { const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_CheriBerryTree, [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = sPicTable_CheriBerryTree,
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_ChestoBerryTree, [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = sPicTable_ChestoBerryTree,
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PechaBerryTree, [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PechaBerryTree,
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RawstBerryTree, [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = sPicTable_RawstBerryTree,
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_AspearBerryTree, [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_AspearBerryTree,
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LeppaBerryTree, [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_LeppaBerryTree,
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_OranBerryTree, [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_OranBerryTree,
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PersimBerryTree, [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = sPicTable_PersimBerryTree,
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LumBerryTree, [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = sPicTable_LumBerryTree,
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_SitrusBerryTree, [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = sPicTable_SitrusBerryTree,
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_FigyBerryTree, [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = sPicTable_FigyBerryTree,
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_WikiBerryTree, [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = sPicTable_WikiBerryTree,
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_MagoBerryTree, [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree,
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_AguavBerryTree, [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree,
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_IapapaBerryTree, [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree,
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RazzBerryTree, [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RazzBerryTree, [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_MagoBerryTree, [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree,
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_WepearBerryTree, [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree,
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_IapapaBerryTree, [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree,
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PomegBerryTree, [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_KelpsyBerryTree, [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = sPicTable_KelpsyBerryTree,
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_WepearBerryTree, [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree,
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_HondewBerryTree, [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_GrepaBerryTree, [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_TamatoBerryTree, [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = sPicTable_TamatoBerryTree,
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_CornnBerryTree, [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PomegBerryTree, [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RabutaBerryTree, [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree,
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_NomelBerryTree, [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_NomelBerryTree,
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_SpelonBerryTree, [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = sPicTable_SpelonBerryTree,
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PamtreBerryTree, [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = sPicTable_PamtreBerryTree,
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_RabutaBerryTree, [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree,
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_DurinBerryTree, [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_HondewBerryTree, [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LiechiBerryTree, [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LiechiBerryTree,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_HondewBerryTree, [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_AguavBerryTree, [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_PomegBerryTree, [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_GrepaBerryTree, [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_LansatBerryTree, [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = sPicTable_LansatBerryTree,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_CornnBerryTree, [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gObjectEventPicTable_DurinBerryTree, [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
}; };
const u8 *const gBerryTreePaletteSlotTablePointers[] = { const u8 *const gBerryTreePaletteSlotTablePointers[] = {
@@ -252,7 +252,7 @@ u8 MovementAction_AcroEndWheelieMoveRight_Step0(struct ObjectEvent *, struct Spr
u8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_Levitate_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Levitate_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_StopLevitate_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StopLevitate_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_DestroyExtraTaskIfAtTop_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StopLevitateAtTop_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *, struct Sprite *);
@@ -416,7 +416,7 @@ u8 (*const gMovementActionFuncs_WalkLeftAffine[])(struct ObjectEvent *, struct S
u8 (*const gMovementActionFuncs_WalkRightAffine[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkRightAffine[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_Levitate[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_Levitate[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_StopLevitate[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_StopLevitate[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_DestroyExtraTaskIfAtTop[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_StopLevitateAtTop[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_Figure8[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_Figure8[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *);
@@ -576,7 +576,7 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *)
[MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine, [MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine,
[MOVEMENT_ACTION_LEVITATE] = gMovementActionFuncs_Levitate, [MOVEMENT_ACTION_LEVITATE] = gMovementActionFuncs_Levitate,
[MOVEMENT_ACTION_STOP_LEVITATE] = gMovementActionFuncs_StopLevitate, [MOVEMENT_ACTION_STOP_LEVITATE] = gMovementActionFuncs_StopLevitate,
[MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP] = gMovementActionFuncs_DestroyExtraTaskIfAtTop, [MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP] = gMovementActionFuncs_StopLevitateAtTop,
[MOVEMENT_ACTION_FIGURE_8] = gMovementActionFuncs_Figure8, [MOVEMENT_ACTION_FIGURE_8] = gMovementActionFuncs_Figure8,
[MOVEMENT_ACTION_FLY_UP] = gMovementActionFuncs_FlyUp, [MOVEMENT_ACTION_FLY_UP] = gMovementActionFuncs_FlyUp,
[MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown, [MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown,
@@ -602,7 +602,7 @@ u8 (*const gMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite
MovementAction_PauseSpriteAnim, MovementAction_PauseSpriteAnim,
}; };
u8 (*const gUnknown_0850DEE8[])(u8) = { static u8 (*const sDirectionAnimFuncsBySpeed[])(u8) = {
GetMoveDirectionAnimNum, GetMoveDirectionAnimNum,
GetMoveDirectionFastAnimNum, GetMoveDirectionFastAnimNum,
GetMoveDirectionFastAnimNum, GetMoveDirectionFastAnimNum,
@@ -706,8 +706,8 @@ u8 (*const gMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct
MovementAction_PauseSpriteAnim, MovementAction_PauseSpriteAnim,
}; };
const s16 gUnknown_0850DFBC[] = {0, 1, 1}; static const s16 sJumpInitDisplacements[] = {0, 1, 1};
const s16 gUnknown_0850DFC2[] = {0, 0, 1}; static const s16 sJumpDisplacements[] = {0, 0, 1};
u8 (*const gMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = { u8 (*const gMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = {
MovementAction_Jump2Down_Step0, MovementAction_Jump2Down_Step0,
@@ -1507,7 +1507,7 @@ u8 (*const gMovementActionFuncs_StopLevitate[])(struct ObjectEvent *, struct Spr
MovementAction_Finish, MovementAction_Finish,
}; };
u8 (*const gMovementActionFuncs_DestroyExtraTaskIfAtTop[])(struct ObjectEvent *, struct Sprite *) = { u8 (*const gMovementActionFuncs_StopLevitateAtTop[])(struct ObjectEvent *, struct Sprite *) = {
MovementAction_DestroyExtraTaskIfAtTop_Step0, MovementAction_StopLevitateAtTop_Step0,
MovementAction_Finish, MovementAction_Finish,
}; };
File diff suppressed because it is too large Load Diff
@@ -1,245 +1,245 @@
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump = {0xFFFF, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_QuintyPlump, gObjectEventPicTable_QuintyPlump, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump = {0xFFFF, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_QuintyPlump, sPicTable_QuintyPlump, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NinjaBoy, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_NinjaBoy, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Twin, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Twin, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Boy1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Girl1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Boy2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Girl2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleBoy, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_LittleBoy, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleGirl, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_LittleGirl, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy3, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Boy3, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl3, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Girl3, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RichBoy, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RichBoy, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_FatMan, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_FatMan, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_PokefanF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ExpertM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ExpertF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman3, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman3, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_PokefanM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman4, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman4, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cook, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Cook, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LinkReceptionist, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_LinkReceptionist, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_OldMan, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldWoman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_OldWoman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Camper, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Camper, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Picnicker, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Picnicker, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man3, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man3, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman5, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Woman5, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Youngster, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Youngster, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BugCatcher, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_BugCatcher, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PsychicM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_PsychicM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SchoolKidM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_SchoolKidM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maniac, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Maniac, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HexManiac, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_HexManiac, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RayquazaStill, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RayquazaStill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, sOamTables_64x64, sAnimTable_Standard, sPicTable_RayquazaStill, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BlackBelt, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_BlackBelt, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Beauty, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Beauty, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Scientist1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lass, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Lass, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Gentleman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Gentleman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sailor, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Sailor, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fisherman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Fisherman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_TuberF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_TuberM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Hiker, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Hiker, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Nurse, gObjectEventPicTable_Nurse, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Nurse, sPicTable_Nurse, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ItemBall, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ItemBall, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, NULL, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, NULL, sAnimTable_BerryTree, sPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_BerryTree, sPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BerryTree, sPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ProfBirch, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ProfBirch, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man4, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man4, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man5, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Man5, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ReporterM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ReporterF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_CuttableTree, gObjectEventPicTable_CuttableTree, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_CuttableTree, sPicTable_CuttableTree, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MartEmployee, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MartEmployee, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Teala, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Teala, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BreakableRock, gObjectEventPicTable_BreakableRock, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_BreakableRock, sPicTable_BreakableRock, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PushableBoulder, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PushableBoulder, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_MayNormal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayMachBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_MaySurfing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_TRUCK, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_48x48, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Truck, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_TRUCK, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_48x48, sAnimTable_Inanimate, sPicTable_Truck, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirchsBag, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_BirchsBag, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_ZIGZAGOON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_ZIGZAGOON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena = {0xFFFF, OBJ_EVENT_PAL_TAG_POOCHYENA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Poochyena, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena = {0xFFFF, OBJ_EVENT_PAL_TAG_POOCHYENA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Poochyena, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Artist, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Artist, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_MayNormal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayMachBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_AcroBike, sPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Surfing, sPicTable_MaySurfing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_FieldMove, sPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cameraman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Cameraman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayUnderwater, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayUnderwater, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_MOVING_BOX, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MovingBox, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_MOVING_BOX, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MovingBox, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar = {0xFFFF, OBJ_EVENT_PAL_TAG_CABLE_CAR, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CableCar, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar = {0xFFFF, OBJ_EVENT_PAL_TAG_CABLE_CAR, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, sOamTables_64x64, sAnimTable_Inanimate, sPicTable_CableCar, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist2, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Scientist2, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DevonEmployee, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_DevonEmployee, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_AquaMemberM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_AquaMemberF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberM, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MagmaMemberM, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberF, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MagmaMemberF, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sidney, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Sidney, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Phoebe, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Phoebe, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Glacia, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Glacia, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Drake, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Drake, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Roxanne, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Roxanne, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brawly, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Brawly, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wattson, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Wattson, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Flannery, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Flannery, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Norman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Norman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Winona, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Winona, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Liza, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Liza, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tate, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Tate, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wallace, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Wallace, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Steven, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Steven, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wally, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Wally, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_BrendanFishing, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Fishing, sPicTable_BrendanFishing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_MayFishing, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Fishing, sPicTable_MayFishing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_SSTIDAL, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_96x40, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSTidal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_SSTIDAL, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, sOamTables_96x40, sAnimTable_Standard, sPicTable_SSTidal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_88x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SubmarineShadow, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, sOamTables_88x32, sAnimTable_Standard, sPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PichuDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PichuDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikachuDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PikachuDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MarillDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MarillDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TogepiDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TogepiDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TotodileDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TotodileDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MeowthDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MeowthDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ClefairyDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ClefairyDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DittoDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_DittoDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SmoochumDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SmoochumDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TreeckoDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TreeckoDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TorchicDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_TorchicDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MudkipDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_MudkipDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DuskullDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_DuskullDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WynautDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_WynautDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BaltoyDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_BaltoyDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KecleonDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_KecleonDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_AzurillDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_AzurillDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SkittyDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SkittyDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SwabluDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SwabluDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GulpinDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_GulpinDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_LotadDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_LotadDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SeedotDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SeedotDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikaCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_PikaCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_RoundCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_RoundCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KissCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_KissCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ZigzagCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_ZigzagCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SpinCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_SpinCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DiamondCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_DiamondCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BallCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_BallCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GrassCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_GrassCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_FireCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_FireCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WaterCushion, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_WaterCushion, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GameboyKid, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_GameboyKid, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ContestJudge, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_ContestJudge, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanWatering, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_BrendanWatering, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayWatering, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_MayWatering, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BrendanDecorating, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Inanimate, sPicTable_BrendanDecorating, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MayDecorating, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Inanimate, sPicTable_MayDecorating, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Archie, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Archie, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maxie, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Maxie, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreFront = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_KyogreFront, sAffineAnimTable_KyogreGroudon};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonFront = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_GroudonFront, sAffineAnimTable_KyogreGroudon};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreSide, gObjectEventRotScalAnimTable_KyogreGroudon}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreSide = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_KyogreSide, sAffineAnimTable_KyogreGroudon};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Groudon3, gObjectEventPicTable_GroudonSide, gObjectEventRotScalAnimTable_KyogreGroudon}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonSide = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_GroudonSide, sPicTable_GroudonSide, sAffineAnimTable_KyogreGroudon};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Fossil, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Inanimate, sPicTable_Fossil, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Regi, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Regi, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Regi, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Skitty, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Skitty, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Kecleon, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2 = {0xFFFF, OBJ_EVENT_PAL_TAG_KYOGRE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreAsleep = {0xFFFF, OBJ_EVENT_PAL_TAG_KYOGRE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_KyogreFront, sAffineAnimTable_KyogreGroudon};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2 = {0xFFFF, OBJ_EVENT_PAL_TAG_GROUDON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonAsleep = {0xFFFF, OBJ_EVENT_PAL_TAG_GROUDON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_GroudonFront, sAffineAnimTable_KyogreGroudon};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Rayquaza2, gObjectEventPicTable_Rayquaza, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, sOamTables_64x64, sAnimTable_Rayquaza, sPicTable_Rayquaza, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Zigzagoon, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Zigzagoon, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pikachu, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Pikachu, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azumarill, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Azumarill, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wingull, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Wingull, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Kecleon, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMSwimming, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_TuberMSwimming, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azurill, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, sOamTables_16x16, sAnimTable_Standard, sPicTable_Azurill, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mom, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Mom, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_BrendanMayNormal, sPicTable_MayNormal, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Juan, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Juan, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scott, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Scott, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Statue, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Inanimate, sPicTable_Statue, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kirlia, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Kirlia, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Dusclops, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Dusclops, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Red, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Red, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Leaf, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Leaf, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sudowoodo, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Sudowoodo, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mew, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Mew, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys = {0xFFFF, OBJ_EVENT_PAL_TAG_DEOXYS, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Deoxys, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys = {0xFFFF, OBJ_EVENT_PAL_TAG_DEOXYS, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Deoxys, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone = {0xFFFF, OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone = {0xFFFF, OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Inanimate, sPicTable_BirthIslandStone, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Anabel, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Anabel, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tucker, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Tucker, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Greta, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Greta, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Spenser, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Spenser, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Noland, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Noland, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lucy, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Lucy, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brandon, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_Brandon, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_MAY, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_MAY, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, sOamTables_16x32, sAnimTable_Standard, sPicTable_RubySapphireMay, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_LUGIA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_LUGIA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_Standard, sPicTable_Lugia, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_HO_OH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable}; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_HO_OH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, sOamTables_32x32, sAnimTable_HoOh, sPicTable_HoOh, gDummySpriteAffineAnimTable};
@@ -39,7 +39,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza1; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RayquazaStill;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt;
@@ -195,17 +195,17 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre1; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreFront;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon1; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonFront;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreAsleep;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonAsleep;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill;
@@ -219,8 +219,8 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre3; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreSide;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon3; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonSide;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia; const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia;
@@ -288,7 +288,7 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM
[OBJ_EVENT_GFX_SCHOOL_KID_M] = &gObjectEventGraphicsInfo_SchoolKidM, [OBJ_EVENT_GFX_SCHOOL_KID_M] = &gObjectEventGraphicsInfo_SchoolKidM,
[OBJ_EVENT_GFX_MANIAC] = &gObjectEventGraphicsInfo_Maniac, [OBJ_EVENT_GFX_MANIAC] = &gObjectEventGraphicsInfo_Maniac,
[OBJ_EVENT_GFX_HEX_MANIAC] = &gObjectEventGraphicsInfo_HexManiac, [OBJ_EVENT_GFX_HEX_MANIAC] = &gObjectEventGraphicsInfo_HexManiac,
[OBJ_EVENT_GFX_RAYQUAZA_1] = &gObjectEventGraphicsInfo_Rayquaza1, [OBJ_EVENT_GFX_RAYQUAZA_STILL] = &gObjectEventGraphicsInfo_RayquazaStill,
[OBJ_EVENT_GFX_SWIMMER_M] = &gObjectEventGraphicsInfo_SwimmerM, [OBJ_EVENT_GFX_SWIMMER_M] = &gObjectEventGraphicsInfo_SwimmerM,
[OBJ_EVENT_GFX_SWIMMER_F] = &gObjectEventGraphicsInfo_SwimmerF, [OBJ_EVENT_GFX_SWIMMER_F] = &gObjectEventGraphicsInfo_SwimmerF,
[OBJ_EVENT_GFX_BLACK_BELT] = &gObjectEventGraphicsInfo_BlackBelt, [OBJ_EVENT_GFX_BLACK_BELT] = &gObjectEventGraphicsInfo_BlackBelt,
@@ -444,17 +444,17 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM
[OBJ_EVENT_GFX_MAY_DECORATING] = &gObjectEventGraphicsInfo_MayDecorating, [OBJ_EVENT_GFX_MAY_DECORATING] = &gObjectEventGraphicsInfo_MayDecorating,
[OBJ_EVENT_GFX_ARCHIE] = &gObjectEventGraphicsInfo_Archie, [OBJ_EVENT_GFX_ARCHIE] = &gObjectEventGraphicsInfo_Archie,
[OBJ_EVENT_GFX_MAXIE] = &gObjectEventGraphicsInfo_Maxie, [OBJ_EVENT_GFX_MAXIE] = &gObjectEventGraphicsInfo_Maxie,
[OBJ_EVENT_GFX_KYOGRE_1] = &gObjectEventGraphicsInfo_Kyogre1, [OBJ_EVENT_GFX_KYOGRE_FRONT] = &gObjectEventGraphicsInfo_KyogreFront,
[OBJ_EVENT_GFX_GROUDON_1] = &gObjectEventGraphicsInfo_Groudon1, [OBJ_EVENT_GFX_GROUDON_FRONT] = &gObjectEventGraphicsInfo_GroudonFront,
[OBJ_EVENT_GFX_FOSSIL] = &gObjectEventGraphicsInfo_Fossil, [OBJ_EVENT_GFX_FOSSIL] = &gObjectEventGraphicsInfo_Fossil,
[OBJ_EVENT_GFX_REGIROCK] = &gObjectEventGraphicsInfo_Regirock, [OBJ_EVENT_GFX_REGIROCK] = &gObjectEventGraphicsInfo_Regirock,
[OBJ_EVENT_GFX_REGICE] = &gObjectEventGraphicsInfo_Regice, [OBJ_EVENT_GFX_REGICE] = &gObjectEventGraphicsInfo_Regice,
[OBJ_EVENT_GFX_REGISTEEL] = &gObjectEventGraphicsInfo_Registeel, [OBJ_EVENT_GFX_REGISTEEL] = &gObjectEventGraphicsInfo_Registeel,
[OBJ_EVENT_GFX_SKITTY] = &gObjectEventGraphicsInfo_Skitty, [OBJ_EVENT_GFX_SKITTY] = &gObjectEventGraphicsInfo_Skitty,
[OBJ_EVENT_GFX_KECLEON] = &gObjectEventGraphicsInfo_Kecleon, [OBJ_EVENT_GFX_KECLEON] = &gObjectEventGraphicsInfo_Kecleon,
[OBJ_EVENT_GFX_KYOGRE_2] = &gObjectEventGraphicsInfo_Kyogre2, [OBJ_EVENT_GFX_KYOGRE_ASLEEP] = &gObjectEventGraphicsInfo_KyogreAsleep,
[OBJ_EVENT_GFX_GROUDON_2] = &gObjectEventGraphicsInfo_Groudon2, [OBJ_EVENT_GFX_GROUDON_ASLEEP] = &gObjectEventGraphicsInfo_GroudonAsleep,
[OBJ_EVENT_GFX_RAYQUAZA_2] = &gObjectEventGraphicsInfo_Rayquaza2, [OBJ_EVENT_GFX_RAYQUAZA] = &gObjectEventGraphicsInfo_Rayquaza,
[OBJ_EVENT_GFX_ZIGZAGOON_2] = &gObjectEventGraphicsInfo_Zigzagoon, [OBJ_EVENT_GFX_ZIGZAGOON_2] = &gObjectEventGraphicsInfo_Zigzagoon,
[OBJ_EVENT_GFX_PIKACHU] = &gObjectEventGraphicsInfo_Pikachu, [OBJ_EVENT_GFX_PIKACHU] = &gObjectEventGraphicsInfo_Pikachu,
[OBJ_EVENT_GFX_AZUMARILL] = &gObjectEventGraphicsInfo_Azumarill, [OBJ_EVENT_GFX_AZUMARILL] = &gObjectEventGraphicsInfo_Azumarill,
@@ -468,8 +468,8 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM
[OBJ_EVENT_GFX_JUAN] = &gObjectEventGraphicsInfo_Juan, [OBJ_EVENT_GFX_JUAN] = &gObjectEventGraphicsInfo_Juan,
[OBJ_EVENT_GFX_SCOTT] = &gObjectEventGraphicsInfo_Scott, [OBJ_EVENT_GFX_SCOTT] = &gObjectEventGraphicsInfo_Scott,
[OBJ_EVENT_GFX_POOCHYENA] = &gObjectEventGraphicsInfo_Poochyena, [OBJ_EVENT_GFX_POOCHYENA] = &gObjectEventGraphicsInfo_Poochyena,
[OBJ_EVENT_GFX_KYOGRE_3] = &gObjectEventGraphicsInfo_Kyogre3, [OBJ_EVENT_GFX_KYOGRE_SIDE] = &gObjectEventGraphicsInfo_KyogreSide,
[OBJ_EVENT_GFX_GROUDON_3] = &gObjectEventGraphicsInfo_Groudon3, [OBJ_EVENT_GFX_GROUDON_SIDE] = &gObjectEventGraphicsInfo_GroudonSide,
[OBJ_EVENT_GFX_MYSTERY_GIFT_MAN] = &gObjectEventGraphicsInfo_MysteryEventDeliveryman, [OBJ_EVENT_GFX_MYSTERY_GIFT_MAN] = &gObjectEventGraphicsInfo_MysteryEventDeliveryman,
[OBJ_EVENT_GFX_TRICK_HOUSE_STATUE] = &gObjectEventGraphicsInfo_Statue, [OBJ_EVENT_GFX_TRICK_HOUSE_STATUE] = &gObjectEventGraphicsInfo_Statue,
[OBJ_EVENT_GFX_KIRLIA] = &gObjectEventGraphicsInfo_Kirlia, [OBJ_EVENT_GFX_KIRLIA] = &gObjectEventGraphicsInfo_Kirlia,
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,4 @@
const struct Subsprite gObjectEventSpriteOamTable_16x16_0[] = { static const struct Subsprite sOamTable_16x16_0[] = {
{ {
.x = -8, .x = -8,
.y = -8, .y = -8,
@@ -9,7 +9,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x16_1[] = { static const struct Subsprite sOamTable_16x16_1[] = {
{ {
.x = -8, .x = -8,
.y = -8, .y = -8,
@@ -20,7 +20,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x16_2[] = { static const struct Subsprite sOamTable_16x16_2[] = {
{ {
.x = -8, .x = -8,
.y = -8, .y = -8,
@@ -39,7 +39,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x16_3[] = { static const struct Subsprite sOamTable_16x16_3[] = {
{ {
.x = -8, .x = -8,
.y = -8, .y = -8,
@@ -58,7 +58,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_3[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x16_4[] = { static const struct Subsprite sOamTable_16x16_4[] = {
{ {
.x = -8, .x = -8,
.y = -8, .y = -8,
@@ -77,16 +77,16 @@ const struct Subsprite gObjectEventSpriteOamTable_16x16_4[] = {
} }
}; };
const struct SubspriteTable gObjectEventSpriteOamTables_16x16[] = { static const struct SubspriteTable sOamTables_16x16[] = {
{0, NULL}, {0, NULL},
{1, gObjectEventSpriteOamTable_16x16_0}, {1, sOamTable_16x16_0},
{1, gObjectEventSpriteOamTable_16x16_1}, {1, sOamTable_16x16_1},
{2, gObjectEventSpriteOamTable_16x16_2}, {2, sOamTable_16x16_2},
{2, gObjectEventSpriteOamTable_16x16_3}, {2, sOamTable_16x16_3},
{2, gObjectEventSpriteOamTable_16x16_4} {2, sOamTable_16x16_4}
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x32_0[] = { static const struct Subsprite sOamTable_16x32_0[] = {
{ {
.x = -8, .x = -8,
.y = -16, .y = -16,
@@ -97,7 +97,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x32_1[] = { static const struct Subsprite sOamTable_16x32_1[] = {
{ {
.x = -8, .x = -8,
.y = -16, .y = -16,
@@ -108,7 +108,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x32_2[] = { static const struct Subsprite sOamTable_16x32_2[] = {
{ {
.x = -8, .x = -8,
.y = -16, .y = -16,
@@ -135,7 +135,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x32_3[] = { static const struct Subsprite sOamTable_16x32_3[] = {
{ {
.x = -8, .x = -8,
.y = -16, .y = -16,
@@ -154,7 +154,7 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_3[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_16x32_4[] = { static const struct Subsprite sOamTable_16x32_4[] = {
{ {
.x = -8, .x = -8,
.y = -16, .y = -16,
@@ -173,16 +173,16 @@ const struct Subsprite gObjectEventSpriteOamTable_16x32_4[] = {
} }
}; };
const struct SubspriteTable gObjectEventSpriteOamTables_16x32[] = { static const struct SubspriteTable sOamTables_16x32[] = {
{0, NULL}, {0, NULL},
{1, gObjectEventSpriteOamTable_16x32_0}, {1, sOamTable_16x32_0},
{1, gObjectEventSpriteOamTable_16x32_1}, {1, sOamTable_16x32_1},
{3, gObjectEventSpriteOamTable_16x32_2}, {3, sOamTable_16x32_2},
{2, gObjectEventSpriteOamTable_16x32_3}, {2, sOamTable_16x32_3},
{2, gObjectEventSpriteOamTable_16x32_4} {2, sOamTable_16x32_4}
}; };
const struct Subsprite gObjectEventSpriteOamTable_32x32_0[] = { static const struct Subsprite sOamTable_32x32_0[] = {
{ {
.x = -16, .x = -16,
.y = -16, .y = -16,
@@ -193,7 +193,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_32x32_1[] = { static const struct Subsprite sOamTable_32x32_1[] = {
{ {
.x = -16, .x = -16,
.y = -16, .y = -16,
@@ -204,7 +204,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_32x32_2[] = { static const struct Subsprite sOamTable_32x32_2[] = {
{ {
.x = -16, .x = -16,
.y = -16, .y = -16,
@@ -231,7 +231,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_32x32_3[] = { static const struct Subsprite sOamTable_32x32_3[] = {
{ {
.x = -16, .x = -16,
.y = -16, .y = -16,
@@ -250,7 +250,7 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_3[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_32x32_4[] = { static const struct Subsprite sOamTable_32x32_4[] = {
{ {
.x = -16, .x = -16,
.y = -16, .y = -16,
@@ -269,16 +269,16 @@ const struct Subsprite gObjectEventSpriteOamTable_32x32_4[] = {
} }
}; };
const struct SubspriteTable gObjectEventSpriteOamTables_32x32[] = { static const struct SubspriteTable sOamTables_32x32[] = {
{0, NULL}, {0, NULL},
{1, gObjectEventSpriteOamTable_32x32_0}, {1, sOamTable_32x32_0},
{1, gObjectEventSpriteOamTable_32x32_1}, {1, sOamTable_32x32_1},
{3, gObjectEventSpriteOamTable_32x32_2}, {3, sOamTable_32x32_2},
{2, gObjectEventSpriteOamTable_32x32_3}, {2, sOamTable_32x32_3},
{2, gObjectEventSpriteOamTable_32x32_4} {2, sOamTable_32x32_4}
}; };
const struct Subsprite gObjectEventSpriteOamTable_48x48[] = { static const struct Subsprite sOamTable_48x48[] = {
{ {
.x = -24, .x = -24,
.y = -24, .y = -24,
@@ -377,16 +377,16 @@ const struct Subsprite gObjectEventSpriteOamTable_48x48[] = {
} }
}; };
const struct SubspriteTable gObjectEventSpriteOamTables_48x48[] = { static const struct SubspriteTable sOamTables_48x48[] = {
{12, gObjectEventSpriteOamTable_48x48}, {12, sOamTable_48x48},
{12, gObjectEventSpriteOamTable_48x48}, {12, sOamTable_48x48},
{12, gObjectEventSpriteOamTable_48x48}, {12, sOamTable_48x48},
{12, gObjectEventSpriteOamTable_48x48}, {12, sOamTable_48x48},
{12, gObjectEventSpriteOamTable_48x48}, {12, sOamTable_48x48},
{12, gObjectEventSpriteOamTable_48x48} {12, sOamTable_48x48}
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x32_0[] = { static const struct Subsprite sOamTable_64x32_0[] = {
{ {
.x = -32, .x = -32,
.y = -16, .y = -16,
@@ -397,7 +397,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x32_1[] = { static const struct Subsprite sOamTable_64x32_1[] = {
{ {
.x = -32, .x = -32,
.y = -16, .y = -16,
@@ -408,7 +408,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x32_2[] = { static const struct Subsprite sOamTable_64x32_2[] = {
{ {
.x = -32, .x = -32,
.y = -16, .y = -16,
@@ -419,7 +419,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x32_3[] = { static const struct Subsprite sOamTable_64x32_3[] = {
{ {
.x = -32, .x = -32,
.y = -16, .y = -16,
@@ -431,16 +431,16 @@ const struct Subsprite gObjectEventSpriteOamTable_64x32_3[] = {
}; };
// Unused // Unused
const struct SubspriteTable gObjectEventSpriteOamTables_64x32[] = { static const struct SubspriteTable sOamTables_64x32[] = {
{0, NULL}, {0, NULL},
{1, gObjectEventSpriteOamTable_64x32_0}, {1, sOamTable_64x32_0},
{1, gObjectEventSpriteOamTable_64x32_1}, {1, sOamTable_64x32_1},
{1, gObjectEventSpriteOamTable_64x32_2}, {1, sOamTable_64x32_2},
{1, gObjectEventSpriteOamTable_64x32_3}, {1, sOamTable_64x32_3},
{1, gObjectEventSpriteOamTable_64x32_3} {1, sOamTable_64x32_3}
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x64_0[] = { static const struct Subsprite sOamTable_64x64_0[] = {
{ {
.x = -32, .x = -32,
.y = -32, .y = -32,
@@ -451,7 +451,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x64_1[] = { static const struct Subsprite sOamTable_64x64_1[] = {
{ {
.x = -32, .x = -32,
.y = -32, .y = -32,
@@ -462,7 +462,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x64_2[] = { static const struct Subsprite sOamTable_64x64_2[] = {
{ {
.x = -32, .x = -32,
.y = -32, .y = -32,
@@ -473,7 +473,7 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_64x64_3[] = { static const struct Subsprite sOamTable_64x64_3[] = {
{ {
.x = -32, .x = -32,
.y = -32, .y = -32,
@@ -484,16 +484,16 @@ const struct Subsprite gObjectEventSpriteOamTable_64x64_3[] = {
} }
}; };
const struct SubspriteTable gObjectEventSpriteOamTables_64x64[] = { static const struct SubspriteTable sOamTables_64x64[] = {
{0, NULL}, {0, NULL},
{1, gObjectEventSpriteOamTable_64x64_0}, {1, sOamTable_64x64_0},
{1, gObjectEventSpriteOamTable_64x64_1}, {1, sOamTable_64x64_1},
{1, gObjectEventSpriteOamTable_64x64_2}, {1, sOamTable_64x64_2},
{1, gObjectEventSpriteOamTable_64x64_3}, {1, sOamTable_64x64_3},
{1, gObjectEventSpriteOamTable_64x64_3} {1, sOamTable_64x64_3}
}; };
const struct Subsprite gObjectEventSpriteOamTable_96x40_0[] = { static const struct Subsprite sOamTable_96x40_0[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -616,7 +616,7 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_96x40_1[] = { static const struct Subsprite sOamTable_96x40_1[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -739,7 +739,7 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_96x40_2[] = { static const struct Subsprite sOamTable_96x40_2[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -862,7 +862,7 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_96x40_3[] = { static const struct Subsprite sOamTable_96x40_3[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -986,16 +986,16 @@ const struct Subsprite gObjectEventSpriteOamTable_96x40_3[] = {
}; };
// Used by SS Tidal // Used by SS Tidal
const struct SubspriteTable gObjectEventSpriteOamTables_96x40[] = { static const struct SubspriteTable sOamTables_96x40[] = {
{15, gObjectEventSpriteOamTable_96x40_0}, {15, sOamTable_96x40_0},
{15, gObjectEventSpriteOamTable_96x40_0}, {15, sOamTable_96x40_0},
{15, gObjectEventSpriteOamTable_96x40_1}, {15, sOamTable_96x40_1},
{15, gObjectEventSpriteOamTable_96x40_2}, {15, sOamTable_96x40_2},
{15, gObjectEventSpriteOamTable_96x40_3}, {15, sOamTable_96x40_3},
{15, gObjectEventSpriteOamTable_96x40_3} {15, sOamTable_96x40_3}
}; };
const struct Subsprite gObjectEventSpriteOamTable_88x32_0[] = { static const struct Subsprite sOamTable_88x32_0[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -1126,7 +1126,7 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_0[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_88x32_1[] = { static const struct Subsprite sOamTable_88x32_1[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -1257,7 +1257,7 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_1[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_88x32_2[] = { static const struct Subsprite sOamTable_88x32_2[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -1388,7 +1388,7 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_2[] = {
} }
}; };
const struct Subsprite gObjectEventSpriteOamTable_88x32_3[] = { static const struct Subsprite sOamTable_88x32_3[] = {
{ {
.x = -48, .x = -48,
.y = -20, .y = -20,
@@ -1520,11 +1520,11 @@ const struct Subsprite gObjectEventSpriteOamTable_88x32_3[] = {
}; };
// Used by Submarine Shadow // Used by Submarine Shadow
const struct SubspriteTable gObjectEventSpriteOamTables_88x32[] = { static const struct SubspriteTable sOamTables_88x32[] = {
{16, gObjectEventSpriteOamTable_88x32_0}, {16, sOamTable_88x32_0},
{16, gObjectEventSpriteOamTable_88x32_0}, {16, sOamTable_88x32_0},
{16, gObjectEventSpriteOamTable_88x32_1}, {16, sOamTable_88x32_1},
{16, gObjectEventSpriteOamTable_88x32_2}, {16, sOamTable_88x32_2},
{16, gObjectEventSpriteOamTable_88x32_3}, {16, sOamTable_88x32_3},
{16, gObjectEventSpriteOamTable_88x32_3} {16, sOamTable_88x32_3}
}; };
+3 -3
View File
@@ -118,12 +118,12 @@ static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/interface/party_
// Text colors for BG, FG, and Shadow in that order // Text colors for BG, FG, and Shadow in that order
static const u8 sFontColorTable[][3] = static const u8 sFontColorTable[][3] =
{ {
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY}, // Default {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_DARK_GRAY}, // Default
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_GREEN}, // Unused {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_GREEN}, // Unused
{TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}, // Gender symbol {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}, // Gender symbol
{TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, // Selection actions {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, // Selection actions
{TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, // Field moves {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, // Field moves
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, // Unused {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}, // Unused
}; };
static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] =
+5 -5
View File
@@ -15,7 +15,7 @@ static const u16 sTradePartyBoxTilemap[] = INCBIN_U16("graphics/trade/party_box_
static const u8 sTradeStripesBG2Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg2_map.bin"); static const u8 sTradeStripesBG2Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg2_map.bin");
static const u8 sTradeStripesBG3Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg3_map.bin"); static const u8 sTradeStripesBG3Tilemap[] = INCBIN_U8("graphics/trade/stripes_bg3_map.bin");
static const u8 sText_EmptyString[] = _(""); static const u8 sText_EmptyString[] = _("");
static const u8 sText_UnusedTextFormat[] = _("{COLOR WHITE}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GREY}"); static const u8 sText_UnusedTextFormat[] = _("{COLOR WHITE}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GRAY}");
const u8 gText_MaleSymbol4[] = _(""); const u8 gText_MaleSymbol4[] = _("");
const u8 gText_FemaleSymbol4[] = _(""); const u8 gText_FemaleSymbol4[] = _("");
const u8 gText_GenderlessSymbol[] = _(""); const u8 gText_GenderlessSymbol[] = _("");
@@ -35,10 +35,10 @@ static const u8 sText_CancelTrade[] = _("Cancel trade?");
static const u8 sJPText_PressBButtonToQuit[] = _("Bボタン で もどります"); static const u8 sJPText_PressBButtonToQuit[] = _("Bボタン で もどります");
static const u8 sText_Summary2[] = _("SUMMARY"); static const u8 sText_Summary2[] = _("SUMMARY");
static const u8 sText_Trade2[] = _("TRADE"); static const u8 sText_Trade2[] = _("TRADE");
static const u8 sText_CommunicationStandby[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Communication standby…\nPlease wait."); static const u8 sText_CommunicationStandby[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait.");
static const u8 sText_TheTradeHasBeenCanceled[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}The trade has\nbeen canceled."); static const u8 sText_TheTradeHasBeenCanceled[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has\nbeen canceled.");
static const u8 sText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle."); static const u8 sText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle.");
static const u8 sText_WaitingForYourFriend[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Waiting for your friend\nto finish…"); static const u8 sText_WaitingForYourFriend[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…");
static const u8 sText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); static const u8 sText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON.");
static const struct OamData sTradeOamData_32x16 = static const struct OamData sTradeOamData_32x16 =
@@ -392,7 +392,7 @@ static const u8 sTradeTextColors[] =
{ {
TEXT_COLOR_TRANSPARENT, //bg color TEXT_COLOR_TRANSPARENT, //bg color
TEXT_COLOR_WHITE, //fg color TEXT_COLOR_WHITE, //fg color
TEXT_COLOR_DARK_GREY //shadow color TEXT_COLOR_DARK_GRAY //shadow color
}; };
static const struct BgTemplate sTradeMenuBgTemplates[] = static const struct BgTemplate sTradeMenuBgTemplates[] =
+1 -1
View File
@@ -121,7 +121,7 @@ static void Task_DiplomaFadeOut(u8 taskId)
Free(sDiplomaTilemapPtr); Free(sDiplomaTilemapPtr);
FreeAllWindowBuffers(); FreeAllWindowBuffers();
DestroyTask(taskId); DestroyTask(taskId);
SetMainCallback2(sub_80861E8); SetMainCallback2(CB2_ReturnToFieldFadeFromBlack);
} }
} }
+5 -5
View File
@@ -4500,7 +4500,7 @@ struct WinCoords
}; };
enum { enum {
COLORID_GREY, COLORID_GRAY,
COLORID_RED, COLORID_RED,
COLORID_BLUE, COLORID_BLUE,
COLORID_GREEN, // Unused COLORID_GREEN, // Unused
@@ -4508,7 +4508,7 @@ enum {
static const u8 sTextColorTable[][3] = static const u8 sTextColorTable[][3] =
{ {
[COLORID_GREY] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, [COLORID_GRAY] = {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY},
[COLORID_RED] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED}, [COLORID_RED] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED},
[COLORID_BLUE] = {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, [COLORID_BLUE] = {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE},
[COLORID_GREEN] = {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN}, [COLORID_GREEN] = {TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN},
@@ -4638,7 +4638,7 @@ static void ShowNames(void)
window.baseBlock = 0x13; window.baseBlock = 0x13;
for (i = 0; i < numPlayers; coords++, i++) for (i = 0; i < numPlayers; coords++, i++)
{ {
colorsId = COLORID_GREY; colorsId = COLORID_GRAY;
playerId = GetPlayerIdByPos(i); playerId = GetPlayerIdByPos(i);
left = (56 - GetStringWidth(1, GetPlayerName(playerId), -1)) / 2u; left = (56 - GetStringWidth(1, GetPlayerName(playerId), -1)) / 2u;
window.tilemapLeft = coords->left; window.tilemapLeft = coords->left;
@@ -4729,7 +4729,7 @@ static void PrintRankedScores(u8 numPlayers_)
x = 216 - GetStringWidth(1, gText_SpacePoints, 0); x = 216 - GetStringWidth(1, gText_SpacePoints, 0);
for (i = 0; i < numPlayers; i++) for (i = 0; i < numPlayers; i++)
{ {
u8 colorsId = COLORID_GREY; u8 colorsId = COLORID_GRAY;
u8 playerId = playersByRanking[i]; u8 playerId = playersByRanking[i];
u32 points = scoreResults[playerId].score; u32 points = scoreResults[playerId].score;
@@ -4776,7 +4776,7 @@ static void ShowResults(void)
AddTextPrinterParameterized(sGfx->windowIds[1], 1, gText_10P30P50P50P, 68, 17, -1, NULL); AddTextPrinterParameterized(sGfx->windowIds[1], 1, gText_10P30P50P50P, 68, 17, -1, NULL);
for (i = 0; i < numPlayers; i++) for (i = 0; i < numPlayers; i++)
{ {
u8 colorsId = COLORID_GREY; u8 colorsId = COLORID_GRAY;
if (i == GetMultiplayerId()) if (i == GetMultiplayerId())
colorsId = COLORID_BLUE; colorsId = COLORID_BLUE;
+2 -2
View File
@@ -3932,7 +3932,7 @@ static void PrintTitle(void)
xOffset = GetStringCenterAlignXOffset(1, titleText, 144); xOffset = GetStringCenterAlignXOffset(1, titleText, 144);
FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(0));
PrintEasyChatTextWithColors(0, 1, titleText, xOffset, 1, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); PrintEasyChatTextWithColors(0, 1, titleText, xOffset, 1, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
PutWindowTilemap(0); PutWindowTilemap(0);
CopyWindowToVram(0, 3); CopyWindowToVram(0, 3);
} }
@@ -4330,7 +4330,7 @@ static void PrintWordSelectText(u8 scrollOffset, u8 numRows)
if (!DummyWordCheck(easyChatWord)) if (!DummyWordCheck(easyChatWord))
PrintEasyChatText(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, NULL); PrintEasyChatText(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, NULL);
else // Never reached else // Never reached
PrintEasyChatTextWithColors(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GREY); PrintEasyChatTextWithColors(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY);
} }
} }
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -39,7 +39,7 @@ static void CameraPanningCB_PanAhead(void);
static struct FieldCameraOffset sFieldCameraOffset; static struct FieldCameraOffset sFieldCameraOffset;
static s16 sHorizontalCameraPan; static s16 sHorizontalCameraPan;
static s16 sVerticalCameraPan; static s16 sVerticalCameraPan;
static bool8 gUnknown_03000E2C; static bool8 sBikeCameraPanFlag;
static void (*sFieldCameraPanningCallback)(void); static void (*sFieldCameraPanningCallback)(void);
struct CameraObject gFieldCamera; struct CameraObject gFieldCamera;
@@ -89,7 +89,7 @@ void FieldUpdateBgTilemapScroll(void)
SetGpuReg(REG_OFFSET_BG3VOFS, r4); SetGpuReg(REG_OFFSET_BG3VOFS, r4);
} }
void sub_8089C08(s16 *x, s16 *y) void GetCameraOffsetWithPan(s16 *x, s16 *y)
{ {
*x = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan; *x = sFieldCameraOffset.xPixelOffset + sHorizontalCameraPan;
*y = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8; *y = sFieldCameraOffset.yPixelOffset + sVerticalCameraPan + 8;
@@ -450,7 +450,7 @@ void SetCameraPanning(s16 a, s16 b)
void InstallCameraPanAheadCallback(void) void InstallCameraPanAheadCallback(void)
{ {
sFieldCameraPanningCallback = CameraPanningCB_PanAhead; sFieldCameraPanningCallback = CameraPanningCB_PanAhead;
gUnknown_03000E2C = FALSE; sBikeCameraPanFlag = FALSE;
sHorizontalCameraPan = 0; sHorizontalCameraPan = 0;
sVerticalCameraPan = 32; sVerticalCameraPan = 32;
} }
@@ -474,16 +474,16 @@ static void CameraPanningCB_PanAhead(void)
} }
else else
{ {
// this code is never reached. // this code is never reached
if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION) if (gPlayerAvatar.tileTransitionState == T_TILE_TRANSITION)
{ {
gUnknown_03000E2C ^= 1; sBikeCameraPanFlag ^= 1;
if (gUnknown_03000E2C == FALSE) if (sBikeCameraPanFlag == FALSE)
return; return;
} }
else else
{ {
gUnknown_03000E2C = FALSE; sBikeCameraPanFlag = FALSE;
} }
var = GetPlayerMovementDirection(); var = GetPlayerMovementDirection();
+5 -5
View File
@@ -3053,7 +3053,7 @@ static void SurfFieldEffect_End(struct Task *task)
gPlayerAvatar.preventStep = FALSE; gPlayerAvatar.preventStep = FALSE;
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection));
SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_PLAYER_AND_MON);
UnfreezeObjectEvents(); UnfreezeObjectEvents();
ScriptContext2_Disable(); ScriptContext2_Disable();
FieldEffectActiveListRemove(FLDEFF_USE_SURF); FieldEffectActiveListRemove(FLDEFF_USE_SURF);
@@ -3204,8 +3204,8 @@ static void FlyOutFieldEffect_BirdLeaveBall(struct Task *task)
struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; struct ObjectEvent *objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING)
{ {
SetSurfBobState(objectEvent->fieldEffectSpriteId, 2); SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_JUST_MON);
SetSurfBobWhileFlyingOutState(objectEvent->fieldEffectSpriteId, 0); SetSurfBlob_DontSyncAnim(objectEvent->fieldEffectSpriteId, FALSE);
} }
task->tBirdSpriteId = CreateFlyBirdSprite(); // Does "leave ball" animation by default task->tBirdSpriteId = CreateFlyBirdSprite(); // Does "leave ball" animation by default
task->tState++; task->tState++;
@@ -3473,7 +3473,7 @@ static void FlyInFieldEffect_BirdSwoopDown(struct Task *task)
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING)
{ {
SetSurfBobState(objectEvent->fieldEffectSpriteId, 0); SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_NONE);
} }
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING));
CameraObjectReset2(); CameraObjectReset2();
@@ -3582,7 +3582,7 @@ static void FlyInFieldEffect_End(struct Task *task)
if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING) if (task->tAvatarFlags & PLAYER_AVATAR_FLAG_SURFING)
{ {
state = PLAYER_AVATAR_STATE_SURFING; state = PLAYER_AVATAR_STATE_SURFING;
SetSurfBobState(objectEvent->fieldEffectSpriteId, 1); SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_PLAYER_AND_MON);
} }
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state)); ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state));
ObjectEventTurn(objectEvent, DIR_SOUTH); ObjectEventTurn(objectEvent, DIR_SOUTH);
+283 -194
View File
@@ -19,19 +19,22 @@ static void UpdateObjectReflectionSprite(struct Sprite *);
static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite); static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *, u8); static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *, u8);
static void LoadObjectRegularReflectionPalette(struct ObjectEvent *, u8); static void LoadObjectRegularReflectionPalette(struct ObjectEvent *, u8);
static void sub_81561FC(struct Sprite *, u8, u8); static void UpdateGrassFieldEffectSubpriority(struct Sprite *, u8, u8);
static void FadeFootprintsTireTracks_Step0(struct Sprite *); static void FadeFootprintsTireTracks_Step0(struct Sprite *);
static void FadeFootprintsTireTracks_Step1(struct Sprite *); static void FadeFootprintsTireTracks_Step1(struct Sprite *);
static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *); static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *);
static void UpdateAshFieldEffect_Step0(struct Sprite *); static void UpdateAshFieldEffect_Wait(struct Sprite *);
static void UpdateAshFieldEffect_Step1(struct Sprite *); static void UpdateAshFieldEffect_Show(struct Sprite *);
static void UpdateAshFieldEffect_Step2(struct Sprite *); static void UpdateAshFieldEffect_End(struct Sprite *);
static void SynchroniseSurfAnim(struct ObjectEvent *, struct Sprite *); static void SynchroniseSurfAnim(struct ObjectEvent *, struct Sprite *);
static void sub_81556E8(struct ObjectEvent *, struct Sprite *); static void SynchroniseSurfPosition(struct ObjectEvent *, struct Sprite *);
static void CreateBobbingEffect(struct ObjectEvent *, struct Sprite *, struct Sprite *); static void UpdateBobbingEffect(struct ObjectEvent *, struct Sprite *, struct Sprite *);
static void sub_8155850(struct Sprite *); static void SpriteCB_UnderwaterSurfBlob(struct Sprite *);
static u32 ShowDisguiseFieldEffect(u8, u8, u8); static u32 ShowDisguiseFieldEffect(u8, u8, u8);
// Used by several field effects to determine which of a group it is
#define sFldEff data[1]
#define sReflectionObjEventId data[0] #define sReflectionObjEventId data[0]
#define sReflectionObjEventLocalId data[1] #define sReflectionObjEventLocalId data[1]
#define sReflectionVerticalOffset data[2] #define sReflectionVerticalOffset data[2]
@@ -273,6 +276,16 @@ void UpdateShadowFieldEffect(struct Sprite *sprite)
} }
} }
// Sprite data for FLDEFF_TALL_GRASS and FLDEFF_LONG_GRASS
#define sElevation data[0]
#define sX data[1]
#define sY data[2]
#define sMapNum data[3] // Lower 8 bits
#define sLocalId data[3] >> 8 // Upper 8 bits
#define sMapGroup data[4]
#define sCurrentMap data[5]
#define sObjectMoved data[7]
u32 FldEff_TallGrass(void) u32 FldEff_TallGrass(void)
{ {
s16 x; s16 x;
@@ -289,16 +302,15 @@ u32 FldEff_TallGrass(void)
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3]; sprite->oam.priority = gFieldEffectArguments[3];
sprite->data[0] = gFieldEffectArguments[2]; sprite->sElevation = gFieldEffectArguments[2];
sprite->data[1] = gFieldEffectArguments[0]; sprite->sX = gFieldEffectArguments[0];
sprite->data[2] = gFieldEffectArguments[1]; sprite->sY = gFieldEffectArguments[1];
sprite->data[3] = gFieldEffectArguments[4]; sprite->sMapNum = gFieldEffectArguments[4]; // Also sLocalId
sprite->data[4] = gFieldEffectArguments[5]; sprite->sMapGroup = gFieldEffectArguments[5];
sprite->data[5] = gFieldEffectArguments[6]; sprite->sCurrentMap = gFieldEffectArguments[6];
if (gFieldEffectArguments[7]) if (gFieldEffectArguments[7])
{ SeekSpriteAnim(sprite, 4); // Skip to end of anim
SeekSpriteAnim(sprite, 4);
}
} }
return 0; return 0;
} }
@@ -312,34 +324,42 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite)
u8 objectEventId; u8 objectEventId;
struct ObjectEvent *objectEvent; struct ObjectEvent *objectEvent;
mapNum = sprite->data[5] >> 8; mapNum = sprite->sCurrentMap >> 8;
mapGroup = sprite->data[5]; mapGroup = sprite->sCurrentMap;
if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup)) if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup))
{ {
sprite->data[1] -= gCamera.x; sprite->sX -= gCamera.x;
sprite->data[2] -= gCamera.y; sprite->sY -= gCamera.y;
sprite->data[5] = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup; sprite->sCurrentMap = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup;
} }
localId = sprite->data[3] >> 8; localId = sprite->sLocalId;
mapNum = sprite->data[3]; mapNum = sprite->sMapNum;
mapGroup = sprite->data[4]; mapGroup = sprite->sMapGroup;
metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]); metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->sX, sprite->sY);
if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded))
if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)
|| !MetatileBehavior_IsTallGrass(metatileBehavior)
|| (sprite->sObjectMoved && sprite->animEnded))
{ {
FieldEffectStop(sprite, FLDEFF_TALL_GRASS); FieldEffectStop(sprite, FLDEFF_TALL_GRASS);
} }
else else
{ {
// Check if the object that triggered the effect has moved away
objectEvent = &gObjectEvents[objectEventId]; objectEvent = &gObjectEvents[objectEventId];
if ((objectEvent->currentCoords.x != sprite->data[1] || objectEvent->currentCoords.y != sprite->data[2]) && (objectEvent->previousCoords.x != sprite->data[1] || objectEvent->previousCoords.y != sprite->data[2])) if ((objectEvent->currentCoords.x != sprite->sX
sprite->data[7] = TRUE; || objectEvent->currentCoords.y != sprite->sY)
&& (objectEvent->previousCoords.x != sprite->sX
|| objectEvent->previousCoords.y != sprite->sY))
sprite->sObjectMoved = TRUE;
// Metatile behavior var re-used
metatileBehavior = 0; metatileBehavior = 0;
if (sprite->animCmdIndex == 0) if (sprite->animCmdIndex == 0)
metatileBehavior = 4; metatileBehavior = 4;
UpdateObjectEventSpriteVisibility(sprite, 0); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
sub_81561FC(sprite, sprite->data[0], metatileBehavior); UpdateGrassFieldEffectSubpriority(sprite, sprite->sElevation, metatileBehavior);
} }
} }
@@ -355,8 +375,8 @@ u32 FldEff_JumpTallGrass(void)
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3]; sprite->oam.priority = gFieldEffectArguments[3];
sprite->data[0] = gFieldEffectArguments[2]; sprite->sElevation = gFieldEffectArguments[2];
sprite->data[1] = FLDEFF_JUMP_TALL_GRASS; sprite->sFldEff = FLDEFF_JUMP_TALL_GRASS;
} }
return 0; return 0;
} }
@@ -371,11 +391,14 @@ u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s
if (gSprites[i].inUse) if (gSprites[i].inUse)
{ {
sprite = &gSprites[i]; sprite = &gSprites[i];
if (sprite->callback == UpdateTallGrassFieldEffect && (x == sprite->data[1] && y == sprite->data[2]) && (localId == (u8)(sprite->data[3] >> 8) && mapNum == (sprite->data[3] & 0xFF) && mapGroup == sprite->data[4])) if (sprite->callback == UpdateTallGrassFieldEffect
&& (x == sprite->sX && y == sprite->sY)
&& localId == (u8)(sprite->sLocalId)
&& mapNum == (sprite->sMapNum & 0xFF)
&& mapGroup == sprite->sMapGroup)
return i; return i;
} }
} }
return MAX_SPRITES; return MAX_SPRITES;
} }
@@ -395,16 +418,15 @@ u32 FldEff_LongGrass(void)
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]); sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]);
sprite->data[0] = gFieldEffectArguments[2]; sprite->sElevation = gFieldEffectArguments[2];
sprite->data[1] = gFieldEffectArguments[0]; sprite->sX = gFieldEffectArguments[0];
sprite->data[2] = gFieldEffectArguments[1]; sprite->sY = gFieldEffectArguments[1];
sprite->data[3] = gFieldEffectArguments[4]; sprite->sMapNum = gFieldEffectArguments[4]; // Also sLocalId
sprite->data[4] = gFieldEffectArguments[5]; sprite->sMapGroup = gFieldEffectArguments[5];
sprite->data[5] = gFieldEffectArguments[6]; sprite->sCurrentMap = gFieldEffectArguments[6];
if (gFieldEffectArguments[7]) if (gFieldEffectArguments[7])
{ SeekSpriteAnim(sprite, 6); // Skip to end of anim
SeekSpriteAnim(sprite, 6);
}
} }
return 0; return 0;
} }
@@ -418,34 +440,47 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite)
u8 objectEventId; u8 objectEventId;
struct ObjectEvent *objectEvent; struct ObjectEvent *objectEvent;
mapNum = sprite->data[5] >> 8; mapNum = sprite->sCurrentMap >> 8;
mapGroup = sprite->data[5]; mapGroup = sprite->sCurrentMap;
if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup)) if (gCamera.active && (gSaveBlock1Ptr->location.mapNum != mapNum || gSaveBlock1Ptr->location.mapGroup != mapGroup))
{ {
sprite->data[1] -= gCamera.x; sprite->sX -= gCamera.x;
sprite->data[2] -= gCamera.y; sprite->sY -= gCamera.y;
sprite->data[5] = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup; sprite->sCurrentMap = ((u8)gSaveBlock1Ptr->location.mapNum << 8) | (u8)gSaveBlock1Ptr->location.mapGroup;
} }
localId = sprite->data[3] >> 8; localId = sprite->sLocalId;
mapNum = sprite->data[3]; mapNum = sprite->sMapNum;
mapGroup = sprite->data[4]; mapGroup = sprite->sMapGroup;
metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]); metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data[1], sprite->data[2]);
if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->data[7] && sprite->animEnded)) if (TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)
|| !MetatileBehavior_IsLongGrass(metatileBehavior)
|| (sprite->sObjectMoved && sprite->animEnded))
{ {
FieldEffectStop(sprite, FLDEFF_LONG_GRASS); FieldEffectStop(sprite, FLDEFF_LONG_GRASS);
} }
else else
{ {
// Check if the object that triggered the effect has moved away
objectEvent = &gObjectEvents[objectEventId]; objectEvent = &gObjectEvents[objectEventId];
if ((objectEvent->currentCoords.x != sprite->data[1] || objectEvent->currentCoords.y != sprite->data[2]) && (objectEvent->previousCoords.x != sprite->data[1] || objectEvent->previousCoords.y != sprite->data[2])) if ((objectEvent->currentCoords.x != sprite->data[1]
{ || objectEvent->currentCoords.y != sprite->data[2])
sprite->data[7] = TRUE; && (objectEvent->previousCoords.x != sprite->data[1]
} || objectEvent->previousCoords.y != sprite->data[2]))
UpdateObjectEventSpriteVisibility(sprite, 0); sprite->sObjectMoved = TRUE;
sub_81561FC(sprite, sprite->data[0], 0);
UpdateObjectEventSpriteInvisibility(sprite, FALSE);
UpdateGrassFieldEffectSubpriority(sprite, sprite->sElevation, 0);
} }
} }
#undef sX
#undef sY
#undef sMapNum
#undef sLocalId
#undef sMapGroup
#undef sCurrentMap
#undef sObjectMoved
u32 FldEff_JumpLongGrass(void) u32 FldEff_JumpLongGrass(void)
{ {
u8 spriteId; u8 spriteId;
@@ -458,8 +493,8 @@ u32 FldEff_JumpLongGrass(void)
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3]; sprite->oam.priority = gFieldEffectArguments[3];
sprite->data[0] = gFieldEffectArguments[2]; sprite->sElevation = gFieldEffectArguments[2];
sprite->data[1] = FLDEFF_JUMP_LONG_GRASS; sprite->sFldEff = FLDEFF_JUMP_LONG_GRASS;
} }
return 0; return 0;
} }
@@ -520,7 +555,7 @@ void UpdateShortGrassFieldEffect(struct Sprite *sprite)
sprite->pos2.y = (graphicsInfo->height >> 1) - 8; sprite->pos2.y = (graphicsInfo->height >> 1) - 8;
sprite->subpriority = linkedSprite->subpriority - 1; sprite->subpriority = linkedSprite->subpriority - 1;
sprite->oam.priority = linkedSprite->oam.priority; sprite->oam.priority = linkedSprite->oam.priority;
UpdateObjectEventSpriteVisibility(sprite, linkedSprite->invisible); UpdateObjectEventSpriteInvisibility(sprite, linkedSprite->invisible);
} }
} }
@@ -594,14 +629,14 @@ static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite)
if (++sprite->data[1] > 40) if (++sprite->data[1] > 40)
sprite->data[0] = 1; sprite->data[0] = 1;
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
} }
static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite) static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite)
{ {
sprite->invisible ^= 1; sprite->invisible ^= 1;
sprite->data[1]++; sprite->data[1]++;
UpdateObjectEventSpriteVisibility(sprite, sprite->invisible); UpdateObjectEventSpriteInvisibility(sprite, sprite->invisible);
if (sprite->data[1] > 56) if (sprite->data[1] > 56)
{ {
FieldEffectStop(sprite, sprite->data[7]); FieldEffectStop(sprite, sprite->data[7]);
@@ -648,7 +683,7 @@ void UpdateSplashFieldEffect(struct Sprite *sprite)
{ {
sprite->pos1.x = gSprites[gObjectEvents[objectEventId].spriteId].pos1.x; sprite->pos1.x = gSprites[gObjectEvents[objectEventId].spriteId].pos1.x;
sprite->pos1.y = gSprites[gObjectEvents[objectEventId].spriteId].pos1.y; sprite->pos1.y = gSprites[gObjectEvents[objectEventId].spriteId].pos1.y;
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
} }
} }
@@ -734,7 +769,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite)
sprite->pos1.x = linkedSprite->pos1.x; sprite->pos1.x = linkedSprite->pos1.x;
sprite->pos1.y = linkedSprite->pos1.y; sprite->pos1.y = linkedSprite->pos1.y;
sprite->subpriority = linkedSprite->subpriority; sprite->subpriority = linkedSprite->subpriority;
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
if (objectEvent->currentCoords.x != sprite->data[3] || objectEvent->currentCoords.y != sprite->data[4]) if (objectEvent->currentCoords.x != sprite->data[3] || objectEvent->currentCoords.y != sprite->data[4])
{ {
sprite->data[3] = objectEvent->currentCoords.x; sprite->data[3] = objectEvent->currentCoords.x;
@@ -804,7 +839,7 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite)
sprite->pos1.x = linkedSprite->pos1.x; sprite->pos1.x = linkedSprite->pos1.x;
sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 8; sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 8;
sprite->subpriority = linkedSprite->subpriority - 1; sprite->subpriority = linkedSprite->subpriority - 1;
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
} }
} }
@@ -876,14 +911,21 @@ u32 FldEff_WaterSurfacing(void)
return 0; return 0;
} }
void StartAshFieldEffect(s16 x, s16 y, u16 metatileId, s16 d) // Sprite data for FLDEFF_ASH
#define sState data[0]
#define sX data[1]
#define sY data[2]
#define sMetatileId data[3]
#define sDelay data[4]
void StartAshFieldEffect(s16 x, s16 y, u16 metatileId, s16 delay)
{ {
gFieldEffectArguments[0] = x; gFieldEffectArguments[0] = x;
gFieldEffectArguments[1] = y; gFieldEffectArguments[1] = y;
gFieldEffectArguments[2] = 0x52; gFieldEffectArguments[2] = 82; // subpriority
gFieldEffectArguments[3] = 1; gFieldEffectArguments[3] = 1; // priority
gFieldEffectArguments[4] = metatileId; gFieldEffectArguments[4] = metatileId;
gFieldEffectArguments[5] = d; gFieldEffectArguments[5] = delay;
FieldEffectStart(FLDEFF_ASH); FieldEffectStart(FLDEFF_ASH);
} }
@@ -903,50 +945,62 @@ u32 FldEff_Ash(void)
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3]; sprite->oam.priority = gFieldEffectArguments[3];
sprite->data[1] = gFieldEffectArguments[0]; sprite->sX = gFieldEffectArguments[0];
sprite->data[2] = gFieldEffectArguments[1]; sprite->sY = gFieldEffectArguments[1];
sprite->data[3] = gFieldEffectArguments[4]; sprite->sMetatileId = gFieldEffectArguments[4];
sprite->data[4] = gFieldEffectArguments[5]; sprite->sDelay = gFieldEffectArguments[5];
} }
return 0; return 0;
} }
void (*const gAshFieldEffectFuncs[])(struct Sprite *) = { void (*const gAshFieldEffectFuncs[])(struct Sprite *) = {
UpdateAshFieldEffect_Step0, UpdateAshFieldEffect_Wait,
UpdateAshFieldEffect_Step1, UpdateAshFieldEffect_Show,
UpdateAshFieldEffect_Step2 UpdateAshFieldEffect_End
}; };
void UpdateAshFieldEffect(struct Sprite *sprite) void UpdateAshFieldEffect(struct Sprite *sprite)
{ {
gAshFieldEffectFuncs[sprite->data[0]](sprite); gAshFieldEffectFuncs[sprite->sState](sprite);
} }
static void UpdateAshFieldEffect_Step0(struct Sprite *sprite) static void UpdateAshFieldEffect_Wait(struct Sprite *sprite)
{ {
sprite->invisible = TRUE; sprite->invisible = TRUE;
sprite->animPaused = TRUE; sprite->animPaused = TRUE;
if (--sprite->data[4] == 0) if (--sprite->sDelay == 0)
sprite->data[0] = 1; sprite->sState = 1;
} }
static void UpdateAshFieldEffect_Step1(struct Sprite *sprite) static void UpdateAshFieldEffect_Show(struct Sprite *sprite)
{ {
sprite->invisible = FALSE; sprite->invisible = FALSE;
sprite->animPaused = FALSE; sprite->animPaused = FALSE;
MapGridSetMetatileIdAt(sprite->data[1], sprite->data[2], sprite->data[3]); MapGridSetMetatileIdAt(sprite->sX, sprite->sY, sprite->sMetatileId);
CurrentMapDrawMetatileAt(sprite->data[1], sprite->data[2]); CurrentMapDrawMetatileAt(sprite->sX, sprite->sY);
gObjectEvents[gPlayerAvatar.objectEventId].triggerGroundEffectsOnMove = TRUE; gObjectEvents[gPlayerAvatar.objectEventId].triggerGroundEffectsOnMove = TRUE;
sprite->data[0] = 2; sprite->sState = 2;
} }
static void UpdateAshFieldEffect_Step2(struct Sprite *sprite) static void UpdateAshFieldEffect_End(struct Sprite *sprite)
{ {
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
if (sprite->animEnded) if (sprite->animEnded)
FieldEffectStop(sprite, FLDEFF_ASH); FieldEffectStop(sprite, FLDEFF_ASH);
} }
#undef sState
#undef sX
#undef sY
#undef sMetatileId
#undef sDelay
// Sprite data for FLDEFF_SURF_BLOB
#define tBitfield data[0]
#define tPlayerOffset data[1]
#define tPlayerObjId data[2]
u32 FldEff_SurfBlob(void) u32 FldEff_SurfBlob(void)
{ {
u8 spriteId; u8 spriteId;
@@ -954,12 +1008,12 @@ u32 FldEff_SurfBlob(void)
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8); SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96); spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
if (spriteId !=MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->oam.paletteNum = 0; sprite->oam.paletteNum = 0;
sprite->data[2] = gFieldEffectArguments[2]; sprite->tPlayerObjId = gFieldEffectArguments[2];
sprite->data[3] = -1; sprite->data[3] = -1;
sprite->data[6] = -1; sprite->data[6] = -1;
sprite->data[7] = -1; sprite->data[7] = -1;
@@ -968,53 +1022,55 @@ u32 FldEff_SurfBlob(void)
return spriteId; return spriteId;
} }
// States for bobbing up and down while surfing
void SetSurfBobState(u8 spriteId, u8 value) void SetSurfBlob_BobState(u8 spriteId, u8 state)
{ {
gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (value & 0xF); gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF) | (state & 0xF);
} }
void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value) void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 dontSync)
{ {
gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((value & 0xF) << 4); gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF0) | ((dontSync & 0xF) << 4);
} }
void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1) void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset)
{ {
gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((value & 0xF) << 8); gSprites[spriteId].data[0] = (gSprites[spriteId].data[0] & ~0xF00) | ((hasOffset & 0xF) << 8);
gSprites[spriteId].data[1] = data1; gSprites[spriteId].tPlayerOffset = offset;
} }
static u8 GetSurfBobState(struct Sprite *sprite) static u8 GetSurfBlob_BobState(struct Sprite *sprite)
{ {
return sprite->data[0] & 0xF; return sprite->data[0] & 0xF;
} }
static u8 GetSurfBobWhileFlyingOutState(struct Sprite *sprite) // Never TRUE
static u8 GetSurfBlob_DontSyncAnim(struct Sprite *sprite)
{ {
return (sprite->data[0] & 0xF0) >> 4; return (sprite->data[0] & 0xF0) >> 4;
} }
static u8 GetSurfBobWhileFishingState(struct Sprite *sprite) static u8 GetSurfBlob_HasPlayerOffset(struct Sprite *sprite)
{ {
return (sprite->data[0] & 0xF00) >> 8; return (sprite->data[0] & 0xF00) >> 8;
} }
void UpdateSurfBlobFieldEffect(struct Sprite *sprite) void UpdateSurfBlobFieldEffect(struct Sprite *sprite)
{ {
struct ObjectEvent *objectEvent; struct ObjectEvent *playerObj;
struct Sprite *linkedSprite; struct Sprite *playerSprite;
objectEvent = &gObjectEvents[sprite->data[2]]; playerObj = &gObjectEvents[sprite->tPlayerObjId];
linkedSprite = &gSprites[objectEvent->spriteId]; playerSprite = &gSprites[playerObj->spriteId];
SynchroniseSurfAnim(objectEvent, sprite); SynchroniseSurfAnim(playerObj, sprite);
sub_81556E8(objectEvent, sprite); SynchroniseSurfPosition(playerObj, sprite);
CreateBobbingEffect(objectEvent, linkedSprite, sprite); UpdateBobbingEffect(playerObj, playerSprite, sprite);
sprite->oam.priority = linkedSprite->oam.priority; sprite->oam.priority = playerSprite->oam.priority;
} }
static void SynchroniseSurfAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) static void SynchroniseSurfAnim(struct ObjectEvent *playerObj, struct Sprite *sprite)
{ {
// Indexes into sAnimTable_SurfBlob
u8 surfBlobDirectionAnims[] = { u8 surfBlobDirectionAnims[] = {
[DIR_NONE] = 0, [DIR_NONE] = 0,
[DIR_SOUTH] = 0, [DIR_SOUTH] = 0,
@@ -1027,15 +1083,15 @@ static void SynchroniseSurfAnim(struct ObjectEvent *objectEvent, struct Sprite *
[DIR_NORTHEAST] = 1, [DIR_NORTHEAST] = 1,
}; };
if (GetSurfBobWhileFlyingOutState(sprite) == 0) if (!GetSurfBlob_DontSyncAnim(sprite))
StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[objectEvent->movementDirection]); StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[playerObj->movementDirection]);
} }
void sub_81556E8(struct ObjectEvent *objectEvent, struct Sprite *sprite) void SynchroniseSurfPosition(struct ObjectEvent *playerObj, struct Sprite *sprite)
{ {
u8 i; u8 i;
s16 x = objectEvent->currentCoords.x; s16 x = playerObj->currentCoords.x;
s16 y = objectEvent->currentCoords.y; s16 y = playerObj->currentCoords.y;
s32 spriteY = sprite->pos2.y; s32 spriteY = sprite->pos2.y;
if (spriteY == 0 && (x != sprite->data[6] || y != sprite->data[7])) if (spriteY == 0 && (x != sprite->data[6] || y != sprite->data[7]))
@@ -1048,68 +1104,81 @@ void sub_81556E8(struct ObjectEvent *objectEvent, struct Sprite *sprite)
MoveCoords(i, &x, &y); MoveCoords(i, &x, &y);
if (MapGridGetZCoordAt(x, y) == 3) if (MapGridGetZCoordAt(x, y) == 3)
{ {
sprite->data[5] ++; sprite->data[5]++;
break; break;
} }
} }
} }
} }
static void CreateBobbingEffect(struct ObjectEvent *objectEvent, struct Sprite *linkedSprite, struct Sprite *sprite) static void UpdateBobbingEffect(struct ObjectEvent *playerObj, struct Sprite *playerSprite, struct Sprite *sprite)
{ {
u16 unk_085CDC6A[] = {3, 7}; u16 intervals[] = {3, 7};
u8 bobState = GetSurfBobState(sprite); u8 bobState = GetSurfBlob_BobState(sprite);
if (bobState != 0) if (bobState != BOB_NONE)
{ {
if (((u16)(++ sprite->data[4]) & unk_085CDC6A[sprite->data[5]]) == 0) // Update bobbing position of surf blob
if (((u16)(++sprite->data[4]) & intervals[sprite->data[5]]) == 0)
{ {
sprite->pos2.y += sprite->data[3]; sprite->pos2.y += sprite->data[3];
} }
if ((sprite->data[4] & 0x0F) == 0) if ((sprite->data[4] & 15) == 0)
{ {
sprite->data[3] = -sprite->data[3]; sprite->data[3] = -sprite->data[3];
} }
if (bobState != 2) if (bobState != BOB_JUST_MON)
{ {
if (GetSurfBobWhileFishingState(sprite) == 0) // Update bobbing position of player
linkedSprite->pos2.y = sprite->pos2.y; if (!GetSurfBlob_HasPlayerOffset(sprite))
playerSprite->pos2.y = sprite->pos2.y;
else else
linkedSprite->pos2.y = sprite->data[1] + sprite->pos2.y; playerSprite->pos2.y = sprite->tPlayerOffset + sprite->pos2.y;
sprite->pos1.x = linkedSprite->pos1.x; sprite->pos1.x = playerSprite->pos1.x;
sprite->pos1.y = linkedSprite->pos1.y + 8; sprite->pos1.y = playerSprite->pos1.y + 8;
} }
} }
} }
u8 sub_8155800(u8 oldSpriteId) #define sSpriteId data[0]
#define sBobY data[1]
#define sTimer data[2]
u8 StartUnderwaterSurfBlobBobbing(u8 blobSpriteId)
{ {
u8 spriteId; u8 spriteId;
struct Sprite *sprite; struct Sprite *sprite;
// Create a dummy sprite with its own callback
// that tracks the actual surf blob sprite and
// makes it bob up and down underwater
spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1); spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1);
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->callback = sub_8155850; sprite->callback = SpriteCB_UnderwaterSurfBlob;
sprite->invisible = TRUE; sprite->invisible = TRUE;
sprite->data[0] = oldSpriteId; sprite->sSpriteId = blobSpriteId;
sprite->data[1] = 1; sprite->sBobY = 1;
return spriteId; return spriteId;
} }
static void sub_8155850(struct Sprite *sprite) static void SpriteCB_UnderwaterSurfBlob(struct Sprite *sprite)
{ {
struct Sprite *oldSprite; struct Sprite *blobSprite;
oldSprite = &gSprites[sprite->data[0]]; blobSprite = &gSprites[sprite->sSpriteId];
if (((sprite->data[2]++) & 0x03) == 0) if (((sprite->sTimer++) & 3) == 0)
{ {
oldSprite->pos2.y += sprite->data[1]; blobSprite->pos2.y += sprite->sBobY;
} }
if ((sprite->data[2] & 0x0F) == 0) if ((sprite->sTimer & 15) == 0)
{ {
sprite->data[1] = -sprite->data[1]; sprite->sBobY = -sprite->sBobY;
} }
} }
#undef sSpriteId
#undef sBobY
#undef sTimer
u32 FldEff_Dust(void) u32 FldEff_Dust(void)
{ {
u8 spriteId; u8 spriteId;
@@ -1182,7 +1251,7 @@ void UpdateSandPileFieldEffect(struct Sprite *sprite)
sprite->pos1.x = x; sprite->pos1.x = x;
sprite->pos1.y = y; sprite->pos1.y = y;
sprite->subpriority = gSprites[gObjectEvents[objectEventId].spriteId].subpriority; sprite->subpriority = gSprites[gObjectEvents[objectEventId].spriteId].subpriority;
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
} }
} }
@@ -1207,7 +1276,7 @@ void UpdateBubblesFieldEffect(struct Sprite *sprite)
sprite->data[0] += 0x80; sprite->data[0] += 0x80;
sprite->data[0] &= 0x100; sprite->data[0] &= 0x100;
sprite->pos1.y -= sprite->data[0] >> 8; sprite->pos1.y -= sprite->data[0] >> 8;
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
if (sprite->invisible || sprite->animEnded) if (sprite->invisible || sprite->animEnded)
{ {
FieldEffectStop(sprite, FLDEFF_BUBBLES); FieldEffectStop(sprite, FLDEFF_BUBBLES);
@@ -1232,6 +1301,13 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
return 0; return 0;
} }
// Sprite data for FLDEFF_TREE_DISGUISE / FLDEFF_MOUNTAIN_DISGUISE / FLDEFF_SAND_DISGUISE
#define sState data[0]
#define sLocalId data[2]
#define sMapNum data[3]
#define sMapGroup data[4]
#define sReadyToEnd data[7]
u32 ShowTreeDisguiseFieldEffect(void) u32 ShowTreeDisguiseFieldEffect(void)
{ {
return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4); return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4);
@@ -1263,10 +1339,10 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum)
sprite = &gSprites[spriteId]; sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled ++; sprite->coordOffsetEnabled ++;
sprite->oam.paletteNum = paletteNum; sprite->oam.paletteNum = paletteNum;
sprite->data[1] = fldEff; sprite->sFldEff = fldEff;
sprite->data[2] = gFieldEffectArguments[0]; sprite->sLocalId = gFieldEffectArguments[0];
sprite->data[3] = gFieldEffectArguments[1]; sprite->sMapNum = gFieldEffectArguments[1];
sprite->data[4] = gFieldEffectArguments[2]; sprite->sMapGroup = gFieldEffectArguments[2];
} }
return spriteId; return spriteId;
} }
@@ -1277,10 +1353,8 @@ void UpdateDisguiseFieldEffect(struct Sprite *sprite)
const struct ObjectEventGraphicsInfo *graphicsInfo; const struct ObjectEventGraphicsInfo *graphicsInfo;
struct Sprite *linkedSprite; struct Sprite *linkedSprite;
if (TryGetObjectEventIdByLocalIdAndMap(sprite->data[2], sprite->data[3], sprite->data[4], &objectEventId)) if (TryGetObjectEventIdByLocalIdAndMap(sprite->sLocalId, sprite->sMapNum, sprite->sMapGroup, &objectEventId))
{ FieldEffectStop(sprite, sprite->sFldEff);
FieldEffectStop(sprite, sprite->data[1]);
}
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId); graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId);
linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId]; linkedSprite = &gSprites[gObjectEvents[objectEventId].spriteId];
@@ -1288,51 +1362,56 @@ void UpdateDisguiseFieldEffect(struct Sprite *sprite)
sprite->pos1.x = linkedSprite->pos1.x; sprite->pos1.x = linkedSprite->pos1.x;
sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 16; sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 16;
sprite->subpriority = linkedSprite->subpriority - 1; sprite->subpriority = linkedSprite->subpriority - 1;
if (sprite->data[0] == 1)
if (sprite->sState == 1)
{ {
sprite->data[0] ++; sprite->sState++;
StartSpriteAnim(sprite, 1); StartSpriteAnim(sprite, 1);
} }
if (sprite->data[0] == 2 && sprite->animEnded)
{ if (sprite->sState == 2 && sprite->animEnded)
sprite->data[7] = 1; sprite->sReadyToEnd = TRUE;
}
if (sprite->data[0] == 3) if (sprite->sState == 3)
{ FieldEffectStop(sprite, sprite->sFldEff);
FieldEffectStop(sprite, sprite->data[1]);
}
} }
void sub_8155D78(struct ObjectEvent *objectEvent) void StartRevealDisguise(struct ObjectEvent *objectEvent)
{ {
if (objectEvent->directionSequenceIndex == 1) if (objectEvent->directionSequenceIndex == 1)
{ gSprites[objectEvent->fieldEffectSpriteId].sState++;
gSprites[objectEvent->fieldEffectSpriteId].data[0]++;
}
} }
bool8 sub_8155DA0(struct ObjectEvent *objectEvent) bool8 UpdateRevealDisguise(struct ObjectEvent *objectEvent)
{ {
struct Sprite *sprite; struct Sprite *sprite;
if (objectEvent->directionSequenceIndex == 2) if (objectEvent->directionSequenceIndex == 2)
{
return TRUE; return TRUE;
}
if (objectEvent->directionSequenceIndex == 0) if (objectEvent->directionSequenceIndex == 0)
{
return TRUE; return TRUE;
}
sprite = &gSprites[objectEvent->fieldEffectSpriteId]; sprite = &gSprites[objectEvent->fieldEffectSpriteId];
if (sprite->data[7]) if (sprite->sReadyToEnd)
{ {
objectEvent->directionSequenceIndex = 2; objectEvent->directionSequenceIndex = 2;
sprite->data[0]++; sprite->sState++;
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
} }
#undef sState
#undef sLocalId
#undef sMapNum
#undef sMapGroup
#undef sReadyToEnd
// Sprite data for FLDEFF_SPARKLE
#define sFinished data[0]
#define sEndTimer data[1]
u32 FldEff_Sparkle(void) u32 FldEff_Sparkle(void)
{ {
u8 spriteId; u8 spriteId;
@@ -1351,22 +1430,22 @@ u32 FldEff_Sparkle(void)
void UpdateSparkleFieldEffect(struct Sprite *sprite) void UpdateSparkleFieldEffect(struct Sprite *sprite)
{ {
if (sprite->data[0] == 0) if (!sprite->sFinished)
{ {
if (sprite->animEnded) if (sprite->animEnded)
{ {
sprite->invisible = TRUE; sprite->invisible = TRUE;
sprite->data[0]++; sprite->sFinished++;
} }
if (sprite->data[0] == 0)
return;
} }
if (++sprite->data[1] > 34) if (sprite->sFinished && ++sprite->sEndTimer > 34)
FieldEffectStop(sprite, FLDEFF_SPARKLE); FieldEffectStop(sprite, FLDEFF_SPARKLE);
} }
#undef sFinished
#undef sEndTimer
#define sTimer data[0] #define sTimer data[0]
#define sState data[2] #define sState data[2]
#define sStartY data[4] #define sStartY data[4]
@@ -1551,16 +1630,17 @@ void UpdateRayquazaSpotlightEffect(struct Sprite *sprite)
#undef sAnimCounter #undef sAnimCounter
#undef sAnimState #undef sAnimState
// Used by FLDEFF_JUMP_TALL_GRASS and FLDEFF_JUMP_LONG_GRASS
void UpdateJumpImpactEffect(struct Sprite *sprite) void UpdateJumpImpactEffect(struct Sprite *sprite)
{ {
if (sprite->animEnded) if (sprite->animEnded)
{ {
FieldEffectStop(sprite, sprite->data[1]); FieldEffectStop(sprite, sprite->sFldEff);
} }
else else
{ {
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
SetObjectSubpriorityByZCoord(sprite->data[0], sprite, 0); SetObjectSubpriorityByZCoord(sprite->sElevation, sprite, 0);
} }
} }
@@ -1569,10 +1649,10 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite)
if (sprite->animEnded) if (sprite->animEnded)
FieldEffectStop(sprite, sprite->data[0]); FieldEffectStop(sprite, sprite->data[0]);
else else
UpdateObjectEventSpriteVisibility(sprite, FALSE); UpdateObjectEventSpriteInvisibility(sprite, FALSE);
} }
static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset) static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset)
{ {
u8 i; u8 i;
s16 var, xhi, lyhi, yhi, ylo; s16 var, xhi, lyhi, yhi, ylo;
@@ -1605,18 +1685,27 @@ static void sub_81561FC(struct Sprite *sprite, u8 z, u8 offset)
} }
} }
// Unused data. Feel free to remove. // Unused, duplicates of data in event_object_movement.c
static const u8 gUnknown_085CDC6E[] = static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = {
{ 1, 2, 2, 2, 2, 2, 2, 2,
0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x02, 2, 2, 2, 1, 2, 2, 1, 2,
0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 2, 1, 2, 2, 1, 2, 1, 1,
0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 2, 1, 1, 2, 1, 1, 2, 1,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 1, 2, 1, 1, 1, 1, 1, 1,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 1, 1, 1, 1, 1, 1, 1, 1,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0, 1, 1, 1, 0, 1, 1, 0,
0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 1, 0, 1, 0, 1, 0, 0, 0,
0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 1, 0, 0, 0, 0, 0, 0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, };
0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00 static const s8 sFigure8YOffsets[FIGURE_8_LENGTH] = {
0, 0, 1, 0, 0, 1, 0, 0,
1, 0, 1, 1, 0, 1, 1, 0,
1, 1, 0, 1, 1, 0, 1, 1,
0, 0, 1, 0, 0, 1, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, -1, 0, 0,
-1, 0, -1, -1, 0, -1, -1, 0,
-1, -1, -1, -1, -1, -1, -1, -2,
}; };
+9 -9
View File
@@ -722,9 +722,9 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction)
} }
} }
static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) static bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction)
{ {
if (GetLedgeJumpDirection(x, y, z) != 0) if (GetLedgeJumpDirection(x, y, direction) != DIR_NONE)
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
@@ -863,7 +863,7 @@ static void PlayerAvatarTransition_Surfing(struct ObjectEvent *objEvent)
gFieldEffectArguments[2] = gPlayerAvatar.objectEventId; gFieldEffectArguments[2] = gPlayerAvatar.objectEventId;
spriteId = FieldEffectStart(FLDEFF_SURF_BLOB); spriteId = FieldEffectStart(FLDEFF_SURF_BLOB);
objEvent->fieldEffectSpriteId = spriteId; objEvent->fieldEffectSpriteId = spriteId;
SetSurfBobState(spriteId, 1); SetSurfBlob_BobState(spriteId, BOB_PLAYER_AND_MON);
} }
static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent) static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent)
@@ -871,7 +871,7 @@ static void PlayerAvatarTransition_Underwater(struct ObjectEvent *objEvent)
ObjectEventSetGraphicsId(objEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_UNDERWATER)); ObjectEventSetGraphicsId(objEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_UNDERWATER));
ObjectEventTurn(objEvent, objEvent->movementDirection); ObjectEventTurn(objEvent, objEvent->movementDirection);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_UNDERWATER); SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_UNDERWATER);
objEvent->fieldEffectSpriteId = sub_8155800(objEvent->spriteId); objEvent->fieldEffectSpriteId = StartUnderwaterSurfBlobBobbing(objEvent->spriteId);
} }
static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent *objEvent) static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent *objEvent)
@@ -1192,7 +1192,7 @@ u8 GetPlayerAvatarFlags(void)
return gPlayerAvatar.flags; return gPlayerAvatar.flags;
} }
u8 GetPlayerAvatarObjectId(void) u8 GetPlayerAvatarSpriteId(void)
{ {
return gPlayerAvatar.spriteId; return gPlayerAvatar.spriteId;
} }
@@ -1646,7 +1646,7 @@ static void Task_StopSurfingInit(u8 taskId)
if (!ObjectEventClearHeldMovementIfFinished(playerObjEvent)) if (!ObjectEventClearHeldMovementIfFinished(playerObjEvent))
return; return;
} }
SetSurfBobState(playerObjEvent->fieldEffectSpriteId, 2); SetSurfBlob_BobState(playerObjEvent->fieldEffectSpriteId, BOB_JUST_MON);
ObjectEventSetHeldMovement(playerObjEvent, GetJumpSpecialMovementAction((u8)gTasks[taskId].data[0])); ObjectEventSetHeldMovement(playerObjEvent, GetJumpSpecialMovementAction((u8)gTasks[taskId].data[0]));
gTasks[taskId].func = Task_WaitStopSurfing; gTasks[taskId].func = Task_WaitStopSurfing;
} }
@@ -1932,7 +1932,7 @@ static bool8 Fishing_StartEncounter(struct Task *task)
ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId);
ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection);
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); SetSurfBlob_PlayerOffset(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, FALSE, 0);
gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
gSprites[gPlayerAvatar.spriteId].pos2.y = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
ClearDialogWindowAndFrame(0, TRUE); ClearDialogWindowAndFrame(0, TRUE);
@@ -1989,7 +1989,7 @@ static bool8 Fishing_PutRodAway(struct Task *task)
ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId); ObjectEventSetGraphicsId(playerObjEvent, task->tPlayerGfxId);
ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection); ObjectEventTurn(playerObjEvent, playerObjEvent->movementDirection);
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 0, 0); SetSurfBlob_PlayerOffset(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, FALSE, 0);
gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
gSprites[gPlayerAvatar.spriteId].pos2.y = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
task->tStep++; task->tStep++;
@@ -2048,7 +2048,7 @@ static void AlignFishingAnimationFrames(void)
if (animType == 10 || animType == 11) if (animType == 10 || animType == 11)
playerSprite->pos2.y = 8; playerSprite->pos2.y = 8;
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
SetSurfBobWhileFishingState(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, 1, playerSprite->pos2.y); SetSurfBlob_PlayerOffset(gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId, TRUE, playerSprite->pos2.y);
} }
void SetSpinStartFacingDir(u8 direction) void SetSpinStartFacingDir(u8 direction)
+4 -8
View File
@@ -1087,7 +1087,7 @@ static void LoadOrbEffectPalette(bool8 blueOrb)
} }
} }
static bool8 sub_80B02C8(u16 shakeDir) static bool8 UpdateOrbEffectBlend(u16 shakeDir)
{ {
u8 lo = REG_BLDALPHA & 0xFF; u8 lo = REG_BLDALPHA & 0xFF;
u8 hi = REG_BLDALPHA >> 8; u8 hi = REG_BLDALPHA >> 8;
@@ -1095,21 +1095,17 @@ static bool8 sub_80B02C8(u16 shakeDir)
if (shakeDir != 0) if (shakeDir != 0)
{ {
if (lo) if (lo)
{
lo--; lo--;
}
} }
else else
{ {
if (hi < 0x10) if (hi < 16)
{
hi++; hi++;
}
} }
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(lo, hi)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(lo, hi));
if (lo == 0 && hi == 0x10) if (lo == 0 && hi == 16)
return TRUE; return TRUE;
else else
return FALSE; return FALSE;
@@ -1193,7 +1189,7 @@ static void Task_OrbEffect(u8 taskId)
{ {
tShakeDelay = 8; tShakeDelay = 8;
tShakeDir ^= 1; tShakeDir ^= 1;
if (sub_80B02C8(tShakeDir) == TRUE) if (UpdateOrbEffectBlend(tShakeDir) == TRUE)
{ {
tState = 5; tState = 5;
sub_8199DF0(0, PIXEL_FILL(0), 0, 1); sub_8199DF0(0, PIXEL_FILL(0), 0, 1);
+2 -2
View File
@@ -1301,12 +1301,12 @@ void SpawnCameraObject(void)
{ {
u8 obj = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_BOY_1, MOVEMENT_TYPE_FACE_DOWN, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); u8 obj = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_BOY_1, MOVEMENT_TYPE_FACE_DOWN, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
gObjectEvents[obj].invisible = TRUE; gObjectEvents[obj].invisible = TRUE;
CameraObjectSetFollowedObjectId(gObjectEvents[obj].spriteId); CameraObjectSetFollowedSpriteId(gObjectEvents[obj].spriteId);
} }
void RemoveCameraObject(void) void RemoveCameraObject(void)
{ {
CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); CameraObjectSetFollowedSpriteId(GetPlayerAvatarSpriteId());
RemoveObjectEventByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); RemoveObjectEventByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
} }
+53 -51
View File
@@ -160,11 +160,11 @@ void StartWeather(void)
{ {
if (!FuncIsActiveTask(Task_WeatherMain)) if (!FuncIsActiveTask(Task_WeatherMain))
{ {
u8 index = AllocSpritePalette(0x1200); u8 index = AllocSpritePalette(TAG_WEATHER_START);
CpuCopy32(gFogPalette, &gPlttBufferUnfaded[0x100 + index * 16], 32); CpuCopy32(gFogPalette, &gPlttBufferUnfaded[0x100 + index * 16], 32);
BuildGammaShiftTables(); BuildGammaShiftTables();
gWeatherPtr->altGammaSpritePalIndex = index; gWeatherPtr->altGammaSpritePalIndex = index;
gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(0x1201); gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(PALTAG_WEATHER_2);
gWeatherPtr->rainSpriteCount = 0; gWeatherPtr->rainSpriteCount = 0;
gWeatherPtr->curRainSpriteIndex = 0; gWeatherPtr->curRainSpriteIndex = 0;
gWeatherPtr->cloudSpritesCreated = 0; gWeatherPtr->cloudSpritesCreated = 0;
@@ -365,8 +365,8 @@ static void UpdateWeatherGammaShift(void)
static void FadeInScreenWithWeather(void) static void FadeInScreenWithWeather(void)
{ {
if (++gWeatherPtr->unknown_6CB > 1) if (++gWeatherPtr->fadeInTimer > 1)
gWeatherPtr->unknown_6CA = 0; gWeatherPtr->fadeInFirstFrame = FALSE;
switch (gWeatherPtr->currWeather) switch (gWeatherPtr->currWeather)
{ {
@@ -710,7 +710,7 @@ static bool8 LightenSpritePaletteInFog(u8 paletteIndex)
return FALSE; return FALSE;
} }
void sub_80ABC48(s8 gammaIndex) void ApplyWeatherGammaShiftIfIdle(s8 gammaIndex)
{ {
if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE)
{ {
@@ -728,7 +728,7 @@ void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay)
gWeatherPtr->gammaTargetIndex = gammaTargetIndex; gWeatherPtr->gammaTargetIndex = gammaTargetIndex;
gWeatherPtr->gammaStepFrameCounter = 0; gWeatherPtr->gammaStepFrameCounter = 0;
gWeatherPtr->gammaStepDelay = gammaStepDelay; gWeatherPtr->gammaStepDelay = gammaStepDelay;
sub_80ABC48(gammaIndex); ApplyWeatherGammaShiftIfIdle(gammaIndex);
} }
} }
@@ -793,8 +793,8 @@ void FadeScreen(u8 mode, s8 delay)
BeginNormalPaletteFade(PALETTES_ALL, delay, 16, 0, fadeColor); BeginNormalPaletteFade(PALETTES_ALL, delay, 16, 0, fadeColor);
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN; gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN;
gWeatherPtr->unknown_6CA = 1; gWeatherPtr->fadeInFirstFrame = TRUE;
gWeatherPtr->unknown_6CB = 0; gWeatherPtr->fadeInTimer = 0;
Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB); Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
gWeatherPtr->readyForInit = TRUE; gWeatherPtr->readyForInit = TRUE;
} }
@@ -813,7 +813,7 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
switch (gWeatherPtr->palProcessingState) switch (gWeatherPtr->palProcessingState)
{ {
case WEATHER_PAL_STATE_SCREEN_FADING_IN: case WEATHER_PAL_STATE_SCREEN_FADING_IN:
if (gWeatherPtr->unknown_6CA != 0) if (gWeatherPtr->fadeInFirstFrame)
{ {
if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL) if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL)
MarkFogSpritePalToLighten(paletteIndex); MarkFogSpritePalToLighten(paletteIndex);
@@ -848,12 +848,13 @@ void ApplyWeatherGammaShiftToPal(u8 paletteIndex)
ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex); ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex);
} }
u8 sub_80ABF20(void) // Unused
static bool8 IsFirstFrameOfWeatherFadeIn(void)
{ {
if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_SCREEN_FADING_IN) if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_SCREEN_FADING_IN)
return gWeatherPtr->unknown_6CA; return gWeatherPtr->fadeInFirstFrame;
else else
return 0; return FALSE;
} }
void LoadCustomWeatherSpritePalette(const u16 *palette) void LoadCustomWeatherSpritePalette(const u16 *palette)
@@ -885,50 +886,50 @@ bool8 LoadDroughtWeatherPalettes(void)
return FALSE; return FALSE;
} }
void sub_80ABFE0(s8 gammaIndex) static void SetDroughtGamma(s8 gammaIndex)
{ {
sub_80ABC48(-gammaIndex - 1); ApplyWeatherGammaShiftIfIdle(-gammaIndex - 1);
} }
void sub_80ABFF0(void) void DroughtStateInit(void)
{ {
gWeatherPtr->unknown_73C = 0; gWeatherPtr->droughtBrightnessStage = 0;
gWeatherPtr->unknown_740 = 0; gWeatherPtr->droughtTimer = 0;
gWeatherPtr->unknown_742 = 0; gWeatherPtr->droughtState = 0;
gWeatherPtr->unknown_73E = 0; gWeatherPtr->droughtLastBrightnessStage = 0;
} }
void sub_80AC01C(void) void DroughtStateRun(void)
{ {
switch (gWeatherPtr->unknown_742) switch (gWeatherPtr->droughtState)
{ {
case 0: case 0:
if (++gWeatherPtr->unknown_740 > 5) if (++gWeatherPtr->droughtTimer > 5)
{ {
gWeatherPtr->unknown_740 = 0; gWeatherPtr->droughtTimer = 0;
sub_80ABFE0(gWeatherPtr->unknown_73C++); SetDroughtGamma(gWeatherPtr->droughtBrightnessStage++);
if (gWeatherPtr->unknown_73C > 5) if (gWeatherPtr->droughtBrightnessStage > 5)
{ {
gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C; gWeatherPtr->droughtLastBrightnessStage = gWeatherPtr->droughtBrightnessStage;
gWeatherPtr->unknown_742 = 1; gWeatherPtr->droughtState = 1;
gWeatherPtr->unknown_740 = 0x3C; gWeatherPtr->droughtTimer = 60;
} }
} }
break; break;
case 1: case 1:
gWeatherPtr->unknown_740 = (gWeatherPtr->unknown_740 + 3) & 0x7F; gWeatherPtr->droughtTimer = (gWeatherPtr->droughtTimer + 3) & 0x7F;
gWeatherPtr->unknown_73C = ((gSineTable[gWeatherPtr->unknown_740] - 1) >> 6) + 2; gWeatherPtr->droughtBrightnessStage = ((gSineTable[gWeatherPtr->droughtTimer] - 1) >> 6) + 2;
if (gWeatherPtr->unknown_73C != gWeatherPtr->unknown_73E) if (gWeatherPtr->droughtBrightnessStage != gWeatherPtr->droughtLastBrightnessStage)
sub_80ABFE0(gWeatherPtr->unknown_73C); SetDroughtGamma(gWeatherPtr->droughtBrightnessStage);
gWeatherPtr->unknown_73E = gWeatherPtr->unknown_73C; gWeatherPtr->droughtLastBrightnessStage = gWeatherPtr->droughtBrightnessStage;
break; break;
case 2: case 2:
if (++gWeatherPtr->unknown_740 > 5) if (++gWeatherPtr->droughtTimer > 5)
{ {
gWeatherPtr->unknown_740 = 0; gWeatherPtr->droughtTimer = 0;
sub_80ABFE0(--gWeatherPtr->unknown_73C); SetDroughtGamma(--gWeatherPtr->droughtBrightnessStage);
if (gWeatherPtr->unknown_73C == 3) if (gWeatherPtr->droughtBrightnessStage == 3)
gWeatherPtr->unknown_742 = 0; gWeatherPtr->droughtState = 0;
} }
break; break;
} }
@@ -989,38 +990,39 @@ bool8 Weather_UpdateBlend(void)
return FALSE; return FALSE;
} }
void sub_80AC274(u8 a) // Unused. Uses the same numbering scheme as the coord events
static void SetFieldWeather(u8 weather)
{ {
switch (a) switch (weather)
{ {
case 1: case COORD_EVENT_WEATHER_SUNNY_CLOUDS:
SetWeather(WEATHER_SUNNY_CLOUDS); SetWeather(WEATHER_SUNNY_CLOUDS);
break; break;
case 2: case COORD_EVENT_WEATHER_SUNNY:
SetWeather(WEATHER_SUNNY); SetWeather(WEATHER_SUNNY);
break; break;
case 3: case COORD_EVENT_WEATHER_RAIN:
SetWeather(WEATHER_RAIN); SetWeather(WEATHER_RAIN);
break; break;
case 4: case COORD_EVENT_WEATHER_SNOW:
SetWeather(WEATHER_SNOW); SetWeather(WEATHER_SNOW);
break; break;
case 5: case COORD_EVENT_WEATHER_RAIN_THUNDERSTORM:
SetWeather(WEATHER_RAIN_THUNDERSTORM); SetWeather(WEATHER_RAIN_THUNDERSTORM);
break; break;
case 6: case COORD_EVENT_WEATHER_FOG_HORIZONTAL:
SetWeather(WEATHER_FOG_HORIZONTAL); SetWeather(WEATHER_FOG_HORIZONTAL);
break; break;
case 7: case COORD_EVENT_WEATHER_FOG_DIAGONAL:
SetWeather(WEATHER_FOG_DIAGONAL); SetWeather(WEATHER_FOG_DIAGONAL);
break; break;
case 8: case COORD_EVENT_WEATHER_VOLCANIC_ASH:
SetWeather(WEATHER_VOLCANIC_ASH); SetWeather(WEATHER_VOLCANIC_ASH);
break; break;
case 9: case COORD_EVENT_WEATHER_SANDSTORM:
SetWeather(WEATHER_SANDSTORM); SetWeather(WEATHER_SANDSTORM);
break; break;
case 10: case COORD_EVENT_WEATHER_SHADE:
SetWeather(WEATHER_SHADE); SetWeather(WEATHER_SHADE);
break; break;
} }
@@ -1084,7 +1086,7 @@ void SetWeatherScreenFadeOut(void)
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT; gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
} }
void sub_80AC3E4(void) void SetWeatherPalStateIdle(void)
{ {
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE; gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
} }
+143 -115
View File
@@ -51,7 +51,7 @@ static const struct SpriteSheet sCloudSpriteSheet =
{ {
.data = gWeatherCloudTiles, .data = gWeatherCloudTiles,
.size = sizeof(gWeatherCloudTiles), .size = sizeof(gWeatherCloudTiles),
.tag = 0x1200 .tag = GFXTAG_CLOUD
}; };
static const struct OamData sCloudSpriteOamData = static const struct OamData sCloudSpriteOamData =
@@ -84,8 +84,8 @@ static const union AnimCmd *const sCloudSpriteAnimCmds[] =
static const struct SpriteTemplate sCloudSpriteTemplate = static const struct SpriteTemplate sCloudSpriteTemplate =
{ {
.tileTag = 0x1200, .tileTag = GFXTAG_CLOUD,
.paletteTag = 0x1201, .paletteTag = PALTAG_WEATHER_2,
.oam = &sCloudSpriteOamData, .oam = &sCloudSpriteOamData,
.anims = sCloudSpriteAnimCmds, .anims = sCloudSpriteAnimCmds,
.images = NULL, .images = NULL,
@@ -214,7 +214,7 @@ static void DestroyCloudSprites(void)
DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]);
} }
FreeSpriteTilesByTag(0x1200); FreeSpriteTilesByTag(GFXTAG_CLOUD);
gWeatherPtr->cloudSpritesCreated = FALSE; gWeatherPtr->cloudSpritesCreated = FALSE;
} }
@@ -264,19 +264,19 @@ void Drought_Main(void)
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 3: case 3:
sub_80ABFF0(); DroughtStateInit();
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 4: case 4:
sub_80AC01C(); DroughtStateRun();
if (gWeatherPtr->unknown_73C == 6) if (gWeatherPtr->droughtBrightnessStage == 6)
{ {
gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->weatherGfxLoaded = TRUE;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
} }
break; break;
default: default:
sub_80AC01C(); DroughtStateRun();
break; break;
} }
} }
@@ -288,7 +288,7 @@ bool8 Drought_Finish(void)
void StartDroughtWeatherBlend(void) void StartDroughtWeatherBlend(void)
{ {
CreateTask(UpdateDroughtBlend, 0x50); CreateTask(UpdateDroughtBlend, 80);
} }
#define tState data[0] #define tState data[0]
@@ -437,8 +437,8 @@ static const union AnimCmd *const sRainSpriteAnimCmds[] =
static const struct SpriteTemplate sRainSpriteTemplate = static const struct SpriteTemplate sRainSpriteTemplate =
{ {
.tileTag = 4614, .tileTag = GFXTAG_RAIN,
.paletteTag = 0x1200, .paletteTag = PALTAG_WEATHER,
.oam = &sRainSpriteOamData, .oam = &sRainSpriteOamData,
.anims = sRainSpriteAnimCmds, .anims = sRainSpriteAnimCmds,
.images = NULL, .images = NULL,
@@ -466,7 +466,7 @@ static const struct SpriteSheet sRainSpriteSheet =
{ {
.data = gWeatherRainTiles, .data = gWeatherRainTiles,
.size = sizeof(gWeatherRainTiles), .size = sizeof(gWeatherRainTiles),
.tag = 0x1206, .tag = GFXTAG_RAIN,
}; };
void Rain_InitVars(void) void Rain_InitVars(void)
@@ -677,7 +677,7 @@ static bool8 CreateRainSprite(void)
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
gSprites[spriteId].tActive = 0; gSprites[spriteId].tActive = FALSE;
gSprites[spriteId].tRandom = spriteIndex * 145; gSprites[spriteId].tRandom = spriteIndex * 145;
while (gSprites[spriteId].tRandom >= 600) while (gSprites[spriteId].tRandom >= 600)
gSprites[spriteId].tRandom -= 600; gSprites[spriteId].tRandom -= 600;
@@ -722,12 +722,12 @@ static bool8 UpdateVisibleRainSprites(void)
gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleCounter = 0;
if (gWeatherPtr->curRainSpriteIndex < gWeatherPtr->targetRainSpriteCount) if (gWeatherPtr->curRainSpriteIndex < gWeatherPtr->targetRainSpriteCount)
{ {
gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex++]->tActive = 1; gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex++]->tActive = TRUE;
} }
else else
{ {
gWeatherPtr->curRainSpriteIndex--; gWeatherPtr->curRainSpriteIndex--;
gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->tActive = 0; gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->tActive = FALSE;
gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->invisible = TRUE; gWeatherPtr->sprites.s1.rainSprites[gWeatherPtr->curRainSpriteIndex]->invisible = TRUE;
} }
} }
@@ -744,7 +744,7 @@ static void DestroyRainSprites(void)
DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]); DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]);
} }
gWeatherPtr->rainSpriteCount = 0; gWeatherPtr->rainSpriteCount = 0;
FreeSpriteTilesByTag(0x1206); FreeSpriteTilesByTag(GFXTAG_RAIN);
} }
#undef tCounter #undef tCounter
@@ -879,7 +879,7 @@ static const union AnimCmd *const sSnowflakeAnimCmds[] =
static const struct SpriteTemplate sSnowflakeSpriteTemplate = static const struct SpriteTemplate sSnowflakeSpriteTemplate =
{ {
.tileTag = 0xFFFF, .tileTag = 0xFFFF,
.paletteTag = 0x1200, .paletteTag = PALTAG_WEATHER,
.oam = &sSnowflakeSpriteOamData, .oam = &sSnowflakeSpriteOamData,
.anims = sSnowflakeAnimCmds, .anims = sSnowflakeAnimCmds,
.images = sSnowflakeSpriteImages, .images = sSnowflakeSpriteImages,
@@ -941,13 +941,14 @@ static void InitSnowflakeSpriteMovement(struct Sprite *sprite)
static void WaitSnowflakeSprite(struct Sprite *sprite) static void WaitSnowflakeSprite(struct Sprite *sprite)
{ {
if (gWeatherPtr->unknown_6E2 > 18) // Timer is never incremented
if (gWeatherPtr->snowflakeTimer > 18)
{ {
sprite->invisible = FALSE; sprite->invisible = FALSE;
sprite->callback = UpdateSnowflakeSprite; sprite->callback = UpdateSnowflakeSprite;
sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); sprite->pos1.y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY);
sprite->tPosY = sprite->pos1.y * 128; sprite->tPosY = sprite->pos1.y * 128;
gWeatherPtr->unknown_6E2 = 0; gWeatherPtr->snowflakeTimer = 0;
} }
} }
@@ -1011,9 +1012,32 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite)
// WEATHER_RAIN_THUNDERSTORM // WEATHER_RAIN_THUNDERSTORM
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
enum {
// This block of states is run only once
// when first setting up the thunderstorm
TSTORM_STATE_LOAD_RAIN,
TSTORM_STATE_CREATE_RAIN,
TSTORM_STATE_INIT_RAIN,
TSTORM_STATE_WAIT_CHANGE,
// The thunderstorm loops through these states,
// not necessarily in order.
TSTORM_STATE_LOOP_START,
TSTORM_STATE_LOOP_WAIT,
TSTORM_STATE_INIT_THUNDER_SHORT_1,
TSTORM_STATE_INIT_THUNDER_SHORT_2,
TSTORM_STATE_TRY_THUNDER_SHORT,
TSTORM_STATE_TRY_NEW_THUNDER,
TSTORM_STATE_WAIT_THUNDER_SHORT,
TSTORM_STATE_INIT_THUNDER_LONG,
TSTORM_STATE_WAIT_THUNDER_LONG,
TSTORM_STATE_FADE_THUNDER_LONG,
TSTORM_STATE_END_THUNDER_LONG,
};
void Thunderstorm_InitVars(void) void Thunderstorm_InitVars(void)
{ {
gWeatherPtr->initStep = 0; gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN;
gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleCounter = 0;
gWeatherPtr->rainSpriteVisibleDelay = 4; gWeatherPtr->rainSpriteVisibleDelay = 4;
@@ -1022,7 +1046,7 @@ void Thunderstorm_InitVars(void)
gWeatherPtr->gammaTargetIndex = 3; gWeatherPtr->gammaTargetIndex = 3;
gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
gWeatherPtr->thunderTriggered = 0; gWeatherPtr->thunderTriggered = FALSE;
SetRainStrengthFromSoundEffect(SE_THUNDERSTORM); SetRainStrengthFromSoundEffect(SE_THUNDERSTORM);
} }
@@ -1042,7 +1066,7 @@ static void SetThunderCounter(u16);
void Downpour_InitVars(void) void Downpour_InitVars(void)
{ {
gWeatherPtr->initStep = 0; gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN;
gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleCounter = 0;
gWeatherPtr->rainSpriteVisibleDelay = 4; gWeatherPtr->rainSpriteVisibleDelay = 4;
@@ -1066,100 +1090,105 @@ void Thunderstorm_Main(void)
UpdateThunderSound(); UpdateThunderSound();
switch (gWeatherPtr->initStep) switch (gWeatherPtr->initStep)
{ {
case 0: case TSTORM_STATE_LOAD_RAIN:
LoadRainSpriteSheet(); LoadRainSpriteSheet();
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 1: case TSTORM_STATE_CREATE_RAIN:
if (!CreateRainSprite()) if (!CreateRainSprite())
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 2: case TSTORM_STATE_INIT_RAIN:
if (!UpdateVisibleRainSprites()) if (!UpdateVisibleRainSprites())
{ {
gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->weatherGfxLoaded = TRUE;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
} }
break; break;
case 3: case TSTORM_STATE_WAIT_CHANGE:
if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER)
gWeatherPtr->initStep = 6; gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_SHORT_1;
break; break;
case 4: case TSTORM_STATE_LOOP_START:
gWeatherPtr->unknown_6EA = 1; gWeatherPtr->thunderAllowEnd = TRUE;
gWeatherPtr->unknown_6E6 = (Random() % 360) + 360; gWeatherPtr->thunderDelay = (Random() % 360) + 360;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
// fall through // fall through
case 5: case TSTORM_STATE_LOOP_WAIT:
if (--gWeatherPtr->unknown_6E6 == 0) // Wait between 360-720 frames before trying thunder again
if (--gWeatherPtr->thunderDelay == 0)
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 6: case TSTORM_STATE_INIT_THUNDER_SHORT_1:
gWeatherPtr->unknown_6EA = 1; gWeatherPtr->thunderAllowEnd = TRUE;
gWeatherPtr->unknown_6EB = Random() % 2; gWeatherPtr->thunderSkipShort = Random() % 2;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 7: case TSTORM_STATE_INIT_THUNDER_SHORT_2:
gWeatherPtr->unknown_6EC = (Random() & 1) + 1; gWeatherPtr->thunderShortRetries = (Random() & 1) + 1;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
// fall through // fall through
case 8: case TSTORM_STATE_TRY_THUNDER_SHORT:
sub_80ABC48(19); ApplyWeatherGammaShiftIfIdle(19);
if (gWeatherPtr->unknown_6EB == 0 && gWeatherPtr->unknown_6EC == 1) if (!gWeatherPtr->thunderSkipShort && gWeatherPtr->thunderShortRetries == 1)
SetThunderCounter(20); SetThunderCounter(20); // Do short thunder
gWeatherPtr->unknown_6E6 = (Random() % 3) + 6; gWeatherPtr->thunderDelay = (Random() % 3) + 6;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 9: case TSTORM_STATE_TRY_NEW_THUNDER:
if (--gWeatherPtr->unknown_6E6 == 0) if (--gWeatherPtr->thunderDelay == 0)
{ {
sub_80ABC48(3); ApplyWeatherGammaShiftIfIdle(3);
gWeatherPtr->unknown_6EA = 1; gWeatherPtr->thunderAllowEnd = TRUE;
if (--gWeatherPtr->unknown_6EC != 0) if (--gWeatherPtr->thunderShortRetries != 0)
{ {
gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; // Try a short thunder again
gWeatherPtr->initStep = 10; gWeatherPtr->thunderDelay = (Random() % 16) + 60;
gWeatherPtr->initStep = TSTORM_STATE_WAIT_THUNDER_SHORT;
} }
else if (gWeatherPtr->unknown_6EB == 0) else if (!gWeatherPtr->thunderSkipShort)
{ {
gWeatherPtr->initStep = 4; // No more thunder, restart loop
gWeatherPtr->initStep = TSTORM_STATE_LOOP_START;
} }
else else
{ {
gWeatherPtr->initStep = 11; // Set up long thunder
gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_LONG;
} }
} }
break; break;
case 10: case TSTORM_STATE_WAIT_THUNDER_SHORT:
if (--gWeatherPtr->unknown_6E6 == 0) if (--gWeatherPtr->thunderDelay == 0)
gWeatherPtr->initStep = 8; gWeatherPtr->initStep = TSTORM_STATE_TRY_THUNDER_SHORT;
break; break;
case 11: case TSTORM_STATE_INIT_THUNDER_LONG:
gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; gWeatherPtr->thunderDelay = (Random() % 16) + 60;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
break; break;
case 12: case TSTORM_STATE_WAIT_THUNDER_LONG:
if (--gWeatherPtr->unknown_6E6 == 0) if (--gWeatherPtr->thunderDelay == 0)
{ {
// Do long thunder
SetThunderCounter(100); SetThunderCounter(100);
sub_80ABC48(19); ApplyWeatherGammaShiftIfIdle(19);
gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30; gWeatherPtr->thunderDelay = (Random() & 0xF) + 30;
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
} }
break; break;
case 13: case TSTORM_STATE_FADE_THUNDER_LONG:
if (--gWeatherPtr->unknown_6E6 == 0) if (--gWeatherPtr->thunderDelay == 0)
{ {
sub_80ABC7C(19, 3, 5); sub_80ABC7C(19, 3, 5);
gWeatherPtr->initStep++; gWeatherPtr->initStep++;
} }
break; break;
case 14: case TSTORM_STATE_END_THUNDER_LONG:
if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE)
{ {
gWeatherPtr->unknown_6EA = 1; gWeatherPtr->thunderAllowEnd = TRUE;
gWeatherPtr->initStep = 4; gWeatherPtr->initStep = TSTORM_STATE_LOOP_START;
} }
break; break;
} }
@@ -1170,12 +1199,12 @@ bool8 Thunderstorm_Finish(void)
switch (gWeatherPtr->finishStep) switch (gWeatherPtr->finishStep)
{ {
case 0: case 0:
gWeatherPtr->unknown_6EA = 0; gWeatherPtr->thunderAllowEnd = FALSE;
gWeatherPtr->finishStep++; gWeatherPtr->finishStep++;
// fall through // fall through
case 1: case 1:
Thunderstorm_Main(); Thunderstorm_Main();
if (gWeatherPtr->unknown_6EA) if (gWeatherPtr->thunderAllowEnd)
{ {
if (gWeatherPtr->nextWeather == WEATHER_RAIN if (gWeatherPtr->nextWeather == WEATHER_RAIN
|| gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM
@@ -1203,16 +1232,16 @@ bool8 Thunderstorm_Finish(void)
static void SetThunderCounter(u16 max) static void SetThunderCounter(u16 max)
{ {
if (gWeatherPtr->thunderTriggered == 0) if (!gWeatherPtr->thunderTriggered)
{ {
gWeatherPtr->thunderCounter = Random() % max; gWeatherPtr->thunderCounter = Random() % max;
gWeatherPtr->thunderTriggered = 1; gWeatherPtr->thunderTriggered = TRUE;
} }
} }
static void UpdateThunderSound(void) static void UpdateThunderSound(void)
{ {
if (gWeatherPtr->thunderTriggered == 1) if (gWeatherPtr->thunderTriggered == TRUE)
{ {
if (gWeatherPtr->thunderCounter == 0) if (gWeatherPtr->thunderCounter == 0)
{ {
@@ -1224,7 +1253,7 @@ static void UpdateThunderSound(void)
else else
PlaySE(SE_THUNDER2); PlaySE(SE_THUNDER2);
gWeatherPtr->thunderTriggered = 0; gWeatherPtr->thunderTriggered = FALSE;
} }
else else
{ {
@@ -1237,10 +1266,9 @@ static void UpdateThunderSound(void)
// WEATHER_FOG_HORIZONTAL and WEATHER_UNDERWATER // WEATHER_FOG_HORIZONTAL and WEATHER_UNDERWATER
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// unused data static const u16 sUnusedData[] = {0, 6, 6, 12, 18, 42, 300, 300};
static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300};
static const struct OamData gOamData_839AB2C = static const struct OamData sOamData_FogH =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -1257,72 +1285,72 @@ static const struct OamData gOamData_839AB2C =
.affineParam = 0, .affineParam = 0,
}; };
static const union AnimCmd gSpriteAnim_839AB34[] = static const union AnimCmd sAnim_FogH_0[] =
{ {
ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(0, 16),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd gSpriteAnim_839AB3C[] = static const union AnimCmd sAnim_FogH_1[] =
{ {
ANIMCMD_FRAME(32, 16), ANIMCMD_FRAME(32, 16),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd gSpriteAnim_839AB44[] = static const union AnimCmd sAnim_FogH_2[] =
{ {
ANIMCMD_FRAME(64, 16), ANIMCMD_FRAME(64, 16),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd gSpriteAnim_839AB4C[] = static const union AnimCmd sAnim_FogH_3[] =
{ {
ANIMCMD_FRAME(96, 16), ANIMCMD_FRAME(96, 16),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd gSpriteAnim_839AB54[] = static const union AnimCmd sAnim_FogH_4[] =
{ {
ANIMCMD_FRAME(128, 16), ANIMCMD_FRAME(128, 16),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd gSpriteAnim_839AB5C[] = static const union AnimCmd sAnim_FogH_5[] =
{ {
ANIMCMD_FRAME(160, 16), ANIMCMD_FRAME(160, 16),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const gSpriteAnimTable_839AB64[] = static const union AnimCmd *const sAnims_FogH[] =
{ {
gSpriteAnim_839AB34, sAnim_FogH_0,
gSpriteAnim_839AB3C, sAnim_FogH_1,
gSpriteAnim_839AB44, sAnim_FogH_2,
gSpriteAnim_839AB4C, sAnim_FogH_3,
gSpriteAnim_839AB54, sAnim_FogH_4,
gSpriteAnim_839AB5C, sAnim_FogH_5,
}; };
static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] = static const union AffineAnimCmd sAffineAnim_FogH[] =
{ {
AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] = static const union AffineAnimCmd *const sAffineAnims_FogH[] =
{ {
gSpriteAffineAnim_839AB7C, sAffineAnim_FogH,
}; };
static void FogHorizontalSpriteCallback(struct Sprite *); static void FogHorizontalSpriteCallback(struct Sprite *);
static const struct SpriteTemplate sFogHorizontalSpriteTemplate = static const struct SpriteTemplate sFogHorizontalSpriteTemplate =
{ {
.tileTag = 0x1201, .tileTag = GFXTAG_FOG_H,
.paletteTag = 0x1200, .paletteTag = PALTAG_WEATHER,
.oam = &gOamData_839AB2C, .oam = &sOamData_FogH,
.anims = gSpriteAnimTable_839AB64, .anims = sAnims_FogH,
.images = NULL, .images = NULL,
.affineAnims = gSpriteAffineAnimTable_839AB8C, .affineAnims = sAffineAnims_FogH,
.callback = FogHorizontalSpriteCallback, .callback = FogHorizontalSpriteCallback,
}; };
@@ -1433,7 +1461,7 @@ static void CreateFogHorizontalSprites(void)
struct SpriteSheet fogHorizontalSpriteSheet = { struct SpriteSheet fogHorizontalSpriteSheet = {
.data = gWeatherFogHorizontalTiles, .data = gWeatherFogHorizontalTiles,
.size = sizeof(gWeatherFogHorizontalTiles), .size = sizeof(gWeatherFogHorizontalTiles),
.tag = 0x1201, .tag = GFXTAG_FOG_H,
}; };
LoadSpriteSheet(&fogHorizontalSpriteSheet); LoadSpriteSheet(&fogHorizontalSpriteSheet);
for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++) for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++)
@@ -1469,7 +1497,7 @@ static void DestroyFogHorizontalSprites(void)
DestroySprite(gWeatherPtr->sprites.s2.fogHSprites[i]); DestroySprite(gWeatherPtr->sprites.s2.fogHSprites[i]);
} }
FreeSpriteTilesByTag(0x1201); FreeSpriteTilesByTag(GFXTAG_FOG_H);
gWeatherPtr->fogHSpritesCreated = 0; gWeatherPtr->fogHSpritesCreated = 0;
} }
} }
@@ -1491,7 +1519,7 @@ void Ash_InitVars(void)
gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaTargetIndex = 0;
gWeatherPtr->gammaStepDelay = 20; gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->unknown_6FE = 20; gWeatherPtr->ashUnused = 20; // Never read
if (!gWeatherPtr->ashSpritesCreated) if (!gWeatherPtr->ashSpritesCreated)
{ {
Weather_SetBlendCoeffs(0, 16); Weather_SetBlendCoeffs(0, 16);
@@ -1567,7 +1595,7 @@ static const struct SpriteSheet sAshSpriteSheet =
{ {
.data = gWeatherAshTiles, .data = gWeatherAshTiles,
.size = sizeof(gWeatherAshTiles), .size = sizeof(gWeatherAshTiles),
.tag = 0x1202, .tag = GFXTAG_ASH,
}; };
static void LoadAshSpriteSheet(void) static void LoadAshSpriteSheet(void)
@@ -1603,8 +1631,8 @@ static const union AnimCmd *const sAshSpriteAnimCmds[] =
static const struct SpriteTemplate sAshSpriteTemplate = static const struct SpriteTemplate sAshSpriteTemplate =
{ {
.tileTag = 4610, .tileTag = GFXTAG_ASH,
.paletteTag = 0x1200, .paletteTag = PALTAG_WEATHER,
.oam = &sAshSpriteOamData, .oam = &sAshSpriteOamData,
.anims = sAshSpriteAnimCmds, .anims = sAshSpriteAnimCmds,
.images = NULL, .images = NULL,
@@ -1659,7 +1687,7 @@ static void DestroyAshSprites(void)
DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]); DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]);
} }
FreeSpriteTilesByTag(0x1202); FreeSpriteTilesByTag(GFXTAG_ASH);
gWeatherPtr->ashSpritesCreated = FALSE; gWeatherPtr->ashSpritesCreated = FALSE;
} }
} }
@@ -1790,7 +1818,7 @@ static const struct SpriteSheet gFogDiagonalSpriteSheet =
{ {
.data = gWeatherFogDiagonalTiles, .data = gWeatherFogDiagonalTiles,
.size = sizeof(gWeatherFogDiagonalTiles), .size = sizeof(gWeatherFogDiagonalTiles),
.tag = 0x1203, .tag = GFXTAG_FOG_D,
}; };
static const struct OamData sFogDiagonalSpriteOamData = static const struct OamData sFogDiagonalSpriteOamData =
@@ -1820,8 +1848,8 @@ static const union AnimCmd *const sFogDiagonalSpriteAnimCmds[] =
static const struct SpriteTemplate sFogDiagonalSpriteTemplate = static const struct SpriteTemplate sFogDiagonalSpriteTemplate =
{ {
.tileTag = 0x1203, .tileTag = GFXTAG_FOG_D,
.paletteTag = 0x1200, .paletteTag = PALTAG_WEATHER,
.oam = &sFogDiagonalSpriteOamData, .oam = &sFogDiagonalSpriteOamData,
.anims = sFogDiagonalSpriteAnimCmds, .anims = sFogDiagonalSpriteAnimCmds,
.images = NULL, .images = NULL,
@@ -1875,7 +1903,7 @@ static void DestroyFogDiagonalSprites(void)
DestroySprite(gWeatherPtr->sprites.s2.fogDSprites[i]); DestroySprite(gWeatherPtr->sprites.s2.fogDSprites[i]);
} }
FreeSpriteTilesByTag(0x1203); FreeSpriteTilesByTag(GFXTAG_FOG_D);
gWeatherPtr->fogDSpritesCreated = FALSE; gWeatherPtr->fogDSpritesCreated = FALSE;
} }
} }
@@ -2018,7 +2046,7 @@ static void DestroySandstormSprites(void)
} }
gWeatherPtr->sandstormSpritesCreated = FALSE; gWeatherPtr->sandstormSpritesCreated = FALSE;
FreeSpriteTilesByTag(0x1204); FreeSpriteTilesByTag(GFXTAG_SANDSTORM);
} }
if (gWeatherPtr->sandstormSwirlSpritesCreated) if (gWeatherPtr->sandstormSwirlSpritesCreated)
@@ -2067,8 +2095,8 @@ static const union AnimCmd *const sSandstormSpriteAnimCmds[] =
static const struct SpriteTemplate sSandstormSpriteTemplate = static const struct SpriteTemplate sSandstormSpriteTemplate =
{ {
.tileTag = 0x1204, .tileTag = GFXTAG_SANDSTORM,
.paletteTag = 0x1201, .paletteTag = PALTAG_WEATHER_2,
.oam = &sSandstormSpriteOamData, .oam = &sSandstormSpriteOamData,
.anims = sSandstormSpriteAnimCmds, .anims = sSandstormSpriteAnimCmds,
.images = NULL, .images = NULL,
@@ -2080,7 +2108,7 @@ static const struct SpriteSheet sSandstormSpriteSheet =
{ {
.data = gWeatherSandstormTiles, .data = gWeatherSandstormTiles,
.size = sizeof(gWeatherSandstormTiles), .size = sizeof(gWeatherSandstormTiles),
.tag = 0x1204, .tag = GFXTAG_SANDSTORM,
}; };
// Regular sandstorm sprites // Regular sandstorm sprites
@@ -2242,7 +2270,7 @@ static const struct SpriteSheet sWeatherBubbleSpriteSheet =
{ {
.data = gWeatherBubbleTiles, .data = gWeatherBubbleTiles,
.size = sizeof(gWeatherBubbleTiles), .size = sizeof(gWeatherBubbleTiles),
.tag = 0x1205, .tag = GFXTAG_BUBBLE,
}; };
static const s16 sBubbleStartCoords[][2] = static const s16 sBubbleStartCoords[][2] =
@@ -2322,8 +2350,8 @@ static const union AnimCmd *const sBubbleSpriteAnimCmds[] =
static const struct SpriteTemplate sBubbleSpriteTemplate = static const struct SpriteTemplate sBubbleSpriteTemplate =
{ {
.tileTag = 0x1205, .tileTag = GFXTAG_BUBBLE,
.paletteTag = 0x1200, .paletteTag = PALTAG_WEATHER,
.oam = &gOamData_AffineOff_ObjNormal_8x8, .oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sBubbleSpriteAnimCmds, .anims = sBubbleSpriteAnimCmds,
.images = NULL, .images = NULL,
@@ -2363,7 +2391,7 @@ static void DestroyBubbleSprites(void)
DestroySprite(&gSprites[i]); DestroySprite(&gSprites[i]);
} }
FreeSpriteTilesByTag(0x1205); FreeSpriteTilesByTag(GFXTAG_BUBBLE);
gWeatherPtr->bubblesSpriteCount = 0; gWeatherPtr->bubblesSpriteCount = 0;
} }
} }
+98 -229
View File
@@ -15,6 +15,7 @@
#include "trainer_hill.h" #include "trainer_hill.h"
#include "tv.h" #include "tv.h"
#include "constants/rgb.h" #include "constants/rgb.h"
#include "constants/metatile_behaviors.h"
struct ConnectionFlags struct ConnectionFlags
{ {
@@ -43,6 +44,24 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead
static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader); static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader);
static void LoadSavedMapView(void); static void LoadSavedMapView(void);
static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode); static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, u8 yMode);
static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y);
static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection);
static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset);
#define MapGridGetBorderTileAt(x, y) ({ \
u16 block; \
int i; \
u16 *border = gMapHeader.mapLayout->border; \
\
i = (x + 1) & 1; \
i += ((y + 1) & 1) * 2; \
\
block = gMapHeader.mapLayout->border[i] | METATILE_COLLISION_MASK; \
})
#define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height)
#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? gBackupMapLayout.map[x + gBackupMapLayout.width * y] : MapGridGetBorderTileAt(x, y))
struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection) struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection)
{ {
@@ -68,13 +87,13 @@ void InitMapFromSavedGame(void)
void InitBattlePyramidMap(bool8 setPlayerPosition) void InitBattlePyramidMap(bool8 setPlayerPosition)
{ {
CpuFastFill(0x03ff03ff, gBackupMapData, sizeof(gBackupMapData)); CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData));
GenerateBattlePyramidFloorLayout(gBackupMapData, setPlayerPosition); GenerateBattlePyramidFloorLayout(gBackupMapData, setPlayerPosition);
} }
void InitTrainerHillMap(void) void InitTrainerHillMap(void)
{ {
CpuFastFill(0x03ff03ff, gBackupMapData, sizeof(gBackupMapData)); CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData));
GenerateTrainerHillFloorLayout(gBackupMapData); GenerateTrainerHillFloorLayout(gBackupMapData);
} }
@@ -84,7 +103,7 @@ static void InitMapLayoutData(struct MapHeader *mapHeader)
int width; int width;
int height; int height;
mapLayout = mapHeader->mapLayout; mapLayout = mapHeader->mapLayout;
CpuFastFill16(0x03ff, gBackupMapData, sizeof(gBackupMapData)); CpuFastFill16(METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData));
gBackupMapLayout.map = gBackupMapData; gBackupMapLayout.map = gBackupMapData;
width = mapLayout->width + 15; width = mapLayout->width + 15;
gBackupMapLayout.width = width; gBackupMapLayout.width = width;
@@ -130,26 +149,26 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader)
{ {
case CONNECTION_SOUTH: case CONNECTION_SOUTH:
FillSouthConnection(mapHeader, cMap, offset); FillSouthConnection(mapHeader, cMap, offset);
gMapConnectionFlags.south = 1; gMapConnectionFlags.south = TRUE;
break; break;
case CONNECTION_NORTH: case CONNECTION_NORTH:
FillNorthConnection(mapHeader, cMap, offset); FillNorthConnection(mapHeader, cMap, offset);
gMapConnectionFlags.north = 1; gMapConnectionFlags.north = TRUE;
break; break;
case CONNECTION_WEST: case CONNECTION_WEST:
FillWestConnection(mapHeader, cMap, offset); FillWestConnection(mapHeader, cMap, offset);
gMapConnectionFlags.west = 1; gMapConnectionFlags.west = TRUE;
break; break;
case CONNECTION_EAST: case CONNECTION_EAST:
FillEastConnection(mapHeader, cMap, offset); FillEastConnection(mapHeader, cMap, offset);
gMapConnectionFlags.east = 1; gMapConnectionFlags.east = TRUE;
break; break;
} }
} }
} }
} }
static void sub_8087F54(int x, int y, struct MapHeader const *connectedMapHeader, int x2, int y2, int width, int height) static void FillConnection(int x, int y, struct MapHeader const *connectedMapHeader, int x2, int y2, int width, int height)
{ {
int i; int i;
u16 *src; u16 *src;
@@ -185,29 +204,21 @@ static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHea
x2 = -x; x2 = -x;
x += cWidth; x += cWidth;
if (x < gBackupMapLayout.width) if (x < gBackupMapLayout.width)
{
width = x; width = x;
}
else else
{
width = gBackupMapLayout.width; width = gBackupMapLayout.width;
}
x = 0; x = 0;
} }
else else
{ {
x2 = 0; x2 = 0;
if (x + cWidth < gBackupMapLayout.width) if (x + cWidth < gBackupMapLayout.width)
{
width = cWidth; width = cWidth;
}
else else
{
width = gBackupMapLayout.width - x; width = gBackupMapLayout.width - x;
}
} }
sub_8087F54( FillConnection(
x, y, x, y,
connectedMapHeader, connectedMapHeader,
x2, /*y2*/ 0, x2, /*y2*/ 0,
@@ -233,29 +244,21 @@ static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHea
x2 = -x; x2 = -x;
x += cWidth; x += cWidth;
if (x < gBackupMapLayout.width) if (x < gBackupMapLayout.width)
{
width = x; width = x;
}
else else
{
width = gBackupMapLayout.width; width = gBackupMapLayout.width;
}
x = 0; x = 0;
} }
else else
{ {
x2 = 0; x2 = 0;
if (x + cWidth < gBackupMapLayout.width) if (x + cWidth < gBackupMapLayout.width)
{
width = cWidth; width = cWidth;
}
else else
{
width = gBackupMapLayout.width - x; width = gBackupMapLayout.width - x;
}
} }
sub_8087F54( FillConnection(
x, /*y*/ 0, x, /*y*/ 0,
connectedMapHeader, connectedMapHeader,
x2, y2, x2, y2,
@@ -280,29 +283,21 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead
{ {
y2 = -y; y2 = -y;
if (y + cHeight < gBackupMapLayout.height) if (y + cHeight < gBackupMapLayout.height)
{
height = y + cHeight; height = y + cHeight;
}
else else
{
height = gBackupMapLayout.height; height = gBackupMapLayout.height;
}
y = 0; y = 0;
} }
else else
{ {
y2 = 0; y2 = 0;
if (y + cHeight < gBackupMapLayout.height) if (y + cHeight < gBackupMapLayout.height)
{
height = cHeight; height = cHeight;
}
else else
{
height = gBackupMapLayout.height - y; height = gBackupMapLayout.height - y;
}
} }
sub_8087F54( FillConnection(
/*x*/ 0, y, /*x*/ 0, y,
connectedMapHeader, connectedMapHeader,
x2, y2, x2, y2,
@@ -325,29 +320,21 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead
{ {
y2 = -y; y2 = -y;
if (y + cHeight < gBackupMapLayout.height) if (y + cHeight < gBackupMapLayout.height)
{
height = y + cHeight; height = y + cHeight;
}
else else
{
height = gBackupMapLayout.height; height = gBackupMapLayout.height;
}
y = 0; y = 0;
} }
else else
{ {
y2 = 0; y2 = 0;
if (y + cHeight < gBackupMapLayout.height) if (y + cHeight < gBackupMapLayout.height)
{
height = cHeight; height = cHeight;
}
else else
{
height = gBackupMapLayout.height - y; height = gBackupMapLayout.height - y;
}
} }
sub_8087F54( FillConnection(
x, y, x, y,
connectedMapHeader, connectedMapHeader,
/*x2*/ 0, y2, /*x2*/ 0, y2,
@@ -355,124 +342,52 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead
} }
} }
union Block
{
struct
{
u16 block:10;
u16 collision:2;
u16 elevation:4;
} block;
u16 value;
};
u8 MapGridGetZCoordAt(int x, int y) u8 MapGridGetZCoordAt(int x, int y)
{ {
u16 block; u16 block = MapGridGetTileAt(x, y);
int i;
u16 *border;
if (x >= 0 && x < gBackupMapLayout.width
&& y >= 0 && y < gBackupMapLayout.height)
{
block = gBackupMapLayout.map[x + gBackupMapLayout.width * y];
}
else
{
border = gMapHeader.mapLayout->border;
i = (x + 1) & 1;
i += ((y + 1) & 1) * 2;
block = gMapHeader.mapLayout->border[i];
block |= METATILE_COLLISION_MASK;
}
if (block == METATILE_ID_UNDEFINED) if (block == METATILE_ID_UNDEFINED)
{
return 0; return 0;
}
return block >> METATILE_ELEVATION_SHIFT; return block >> METATILE_ELEVATION_SHIFT;
} }
u8 MapGridIsImpassableAt(int x, int y) bool8 MapGridIsImpassableAt(int x, int y)
{ {
u16 block; u16 block = MapGridGetTileAt(x, y);
int i;
u16 *border;
if (x >= 0 && x < gBackupMapLayout.width
&& y >= 0 && y < gBackupMapLayout.height)
{
block = gBackupMapLayout.map[x + gBackupMapLayout.width * y];
}
else
{
border = gMapHeader.mapLayout->border;
i = (x + 1) & 1;
i += ((y + 1) & 1) * 2;
block = gMapHeader.mapLayout->border[i];
block |= METATILE_COLLISION_MASK;
}
if (block == METATILE_ID_UNDEFINED) if (block == METATILE_ID_UNDEFINED)
{ return TRUE;
return 1;
}
return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT;
} }
u32 MapGridGetMetatileIdAt(int x, int y) u32 MapGridGetMetatileIdAt(int x, int y)
{ {
u16 block; u16 block = MapGridGetTileAt(x, y);
int i;
int j;
struct MapLayout const *mapLayout;
u16 *border;
u16 block2;
if (x >= 0 && x < gBackupMapLayout.width
&& y >= 0 && y < gBackupMapLayout.height)
{
block = gBackupMapLayout.map[x + gBackupMapLayout.width * y];
}
else
{
mapLayout = gMapHeader.mapLayout;
i = (x + 1) & 1;
i += ((y + 1) & 1) * 2;
block = mapLayout->border[i] | METATILE_COLLISION_MASK;
}
if (block == METATILE_ID_UNDEFINED) if (block == METATILE_ID_UNDEFINED)
{ return MapGridGetBorderTileAt(x, y) & METATILE_ID_MASK;
border = gMapHeader.mapLayout->border;
j = (x + 1) & 1;
j += ((y + 1) & 1) * 2;
block2 = gMapHeader.mapLayout->border[j];
// This OR is completely pointless.
block2 |= METATILE_COLLISION_MASK;
return block2 & METATILE_ID_MASK;
}
return block & METATILE_ID_MASK; return block & METATILE_ID_MASK;
} }
u32 MapGridGetMetatileBehaviorAt(int x, int y) u32 MapGridGetMetatileBehaviorAt(int x, int y)
{ {
u16 metatile; u16 metatile = MapGridGetMetatileIdAt(x, y);
metatile = MapGridGetMetatileIdAt(x, y); return GetBehaviorByMetatileId(metatile) & METATILE_BEHAVIOR_MASK;
return GetBehaviorByMetatileId(metatile) & 0xff;
} }
u8 MapGridGetMetatileLayerTypeAt(int x, int y) u8 MapGridGetMetatileLayerTypeAt(int x, int y)
{ {
u16 metatile; u16 metatile = MapGridGetMetatileIdAt(x, y);
metatile = MapGridGetMetatileIdAt(x, y);
return (GetBehaviorByMetatileId(metatile) & METATILE_ELEVATION_MASK) >> METATILE_ELEVATION_SHIFT; return (GetBehaviorByMetatileId(metatile) & METATILE_ELEVATION_MASK) >> METATILE_ELEVATION_SHIFT;
} }
void MapGridSetMetatileIdAt(int x, int y, u16 metatile) void MapGridSetMetatileIdAt(int x, int y, u16 metatile)
{ {
int i; int i;
if (x >= 0 && x < gBackupMapLayout.width if (AreCoordsWithinMapGridBounds(x, y))
&& y >= 0 && y < gBackupMapLayout.height)
{ {
i = x + y * gBackupMapLayout.width; i = x + y * gBackupMapLayout.width;
gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK);
@@ -482,8 +397,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile)
void MapGridSetMetatileEntryAt(int x, int y, u16 metatile) void MapGridSetMetatileEntryAt(int x, int y, u16 metatile)
{ {
int i; int i;
if (x >= 0 && x < gBackupMapLayout.width if (AreCoordsWithinMapGridBounds(x, y))
&& y >= 0 && y < gBackupMapLayout.height)
{ {
i = x + gBackupMapLayout.width * y; i = x + gBackupMapLayout.width * y;
gBackupMapLayout.map[i] = metatile; gBackupMapLayout.map[i] = metatile;
@@ -505,11 +419,11 @@ u16 GetBehaviorByMetatileId(u16 metatile)
} }
else else
{ {
return 0xFF; return MB_INVALID;
} }
} }
void save_serialize_map(void) void SaveMapView(void)
{ {
int i, j; int i, j;
int x, y; int x, y;
@@ -522,9 +436,7 @@ void save_serialize_map(void)
for (i = y; i < y + 14; i++) for (i = y; i < y + 14; i++)
{ {
for (j = x; j < x + 15; j++) for (j = x; j < x + 15; j++)
{
*mapView++ = gBackupMapData[width * i + j]; *mapView++ = gBackupMapData[width * i + j];
}
} }
} }
@@ -595,7 +507,7 @@ static void LoadSavedMapView(void)
} }
} }
void sub_80885C4(u8 a1) static void MoveMapViewToBackup(u8 direction)
{ {
int width; int width;
u16 *mapView; u16 *mapView;
@@ -614,7 +526,7 @@ void sub_80885C4(u8 a1)
y0 = gSaveBlock1Ptr->pos.y; y0 = gSaveBlock1Ptr->pos.y;
x2 = 15; x2 = 15;
y2 = 14; y2 = 14;
switch (a1) switch (direction)
{ {
case CONNECTION_NORTH: case CONNECTION_NORTH:
y0 += 1; y0 += 1;
@@ -653,71 +565,40 @@ void sub_80885C4(u8 a1)
int GetMapBorderIdAt(int x, int y) int GetMapBorderIdAt(int x, int y)
{ {
struct MapLayout const *mapLayout; if (MapGridGetTileAt(x, y) == METATILE_ID_UNDEFINED)
u16 block, block2; return CONNECTION_INVALID;
int i, j;
if (x >= 0 && x < gBackupMapLayout.width
&& y >= 0 && y < gBackupMapLayout.height)
{
i = gBackupMapLayout.width;
i *= y;
block = gBackupMapLayout.map[x + i];
if (block == METATILE_ID_UNDEFINED)
{
goto fail;
}
}
else
{
mapLayout = gMapHeader.mapLayout;
j = (x + 1) & 1;
j += ((y + 1) & 1) * 2;
block2 = METATILE_COLLISION_MASK | mapLayout->border[j];
if (block2 == METATILE_ID_UNDEFINED)
{
goto fail;
}
}
goto success;
fail:
return -1;
success:
if (x >= (gBackupMapLayout.width - 8)) if (x >= (gBackupMapLayout.width - 8))
{ {
if (!gMapConnectionFlags.east) if (!gMapConnectionFlags.east)
{ return CONNECTION_INVALID;
return -1;
}
return CONNECTION_EAST; return CONNECTION_EAST;
} }
else if (x < 7) else if (x < 7)
{ {
if (!gMapConnectionFlags.west) if (!gMapConnectionFlags.west)
{ return CONNECTION_INVALID;
return -1;
}
return CONNECTION_WEST; return CONNECTION_WEST;
} }
else if (y >= (gBackupMapLayout.height - 7)) else if (y >= (gBackupMapLayout.height - 7))
{ {
if (!gMapConnectionFlags.south) if (!gMapConnectionFlags.south)
{ return CONNECTION_INVALID;
return -1;
}
return CONNECTION_SOUTH; return CONNECTION_SOUTH;
} }
else if (y < 7) else if (y < 7)
{ {
if (!gMapConnectionFlags.north) if (!gMapConnectionFlags.north)
{ return CONNECTION_INVALID;
return -1;
}
return CONNECTION_NORTH; return CONNECTION_NORTH;
} }
else else
{ {
return 0; return CONNECTION_NONE;
} }
} }
@@ -726,19 +607,19 @@ int GetPostCameraMoveMapBorderId(int x, int y)
return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + 7 + x, gSaveBlock1Ptr->pos.y + 7 + y); return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + 7 + x, gSaveBlock1Ptr->pos.y + 7 + y);
} }
int CanCameraMoveInDirection(int direction) bool32 CanCameraMoveInDirection(int direction)
{ {
int x, y; int x, y;
x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x; x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x;
y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y; y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y;
if (GetMapBorderIdAt(x, y) == -1)
{ if (GetMapBorderIdAt(x, y) == CONNECTION_INVALID)
return 0; return FALSE;
}
return 1; return TRUE;
} }
void sub_80887F8(struct MapConnection *connection, int direction, int x, int y) static void SetPositionFromConnection(struct MapConnection *connection, int direction, int x, int y)
{ {
struct MapHeader const *mapHeader; struct MapHeader const *mapHeader;
mapHeader = GetMapHeaderFromConnection(connection); mapHeader = GetMapHeaderFromConnection(connection);
@@ -765,69 +646,57 @@ void sub_80887F8(struct MapConnection *connection, int direction, int x, int y)
bool8 CameraMove(int x, int y) bool8 CameraMove(int x, int y)
{ {
unsigned int direction; int direction;
struct MapConnection *connection; struct MapConnection *connection;
int old_x, old_y; int old_x, old_y;
gCamera.active = FALSE; gCamera.active = FALSE;
direction = GetPostCameraMoveMapBorderId(x, y); direction = GetPostCameraMoveMapBorderId(x, y);
if (direction + 1 <= 1) if (direction == CONNECTION_NONE || direction == CONNECTION_INVALID)
{ {
gSaveBlock1Ptr->pos.x += x; gSaveBlock1Ptr->pos.x += x;
gSaveBlock1Ptr->pos.y += y; gSaveBlock1Ptr->pos.y += y;
} }
else else
{ {
save_serialize_map(); SaveMapView();
ClearMirageTowerPulseBlendEffect(); ClearMirageTowerPulseBlendEffect();
old_x = gSaveBlock1Ptr->pos.x; old_x = gSaveBlock1Ptr->pos.x;
old_y = gSaveBlock1Ptr->pos.y; old_y = gSaveBlock1Ptr->pos.y;
connection = sub_8088950(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y); connection = GetIncomingConnection(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y);
sub_80887F8(connection, direction, x, y); SetPositionFromConnection(connection, direction, x, y);
LoadMapFromCameraTransition(connection->mapGroup, connection->mapNum); LoadMapFromCameraTransition(connection->mapGroup, connection->mapNum);
gCamera.active = TRUE; gCamera.active = TRUE;
gCamera.x = old_x - gSaveBlock1Ptr->pos.x; gCamera.x = old_x - gSaveBlock1Ptr->pos.x;
gCamera.y = old_y - gSaveBlock1Ptr->pos.y; gCamera.y = old_y - gSaveBlock1Ptr->pos.y;
gSaveBlock1Ptr->pos.x += x; gSaveBlock1Ptr->pos.x += x;
gSaveBlock1Ptr->pos.y += y; gSaveBlock1Ptr->pos.y += y;
sub_80885C4(direction); MoveMapViewToBackup(direction);
} }
return gCamera.active; return gCamera.active;
} }
struct MapConnection *sub_8088950(u8 direction, int x, int y) static struct MapConnection *GetIncomingConnection(u8 direction, int x, int y)
{ {
int count; int count;
int i; int i;
struct MapConnection *connection; struct MapConnection *connection;
const struct MapConnections *connections = gMapHeader.connections; const struct MapConnections *connections = gMapHeader.connections;
// UB: Multiple possible null dereferences
#ifdef UBFIX #ifdef UBFIX // UB: Multiple possible null dereferences
if (connections != NULL) if (connections == NULL || connections->connections == NULL)
{ return NULL;
count = connections->count; #endif
connection = connections->connections;
if (connection != NULL)
{
for (i = 0; i < count; i++, connection++)
{
if (connection->direction == direction && sub_80889A8(direction, x, y, connection) == TRUE)
return connection;
}
}
}
#else
count = connections->count; count = connections->count;
connection = connections->connections; connection = connections->connections;
for (i = 0; i < count; i++, connection++) for (i = 0; i < count; i++, connection++)
{ {
if (connection->direction == direction && sub_80889A8(direction, x, y, connection) == TRUE) if (connection->direction == direction && IsPosInIncomingConnectingMap(direction, x, y, connection) == TRUE)
return connection; return connection;
} }
#endif
return NULL; return NULL;
} }
bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection) static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, struct MapConnection *connection)
{ {
struct MapHeader const *mapHeader; struct MapHeader const *mapHeader;
mapHeader = GetMapHeaderFromConnection(connection); mapHeader = GetMapHeaderFromConnection(connection);
@@ -835,15 +704,15 @@ bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection)
{ {
case CONNECTION_SOUTH: case CONNECTION_SOUTH:
case CONNECTION_NORTH: case CONNECTION_NORTH:
return sub_8088A0C(x, gMapHeader.mapLayout->width, mapHeader->mapLayout->width, connection->offset); return IsCoordInIncomingConnectingMap(x, gMapHeader.mapLayout->width, mapHeader->mapLayout->width, connection->offset);
case CONNECTION_WEST: case CONNECTION_WEST:
case CONNECTION_EAST: case CONNECTION_EAST:
return sub_8088A0C(y, gMapHeader.mapLayout->height, mapHeader->mapLayout->height, connection->offset); return IsCoordInIncomingConnectingMap(y, gMapHeader.mapLayout->height, mapHeader->mapLayout->height, connection->offset);
} }
return FALSE; return FALSE;
} }
bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset) static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset)
{ {
int offset2; int offset2;
offset2 = offset; offset2 = offset;
@@ -851,24 +720,24 @@ bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset)
if (offset2 < 0) if (offset2 < 0)
offset2 = 0; offset2 = 0;
if (dest_width + offset < src_width) if (destMax + offset < srcMax)
src_width = dest_width + offset; srcMax = destMax + offset;
if (offset2 <= x && x <= src_width) if (offset2 <= coord && coord <= srcMax)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
int sub_8088A38(int x, int width) static int IsCoordInConnectingMap(int coord, int max)
{ {
if (x >= 0 && x < width) if (coord >= 0 && coord < max)
return TRUE; return TRUE;
return FALSE; return FALSE;
} }
int sub_8088A4C(struct MapConnection *connection, int x, int y) static int IsPosInConnectingMap(struct MapConnection *connection, int x, int y)
{ {
struct MapHeader const *mapHeader; struct MapHeader const *mapHeader;
mapHeader = GetMapHeaderFromConnection(connection); mapHeader = GetMapHeaderFromConnection(connection);
@@ -876,10 +745,10 @@ int sub_8088A4C(struct MapConnection *connection, int x, int y)
{ {
case CONNECTION_SOUTH: case CONNECTION_SOUTH:
case CONNECTION_NORTH: case CONNECTION_NORTH:
return sub_8088A38(x - connection->offset, mapHeader->mapLayout->width); return IsCoordInConnectingMap(x - connection->offset, mapHeader->mapLayout->width);
case CONNECTION_WEST: case CONNECTION_WEST:
case CONNECTION_EAST: case CONNECTION_EAST:
return sub_8088A38(y - connection->offset, mapHeader->mapLayout->height); return IsCoordInConnectingMap(y - connection->offset, mapHeader->mapLayout->height);
} }
return FALSE; return FALSE;
} }
@@ -909,7 +778,7 @@ struct MapConnection *GetConnectionAtCoords(s16 x, s16 y)
{ {
continue; continue;
} }
if (sub_8088A4C(connection, x - 7, y - 7) == TRUE) if (IsPosInConnectingMap(connection, x - 7, y - 7) == TRUE)
{ {
return connection; return connection;
} }
@@ -945,7 +814,7 @@ void GetCameraCoords(u16 *x, u16 *y)
void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable) void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable)
{ {
if (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) if (AreCoordsWithinMapGridBounds(x, y))
{ {
if (impassable) if (impassable)
gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= METATILE_COLLISION_MASK; gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= METATILE_COLLISION_MASK;
@@ -991,12 +860,12 @@ static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTil
} }
} }
void nullsub_3(u16 a0, u16 a1) static void FieldmapPaletteDummy(u16 offset, u16 size)
{ {
} }
void nullsub_90(void) static void FieldmapUnkDummy(void)
{ {
} }
@@ -1011,17 +880,17 @@ void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size)
{ {
LoadPalette(&black, destOffset, 2); LoadPalette(&black, destOffset, 2);
LoadPalette(((u16*)tileset->palettes) + 1, destOffset + 1, size - 2); LoadPalette(((u16*)tileset->palettes) + 1, destOffset + 1, size - 2);
nullsub_3(destOffset + 1, (size - 2) >> 1); FieldmapPaletteDummy(destOffset + 1, (size - 2) >> 1);
} }
else if (tileset->isSecondary == TRUE) else if (tileset->isSecondary == TRUE)
{ {
LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size);
nullsub_3(destOffset, size >> 1); FieldmapPaletteDummy(destOffset, size >> 1);
} }
else else
{ {
LoadCompressedPalette((u32*)tileset->palettes, destOffset, size); LoadCompressedPalette((u32*)tileset->palettes, destOffset, size);
nullsub_3(destOffset, size >> 1); FieldmapPaletteDummy(destOffset, size >> 1);
} }
} }
} }
+1 -1
View File
@@ -326,7 +326,7 @@ bool8 FldEff_CutGrass(void)
y = yAdd + gPlayerFacingPosition.y; y = yAdd + gPlayerFacingPosition.y;
SetCutGrassMetatile(x, y); SetCutGrassMetatile(x, y);
sub_808E75C(x, y); AllowObjectAtPosTriggerGroundEffects(x, y);
} }
} }
+1 -1
View File
@@ -1298,7 +1298,7 @@ u8 CreateRecordMixingLights(void)
else else
{ {
struct Sprite *sprite = &gSprites[spriteId]; struct Sprite *sprite = &gSprites[spriteId];
sub_8092FF0(16, 13, &sprite->pos1.x, &sprite->pos1.y); GetMapCoordsFromSpritePos(16, 13, &sprite->pos1.x, &sprite->pos1.y);
sprite->coordOffsetEnabled = TRUE; sprite->coordOffsetEnabled = TRUE;
sprite->pos1.x += 16; sprite->pos1.x += 16;
sprite->pos1.y += 2; sprite->pos1.y += 2;
+3 -3
View File
@@ -54,7 +54,7 @@ static void StartSweetScentFieldEffect(void)
PlaySE(SE_M_SWEET_SCENT); PlaySE(SE_M_SWEET_SCENT);
CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100); CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100);
CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100); CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100);
BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarSpriteId()].oam.paletteNum + 16)), 4, 0, 8, RGB_RED);
taskId = CreateTask(TrySweetScentEncounter, 0); taskId = CreateTask(TrySweetScentEncounter, 0);
gTasks[taskId].data[0] = 0; gTasks[taskId].data[0] = 0;
FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT); FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT);
@@ -76,7 +76,7 @@ static void TrySweetScentEncounter(u8 taskId)
else else
{ {
gTasks[taskId].func = FailSweetScentEncounter; gTasks[taskId].func = FailSweetScentEncounter;
BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 8, 0, RGB_RED); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarSpriteId()].oam.paletteNum + 16)), 4, 8, 0, RGB_RED);
TryStartMirageTowerPulseBlendEffect(); TryStartMirageTowerPulseBlendEffect();
} }
} }
@@ -92,7 +92,7 @@ static void FailSweetScentEncounter(u8 taskId)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
CpuFastSet(gPaletteDecompressionBuffer, gPlttBufferUnfaded, 0x100); CpuFastSet(gPaletteDecompressionBuffer, gPlttBufferUnfaded, 0x100);
sub_80AC3E4(); SetWeatherPalStateIdle();
ScriptContext1_SetupScript(EventScript_FailSweetScent); ScriptContext1_SetupScript(EventScript_FailSweetScent);
DestroyTask(taskId); DestroyTask(taskId);
} }

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