Merge pull request #2308 from AsparagusEduardo/RHH/pr/pretmerge_20220909

Friday merge, what a concept (weekly pret merge 2022/09/09)
This commit is contained in:
ghoulslash authored and GitHub committed 2022-09-16 11:03:01 -04:00
commit 62815d9763
125 files changed
+3887 -13927

No files matched your search

+3 -3
View File
@@ -106,7 +106,7 @@ cd /mnt/c/Users/<user>/Desktop/decomps
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details>
If this works, then proceed to [Installation](#installation).
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2).
@@ -216,7 +216,7 @@ Note that the directory **must exist** in Windows. If you want to store pokeemer
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details>
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
## macOS
@@ -539,7 +539,7 @@ devkitARM is now installed.
devkitARM is now installed.
### Installing devkitARM on Arch Linux
1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages.
2. Install `gba-dev`: run the following command as root.
+2 -2
View File
@@ -254,7 +254,7 @@ tidynonmodern:
tidymodern:
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
rm -rf $(MODERN_OBJ_DIR_NAME)
ifneq ($(MODERN),0)
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
endif
@@ -412,7 +412,7 @@ LD_SCRIPT := ld_script.txt
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
else
LD_SCRIPT := ld_script_modern.txt
LD_SCRIPT_DEPS :=
LD_SCRIPT_DEPS :=
endif
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
+40 -40
View File
@@ -558,151 +558,151 @@
.2byte \param1
.4byte \param2
.endm
.macro get_ally_chosen_move
.byte 0x63
.endm
.macro if_has_no_attacking_moves battler:req, param1:req
.byte 0x64
.byte \battler
.4byte \param1
.endm
.macro get_hazards_count battler:req, effect:req
.byte 0x65
.byte \battler
.2byte \effect
.endm
.macro if_doesnt_hold_berry battler:req, ptr:req
.byte 0x66
.byte \battler
.4byte \ptr
.endm
.macro if_share_type battler1:req, battler2:req, ptr:req
.byte 0x67
.byte \battler1
.byte \battler2
.4byte \ptr
.endm
.macro if_cant_use_last_resort battler:req, ptr:req
.byte 0x68
.byte \battler
.4byte \ptr
.endm
.macro if_has_move_with_split battler:req, split:req, ptr:req
.byte 0x69
.byte \battler
.byte \split
.4byte \ptr
.endm
.macro if_has_no_move_with_split battler:req, split:req, ptr:req
.byte 0x6A
.byte \battler
.byte \split
.4byte \ptr
.endm
.macro if_physical_moves_unusable attacker:req, target:req, ptr:req
.byte 0x6B
.byte \attacker
.byte \target
.4byte \ptr
.endm
.macro if_ai_can_go_down ptr:req
.byte 0x6C
.4byte \ptr
.endm
.macro if_has_move_with_type battler:req, type:req, ptr:req
.byte 0x6D
.byte \battler
.byte \type
.4byte \ptr
.endm
.macro if_no_move_used battler:req, ptr:req
.byte 0x6E
.byte \battler
.4byte \ptr
.endm
.macro if_has_move_with_flag battler:req, flag:req, ptr:req
.byte 0x6F
.byte \battler
.4byte \flag
.4byte \ptr
.endm
.macro if_battler_absent battler:req, ptr:req
.byte 0x70
.byte \battler
.4byte \ptr
.endm
.macro if_grounded battler:req, ptr:req
.byte 0x71
.byte \battler
.4byte \ptr
.endm
.macro get_best_dmg_hp_percent
.byte 0x72
.endm
.macro get_curr_dmg_hp_percent
.byte 0x73
.endm
.macro get_move_split_from_result
.byte 0x74
.endm
.macro get_considered_move_split
.byte 0x75
.endm
.macro get_considered_move_target
.byte 0x76
.endm
.macro compare_speeds battler1:req, battler2:req
.byte 0x77
.byte \battler1
.byte \battler2
.endm
.macro is_wakeup_turn battler:req
.byte 0x78
.byte \battler
.endm
.macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req
.byte 0x79
.byte \battler
.byte \value
.4byte \ptr
.endm
@ useful script macros
.macro if_has_physical_move battler:req, ptr:req
if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr
.endm
.macro if_has_no_physical_move battler:req, ptr:req
if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr
.endm
.macro if_has_special_move battler:req, ptr:req
if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr
.endm
.macro if_has_no_special_move battler:req, ptr:req
if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr
.endm
@@ -714,33 +714,33 @@
.macro get_curr_move_type
get_type AI_TYPE_MOVE
.endm
.macro get_user_type1
get_type AI_TYPE1_USER
.endm
.macro get_user_type2
get_type AI_TYPE2_USER
.endm
.macro get_target_type1
get_type AI_TYPE1_TARGET
.endm
.macro get_target_type2
get_type AI_TYPE2_TARGET
.endm
.macro if_ability battler:req, ability:req, ptr:req
check_ability \battler, \ability
if_equal 1, \ptr
.endm
.macro if_no_ability battler:req, ability:req, ptr:req
check_ability \battler, \ability
if_equal 0, \ptr
.endm
.macro if_type battler:req, type:req, ptr:req
is_of_type \battler, \type
if_equal 1, \ptr
@@ -750,20 +750,20 @@
is_of_type \battler, \type
if_equal 0, \ptr
.endm
.macro if_target_faster ptr:req
if_user_goes 1, \ptr
.endm
.macro if_user_faster ptr:req
if_user_goes 0, \ptr
.endm
.macro if_double_battle ptr:req
is_double_battle
if_equal 1, \ptr
.endm
.macro if_not_double_battle ptr:req
is_double_battle
if_equal 0, \ptr
@@ -772,11 +772,11 @@
.macro if_any_move_disabled battler:req, ptr:req
if_any_move_disabled_or_encored \battler, 0, \ptr
.endm
.macro if_any_move_encored battler:req, ptr:req
if_any_move_disabled_or_encored \battler, 1, \ptr
.endm
.macro call_if_always_hit ptr:req
get_move_accuracy
call_if_eq 0, \ptr
+6 -6
View File
@@ -270,20 +270,20 @@
.macro stopsound
.byte 0x2f
.endm
@ useful macros
.macro jumpreteq value:req, ptr:req
jumpargeq ARG_RET_ID, \value, \ptr
.endm
.macro jumprettrue ptr:req
jumpreteq TRUE, \ptr
.endm
.macro jumpretfalse ptr:req
jumpreteq FALSE, \ptr
.endm
.macro jumpifdoublebattle ptr:req
createvisualtask AnimTask_IsDoubleBattle, 0
jumprettrue \ptr
@@ -305,7 +305,7 @@
.hword \launchtemplatearg7
.hword \launchtemplatearg8
.endm
.macro launchtask launchtaskPtr launchtaskPriority launchtaskArgsNo launchtaskarg0 launchtaskarg1 launchtaskarg2 launchtaskarg3 launchtaskarg4 launchtaskarg5 launchtaskarg6 launchtaskarg7 launchtaskarg8
.byte 0x3
.word \launchtaskPtr
@@ -321,7 +321,7 @@
.hword \launchtaskarg7
.hword \launchtaskarg8
.endm
.macro setblends setblends_value
.byte 0xC
.hword \setblends_value
+10 -10
View File
@@ -89,15 +89,15 @@
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA
special CallBattleTowerFunc
.endm
@Custom multi-battle commands
.macro choose_mons
fadescreen 1
special ChooseHalfPartyForBattle @ choose 3 mons for battle
waitstate
.endm
.macro multi_do type:req, partnerId:req, partnerPicId:req
special ReducePlayerPartyToSelectedMons
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA
@@ -113,26 +113,26 @@
special CallFrontierUtilFunc
special LoadPlayerParty
.endm
.macro multi_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
multi_do MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
.endm
.macro multi_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
multi_do MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
.endm
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
.macro multi_wild partnerId:req, partnerPicId:req
special SavePlayerParty
multi_do MULTI_BATTLE_2_VS_WILD, \partnerId, \partnerPicId
.endm
.macro multi_do_fixed type:req, partnerId:req, partnerPicId:req
setvar VAR_0x8004, SPECIAL_BATTLE_MULTI
setvar VAR_0x8005, \type
@@ -144,20 +144,20 @@
special CallFrontierUtilFunc
special LoadPlayerParty
.endm
.macro multi_fixed_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req, partnerPicId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
trainerbattle TRAINER_BATTLE_SET_TRAINER_B, \trainer2Id, 0, NULL, \trainer2LoseText @ set second trainer mons
multi_do_fixed MULTI_BATTLE_2_VS_2, \partnerId, \partnerPicId
.endm
.macro multi_fixed_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req, partnerPicId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINER_A, \trainer1Id, 0, NULL, \trainer1LoseText @ set first trainer mons
multi_do_fixed MULTI_BATTLE_2_VS_1, \partnerId, \partnerPicId
.endm
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
.macro multi_fixed_wild partnerId:req, partnerPicId:req
special SavePlayerParty
+1 -1
View File
@@ -1788,7 +1788,7 @@
.macro setzeffect
various BS_ATTACKER, VARIOUS_SET_Z_EFFECT
.endm
.macro consumeberry battler:req, restoreItem=FALSE
various \battler, VARIOUS_CONSUME_BERRY
.byte \restoreItem
+5 -5
View File
@@ -276,7 +276,7 @@
.2byte SPECIAL_\function
.endm
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
@ Blocks script execution until a command or C code manually unblocks it. Generally used with specific
@ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue.
.macro waitstate
.byte 0x27
@@ -985,7 +985,7 @@
.endm
@ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
.macro givemon species:req, level:req, item=ITEM_NONE
.byte 0x79
.2byte \species
@@ -997,7 +997,7 @@
.endm
@ Gives the player an Egg of the specified species.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
.macro giveegg species:req
.byte 0x7a
.2byte \species
@@ -1415,7 +1415,7 @@
.2byte \out
.endm
@ Gives 'count' coins to the player, up to a total of MAX_COINS.
@ Gives 'count' coins to the player, up to a total of MAX_COINS.
@ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE.
.macro addcoins count:req
.byte 0xb4
@@ -1893,7 +1893,7 @@
@ Gives 'amount' of the specified 'item' to the player and prints a message with fanfare.
@ If the player doesn't have space for all the items then as many are added as possible, the
@ message indicates there is no room, and VAR_RESULT is set to FALSE.
@ message indicates there is no room, and VAR_RESULT is set to FALSE.
@ Otherwise VAR_RESULT is set to TRUE, and the message indicates they have received the item(s).
.macro giveitem item:req, amount=1
setorcopyvar VAR_0x8000, \item
+2 -2
View File
@@ -150,13 +150,13 @@
.4byte \sample
.byte 0xff, 0, 0xff, 0
.endm
.macro cry_uncomp sample @ not compressed
.byte 0x0, 60, 0, 0
.4byte \sample
.byte 0xff, 0, 0xff, 0
.endm
.macro cry_reverse_uncomp sample @ not compressed
.byte 0x10, 60, 0, 0
.4byte \sample
+9 -9
View File
@@ -14196,7 +14196,7 @@ TerrainPulseElectric:
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(27, 27, 0)
goto TerrainPulseEnd
TerrainPulseGrass:
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(11, 26, 11)
waitforvisualfinish
@@ -14218,7 +14218,7 @@ TerrainPulseFairy:
createvisualtask AnimTask_SwayMon, 5, 0, 4, 51200, 24, ANIM_TARGET
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 12, RGB(31, 24, 31)
goto TerrainPulseEnd
TerrainPulsePsychic:
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_DRAGON_PULSE, 0, 12, 12, RGB(27, 0, 13)
waitforvisualfinish
@@ -24740,7 +24740,7 @@ General_RestoreBg:
restorebg
waitbgfadein
end
end
General_ZMoveActivate:
@@ -25247,8 +25247,8 @@ FinishSupersonicSkystrike:
call UnsetPsychicBg
waitforvisualfinish
end
Move_ACID_DOWNPOUR:
loadspritegfx ANIM_TAG_BLUE_ORB @ reversal
loadspritegfx ANIM_TAG_POISON_JAB @ poison jab
@@ -25935,7 +25935,7 @@ NeverendingNightmareGeyser:
createsprite gNeverEndingNightmareGeyserHexSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0xfff0, 0x10
return
Move_CORKSCREW_CRASH::
loadspritegfx ANIM_TAG_SPIKES @metal bits
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT @charge
@@ -26653,7 +26653,7 @@ HavocSpearSparkTarget:
@ launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x20 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
launchtemplate gSparkElectricityFlashingSpriteTemplate 0x4 0x8 0x0 0x0 0x10 0xc SOUND_PAN_ATTACKER 0x14 0x2 0x8000
return
Move_SHATTERED_PSYCHE::
loadspritegfx ANIM_TAG_IMPACT @hit
@@ -29111,7 +29111,7 @@ OceanicOperettaExplosion:
launchtemplate gOceanOperaExplosionSpriteTemplate 0x33 0x4 0x10 0x10 ANIM_TARGET 0x1
delay 0x6
return
Move_SPLINTERED_STORMSHARDS::
loadspritegfx ANIM_TAG_ROCKS @rock
@@ -29372,7 +29372,7 @@ SplinteredStormshardsFinishFadeReturn:
return
Move_LETS_SNUGGLE_FOREVER::
Move_LETS_SNUGGLE_FOREVER::
loadspritegfx ANIM_TAG_MAGENTA_HEART @sharm
loadspritegfx ANIM_TAG_MUSIC_NOTES @music note
loadspritegfx ANIM_TAG_SMALL_BUBBLES @fake tears
+5 -5
View File
@@ -511,7 +511,7 @@ BattleScript_BeakBlastSetUp::
setbeakblast BS_ATTACKER
printstring STRINGID_EMPTYSTRING3
waitmessage 1
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL
printstring STRINGID_HEATUPBEAK
waitmessage B_WAIT_TIME_LONG
end2
@@ -601,7 +601,7 @@ BattleScript_ScaleShotEnd::
moveendcase MOVEEND_SYNCHRONIZE_TARGET
moveendfrom MOVEEND_STATUS_IMMUNITY_ABILITIES
end
BattleScript_EffectSkyDrop:
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SkyDropTurn2
attackcanceler
@@ -5648,7 +5648,7 @@ BattleScript_EffectRolePlay::
pause 20
destroyabilitypopup
pause 40
.endif
.endif
printstring STRINGID_PKMNCOPIEDFOE
waitmessage B_WAIT_TIME_LONG
switchinabilities BS_ATTACKER
@@ -9625,7 +9625,7 @@ BattleScript_StatUpZMove::
waitmessage B_WAIT_TIME_LONG
BattleScript_StatUpZMoveEnd:
return
BattleScript_HealReplacementZMove::
playanimation BS_SCRIPTING B_ANIM_WISH_HEAL 0x0
printfromtable gZEffectStringIds
@@ -9836,7 +9836,7 @@ BattleScript_NeutralizingGasExitsLoop:
jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic.
restoretarget
return
BattleScript_MagicianActivates::
call BattleScript_AbilityPopUp
call BattleScript_ItemSteal
+1 -1
View File
@@ -56,7 +56,7 @@
"x": 14,
"y": 9,
"elevation": 3,
"var": "VAR_SKY_PILLAR_RAQUAZA_CRY_DONE",
"var": "VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE",
"var_value": "0",
"script": "SkyPillar_Top_EventScript_AwakenRayquaza"
}
+1 -1
View File
@@ -128,7 +128,7 @@ SkyPillar_Top_EventScript_AwakenRayquaza::
special RemoveCameraObject
setvar VAR_SOOTOPOLIS_CITY_STATE, 5
setvar VAR_SKY_PILLAR_STATE, 1
setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1
setvar VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE, 1
releaseall
end
+1 -1
View File
@@ -38,7 +38,7 @@ EventScript_ResetAllBerries::
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
@ Route 112
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
+1 -1
View File
@@ -22,7 +22,7 @@ Roulette_EventScript_Play::
special PlayRoulette
waitstate
end
Roulette_Text_PlayMinimumWagerIsX::
.string "The minimum wager at this table\n"
.string "is {STR_VAR_1}. Do you want to play?$"
+2 -2
View File
@@ -17,8 +17,8 @@
cd /mnt/c/Users/<user>/Downloads
```
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM.
+2 -2
View File
@@ -73,7 +73,7 @@ static const u8 sDarkDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow_alt
static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 };
static const u8 sWindowVerticalScrollSpeeds[] = {
static const u8 sWindowVerticalScrollSpeeds[] = {
[OPTIONS_TEXT_SPEED_SLOW] = 1,
[OPTIONS_TEXT_SPEED_MID] = 2,
[OPTIONS_TEXT_SPEED_FAST] = 4,
@@ -299,7 +299,7 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi
else
{
sTempTextPrinter.textSpeed = 0;
// Render all text (up to limit) at once
for (j = 0; j < 0x400; ++j)
{
-1
View File
@@ -148,7 +148,6 @@ void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
void DecompressGlyphTile(const void *src_, void *dest_);
void CopyGlyphToWindow(struct TextPrinter *x);
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
u8 GetMenuCursorDimensionByFont(u8, u8);
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
+10 -10
View File
@@ -112,35 +112,35 @@ $(TILESETGFXDIR)/secondary/sootopolis/tiles.4bpp: %.4bpp: %.png
SOOTOPOLISANIMDIR := $(TILESETGFXDIR)/secondary/sootopolis/anim
$(SOOTOPOLISANIMDIR)/stormy_water/0.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/0_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/0_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/0_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/1.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/1_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/1_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/1_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/2.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/2_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/2_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/2_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/3.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/3_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/3_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/3_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/4.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/4_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/4_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/4_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/5.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/5_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/5_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/5_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/6.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/6_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/6_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/6_groudon.4bpp
@cat $^ >$@
$(SOOTOPOLISANIMDIR)/stormy_water/7.4bpp: $(SOOTOPOLISANIMDIR)/stormy_water/7_kyogre.4bpp \
$(SOOTOPOLISANIMDIR)/stormy_water/7_groudon.4bpp
$(SOOTOPOLISANIMDIR)/stormy_water/7_groudon.4bpp
@cat $^ >$@
$(TILESETGFXDIR)/secondary/battle_frontier_outside_west/tiles.4bpp: %.4bpp: %.png
@@ -690,7 +690,7 @@ $(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png
$(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 8 -Wnum_tiles
$(BATTRANSGFXDIR)/frontier_logo_center.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 43 -Wnum_tiles
@@ -718,7 +718,7 @@ $(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png
$(PKNAVGFXDIR)/device_outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53 -Wnum_tiles
$(PKNAVGFXDIR)/match_call/ui.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 13 -Wnum_tiles
+1 -1
View File
@@ -460,7 +460,7 @@
#define BG_WATER_2 41
#define BG_POISON 42
#define BG_AEROBLAST 43
#define BG_HURRICANE 44
#define BG_HURRICANE 44
#define BG_ELECTRIC_TERRAIN 45
#define BG_GRASSY_TERRAIN 46
#define BG_MISTY_TERRAIN 47
+1 -1
View File
@@ -379,7 +379,7 @@
#define STRINGID_PKMNBOXLANETTESPCFULL 378
#define STRINGID_TRAINER1WINTEXT 379
#define STRINGID_TRAINER2WINTEXT 380
#define STRINGID_ENDUREDSTURDY 381
#define STRINGID_POWERHERB 382
#define STRINGID_HURTBYITEM 383
-3
View File
@@ -325,9 +325,6 @@
#define FORM_BATTLE_BEGIN 5
#define FORM_BATTLE_END 6
#define NUM_MALE_LINK_FACILITY_CLASSES 8
#define NUM_FEMALE_LINK_FACILITY_CLASSES 8
#define MON_PIC_WIDTH 64
#define MON_PIC_HEIGHT 64
#define MON_PIC_SIZE (MON_PIC_WIDTH * MON_PIC_HEIGHT / 2)
+4
View File
@@ -13,6 +13,10 @@
#define UNION_ROOM_MAX_LEVEL 30
// The number of possible trainer classes for a trainer of a given gender in the Union Room.
// This value is necessarily a power of 2 because of the way it's treated in GetUnionRoomTrainerPic / GetUnionRoomTrainerClass
#define NUM_UNION_ROOM_CLASSES (1 << 3) // 8
#define ACTIVITY_NONE 0
#define ACTIVITY_BATTLE_SINGLE 1
#define ACTIVITY_BATTLE_DOUBLE 2
+225 -225
View File
@@ -46,235 +46,235 @@
#define VAR_OBJ_GFX_ID_F 0x401F
// general purpose vars
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
#define VAR_ICE_STEP_COUNT 0x4022
#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
#define VAR_MIRAGE_RND_H 0x4024
#define VAR_MIRAGE_RND_L 0x4025
#define VAR_SECRET_BASE_MAP 0x4026
#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
#define VAR_FRIENDSHIP_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
#define VAR_WONDER_NEWS_COUNTER 0x402E
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
#define VAR_ICE_STEP_COUNT 0x4022
#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
#define VAR_MIRAGE_RND_H 0x4024
#define VAR_MIRAGE_RND_L 0x4025
#define VAR_SECRET_BASE_MAP 0x4026
#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
#define VAR_FRIENDSHIP_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
#define VAR_WONDER_NEWS_COUNTER 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030
#define VAR_FRONTIER_GAMBLER_SET_CHALLENGE 0x4031
#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
#define VAR_FRONTIER_GAMBLER_STATE 0x4033
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030
#define VAR_FRONTIER_GAMBLER_SET_CHALLENGE 0x4031
#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
#define VAR_FRONTIER_GAMBLER_STATE 0x4033
#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
#define VAR_DEOXYS_ROCK_LEVEL 0x4035
#define VAR_PC_BOX_TO_SEND_MON 0x4036
#define VAR_ABNORMAL_WEATHER_LOCATION 0x4037
#define VAR_ABNORMAL_WEATHER_STEP_COUNTER 0x4038
#define VAR_SHOULD_END_ABNORMAL_WEATHER 0x4039
#define VAR_FARAWAY_ISLAND_STEP_COUNTER 0x403A
#define VAR_REGICE_STEPS_1 0x403B
#define VAR_REGICE_STEPS_2 0x403C
#define VAR_REGICE_STEPS_3 0x403D
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_DISTRIBUTE_EON_TICKET 0x403F // This var is read and written, but is always zero. The only way to obtain the Eon Ticket in Emerald is via Record Mixing
#define VAR_DAYS 0x4040
#define VAR_FANCLUB_FAN_COUNTER 0x4041
#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_TRICK_HOUSE_LEVEL 0x4044
#define VAR_POKELOT_PRIZE_ITEM 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SEEDOT_SIZE_RECORD 0x4047
#define VAR_ASH_GATHER_COUNT 0x4048
#define VAR_BIRCH_STATE 0x4049
#define VAR_CRUISE_STEP_COUNT 0x404A
#define VAR_POKELOT_RND1 0x404B
#define VAR_POKELOT_RND2 0x404C
#define VAR_POKELOT_PRIZE_PLACE 0x404D
#define VAR_UNUSED_0x404E 0x404E // Unused Var
#define VAR_LOTAD_SIZE_RECORD 0x404F
#define VAR_LITTLEROOT_TOWN_STATE 0x4050
#define VAR_OLDALE_TOWN_STATE 0x4051
#define VAR_DEWFORD_TOWN_STATE 0x4052 // Unused Var
#define VAR_LAVARIDGE_TOWN_STATE 0x4053
#define VAR_CURRENT_SECRET_BASE 0x4054 // was probably allocated for VAR_FALLARBOR_TOWN_STATE at one point
#define VAR_VERDANTURF_TOWN_STATE 0x4055 // Unused Var
#define VAR_PACIFIDLOG_TOWN_STATE 0x4056 // Unused Var
#define VAR_PETALBURG_CITY_STATE 0x4057
#define VAR_SLATEPORT_CITY_STATE 0x4058
#define VAR_MAUVILLE_CITY_STATE 0x4059 // Unused Var
#define VAR_RUSTBORO_CITY_STATE 0x405A
#define VAR_FORTREE_CITY_STATE 0x405B // Unused Var
#define VAR_LILYCOVE_CITY_STATE 0x405C // Unused Var
#define VAR_MOSSDEEP_CITY_STATE 0x405D
#define VAR_SOOTOPOLIS_CITY_STATE 0x405E
#define VAR_EVER_GRANDE_CITY_STATE 0x405F // Unused Var
#define VAR_ROUTE101_STATE 0x4060
#define VAR_ROUTE102_STATE 0x4061 // Unused Var
#define VAR_ROUTE103_STATE 0x4062 // Unused Var
#define VAR_ROUTE104_STATE 0x4063
#define VAR_ROUTE105_STATE 0x4064 // Unused Var
#define VAR_ROUTE106_STATE 0x4065 // Unused Var
#define VAR_ROUTE107_STATE 0x4066 // Unused Var
#define VAR_ROUTE108_STATE 0x4067 // Unused Var
#define VAR_ROUTE109_STATE 0x4068 // Unused Var
#define VAR_ROUTE110_STATE 0x4069
#define VAR_ROUTE111_STATE 0x406A // Unused Var
#define VAR_ROUTE112_STATE 0x406B // Unused Var
#define VAR_ROUTE113_STATE 0x406C // Unused Var
#define VAR_ROUTE114_STATE 0x406D // Unused Var
#define VAR_ROUTE115_STATE 0x406E // Unused Var
#define VAR_ROUTE116_STATE 0x406F
#define VAR_ROUTE117_STATE 0x4070 // Unused Var
#define VAR_ROUTE118_STATE 0x4071
#define VAR_ROUTE119_STATE 0x4072
#define VAR_ROUTE120_STATE 0x4073 // Unused Var
#define VAR_ROUTE121_STATE 0x4074
#define VAR_ROUTE122_STATE 0x4075 // Unused Var
#define VAR_ROUTE123_STATE 0x4076 // Unused Var
#define VAR_ROUTE124_STATE 0x4077 // Unused Var
#define VAR_ROUTE125_STATE 0x4078 // Unused Var
#define VAR_ROUTE126_STATE 0x4079 // Unused Var
#define VAR_ROUTE127_STATE 0x407A // Unused Var
#define VAR_ROUTE128_STATE 0x407B
#define VAR_ROUTE129_STATE 0x407C // Unused Var
#define VAR_ROUTE130_STATE 0x407D // Unused Var
#define VAR_ROUTE131_STATE 0x407E // Unused Var
#define VAR_ROUTE132_STATE 0x407F // Unused Var
#define VAR_ROUTE133_STATE 0x4080 // Unused Var
#define VAR_ROUTE134_STATE 0x4081 // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_MAY 0x4082
#define VAR_UNUSED_0x4083 0x4083 // Unused Var
#define VAR_BIRCH_LAB_STATE 0x4084
#define VAR_PETALBURG_GYM_STATE 0x4085 // 0-1: Wally tutorial, 2-6: 0-4 badges, 7: Defeated Norman, 8: Rematch Norman
#define VAR_CONTEST_HALL_STATE 0x4086
#define VAR_CABLE_CLUB_STATE 0x4087
#define VAR_CONTEST_TYPE 0x4088
#define VAR_SECRET_BASE_INITIALIZED 0x4089
#define VAR_CONTEST_PRIZE_PICKUP 0x408A
#define VAR_UNUSED_0x408B 0x408B // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_BRENDAN 0x408C
#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
#define VAR_BOARD_BRINEY_BOAT_STATE 0x408E
#define VAR_DEVON_CORP_3F_STATE 0x408F
#define VAR_BRINEY_HOUSE_STATE 0x4090
#define VAR_UNUSED_0x4091 0x4091 // Unused Var
#define VAR_LITTLEROOT_INTRO_STATE 0x4092
#define VAR_MAUVILLE_GYM_STATE 0x4093
#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
#define VAR_BRINEY_LOCATION 0x4096
#define VAR_INIT_SECRET_BASE 0x4097
#define VAR_PETALBURG_WOODS_STATE 0x4098
#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
#define VAR_RUSTURF_TUNNEL_STATE 0x409A
#define VAR_UNUSED_0x409B 0x409B // Unused Var
#define VAR_ELITE_4_STATE 0x409C
#define VAR_UNUSED_0x409D 0x409D // Unused Var
#define VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE 0x409E
#define VAR_MOSSDEEP_SPACE_CENTER_STATE 0x409F
#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
#define VAR_UNUSED_0x40A1 0x40A1 // Unused var
#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
#define VAR_CABLE_CAR_STATION_STATE 0x40A3
#define VAR_SAFARI_ZONE_STATE 0x40A4 // 0: In or out of SZ, 1: Player exiting SZ, 2: Player entering SZ
#define VAR_TRICK_HOUSE_BEING_WATCHED_STATE 0x40A5
#define VAR_TRICK_HOUSE_FOUND_TRICK_MASTER 0x40A6
#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A7
#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var
#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB
#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC
#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD
#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE
#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF
#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
#define VAR_SS_TIDAL_STATE 0x40B4
#define VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR 0x40B5
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 // Leftover from RS, never set
#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var
#define VAR_MT_PYRE_STATE 0x40B9
#define VAR_NEW_MAUVILLE_STATE 0x40BA
#define VAR_UNUSED_0x40BB 0x40BB // Unused Var
#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC
#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD
#define VAR_GLASS_WORKSHOP_STATE 0x40BE
#define VAR_METEOR_FALLS_STATE 0x40BF
#define VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE 0x40C0
#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1
#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
#define VAR_VICTORY_ROAD_1F_STATE 0x40C3
#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
#define VAR_STEVENS_HOUSE_STATE 0x40C6
#define VAR_OLDALE_RIVAL_STATE 0x40C7
#define VAR_JAGGED_PASS_STATE 0x40C8
#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9
#define VAR_SKY_PILLAR_STATE 0x40CA
#define VAR_MIRAGE_TOWER_STATE 0x40CB
#define VAR_FOSSIL_MANIAC_STATE 0x40CC
#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD
#define VAR_FRONTIER_BATTLE_MODE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag.
#define VAR_SCOTT_STATE 0x40D1
#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2
#define VAR_DEX_UPGRADE_JOHTO_STARTER_STATE 0x40D3
#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL
#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios
#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6
#define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7
#define VAR_SOOTOPOLIS_WALLACE_STATE 0x40D8
#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
#define VAR_DEOXYS_ROCK_LEVEL 0x4035
#define VAR_PC_BOX_TO_SEND_MON 0x4036
#define VAR_ABNORMAL_WEATHER_LOCATION 0x4037
#define VAR_ABNORMAL_WEATHER_STEP_COUNTER 0x4038
#define VAR_SHOULD_END_ABNORMAL_WEATHER 0x4039
#define VAR_FARAWAY_ISLAND_STEP_COUNTER 0x403A
#define VAR_REGICE_STEPS_1 0x403B
#define VAR_REGICE_STEPS_2 0x403C
#define VAR_REGICE_STEPS_3 0x403D
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_DISTRIBUTE_EON_TICKET 0x403F // This var is read and written, but is always zero. The only way to obtain the Eon Ticket in Emerald is via Record Mixing
#define VAR_DAYS 0x4040
#define VAR_FANCLUB_FAN_COUNTER 0x4041
#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_TRICK_HOUSE_LEVEL 0x4044
#define VAR_POKELOT_PRIZE_ITEM 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SEEDOT_SIZE_RECORD 0x4047
#define VAR_ASH_GATHER_COUNT 0x4048
#define VAR_BIRCH_STATE 0x4049
#define VAR_CRUISE_STEP_COUNT 0x404A
#define VAR_POKELOT_RND1 0x404B
#define VAR_POKELOT_RND2 0x404C
#define VAR_POKELOT_PRIZE_PLACE 0x404D
#define VAR_UNUSED_0x404E 0x404E // Unused Var
#define VAR_LOTAD_SIZE_RECORD 0x404F
#define VAR_LITTLEROOT_TOWN_STATE 0x4050
#define VAR_OLDALE_TOWN_STATE 0x4051
#define VAR_DEWFORD_TOWN_STATE 0x4052 // Unused Var
#define VAR_LAVARIDGE_TOWN_STATE 0x4053
#define VAR_CURRENT_SECRET_BASE 0x4054 // was probably allocated for VAR_FALLARBOR_TOWN_STATE at one point
#define VAR_VERDANTURF_TOWN_STATE 0x4055 // Unused Var
#define VAR_PACIFIDLOG_TOWN_STATE 0x4056 // Unused Var
#define VAR_PETALBURG_CITY_STATE 0x4057
#define VAR_SLATEPORT_CITY_STATE 0x4058
#define VAR_MAUVILLE_CITY_STATE 0x4059 // Unused Var
#define VAR_RUSTBORO_CITY_STATE 0x405A
#define VAR_FORTREE_CITY_STATE 0x405B // Unused Var
#define VAR_LILYCOVE_CITY_STATE 0x405C // Unused Var
#define VAR_MOSSDEEP_CITY_STATE 0x405D
#define VAR_SOOTOPOLIS_CITY_STATE 0x405E
#define VAR_EVER_GRANDE_CITY_STATE 0x405F // Unused Var
#define VAR_ROUTE101_STATE 0x4060
#define VAR_ROUTE102_STATE 0x4061 // Unused Var
#define VAR_ROUTE103_STATE 0x4062 // Unused Var
#define VAR_ROUTE104_STATE 0x4063
#define VAR_ROUTE105_STATE 0x4064 // Unused Var
#define VAR_ROUTE106_STATE 0x4065 // Unused Var
#define VAR_ROUTE107_STATE 0x4066 // Unused Var
#define VAR_ROUTE108_STATE 0x4067 // Unused Var
#define VAR_ROUTE109_STATE 0x4068 // Unused Var
#define VAR_ROUTE110_STATE 0x4069
#define VAR_ROUTE111_STATE 0x406A // Unused Var
#define VAR_ROUTE112_STATE 0x406B // Unused Var
#define VAR_ROUTE113_STATE 0x406C // Unused Var
#define VAR_ROUTE114_STATE 0x406D // Unused Var
#define VAR_ROUTE115_STATE 0x406E // Unused Var
#define VAR_ROUTE116_STATE 0x406F
#define VAR_ROUTE117_STATE 0x4070 // Unused Var
#define VAR_ROUTE118_STATE 0x4071
#define VAR_ROUTE119_STATE 0x4072
#define VAR_ROUTE120_STATE 0x4073 // Unused Var
#define VAR_ROUTE121_STATE 0x4074
#define VAR_ROUTE122_STATE 0x4075 // Unused Var
#define VAR_ROUTE123_STATE 0x4076 // Unused Var
#define VAR_ROUTE124_STATE 0x4077 // Unused Var
#define VAR_ROUTE125_STATE 0x4078 // Unused Var
#define VAR_ROUTE126_STATE 0x4079 // Unused Var
#define VAR_ROUTE127_STATE 0x407A // Unused Var
#define VAR_ROUTE128_STATE 0x407B
#define VAR_ROUTE129_STATE 0x407C // Unused Var
#define VAR_ROUTE130_STATE 0x407D // Unused Var
#define VAR_ROUTE131_STATE 0x407E // Unused Var
#define VAR_ROUTE132_STATE 0x407F // Unused Var
#define VAR_ROUTE133_STATE 0x4080 // Unused Var
#define VAR_ROUTE134_STATE 0x4081 // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_MAY 0x4082
#define VAR_UNUSED_0x4083 0x4083 // Unused Var
#define VAR_BIRCH_LAB_STATE 0x4084
#define VAR_PETALBURG_GYM_STATE 0x4085 // 0-1: Wally tutorial, 2-6: 0-4 badges, 7: Defeated Norman, 8: Rematch Norman
#define VAR_CONTEST_HALL_STATE 0x4086
#define VAR_CABLE_CLUB_STATE 0x4087
#define VAR_CONTEST_TYPE 0x4088
#define VAR_SECRET_BASE_INITIALIZED 0x4089
#define VAR_CONTEST_PRIZE_PICKUP 0x408A
#define VAR_UNUSED_0x408B 0x408B // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_BRENDAN 0x408C
#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
#define VAR_BOARD_BRINEY_BOAT_STATE 0x408E
#define VAR_DEVON_CORP_3F_STATE 0x408F
#define VAR_BRINEY_HOUSE_STATE 0x4090
#define VAR_UNUSED_0x4091 0x4091 // Unused Var
#define VAR_LITTLEROOT_INTRO_STATE 0x4092
#define VAR_MAUVILLE_GYM_STATE 0x4093
#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
#define VAR_BRINEY_LOCATION 0x4096
#define VAR_INIT_SECRET_BASE 0x4097
#define VAR_PETALBURG_WOODS_STATE 0x4098
#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
#define VAR_RUSTURF_TUNNEL_STATE 0x409A
#define VAR_UNUSED_0x409B 0x409B // Unused Var
#define VAR_ELITE_4_STATE 0x409C
#define VAR_UNUSED_0x409D 0x409D // Unused Var
#define VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE 0x409E
#define VAR_MOSSDEEP_SPACE_CENTER_STATE 0x409F
#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
#define VAR_UNUSED_0x40A1 0x40A1 // Unused var
#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
#define VAR_CABLE_CAR_STATION_STATE 0x40A3
#define VAR_SAFARI_ZONE_STATE 0x40A4 // 0: In or out of SZ, 1: Player exiting SZ, 2: Player entering SZ
#define VAR_TRICK_HOUSE_BEING_WATCHED_STATE 0x40A5
#define VAR_TRICK_HOUSE_FOUND_TRICK_MASTER 0x40A6
#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A7
#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var
#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB
#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC
#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD
#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE
#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF
#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
#define VAR_SS_TIDAL_STATE 0x40B4
#define VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR 0x40B5
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 // Leftover from RS, never set
#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var
#define VAR_MT_PYRE_STATE 0x40B9
#define VAR_NEW_MAUVILLE_STATE 0x40BA
#define VAR_UNUSED_0x40BB 0x40BB // Unused Var
#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC
#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD
#define VAR_GLASS_WORKSHOP_STATE 0x40BE
#define VAR_METEOR_FALLS_STATE 0x40BF
#define VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE 0x40C0
#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1
#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
#define VAR_VICTORY_ROAD_1F_STATE 0x40C3
#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
#define VAR_STEVENS_HOUSE_STATE 0x40C6
#define VAR_OLDALE_RIVAL_STATE 0x40C7
#define VAR_JAGGED_PASS_STATE 0x40C8
#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9
#define VAR_SKY_PILLAR_STATE 0x40CA
#define VAR_MIRAGE_TOWER_STATE 0x40CB
#define VAR_FOSSIL_MANIAC_STATE 0x40CC
#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD
#define VAR_FRONTIER_BATTLE_MODE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag.
#define VAR_SCOTT_STATE 0x40D1
#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2
#define VAR_DEX_UPGRADE_JOHTO_STARTER_STATE 0x40D3
#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL
#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios
#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6
#define VAR_SKY_PILLAR_RAYQUAZA_CRY_DONE 0x40D7
#define VAR_SOOTOPOLIS_WALLACE_STATE 0x40D8
#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9
#define VAR_REGISTER_BIRCH_STATE 0x40DA
#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
#define VAR_GIFT_PICHU_SLOT 0x40DD
#define VAR_GIFT_UNUSED_1 0x40DE // Var is written to, but never read
#define VAR_GIFT_UNUSED_2 0x40DF // Var is written to, but never read
#define VAR_GIFT_UNUSED_3 0x40E0 // Var is written to, but never read
#define VAR_GIFT_UNUSED_4 0x40E1 // Var is written to, but never read
#define VAR_GIFT_UNUSED_5 0x40E2 // Var is written to, but never read
#define VAR_GIFT_UNUSED_6 0x40E3 // Var is written to, but never read
#define VAR_GIFT_UNUSED_7 0x40E4 // var is written to, but never read
#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7
#define VAR_DAILY_BLENDER 0x40E8
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_SECRET_BASE_STEP_COUNTER 0x40EC // Used by Secret Base TV programs
#define VAR_SECRET_BASE_LAST_ITEM_USED 0x40ED // Used by Secret Base TV programs
#define VAR_SECRET_BASE_LOW_TV_FLAGS 0x40EE // Used by Secret Base TV programs
#define VAR_SECRET_BASE_HIGH_TV_FLAGS 0x40EF // Used by Secret Base TV programs
#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base.
#define VAR_DAILY_BP 0x40F1
#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2
#define VAR_SCOTT_FORTREE_CALL_STEP_COUNTER 0x40F3
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var
#define VAR_UNUSED_0x40FA 0x40FA // Unused Var
#define VAR_UNUSED_0x40FB 0x40FB // Unused Var
#define VAR_UNUSED_0x40FC 0x40FC // Unused Var
#define VAR_UNUSED_0x40FD 0x40FD // Unused Var
#define VAR_UNUSED_0x40FE 0x40FE // Unused Var
#define VAR_UNUSED_0x40FF 0x40FF // Unused Var
#define VAR_REGISTER_BIRCH_STATE 0x40DA
#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
#define VAR_GIFT_PICHU_SLOT 0x40DD
#define VAR_GIFT_UNUSED_1 0x40DE // Var is written to, but never read
#define VAR_GIFT_UNUSED_2 0x40DF // Var is written to, but never read
#define VAR_GIFT_UNUSED_3 0x40E0 // Var is written to, but never read
#define VAR_GIFT_UNUSED_4 0x40E1 // Var is written to, but never read
#define VAR_GIFT_UNUSED_5 0x40E2 // Var is written to, but never read
#define VAR_GIFT_UNUSED_6 0x40E3 // Var is written to, but never read
#define VAR_GIFT_UNUSED_7 0x40E4 // var is written to, but never read
#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7
#define VAR_DAILY_BLENDER 0x40E8
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_SECRET_BASE_STEP_COUNTER 0x40EC // Used by Secret Base TV programs
#define VAR_SECRET_BASE_LAST_ITEM_USED 0x40ED // Used by Secret Base TV programs
#define VAR_SECRET_BASE_LOW_TV_FLAGS 0x40EE // Used by Secret Base TV programs
#define VAR_SECRET_BASE_HIGH_TV_FLAGS 0x40EF // Used by Secret Base TV programs
#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base.
#define VAR_DAILY_BP 0x40F1
#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2
#define VAR_SCOTT_FORTREE_CALL_STEP_COUNTER 0x40F3
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var
#define VAR_UNUSED_0x40FA 0x40FA // Unused Var
#define VAR_UNUSED_0x40FB 0x40FB // Unused Var
#define VAR_UNUSED_0x40FC 0x40FC // Unused Var
#define VAR_UNUSED_0x40FD 0x40FD // Unused Var
#define VAR_UNUSED_0x40FE 0x40FE // Unused Var
#define VAR_UNUSED_0x40FF 0x40FF // Unused Var
#define VARS_END 0x40FF
#define VARS_COUNT (VARS_END - VARS_START + 1)
#define VARS_END 0x40FF
#define VARS_COUNT (VARS_END - VARS_START + 1)
#define SPECIAL_VARS_START 0x8000
// special vars
+49 -50
View File
@@ -77,55 +77,55 @@ extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[];
extern const u8 *const gBerryTreePaletteSlotTablePointers[];
void ResetObjectEvents(void);
u8 GetMoveDirectionAnimNum(u8);
u8 GetObjectEventIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetObjectEventIdByLocalIdAndMap(u8, u8, u8, u8 *);
u8 GetObjectEventIdByXY(s16, s16);
void SetObjectEventDirection(struct ObjectEvent *, u8);
u8 GetMoveDirectionAnimNum(u8 direction);
u8 GetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId);
bool8 TryGetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId, u8 *objectEventId);
u8 GetObjectEventIdByXY(s16 x, s16 y);
void SetObjectEventDirection(struct ObjectEvent *objectEvent, u8 direction);
u8 GetFirstInactiveObjectEventId(void);
void RemoveObjectEventByLocalIdAndMap(u8, u8, u8);
void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8);
void SpawnObjectEventsOnReturnToField(s16, s16);
void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot);
void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot);
void TryMoveObjectEventToMapCoords(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
void PatchObjectPalette(u16 paletteTag, u8 paletteSlot);
void SpawnObjectEventsOnReturnToField(s16 x, s16 y);
void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *);
u8 GetFaceDirectionAnimNum(u8);
void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16);
void GetMapCoordsFromSpritePos(s16 x, s16 y, s16 *destX, s16 *destY);
u8 GetFaceDirectionAnimNum(u8 direction);
void SetSpritePosToOffsetMapCoords(s16 *x, s16 *y, s16 dx, s16 dy);
void ObjectEventClearHeldMovement(struct ObjectEvent *);
void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
void TrySpawnObjectEvents(s16, s16);
void TrySpawnObjectEvents(s16 cameraX, s16 cameraY);
u8 CreateObjectGraphicsSprite(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 TrySpawnObjectEvent(u8, u8, u8);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *);
void SetSpritePosToMapCoords(s16 mapX, s16 mapY, s16 *destX, s16 *destY);
void CameraObjectReset1(void);
void ObjectEventSetGraphicsId(struct ObjectEvent *, u8 graphicsId);
void ObjectEventTurn(struct ObjectEvent *, u8);
void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
void ObjectEventTurn(struct ObjectEvent *, u8 direction);
void ObjectEventTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 direction);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId);
void SetObjectInvisibility(u8, u8, u8, bool8);
void SetObjectInvisibility(u8 localId, u8 mapNum, u8 mapGroup, bool8 invisible);
void FreeAndReserveObjectSpritePalettes(void);
void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
void ResetObjectSubpriority(u8, u8, u8);
void SetObjectSubpriority(u8, u8, u8, u8);
void AllowObjectAtPosTriggerGroundEffects(s16, s16);
void ResetObjectSubpriority(u8 localId, u8 mapNum, u8 mapGroup);
void SetObjectSubpriority(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority);
void AllowObjectAtPosTriggerGroundEffects(s16 x, s16 y);
void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup);
void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16);
void MoveObjectEventToMapCoords(struct ObjectEvent *, s16, s16);
void TryOverrideObjectEventTemplateCoords(u8, u8, u8);
void ShiftObjectEventCoords(struct ObjectEvent *, s16 x, s16 y);
void MoveObjectEventToMapCoords(struct ObjectEvent *, s16 x, s16 y);
void TryOverrideObjectEventTemplateCoords(u8 localId, u8 mapNum, u8 mapGroup);
void InitObjectEventPalettes(u8 palSlot);
void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *));
u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8);
u8 GetOppositeDirection(u8);
u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8 direction);
u8 GetOppositeDirection(u8 direction);
u8 GetWalkInPlaceFasterMovementAction(u32);
u8 GetWalkInPlaceFastMovementAction(u32);
u8 GetWalkInPlaceNormalMovementAction(u32);
u8 GetWalkInPlaceSlowMovementAction(u32);
u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
u8 GetCollisionAtCoords(struct ObjectEvent *, s16 x, s16 y, u32 dir);
void MoveCoords(u8 direction, s16 *x, s16 *y);
bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation);
@@ -168,22 +168,22 @@ u8 AddCameraObject(u8 linkedSpriteId);
void UpdateObjectEventsForCameraUpdate(s16 x, s16 y);
u8 GetWalkSlowMovementAction(u32);
u8 GetJumpMovementAction(u32);
u8 ElevationToPriority(u8);
u8 ElevationToPriority(u8 elevation);
void ObjectEventUpdateElevation(struct ObjectEvent *objEvent);
void SetObjectSubpriorityByElevation(u8, struct Sprite *, u8);
void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *, u8 subpriority);
void UnfreezeObjectEvent(struct ObjectEvent *);
u8 FindLockedObjectEventIndex(struct ObjectEvent *);
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
void SetAndStartSpriteAnim(struct Sprite *, u8 animNum, u8 animCmdIndex);
bool8 SpriteAnimEnded(struct Sprite *);
void UnfreezeObjectEvents(void);
void FreezeObjectEventsExceptOne(u8 objectEventId);
void FreezeObjectEventsExceptTwo(u8 objectEventId1, u8 objectEventId2);
void FreezeObjectEvents(void);
bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent);
u8 GetMoveDirectionFastAnimNum(u8);
u8 GetMoveDirectionFasterAnimNum(u8);
u8 GetMoveDirectionFastestAnimNum(u8);
u8 GetLedgeJumpDirection(s16, s16, u8);
u8 GetMoveDirectionFastAnimNum(u8 direction);
u8 GetMoveDirectionFasterAnimNum(u8 direction);
u8 GetMoveDirectionFastestAnimNum(u8 direction);
u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction);
void CameraObjectSetFollowedSpriteId(u8 objectId);
u16 GetObjectPaletteTag(u8 palSlot);
void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible);
@@ -192,7 +192,7 @@ s16 GetFigure8YOffset(s16 idx);
void CameraObjectReset2(void);
u8 GetObjectEventBerryTreeId(u8 objectEventId);
void SetBerryTreeJustPicked(u8 mapId, u8 mapNumber, u8 mapGroup);
bool8 IsBerryTreeSparkling(u8, u8, u8);
bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup);
void MovementType_None(struct Sprite *);
void MovementType_LookAround(struct Sprite *);
@@ -250,7 +250,6 @@ void MovementType_RunInPlace(struct Sprite *);
void MovementType_Invisible(struct Sprite *);
void MovementType_WalkSlowlyInPlace(struct Sprite *);
u8 GetSlideMovementAction(u32);
u8 GetJumpInPlaceMovementAction(u32);
u8 GetJumpMovementAction(u32);
u8 GetJump2MovementAction(u32);
u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority);
@@ -262,17 +261,17 @@ u8 MovementType_WanderAround_Step3(struct ObjectEvent *, struct Sprite *);
u8 MovementType_WanderAround_Step4(struct ObjectEvent *, struct Sprite *);
u8 MovementType_WanderAround_Step5(struct ObjectEvent *, struct Sprite *);
u8 MovementType_WanderAround_Step6(struct ObjectEvent *, struct Sprite *);
u8 GetVectorDirection(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_SouthNorth(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_WestEast(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_WestNorth(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_EastNorth(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_WestSouth(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_EastSouth(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_SouthNorthWest(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_SouthNorthEast(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_NorthWestEast(s16, s16, s16, s16);
u8 GetLimitedVectorDirection_SouthWestEast(s16, s16, s16, s16);
u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_WestEast(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_WestNorth(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_EastNorth(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_WestSouth(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_EastSouth(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_SouthNorthWest(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_SouthNorthEast(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_NorthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 GetLimitedVectorDirection_SouthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy);
u8 MovementType_LookAround_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementType_LookAround_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementType_LookAround_Step2(struct ObjectEvent *, struct Sprite *);
+1 -1
View File
@@ -18,7 +18,7 @@ void FieldEffectStop(struct Sprite *sprite, u8 id);
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
void FldEff_TeleportWarpOut(void);
void FieldEffectActiveListRemove(u8 id);
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
void FieldEffectActiveListAdd(u8 id);
void FieldEffectScript_LoadTiles(u8 **script);
void FieldEffectScript_LoadFadedPalette(u8 **script);
+1 -1
View File
@@ -38,7 +38,7 @@ void PlayerFreeze(void);
void StopPlayerAvatar(void);
void SetSpinStartFacingDir(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
void SetPlayerAvatarFieldMove(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void SetPlayerAvatarStateMask(u8 flags);
+1 -1
View File
@@ -47,7 +47,7 @@ void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout);
void CopyPrimaryTilesetToVram(const struct MapLayout *);
void CopySecondaryTilesetToVram(const struct MapLayout *);
struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection);
struct MapConnection *GetConnectionAtCoords(s16 x, s16 y);
struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y);
void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable);
// field_region_map.c
+5 -5
View File
@@ -4,9 +4,9 @@
// Masks/shifts for blocks in the map grid
// Map grid blocks consist of a 10 bit metatile id, a 2 bit collision value, and a 4 bit elevation value
// This is the data stored in each data/layouts/*/map.bin file
#define MAPGRID_METATILE_ID_MASK 0x03FF // Bits 1-10
#define MAPGRID_COLLISION_MASK 0x0C00 // Bits 11-12
#define MAPGRID_ELEVATION_MASK 0xF000 // Bits 13-16
#define MAPGRID_METATILE_ID_MASK 0x03FF // Bits 0-9
#define MAPGRID_COLLISION_MASK 0x0C00 // Bits 10-11
#define MAPGRID_ELEVATION_MASK 0xF000 // Bits 12-15
#define MAPGRID_COLLISION_SHIFT 10
#define MAPGRID_ELEVATION_SHIFT 12
@@ -16,8 +16,8 @@
// Masks/shifts for metatile attributes
// Metatile attributes consist of an 8 bit behavior value, 4 unused bits, and a 4 bit layer type value
// This is the data stored in each data/tilesets/*/*/metatile_attributes.bin file
#define METATILE_ATTR_BEHAVIOR_MASK 0x00FF // Bits 1-8
#define METATILE_ATTR_LAYER_MASK 0xF000 // Bits 13-16
#define METATILE_ATTR_BEHAVIOR_MASK 0x00FF // Bits 0-7
#define METATILE_ATTR_LAYER_MASK 0xF000 // Bits 12-15
#define METATILE_ATTR_LAYER_SHIFT 12
enum {
+1 -1
View File
@@ -881,7 +881,7 @@ struct MysteryGiftSave
struct WonderCardMetadata cardMetadata;
u16 questionnaireWords[NUM_QUESTIONNAIRE_WORDS];
struct WonderNewsMetadata newsMetadata;
u32 trainerIds[2][5]; // Saved ids for 10 trainers, 5 each for battles and trades
u32 trainerIds[2][5]; // Saved ids for 10 trainers, 5 each for battles and trades
}; // 0x36C 0x3598
// For external event data storage. The majority of these may have never been used.
+1 -1
View File
@@ -284,7 +284,7 @@ void SerialCB(void);
bool32 InUnionRoom(void);
void LoadWirelessStatusIndicatorSpriteGfx(void);
bool8 IsLinkTaskFinished(void);
void CreateWirelessStatusIndicatorSprite(u8, u8);
void CreateWirelessStatusIndicatorSprite(u8 x, u8 y);
void SetLinkStandbyCallback(void);
void SetWirelessCommType1(void);
void CheckShouldAdvanceLinkState(void);
+2 -2
View File
@@ -97,7 +97,7 @@ struct RfuGameCompatibilityData
// wireless play (the kind the Pokémon games use) the gname data can be used for
// anything the developers want. This struct is what GF decided to use it for.
// It can be up to 13 bytes in size (RFU_GAME_NAME_LENGTH).
// The player's name is sent separately as the username ("uname"), and does not
// The player's name is sent separately as the username ("uname"), and does not
// use a struct (gHostRfuUsername).
struct __attribute__((packed, aligned(2))) RfuGameData
{
@@ -118,7 +118,7 @@ struct __attribute__((packed, aligned(2))) RfuGameData
// Bits 0-2 are a shortened trainerId
// Bit 3 is the player's gender
// Bits 4-6 are unknown/unused
// Bit 7 is an 'active' flag
// Bit 7 is an 'active' flag
#define PINFO_TID_MASK 0x7
#define PINFO_GENDER_SHIFT 3
#define PINFO_ACTIVE_FLAG (1 << 7)
+9 -9
View File
@@ -10,24 +10,24 @@
* toolchains. If this is not done, the ClearSav functions will end up erasing
* the wrong memory leading to various glitches.
*/
struct SaveBlock2DMA {
struct SaveBlock2ASLR {
struct SaveBlock2 block;
u8 dma[SAVEBLOCK_MOVE_RANGE];
u8 aslr[SAVEBLOCK_MOVE_RANGE];
};
struct SaveBlock1DMA {
struct SaveBlock1ASLR {
struct SaveBlock1 block;
u8 dma[SAVEBLOCK_MOVE_RANGE];
u8 aslr[SAVEBLOCK_MOVE_RANGE];
};
struct PokemonStorageDMA {
struct PokemonStorageASLR {
struct PokemonStorage block;
u8 dma[SAVEBLOCK_MOVE_RANGE];
u8 aslr[SAVEBLOCK_MOVE_RANGE];
};
extern struct SaveBlock1DMA gSaveblock1;
extern struct SaveBlock2DMA gSaveblock2;
extern struct PokemonStorageDMA gPokemonStorage;
extern struct SaveBlock1ASLR gSaveblock1;
extern struct SaveBlock2ASLR gSaveblock2;
extern struct PokemonStorageASLR gPokemonStorage;
extern bool32 gFlashMemoryPresent;
extern struct SaveBlock1 *gSaveBlock1Ptr;
+1 -1
View File
@@ -92,7 +92,7 @@ void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 optionWidth
u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos);
u8 ChangeMenuGridCursorPosition(s8 deltaX, s8 deltaY);
u8 GetStartMenuWindowId(void);
void ListMenuLoadStdPalAt(u8, u8);
void ListMenuLoadStdPalAt(u8 palOffset, u8 palId);
u8 Menu_MoveCursor(s8 cursorDelta);
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta);
void DrawStdWindowFrame(u8 windowId, bool8 CopyToVram);
+11 -11
View File
@@ -52,22 +52,22 @@ extern u8 gPaletteDecompressionBuffer[];
extern u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE];
extern u16 gPlttBufferFaded[PLTT_BUFFER_SIZE];
void LoadCompressedPalette(const u32 *, u16, u16);
void LoadPalette(const void *, u16, u16);
void FillPalette(u16, u16, u16);
void LoadCompressedPalette(const u32 *src, u16 offset, u16 size);
void LoadPalette(const void *src, u16 offset, u16 size);
void FillPalette(u16 value, u16 offset, u16 size);
void TransferPlttBuffer(void);
u8 UpdatePaletteFade(void);
void ResetPaletteFade(void);
bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
void PaletteStruct_ResetById(u16);
bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targetY, u16 blendColor);
void PaletteStruct_ResetById(u16 id);
void ResetPaletteFadeControl(void);
void InvertPlttBuffer(u32);
void TintPlttBuffer(u32, s8, s8, s8);
void UnfadePlttBuffer(u32);
void BeginFastPaletteFade(u8);
void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
void InvertPlttBuffer(u32 selectedPalettes);
void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b);
void UnfadePlttBuffer(u32 selectedPalettes);
void BeginFastPaletteFade(u8 submode);
void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 shouldResetBlendRegisters);
void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color);
void BlendPalettesUnfaded(u32, u8, u16);
void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color);
void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id);
void TintPalette_GrayScale(u16 *palette, u16 count);
void TintPalette_GrayScale2(u16 *palette, u16 count);
+2 -2
View File
@@ -385,7 +385,7 @@ struct FormChange
| (((personality) & 0x00000003) >> 0) \
) % NUM_UNOWN_FORMS)
#define GET_SHINY_VALUE(otId, personality)HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality)
#define GET_SHINY_VALUE(otId, personality) (HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality))
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
@@ -405,7 +405,7 @@ extern const u8 gPPUpGetMask[];
extern const u8 gPPUpClearMask[];
extern const u8 gPPUpAddValues[];
extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2];
extern const u16 gLinkPlayerFacilityClasses[];
extern const u16 gUnionRoomFacilityClasses[];
extern const struct SpriteTemplate gBattlerSpriteTemplates[];
extern const s8 gNatureStatTable[][5];
extern const u16 *const gFormSpeciesIdTables[NUM_SPECIES];
+1 -1
View File
@@ -116,7 +116,7 @@ enum
#define POKENAV_MENU_IDS_START 100000
enum
{
POKENAV_MAIN_MENU = POKENAV_MENU_IDS_START, // The main menu where the player selects Hoenn Map/Condition/Match Call/Ribbons
POKENAV_MAIN_MENU = POKENAV_MENU_IDS_START, // The main menu where the player selects Hoenn Map/Condition/Match Call/Ribbons
POKENAV_MAIN_MENU_CURSOR_ON_MAP,
POKENAV_CONDITION_MENU, // The first Condition screen where the player selects Party or Search
POKENAV_CONDITION_SEARCH_MENU, // The Condition search menu where the player selects a search parameter
-2
View File
@@ -2155,9 +2155,7 @@ extern const u8 gText_Switch2[];
extern const u8 gText_Item[];
extern const u8 gText_NotPkmnOtherTrainerWants[];
extern const u8 gText_ThatIsntAnEgg[];
extern const u8 gText_PkmnCantBeTradedNow[];
extern const u8 gText_OtherTrainersPkmnCantBeTraded[];
extern const u8 gText_EggCantBeTradedNow[];
extern const u8 gText_OtherTrainerCantAcceptPkmn[];
extern const u8 gText_CantTradeWithTrainer[];
+1 -1
View File
@@ -54,7 +54,7 @@ struct TrainerCard
/*0x4C*/ bool8 shouldDrawStickers; // FRLG only
/*0x4D*/ u8 unused;
/*0x4E*/ u8 monIconTint; // FRLG only
/*0x4F*/ u8 facilityClass;
/*0x4F*/ u8 unionRoomClass;
/*0x50*/ u8 stickers[TRAINER_CARD_STICKER_TYPES]; // FRLG only
/*0x54*/ u16 monSpecies[PARTY_SIZE]; // FRLG only
// Note: Link players use linkHasAllFrontierSymbols, not the field below,
+2 -2
View File
@@ -7,7 +7,7 @@
// In the Union Room the player is only ever connected to ≤ 4 other players.
// However, there can be up to MAX_UNION_ROOM_LEADERS (8) object events to
// represent leaders of recently discovered link groups, and each of those groups
// represent leaders of recently discovered link groups, and each of those groups
// may have up to MAX_RFU_PLAYERS (5) players in it including the leader.
// These players are represented on-screen by NPC sprites drawn around the leader.
// Thus there can be 40 sprites of other players on-screen, in 8 groups of 5.
@@ -16,7 +16,7 @@
// The maximum number of recently connected players that can be tracked.
// Note that this is significantly less than NUM_UNION_ROOM_SPRITES, i.e. not
// every player that can be shown in the Union Room can be tracked at once.
// Information such as a group member's gender can instead be read from partnerInfo
// Information such as a group member's gender can instead be read from partnerInfo
// of the leader's RfuGameData by tracking at least all of the group leaders.
#define MAX_RFU_PLAYER_LIST_SIZE 16
+1 -1
View File
@@ -3978,7 +3978,7 @@ Cry_Spectrier::
.align 2
Cry_Calyrex::
.incbin "sound/direct_sound_samples/cries/calyrex.bin"
/*
/*
.align 2
Cry_Wyrdeer::
.incbin "sound/direct_sound_samples/cries/wyrdeer.bin"
+7 -7
View File
@@ -1000,17 +1000,17 @@ static bool32 AiExpectsToFaintPlayer(void)
bool32 canFaintPlayer;
u32 i;
u8 target = gBattleStruct->aiChosenTarget[gActiveBattler];
if (gBattleStruct->aiMoveOrAction[gActiveBattler] > 3)
return FALSE; // AI not planning to use move
if (GetBattlerSide(target) != GetBattlerSide(gActiveBattler)
&& CanIndexMoveFaintTarget(gActiveBattler, target, gBattleStruct->aiMoveOrAction[gActiveBattler], 0)
&& AI_WhoStrikesFirst(gActiveBattler, target, GetAIChosenMove(gActiveBattler)) == AI_IS_FASTER) {
// We expect to faint the target and move first -> dont use an item
return TRUE;
}
return FALSE;
}
@@ -1025,10 +1025,10 @@ static bool8 ShouldUseItem(void)
if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT)
|| gStatuses3[gActiveBattler] & STATUS3_SKY_DROPPED)
return FALSE;
if (gStatuses3[gActiveBattler] & STATUS3_EMBARGO)
return FALSE;
if (AiExpectsToFaintPlayer())
return FALSE;
@@ -1155,14 +1155,14 @@ static bool8 ShouldUseItem(void)
static bool32 AI_ShouldHeal(u32 healAmount)
{
bool32 shouldHeal = FALSE;
if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 4
|| gBattleMons[gActiveBattler].hp == 0
|| (healAmount != 0 && gBattleMons[gActiveBattler].maxHP - gBattleMons[gActiveBattler].hp > healAmount)) {
// We have low enough HP to consider healing
shouldHeal = !AI_OpponentCanFaintAiWithMod(healAmount); // if target can kill us even after we heal, why bother
}
return shouldHeal;
}
+18 -18
View File
@@ -793,7 +793,7 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness,
dmg *= 2;
else if (move == MOVE_SURGING_STRIKES || (move == MOVE_WATER_SHURIKEN && gBattleMons[battlerAtk].species == SPECIES_GRENINJA_ASH))
dmg *= 3;
if (dmg == 0)
dmg = 1;
}
@@ -804,7 +804,7 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness,
RestoreBattlerData(battlerAtk);
RestoreBattlerData(battlerDef);
// convert multiper to AI_EFFECTIVENESS_xX
*typeEffectiveness = AI_GetEffectiveness(effectivenessMultiplier);
@@ -1159,11 +1159,11 @@ bool32 AI_IsAbilityOnSide(u32 battlerId, u32 ability)
s32 AI_GetAbility(u32 battlerId)
{
u32 knownAbility = GetBattlerAbility(battlerId);
// The AI knows its own ability.
if (IsBattlerAIControlled(battlerId))
return knownAbility;
// Check neutralizing gas, gastro acid
if (knownAbility == ABILITY_NONE)
return knownAbility;
@@ -1183,10 +1183,10 @@ s32 AI_GetAbility(u32 battlerId)
{
abilityGuess = gBaseStats[gBattleMons[battlerId].species].abilities[Random() % NUM_ABILITY_SLOTS];
}
return abilityGuess;
}
return ABILITY_NONE; // Unknown.
}
@@ -2691,7 +2691,7 @@ static bool32 AI_CanPoisonType(u8 battlerAttacker, u8 battlerTarget)
static bool32 AI_CanBePoisoned(u8 battlerAtk, u8 battlerDef)
{
u16 ability = AI_DATA->abilities[battlerDef];
if (!(AI_CanPoisonType(battlerAtk, battlerDef))
|| gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_SAFEGUARD
|| gBattleMons[battlerDef].status1 & STATUS1_ANY
@@ -3042,7 +3042,7 @@ bool32 IsValidDoubleBattle(u8 battlerAtk)
u16 GetAllyChosenMove(u8 battlerId)
{
u8 partnerBattler = BATTLE_PARTNER(battlerId);
if (!IsBattlerAlive(partnerBattler) || !IsBattlerAIControlled(partnerBattler))
return MOVE_NONE;
else if (partnerBattler > battlerId) // Battler with the lower id chooses the move first.
@@ -3444,7 +3444,7 @@ void IncreaseStatUpScore(u8 battlerAtk, u8 battlerDef, u8 statId, s16 *score)
if (AI_DATA->hpPercents[battlerAtk] < 80 && AI_RandLessThan(128))
return;
if ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_TRY_TO_FAINT) && CanAIFaintTarget(battlerAtk, battlerDef, 0))
return; // Damaging moves would get a score boost from AI_TryToFaint or PreferStrongestMove so we don't consider them here
@@ -3563,7 +3563,7 @@ void IncreaseParalyzeScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score)
{
if ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_TRY_TO_FAINT) && CanAIFaintTarget(battlerAtk, battlerDef, 0))
return;
if (AI_CanParalyze(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef], move, AI_DATA->partnerMove))
{
u8 atkSpeed = GetBattlerTotalSpeedStat(battlerAtk);
@@ -3584,7 +3584,7 @@ void IncreaseSleepScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score)
{
if ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_TRY_TO_FAINT) && CanAIFaintTarget(battlerAtk, battlerDef, 0))
return;
if (AI_CanPutToSleep(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef], move, AI_DATA->partnerMove))
*score += 2;
else
@@ -3602,7 +3602,7 @@ void IncreaseConfusionScore(u8 battlerAtk, u8 battlerDef, u16 move, s16 *score)
{
if ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_TRY_TO_FAINT) && CanAIFaintTarget(battlerAtk, battlerDef, 0))
return;
if (AI_CanConfuse(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef], BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove)
&& AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CURE_CONFUSION
&& AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CURE_STATUS)
@@ -3633,26 +3633,26 @@ bool32 ShouldUseZMove(u8 battlerAtk, u8 battlerDef, u16 chosenMove)
return FALSE; //don't use z move on partner
if (gBattleStruct->zmove.used[battlerAtk])
return FALSE; //cant use z move twice
if (IsViableZMove(battlerAtk, chosenMove))
{
u8 effectiveness;
if (gBattleMons[battlerDef].ability == ABILITY_DISGUISE && gBattleMons[battlerDef].species == SPECIES_MIMIKYU)
return FALSE; // Don't waste a Z-Move busting disguise
if (gBattleMons[battlerDef].ability == ABILITY_ICE_FACE && gBattleMons[battlerDef].species == SPECIES_EISCUE && IS_MOVE_PHYSICAL(chosenMove))
return FALSE; // Don't waste a Z-Move busting Ice Face
if (IS_MOVE_STATUS(chosenMove) && !IS_MOVE_STATUS(gBattleStruct->zmove.chosenZMove))
return FALSE;
else if (!IS_MOVE_STATUS(chosenMove) && IS_MOVE_STATUS(gBattleStruct->zmove.chosenZMove))
return FALSE;
if (!IS_MOVE_STATUS(chosenMove) && AI_CalcDamage(chosenMove, battlerAtk, battlerDef, &effectiveness, FALSE) >= gBattleMons[battlerDef].hp)
return FALSE; // don't waste damaging z move if can otherwise faint target
return TRUE;
}
return FALSE;
}
+1 -1
View File
@@ -219,7 +219,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{
s32 i;
bool32 hideHpBoxes = (tableId == MOVE_TRANSFORM) ? FALSE : TRUE;
if (!isMoveAnim)
{
switch (tableId)
+1 -1
View File
@@ -6798,7 +6798,7 @@ static const union AffineAnimCmd sCompressTargetHorizontallyAffineAnimCmds[] =
static void AnimTask_CompressTargetStep(u8 taskId)
{
struct Task* task = &gTasks[taskId];
if (!RunAffineAnimFromTaskData(task))
DestroyAnimVisualTask(taskId);
}
+2 -2
View File
@@ -888,7 +888,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void
else
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond
if (spriteId != MAX_SPRITES)
{
x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
@@ -914,7 +914,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
spriteId = CreateSprite(&gDarkVoidBlackHoleTemplate, baseX, baseY, 55); //dark void
else
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); //destiny bond
if (spriteId != MAX_SPRITES)
{
x = 48;
+236 -236
View File
File diff suppressed because it is too large. Load diff
-4
View File
@@ -388,13 +388,9 @@ static void CompleteOnHealthbarDone(void)
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP);
}
else
{
LinkOpponentBufferExecCompleted();
}
}
static void HideHealthboxAfterMonFaint(void)
-2
View File
@@ -411,9 +411,7 @@ static void CompleteOnHealthbarDone(void)
s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP);
}
else
OpponentBufferExecCompleted();
}
@@ -375,13 +375,9 @@ static void CompleteOnHealthbarDone(void)
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP);
}
else
{
RecordedOpponentBufferExecCompleted();
}
}
static void HideHealthboxAfterMonFaint(void)
+4 -11
View File
@@ -670,18 +670,12 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size)
switch (bufferId)
{
case BUFFER_A:
for (i = 0; i < size; i++)
{
for (i = 0; i < size; data++, i++)
gBattleResources->bufferA[gActiveBattler][i] = *data;
data++;
}
break;
case BUFFER_B:
for (i = 0; i < size; i++)
{
for (i = 0; i < size; data++, i++)
gBattleResources->bufferB[gActiveBattler][i] = *data;
data++;
}
break;
}
}
@@ -818,8 +812,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
}
break;
case 5:
gTasks[taskId].data[13]--;
if (gTasks[taskId].data[13] == 0)
if (--gTasks[taskId].data[13] == 0)
{
gTasks[taskId].data[13] = 1;
gTasks[taskId].data[11] = 3;
@@ -834,7 +827,7 @@ void TryReceiveLinkBattleData(void)
s32 j;
u8 *recvBuffer;
if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE))
if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE))
{
DestroyTask_RfuIdle();
for (i = 0; i < GetLinkPlayerCount(); i++)
+4 -4
View File
@@ -817,7 +817,7 @@ static void SwitchToAiPointsView(u8 taskId)
GetStructPtr(taskId)->aiViewState = 0;
}
static const u8 *const sAiInfoItemNames[] =
static const u8 *const sAiInfoItemNames[] =
{
sText_Ability,
sText_HeldItem,
@@ -829,13 +829,13 @@ static void PutAiInfoText(struct BattleDebugMenu *data)
u8 *text = malloc(0x50);
FillWindowPixelBuffer(data->aiMovesWindowId, 0x11);
// item names
for (i = 0; i < ARRAY_COUNT(sAiInfoItemNames); i++)
{
AddTextPrinterParameterized(data->aiMovesWindowId, 1, sAiInfoItemNames[i], 3, i * 15, 0, NULL);
}
// items info
for (i = 0; i < gBattlersCount; i++)
{
@@ -2004,7 +2004,7 @@ static const u8 sText_HoldEffectRoomService[] = _("Room Service");
static const u8 sText_HoldEffectBlunderPolicy[] = _("Blunder Policy");
static const u8 sText_HoldEffectHeavyDutyBoots[] = _("Heavy Duty Boots");
static const u8 sText_HoldEffectThroatSpray[] = _("Throat Spray");
static const u8 *const sHoldEffectNames[] =
static const u8 *const sHoldEffectNames[] =
{
[HOLD_EFFECT_NONE] = sText_HoldEffectNone,
[HOLD_EFFECT_RESTORE_HP] = sText_HoldEffectRestoreHp,
+5 -5
View File
@@ -868,7 +868,7 @@ static void CB2_HandleStartBattle(void)
case 1:
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
if (IsLinkTaskFinished())
{
@@ -1075,7 +1075,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
case 1:
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
u8 language;
@@ -1342,7 +1342,7 @@ static void CB2_PreInitMultiBattle(void)
switch (gBattleCommunication[MULTIUSE_STATE])
{
case 0:
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished())
{
sMultiPartnerPartyBuffer = Alloc(sizeof(gMultiPartnerParty));
SetMultiPartnerMenuParty(0);
@@ -1478,7 +1478,7 @@ static void CB2_HandleStartMultiBattle(void)
case 1:
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
if (IsLinkTaskFinished())
{
@@ -5306,7 +5306,7 @@ static void ReturnFromBattleToOverworld(void)
PartySpreadPokerus(gPlayerParty);
}
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0)
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers)
return;
gSpecialVar_Result = gBattleOutcome;
+3 -3
View File
@@ -1383,7 +1383,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
[STRINGID_TARGETTOOHEAVY - BATTLESTRINGS_TABLE_START] = sText_TargetTooHeavy,
};
const u16 gZEffectStringIds[] =
const u16 gZEffectStringIds[] =
{
[B_MSG_Z_RESET_STATS] = STRINGID_ZMOVERESETSSTATS,
[B_MSG_Z_ALL_STATS_UP]= STRINGID_ZMOVEALLSTATSUP,
@@ -1394,7 +1394,7 @@ const u16 gZEffectStringIds[] =
[B_MSG_Z_HP_TRAP] = STRINGID_ZMOVEHPTRAP,
};
const u16 gMentalHerbCureStringIds[] =
const u16 gMentalHerbCureStringIds[] =
{
[B_MSG_MENTALHERBCURE_INFATUATION] = STRINGID_ATKGOTOVERINFATUATION,
[B_MSG_MENTALHERBCURE_TAUNT] = STRINGID_BUFFERENDS,
@@ -1409,7 +1409,7 @@ const u16 gTerrainStringIds[] =
STRINGID_TERRAINBECOMESMISTY, STRINGID_TERRAINBECOMESGRASSY, STRINGID_TERRAINBECOMESELECTRIC, STRINGID_TERRAINBECOMESPSYCHIC, STRINGID_TERRAINREMOVED,
};
const u16 gTerrainEndingStringIds[] =
const u16 gTerrainEndingStringIds[] =
{
STRINGID_MISTYTERRAINENDS, STRINGID_GRASSYTERRAINENDS, STRINGID_ELECTRICTERRAINENDS, STRINGID_PSYCHICTERRAINENDS
};
+1 -1
View File
@@ -390,7 +390,7 @@ static void GenerateOpponentMons(void)
while (i != FRONTIER_PARTY_SIZE)
{
sRandMonId = monSet[Random() % numMons];
// Ensure none of the opponent's pokemon are the same as the potential rental pokemon for the player
for (j = 0; j < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); j++)
{
+1 -1
View File
@@ -2679,7 +2679,7 @@ static void LoadLinkMultiOpponentsData(void)
gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.trainerIds[battleNum * 2 + 1];
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1);
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType == 0)
if (gReceivedRemoteLinkPlayers && gWirelessCommType == 0)
gSpecialVar_Result = 4;
else
gSpecialVar_Result = 6;
+12 -12
View File
@@ -2434,7 +2434,7 @@ static bool8 Mugshot_WaitStartPlayerSlide(struct Task *task)
{
sTransitionData->BG0HOFS_Lower -= 8;
sTransitionData->BG0HOFS_Upper += 8;
// Start player's slide in once the opponent is finished
if (IsTrainerPicSlideDone(task->tOpponentSpriteId))
{
@@ -2770,7 +2770,7 @@ static bool8 Slice_Main(struct Task *task)
{
u16 *storeLoc1 = &gScanlineEffectRegBuffers[0][i];
u16 *storeLoc2 = &gScanlineEffectRegBuffers[0][i + DISPLAY_HEIGHT];
// Alternate rows
if (i % 2)
{
@@ -3251,7 +3251,7 @@ static bool8 RectangularSpiral_Main(struct Task *task)
// The line moved to a new position, draw the tile.
done = FALSE;
position = sRectangularSpiralLines[j].position;
// Invert position for the two lines that start at the bottom.
if ((j % 2) == 1)
position = 637 - position;
@@ -3281,7 +3281,7 @@ static bool8 RectangularSpiral_End(struct Task *task)
static bool16 UpdateRectangularSpiralLine(const s16 * const *moveDataTable, struct RectangularSpiralLine *line)
{
const s16 *moveData = moveDataTable[line->state];
// Has spiral finished?
// Note that most move data arrays endsin SPIRAL_END but it is
// only ever reached on the final array of spiraling outward.
@@ -3294,9 +3294,9 @@ static bool16 UpdateRectangularSpiralLine(const s16 * const *moveDataTable, stru
sDebug_RectangularSpiralData = moveData[2];
sDebug_RectangularSpiralData = moveData[3];
// Note that for the two lines originating at the bottom the
// Note that for the two lines originating at the bottom the
// position is inverted, so the directions are flipped.
// i.e. position += 1 is right for the top lines and left
// i.e. position += 1 is right for the top lines and left
// for their inverted partners on the bottom.
switch (moveData[0])
{
@@ -4170,13 +4170,13 @@ static void InitBlackWipe(s16 *data, s16 startX, s16 startY, s16 endX, s16 endY,
static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
{
u8 numFinished;
if (tWipeXDist > tWipeYDist)
{
// X has further to move, move it first
tWipeCurrX += tWipeXMove;
// If it has been far enough since Y's
// If it has been far enough since Y's
// last move then move it too
tWipeTemp += tWipeYDist;
if (tWipeTemp > tWipeXDist)
@@ -4190,7 +4190,7 @@ static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
// Y has further to move, move it first
tWipeCurrY += tWipeYMove;
// If it has been far enough since X's
// If it has been far enough since X's
// last move then move it too
tWipeTemp += tWipeXDist;
if (tWipeTemp > tWipeYDist)
@@ -4201,9 +4201,9 @@ static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
}
numFinished = 0;
// Has X coord reached end?
if ((tWipeXMove > 0 && tWipeCurrX >= tWipeEndX)
if ((tWipeXMove > 0 && tWipeCurrX >= tWipeEndX)
|| (tWipeXMove < 0 && tWipeCurrX <= tWipeEndX))
{
numFinished++;
@@ -4212,7 +4212,7 @@ static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
}
// Has Y coord reached end?
if ((tWipeYMove > 0 && tWipeCurrY >= tWipeEndY)
if ((tWipeYMove > 0 && tWipeCurrY >= tWipeEndY)
|| (tWipeYMove < 0 && tWipeCurrY <= tWipeEndY))
{
numFinished++;
+29 -29
View File
@@ -165,23 +165,23 @@ bool32 IsViableZMove(u8 battlerId, u16 move)
u32 item;
u16 holdEffect;
u16 species;
if (gBattleStruct->zmove.used[battlerId])
return FALSE;
species = gBattleMons[battlerId].species;
item = gBattleMons[battlerId].item;
if (gBattleTypeFlags & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FRONTIER))
return FALSE;
#ifdef ITEM_Z_RING
if ((GetBattlerPosition(battlerId) == B_POSITION_PLAYER_LEFT || (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)) && !CheckBagHasItem(ITEM_Z_RING, 1))
return FALSE;
#endif
if (mega->alreadyEvolved[battlerPosition])
return FALSE; // Trainer has mega evolved
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (IsPartnerMonFromSameTrainer(battlerId) && (mega->alreadyEvolved[partnerPosition] || (mega->toEvolve & gBitTable[BATTLE_PARTNER(battlerId)])))
@@ -194,10 +194,10 @@ bool32 IsViableZMove(u8 battlerId, u16 move)
else
#endif
if (item == ITEM_ENIGMA_BERRY)
return FALSE; // HoldEffect = gEnigmaBerries[battlerId].holdEffect;
return FALSE; // HoldEffect = gEnigmaBerries[battlerId].holdEffect;
else
holdEffect = ItemId_GetHoldEffect(item);
#ifdef ITEM_ULTRANECROZIUM_Z
if (holdEffect == HOLD_EFFECT_Z_CRYSTAL || item == ITEM_ULTRANECROZIUM_Z)
#else
@@ -210,18 +210,18 @@ bool32 IsViableZMove(u8 battlerId, u16 move)
gBattleStruct->zmove.chosenZMove = zMove; // Signature z move exists
return TRUE;
}
if (move != MOVE_NONE && zMove != MOVE_Z_STATUS && gBattleMoves[move].type == ItemId_GetSecondaryId(item))
{
if (IS_MOVE_STATUS(move))
gBattleStruct->zmove.chosenZMove = move;
else
gBattleStruct->zmove.chosenZMove = GetTypeBasedZMove(move, battlerId);
return TRUE;
}
}
return FALSE;
}
@@ -248,7 +248,7 @@ bool32 IsZMoveUsable(u8 battlerId, u16 moveIndex)
bool32 TryChangeZIndicator(u8 battlerId, u8 moveIndex)
{
bool32 viableZMove = IsZMoveUsable(battlerId, moveIndex);
if (gBattleStruct->zmove.viable && !viableZMove)
HideZMoveTriggerSprite(); // Was a viable z move, now is not -> slide out
else if (!gBattleStruct->zmove.viable && viableZMove)
@@ -271,11 +271,11 @@ bool32 TryChangeZIndicator(u8 battlerId, u8 moveIndex)
void CreateZMoveTriggerSprite(u8 battlerId, bool8 viable)
{
s16 x, y;
LoadSpritePalette(&sSpritePalette_ZMoveTrigger);
if (GetSpriteTileStartByTag(TAG_ZMOVE_TRIGGER_TILE) == 0xFFFF)
LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_ZMoveTrigger);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
x = gSprites[gHealthboxSpriteIds[battlerId]].x - DOUBLES_Z_TRIGGER_POS_X_SLIDE;
@@ -286,10 +286,10 @@ void CreateZMoveTriggerSprite(u8 battlerId, bool8 viable)
x = gSprites[gHealthboxSpriteIds[battlerId]].x - SINGLES_Z_TRIGGER_POS_X_SLIDE;
y = gSprites[gHealthboxSpriteIds[battlerId]].y - SINGLES_Z_TRIGGER_POS_Y_DIFF, 0;
}
if (gBattleStruct->zmove.triggerSpriteId == 0xFF)
gBattleStruct->zmove.triggerSpriteId = CreateSprite(&sSpriteTemplate_ZMoveTrigger, x, y, 0);
gSprites[gBattleStruct->zmove.triggerSpriteId].tBattler = battlerId;
gSprites[gBattleStruct->zmove.triggerSpriteId].tHide = (viable == TRUE) ? FALSE : TRUE;
}
@@ -375,14 +375,14 @@ void DestroyZMoveTriggerSprite(void)
FreeSpriteTilesByTag(TAG_ZMOVE_TRIGGER_TILE);
if (gBattleStruct->zmove.triggerSpriteId != 0xFF)
DestroySprite(&gSprites[gBattleStruct->zmove.triggerSpriteId]);
gBattleStruct->zmove.triggerSpriteId = 0xFF;
}
static u16 GetSignatureZMove(u16 move, u16 species, u16 item)
{
u32 i;
// Check signature z move
for (i = 0; i < ARRAY_COUNT(sSignatureZMoves); ++i)
{
@@ -396,7 +396,7 @@ static u16 GetSignatureZMove(u16 move, u16 species, u16 item)
static u16 GetTypeBasedZMove(u16 move, u8 battler)
{
u8 moveType = gBattleMoves[move].type;
// Get z move from type
if (moveType < TYPE_FIRE)
return MOVE_BREAKNECK_BLITZ + moveType;
@@ -411,7 +411,7 @@ bool32 MoveSelectionDisplayZMove(u16 zmove)
u32 i;
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[gActiveBattler][4]);
u16 move = moveInfo->moves[gMoveSelectionCursor[gActiveBattler]];
PlaySE(SE_SELECT);
gBattleStruct->zmove.viewing = TRUE;
if (zmove != MOVE_NONE)
@@ -421,15 +421,15 @@ bool32 MoveSelectionDisplayZMove(u16 zmove)
{
MoveSelectionDestroyCursorAt(i);
StringCopy(gDisplayedStringBattle, gText_EmptyString2);
BattlePutTextOnWindow(gDisplayedStringBattle, i + 3);
BattlePutTextOnWindow(gDisplayedStringBattle, i + 3);
}
if (IS_MOVE_STATUS(move))
{
u8 zEffect = gBattleMoves[move].zMoveEffect;
gDisplayedStringBattle[0] = EOS;
if (zEffect == Z_EFFECT_CURSE)
{
if (moveInfo->monType1 == TYPE_GHOST || moveInfo->monType2 == TYPE_GHOST || moveInfo->monType3 == TYPE_GHOST)
@@ -437,7 +437,7 @@ bool32 MoveSelectionDisplayZMove(u16 zmove)
else
zEffect = Z_EFFECT_ATK_UP_1;
}
switch (zEffect)
{
case Z_EFFECT_RESET_STATS:
@@ -501,7 +501,7 @@ bool32 MoveSelectionDisplayZMove(u16 zmove)
ExpandBattleTextBuffPlaceholders(gBattleTextBuff1, gDisplayedStringBattle + 4);
break;
}
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_NAME_3);
gDisplayedStringBattle[0] = CHAR_Z;
gDisplayedStringBattle[1] = CHAR_HYPHEN;
@@ -584,11 +584,11 @@ void SetZEffect(void)
else
gBattleStruct->zmove.effect = Z_EFFECT_ATK_UP_1;
}
gBattleScripting.savedStatChanger = gBattleScripting.statChanger; // Save used move's stat changer (e.g. for Z-Growl)
gBattleScripting.battler = gBattlerAttacker;
switch (gBattleStruct->zmove.effect)
switch (gBattleStruct->zmove.effect)
{
case Z_EFFECT_RESET_STATS:
for (i = 0; i < NUM_BATTLE_STATS - 1; i++)
@@ -645,7 +645,7 @@ void SetZEffect(void)
gBattlescriptCurrInstr = BattleScript_ZEffectPrintString;
break;
case Z_EFFECT_ATK_UP_1 ... Z_EFFECT_EVSN_UP_1:
SET_STATCHANGER(gBattleStruct->zmove.effect - Z_EFFECT_ATK_UP_1 + 1, 1, FALSE);
SET_STATCHANGER(gBattleStruct->zmove.effect - Z_EFFECT_ATK_UP_1 + 1, 1, FALSE);
BattleScriptPush(gBattlescriptCurrInstr + Z_EFFECT_BS_LENGTH);
gBattlescriptCurrInstr = BattleScript_StatUpZMove;
break;
@@ -663,7 +663,7 @@ void SetZEffect(void)
gBattlescriptCurrInstr += 3;
break;
}
gBattleStruct->zmove.zStatusActive = FALSE;
}
+1 -1
View File
@@ -3428,7 +3428,7 @@ static u32 Cmd_CloseLink(struct BerryCrushGame *game, u8 *args)
SetCloseLinkCallback();
break;
case 2:
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
return 0;
game->nextCmd = CMD_QUIT;
RunOrScheduleCommand(CMD_HIDE_GAME, SCHEDULE_CMD, NULL);
+2 -4
View File
@@ -5,8 +5,7 @@
.arm
.align 2, 0
.global Init
Init:
Init::
mov r0, #PSR_IRQ_MODE
msr cpsr_cf, r0
ldr sp, sp_irq
@@ -33,8 +32,7 @@ sp_irq: .word IWRAM_END - 0x60
.arm
.align 2, 0
.global IntrMain
IntrMain:
IntrMain::
mov r3, #REG_BASE
add r3, r3, #OFFSET_REG_IE
ldr r2, [r3]
@@ -1,67 +1,67 @@
// Also used by early Pkmn Breeder, Collector, and Beauty trainers
#define FRONTIER_MONS_YOUNGSTER_LASS_1 \
FRONTIER_MON_SUNKERN, \
FRONTIER_MON_AZURILL, \
FRONTIER_MON_CATERPIE, \
FRONTIER_MON_WEEDLE, \
FRONTIER_MON_WURMPLE, \
FRONTIER_MON_RALTS, \
FRONTIER_MON_MAGIKARP, \
FRONTIER_MON_FEEBAS, \
FRONTIER_MON_PICHU, \
FRONTIER_MON_IGGLYBUFF, \
FRONTIER_MON_WOOPER, \
FRONTIER_MON_TYROGUE, \
FRONTIER_MON_SENTRET, \
FRONTIER_MON_CLEFFA, \
FRONTIER_MON_SEEDOT, \
FRONTIER_MON_LOTAD, \
FRONTIER_MON_POOCHYENA, \
FRONTIER_MON_SHEDINJA, \
FRONTIER_MON_MAKUHITA, \
FRONTIER_MON_WHISMUR, \
FRONTIER_MON_ZIGZAGOON, \
FRONTIER_MON_ZUBAT, \
FRONTIER_MON_TOGEPI, \
FRONTIER_MON_SPINARAK, \
FRONTIER_MON_MARILL, \
FRONTIER_MON_HOPPIP, \
FRONTIER_MON_SLUGMA, \
FRONTIER_MON_SWINUB, \
FRONTIER_MON_SMEARGLE, \
FRONTIER_MON_PIDGEY, \
FRONTIER_MON_RATTATA, \
FRONTIER_MON_WYNAUT, \
FRONTIER_MON_SKITTY, \
FRONTIER_MON_SPEAROW, \
FRONTIER_MON_HOOTHOOT, \
FRONTIER_MON_DIGLETT, \
FRONTIER_MON_LEDYBA, \
FRONTIER_MON_NINCADA, \
FRONTIER_MON_SURSKIT, \
FRONTIER_MON_JIGGLYPUFF, \
FRONTIER_MON_TAILLOW, \
FRONTIER_MON_WINGULL, \
FRONTIER_MON_NIDORAN_M, \
FRONTIER_MON_NIDORAN_F, \
FRONTIER_MON_KIRLIA, \
FRONTIER_MON_MAREEP, \
FRONTIER_MON_MEDITITE, \
FRONTIER_MON_SLAKOTH, \
FRONTIER_MON_PARAS, \
FRONTIER_MON_EKANS, \
FRONTIER_MON_DITTO, \
FRONTIER_MON_BARBOACH, \
FRONTIER_MON_MEOWTH, \
FRONTIER_MON_PINECO, \
FRONTIER_MON_TRAPINCH, \
FRONTIER_MON_SPHEAL, \
FRONTIER_MON_HORSEA, \
FRONTIER_MON_SHROOMISH, \
FRONTIER_MON_SHUPPET, \
FRONTIER_MON_DUSKULL, \
FRONTIER_MON_ELECTRIKE, \
FRONTIER_MON_VULPIX, \
FRONTIER_MON_SUNKERN, \
FRONTIER_MON_AZURILL, \
FRONTIER_MON_CATERPIE, \
FRONTIER_MON_WEEDLE, \
FRONTIER_MON_WURMPLE, \
FRONTIER_MON_RALTS, \
FRONTIER_MON_MAGIKARP, \
FRONTIER_MON_FEEBAS, \
FRONTIER_MON_PICHU, \
FRONTIER_MON_IGGLYBUFF, \
FRONTIER_MON_WOOPER, \
FRONTIER_MON_TYROGUE, \
FRONTIER_MON_SENTRET, \
FRONTIER_MON_CLEFFA, \
FRONTIER_MON_SEEDOT, \
FRONTIER_MON_LOTAD, \
FRONTIER_MON_POOCHYENA, \
FRONTIER_MON_SHEDINJA, \
FRONTIER_MON_MAKUHITA, \
FRONTIER_MON_WHISMUR, \
FRONTIER_MON_ZIGZAGOON, \
FRONTIER_MON_ZUBAT, \
FRONTIER_MON_TOGEPI, \
FRONTIER_MON_SPINARAK, \
FRONTIER_MON_MARILL, \
FRONTIER_MON_HOPPIP, \
FRONTIER_MON_SLUGMA, \
FRONTIER_MON_SWINUB, \
FRONTIER_MON_SMEARGLE, \
FRONTIER_MON_PIDGEY, \
FRONTIER_MON_RATTATA, \
FRONTIER_MON_WYNAUT, \
FRONTIER_MON_SKITTY, \
FRONTIER_MON_SPEAROW, \
FRONTIER_MON_HOOTHOOT, \
FRONTIER_MON_DIGLETT, \
FRONTIER_MON_LEDYBA, \
FRONTIER_MON_NINCADA, \
FRONTIER_MON_SURSKIT, \
FRONTIER_MON_JIGGLYPUFF, \
FRONTIER_MON_TAILLOW, \
FRONTIER_MON_WINGULL, \
FRONTIER_MON_NIDORAN_M, \
FRONTIER_MON_NIDORAN_F, \
FRONTIER_MON_KIRLIA, \
FRONTIER_MON_MAREEP, \
FRONTIER_MON_MEDITITE, \
FRONTIER_MON_SLAKOTH, \
FRONTIER_MON_PARAS, \
FRONTIER_MON_EKANS, \
FRONTIER_MON_DITTO, \
FRONTIER_MON_BARBOACH, \
FRONTIER_MON_MEOWTH, \
FRONTIER_MON_PINECO, \
FRONTIER_MON_TRAPINCH, \
FRONTIER_MON_SPHEAL, \
FRONTIER_MON_HORSEA, \
FRONTIER_MON_SHROOMISH, \
FRONTIER_MON_SHUPPET, \
FRONTIER_MON_DUSKULL, \
FRONTIER_MON_ELECTRIKE, \
FRONTIER_MON_VULPIX, \
-1
// Also used by early Pkmn Breeder, Collector, and Beauty trainers
@@ -113,43 +113,43 @@
-1
#define FRONTIER_MONS_RICH_BOY_LADY_1 \
FRONTIER_MON_RALTS, \
FRONTIER_MON_POOCHYENA, \
FRONTIER_MON_SHEDINJA, \
FRONTIER_MON_ZUBAT, \
FRONTIER_MON_SPINARAK, \
FRONTIER_MON_WYNAUT, \
FRONTIER_MON_NIDORAN_M, \
FRONTIER_MON_NIDORAN_F, \
FRONTIER_MON_KIRLIA, \
FRONTIER_MON_MEDITITE, \
FRONTIER_MON_EKANS, \
FRONTIER_MON_SHUPPET, \
FRONTIER_MON_DUSKULL, \
FRONTIER_MON_BELLSPROUT, \
FRONTIER_MON_BALTOY, \
FRONTIER_MON_BELDUM, \
FRONTIER_MON_GULPIN, \
FRONTIER_MON_VENONAT, \
FRONTIER_MON_SMOOCHUM, \
FRONTIER_MON_ABRA, \
FRONTIER_MON_GASTLY, \
FRONTIER_MON_SLOWPOKE, \
FRONTIER_MON_BULBASAUR, \
FRONTIER_MON_ODDISH, \
FRONTIER_MON_NATU, \
FRONTIER_MON_GRIMER, \
FRONTIER_MON_EXEGGCUTE, \
FRONTIER_MON_DROWZEE, \
FRONTIER_MON_HOUNDOUR, \
FRONTIER_MON_SPOINK, \
FRONTIER_MON_TENTACOOL, \
FRONTIER_MON_KOFFING, \
FRONTIER_MON_NIDORINA, \
FRONTIER_MON_NIDORINO, \
FRONTIER_MON_BEEDRILL, \
FRONTIER_MON_DUSTOX, \
FRONTIER_MON_ARIADOS, \
FRONTIER_MON_RALTS, \
FRONTIER_MON_POOCHYENA, \
FRONTIER_MON_SHEDINJA, \
FRONTIER_MON_ZUBAT, \
FRONTIER_MON_SPINARAK, \
FRONTIER_MON_WYNAUT, \
FRONTIER_MON_NIDORAN_M, \
FRONTIER_MON_NIDORAN_F, \
FRONTIER_MON_KIRLIA, \
FRONTIER_MON_MEDITITE, \
FRONTIER_MON_EKANS, \
FRONTIER_MON_SHUPPET, \
FRONTIER_MON_DUSKULL, \
FRONTIER_MON_BELLSPROUT, \
FRONTIER_MON_BALTOY, \
FRONTIER_MON_BELDUM, \
FRONTIER_MON_GULPIN, \
FRONTIER_MON_VENONAT, \
FRONTIER_MON_SMOOCHUM, \
FRONTIER_MON_ABRA, \
FRONTIER_MON_GASTLY, \
FRONTIER_MON_SLOWPOKE, \
FRONTIER_MON_BULBASAUR, \
FRONTIER_MON_ODDISH, \
FRONTIER_MON_NATU, \
FRONTIER_MON_GRIMER, \
FRONTIER_MON_EXEGGCUTE, \
FRONTIER_MON_DROWZEE, \
FRONTIER_MON_HOUNDOUR, \
FRONTIER_MON_SPOINK, \
FRONTIER_MON_TENTACOOL, \
FRONTIER_MON_KOFFING, \
FRONTIER_MON_NIDORINA, \
FRONTIER_MON_NIDORINO, \
FRONTIER_MON_BEEDRILL, \
FRONTIER_MON_DUSTOX, \
FRONTIER_MON_ARIADOS, \
-1
// Also used by early Pkmn Breeder, Collector, and Beauty trainers
+3 -3
View File
@@ -11881,7 +11881,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
.zMovePower = 180,
.zMoveEffect = Z_EFFECT_NONE,
},
[MOVE_ZIPPY_ZAP] =
{
#if B_UPDATED_MOVE_DATA >= GEN_8
@@ -12193,7 +12193,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
.zMovePower = 120,
.zMoveEffect = Z_EFFECT_NONE,
},
[MOVE_DYNAMAX_CANNON] =
{
.effect = EFFECT_DYNAMAX_DOUBLE_DMG,
@@ -13105,7 +13105,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] =
.zMovePower = 100,
.zMoveEffect = Z_EFFECT_NONE,
},
[MOVE_THUNDER_CAGE] =
{
.effect = EFFECT_TRAP,
@@ -1,40 +1,40 @@
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall;
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium;
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge;
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge;
const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple;
const struct SpriteTemplate gFieldEffectObjectTemplate_Ash;
const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob;
const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow;
const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash;
const struct SpriteTemplate gFieldEffectObjectTemplate_Splash;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash;
const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2;
const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand;
const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing;
const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion;
const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;
const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints;
const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise;
const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise;
const struct SpriteTemplate gFieldEffectObjectTemplate_Bird;
const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks;
const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder;
const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile;
const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass;
const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater;
const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff;
const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch;
const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles;
const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle;
const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Ash;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpTallGrass;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpBigSplash;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Splash;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpSmallSplash;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_JumpLongGrass;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedGrass2;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Bird;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_SandPile;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_SmallSparkle;
extern const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza;
const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
[FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall,
@@ -1147,7 +1147,7 @@ static const union AnimCmd *const sAnimTable_AshPuff[] =
sAnim_AshPuff,
};
const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff =
const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff =
{
.tileTag = TAG_NONE,
.paletteTag = FLDEFF_PAL_TAG_ASH,
@@ -1,249 +1,249 @@
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RayquazaStill;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreFront;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonFront;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreAsleep;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonAsleep;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreSide;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonSide;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RayquazaStill;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreFront;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonFront;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreAsleep;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonAsleep;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KyogreSide;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GroudonSide;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1;
extern const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2;
const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM_OBJ_EVENT_GFX] = {
+5 -5
View File
@@ -859,7 +859,7 @@
.bodyColor = color, \
.noFlip = FALSE, \
}
#define MORPEKO_BASE_STATS \
{ \
.baseHP = 58, \
@@ -883,7 +883,7 @@
.bodyColor = BODY_COLOR_YELLOW, \
.noFlip = FALSE, \
}
#define ZARUDE_BASE_STATS \
{ \
.baseHP = 105, \
@@ -22755,7 +22755,7 @@ const struct BaseStats gBaseStats[] =
.bodyColor = BODY_COLOR_BROWN,
.noFlip = FALSE,
},
[SPECIES_BASCULEGION] =
{
.baseHP = 120,
@@ -26464,7 +26464,7 @@ const struct BaseStats gBaseStats[] =
[SPECIES_MINIOR_CORE_BLUE] = MINIOR_CORE_BASE_STATS(BODY_COLOR_BLUE),
[SPECIES_MINIOR_CORE_INDIGO] = MINIOR_CORE_BASE_STATS(BODY_COLOR_BLUE),
[SPECIES_MINIOR_CORE_VIOLET] = MINIOR_CORE_BASE_STATS(BODY_COLOR_PURPLE),
[SPECIES_MIMIKYU_BUSTED] = MIMIKYU_BASE_STATS,
[SPECIES_NECROZMA_DUSK_MANE] =
@@ -26563,7 +26563,7 @@ const struct BaseStats gBaseStats[] =
[SPECIES_ALCREMIE_RUBY_SWIRL] = ALCREMIE_BASE_STATS(BODY_COLOR_YELLOW),
[SPECIES_ALCREMIE_CARAMEL_SWIRL] = ALCREMIE_BASE_STATS(BODY_COLOR_BROWN),
[SPECIES_ALCREMIE_RAINBOW_SWIRL] = ALCREMIE_BASE_STATS(BODY_COLOR_YELLOW),
[SPECIES_EISCUE_NOICE_FACE] =
{
.baseHP = 75,
@@ -1,4 +1,4 @@
const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] =
const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] =
{
#if P_NEW_POKEMON == TRUE
[SPECIES_GIRATINA] = sGiratinaFormChangeTable,
@@ -19,8 +19,8 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] =
[SPECIES_MEOWTH] = sMeowthFormSpeciesIdTable,
[SPECIES_PERSIAN] = sPersianFormSpeciesIdTable,
[SPECIES_ALAKAZAM] = sAlakazamFormSpeciesIdTable,
[SPECIES_GROWLITHE] = sGrowlitheFormSpeciesIdTable,
[SPECIES_ARCANINE] = sArcanineFormSpeciesIdTable,
[SPECIES_GROWLITHE] = sGrowlitheFormSpeciesIdTable,
[SPECIES_ARCANINE] = sArcanineFormSpeciesIdTable,
[SPECIES_GEODUDE] = sGeodudeFormSpeciesIdTable,
[SPECIES_GRAVELER] = sGravelerFormSpeciesIdTable,
[SPECIES_GOLEM] = sGolemFormSpeciesIdTable,
@@ -113,7 +113,7 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] =
[SPECIES_LILLIGANT] = sLilligantFormSpeciesIdTable,
[SPECIES_DARUMAKA] = sDarumakaFormSpeciesIdTable,
[SPECIES_DARMANITAN] = sDarmanitanFormSpeciesIdTable,
[SPECIES_YAMASK] = sYamaskFormSpeciesIdTable,
[SPECIES_YAMASK] = sYamaskFormSpeciesIdTable,
[SPECIES_ZORUA] = sZoruaFormSpeciesIdTable,
[SPECIES_ZOROARK] = sZoroarkFormSpeciesIdTable,
[SPECIES_DEERLING] = sDeerlingFormSpeciesIdTable,
@@ -139,7 +139,7 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] =
[SPECIES_GOODRA] = sGoodraFormSpeciesIdTable,
[SPECIES_PUMPKABOO] = sPumpkabooFormSpeciesIdTable,
[SPECIES_GOURGEIST] = sGourgeistFormSpeciesIdTable,
[SPECIES_AVALUGG] = sAvaluggFormSpeciesIdTable,
[SPECIES_AVALUGG] = sAvaluggFormSpeciesIdTable,
[SPECIES_XERNEAS] = sXerneasFormSpeciesIdTable,
[SPECIES_ZYGARDE] = sZygardeFormSpeciesIdTable,
[SPECIES_DIANCIE] = sDiancieFormSpeciesIdTable,
@@ -394,7 +394,7 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] =
[SPECIES_TORNADUS_THERIAN] = sTornadusFormSpeciesIdTable,
[SPECIES_THUNDURUS_THERIAN] = sThundurusFormSpeciesIdTable,
[SPECIES_LANDORUS_THERIAN] = sLandorusFormSpeciesIdTable,
[SPECIES_ENAMORUS_THERIAN] = sEnamorusFormSpeciesIdTable,
[SPECIES_ENAMORUS_THERIAN] = sEnamorusFormSpeciesIdTable,
// Kyurem
[SPECIES_KYUREM_WHITE] = sKyuremFormSpeciesIdTable,
[SPECIES_KYUREM_BLACK] = sKyuremFormSpeciesIdTable,
+15 -15
View File
@@ -18095,8 +18095,8 @@ static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = {
LEVEL_UP_MOVE(15, MOVE_CALM_MIND),
//LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH),
LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY),
//LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
//LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT),
LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE),
LEVEL_UP_END
};
@@ -18105,7 +18105,7 @@ static const struct LevelUpMove sKleavorLevelUpLearnset[] = {
LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND),
LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE),
LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT),
//LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK),
//LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK),
//LEVEL_UP_MOVE(18, MOVE_AIR_SLASH),
LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE),
//LEVEL_UP_MOVE(29, MOVE_STONE_AXE),
@@ -18121,8 +18121,8 @@ static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = {
LEVEL_UP_MOVE(18, MOVE_SLASH),
//LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH),
//LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER),
LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
//LEVEL_UP_MOVE(47, MOVE_HEADLONG_RUSH),
LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
//LEVEL_UP_MOVE(47, MOVE_HEADLONG_RUSH),
LEVEL_UP_END
};
@@ -18135,7 +18135,7 @@ static const struct LevelUpMove sBasculegionLevelUpLearnset[] = {
LEVEL_UP_MOVE(25, MOVE_CRUNCH),
LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL),
//LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH),
LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE),
LEVEL_UP_END
};
@@ -18145,9 +18145,9 @@ static const struct LevelUpMove sSneaslerLevelUpLearnset[] = {
//LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW),
LEVEL_UP_MOVE(11, MOVE_SWIFT),
LEVEL_UP_MOVE(18, MOVE_SLASH),
//LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
//LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
//LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
//LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
LEVEL_UP_END
};
@@ -18938,7 +18938,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = {
LEVEL_UP_MOVE( 9, MOVE_BITE),
//LEVEL_UP_MOVE(15, MOVE_FIRE_FANG),
LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
LEVEL_UP_MOVE(29, MOVE_CRUNCH),
LEVEL_UP_MOVE(29, MOVE_CRUNCH),
LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
//LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ),
LEVEL_UP_END
@@ -18951,7 +18951,7 @@ static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = {
//LEVEL_UP_MOVE(15, MOVE_FIRE_FANG),
LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE),
LEVEL_UP_MOVE(29, MOVE_CRUNCH),
//LEVEL_UP_MOVE(29, MOVE_RAGING_FURY),
//LEVEL_UP_MOVE(29, MOVE_RAGING_FURY),
LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE),
//LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ),
LEVEL_UP_END
@@ -19015,9 +19015,9 @@ static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = {
LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH),
LEVEL_UP_MOVE(11, MOVE_SWIFT),
LEVEL_UP_MOVE(18, MOVE_SLASH),
//LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
//LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
//LEVEL_UP_MOVE(25, MOVE_POISON_JAB),
LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE),
//LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT),
LEVEL_UP_END
};
@@ -19116,7 +19116,7 @@ static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = {
};
static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = {
//LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE),
//LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW),
//LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD),
+14 -14
View File
@@ -1423,7 +1423,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_ESPEON,
NATIONAL_DEX_FROSLASS,
NATIONAL_DEX_UMBREON,
//NATIONAL_DEX_SNEASEL, //Hisuian Form
//NATIONAL_DEX_SNEASEL, //Hisuian Form
NATIONAL_DEX_HUNTAIL,
NATIONAL_DEX_CARNIVINE,
NATIONAL_DEX_WATCHOG,
@@ -1577,7 +1577,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_GLISCOR,
NATIONAL_DEX_DUBWOOL,
NATIONAL_DEX_SNEASLER,
//NATIONAL_DEX_BRAVIARY, //Hisuian Form
//NATIONAL_DEX_BRAVIARY, //Hisuian Form
NATIONAL_DEX_PURUGLY,
//NATIONAL_DEX_MANECTRIC, // Mega
NATIONAL_DEX_GOTHITELLE,
@@ -1600,7 +1600,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_HAKAMO_O,
NATIONAL_DEX_ALAKAZAM,
NATIONAL_DEX_HITMONTOP,
NATIONAL_DEX_ENAMORUS,
NATIONAL_DEX_ENAMORUS,
NATIONAL_DEX_GARDEVOIR,
NATIONAL_DEX_KELDEO,
NATIONAL_DEX_GRANBULL,
@@ -1660,7 +1660,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_HEATMOR,
//NATIONAL_DEX_LURANTIS, // Totem-sized
//NATIONAL_DEX_ZAPDOS, // Galarian Form
//NATIONAL_DEX_SAMUROTT, // Hisuian Form
//NATIONAL_DEX_SAMUROTT, // Hisuian Form
NATIONAL_DEX_MR_RIME,
NATIONAL_DEX_WHIRLIPEDE,
//NATIONAL_DEX_PINSIR, // Mega
@@ -1823,7 +1823,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_FERROTHORN,
NATIONAL_DEX_MUDBRAY,
NATIONAL_DEX_ZACIAN, // Hero of Many Battles
NATIONAL_DEX_BASCULEGION,
NATIONAL_DEX_BASCULEGION,
//NATIONAL_DEX_CHARIZARD, // Mega X
NATIONAL_DEX_SHELGON,
//NATIONAL_DEX_SALAMENCE, // Mega
@@ -1933,7 +1933,7 @@ const u16 gPokedexOrder_Weight[] =
//NATIONAL_DEX_AVALUGG, //Hisuian Form
NATIONAL_DEX_TYRANTRUM,
NATIONAL_DEX_RHYPERIOR,
NATIONAL_DEX_URSALUNA,
NATIONAL_DEX_URSALUNA,
NATIONAL_DEX_MAMOSWINE,
// 661.4 - 667.0 lbs / 300.0 - 307.1 kg
NATIONAL_DEX_GOLEM,
@@ -2642,7 +2642,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_GURDURR,
NATIONAL_DEX_LEAVANNY,
NATIONAL_DEX_WHIRLIPEDE,
//NATIONAL_DEX_LILLIGANT, //Hisuian Form
//NATIONAL_DEX_LILLIGANT, //Hisuian Form
NATIONAL_DEX_CARRACOSTA,
NATIONAL_DEX_FRILLISH,
NATIONAL_DEX_ALOMOMOLA,
@@ -2697,7 +2697,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_DUBWOOL,
NATIONAL_DEX_BARRASKEWDA,
NATIONAL_DEX_FROSMOTH,
NATIONAL_DEX_SNEASLER,
NATIONAL_DEX_SNEASLER,
// 4'07" / 1.4m
//NATIONAL_DEX_BEEDRILL, // Mega
//NATIONAL_DEX_RATICATE, // Alolan Form, Totem-sized
@@ -2734,7 +2734,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_ZWEILOUS,
//NATIONAL_DEX_TORNADUS, // Therian Forme
NATIONAL_DEX_KELDEO,
//NATIONAL_DEX_AVALUGG, // Hisuian Form
//NATIONAL_DEX_AVALUGG, // Hisuian Form
//NATIONAL_DEX_GUMSHOOS, // Totem-sized
NATIONAL_DEX_CINDERACE,
NATIONAL_DEX_EISCUE,
@@ -2805,7 +2805,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_HYPNO,
NATIONAL_DEX_ZAPDOS,
//NATIONAL_DEX_ZAPDOS, // Galarian Form
//NATIONAL_DEX_TYPHLOSION, // Hisuian Form
//NATIONAL_DEX_TYPHLOSION, // Hisuian Form
NATIONAL_DEX_NOCTOWL,
NATIONAL_DEX_GARDEVOIR,
//NATIONAL_DEX_GARDEVOIR, // Mega
@@ -2818,15 +2818,15 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_EMBOAR,
NATIONAL_DEX_ZEBSTRIKA,
NATIONAL_DEX_ZOROARK,
//NATIONAL_DEX_ZOROARK, // Hisuian Form
//NATIONAL_DEX_ZOROARK, // Hisuian Form
NATIONAL_DEX_DRUDDIGON,
NATIONAL_DEX_BISHARP,
NATIONAL_DEX_BOUFFALANT,
//NATIONAL_DEX_BRAVIARY, // Hisuian Form
//NATIONAL_DEX_BRAVIARY, // Hisuian Form
NATIONAL_DEX_VOLCARONA,
NATIONAL_DEX_CHESNAUGHT,
NATIONAL_DEX_DECIDUEYE,
//NATIONAL_DEX_DECIDUEYE, // Hisuian Form
//NATIONAL_DEX_DECIDUEYE, // Hisuian Form
NATIONAL_DEX_KOMMO_O,
NATIONAL_DEX_TOXTRICITY,
NATIONAL_DEX_GRAPPLOCT,
@@ -3010,7 +3010,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_MUDSDALE,
NATIONAL_DEX_MELMETAL,
NATIONAL_DEX_STONJOURNER,
NATIONAL_DEX_OVERQWIL,
NATIONAL_DEX_OVERQWIL,
// 8'06" / 2.6m
NATIONAL_DEX_BEARTIC,
//NATIONAL_DEX_VIKAVOLT, // Totem-sized
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+35 -35
View File
@@ -2691,144 +2691,144 @@ static const u8 sVeeveeVolleyDescription[] = _(
static const u8 sDoubleIronBashDescription[] = _(
"The user spins and hits with\n"
"its arms. May cause flinch.");
// GEN 8
static const u8 sDynamaxCannonDescription[] = _(
"Fires a strong beam. Deals\n"
"2x damage to Dynamaxed foes.");
static const u8 sSnipeShotDescription[] = _(
"The user ignores effects\n"
"that draw in moves.");
static const u8 sJawLockDescription[] = _(
"Prevents the user and\n"
"the target from escaping.");
static const u8 sStuffCheeksDescription[] = _(
"Consumes the user's Berry,\n"
"then sharply raises Def.");
static const u8 sNoRetreatDescription[] = _(
"Raises all of the user's\n"
"stats but prevents escape.");
static const u8 sTarShotDescription[] = _(
"Lowers the foe's Speed and\n"
"makes it weak to Fire.");
static const u8 sMagicPowderDescription[] = _(
"Magic powder changes the\n"
"target into a Psychic-type.");
static const u8 sDragonDartsDescription[] = _(
"The user attacks twice. Two\n"
"targets are hit once each.");
static const u8 sTeatimeDescription[] = _(
"All Pokémon have teatime\n"
"and eat their Berries.");
static const u8 sOctolockDescription[] = _(
"Traps the foe to lower Def\n"
"and Sp. Def fall each turn.");
static const u8 sBoltBeakDescription[] = _(
"Double power if the user\n"
"moves before the target.");
static const u8 sFishiousRendDescription[] = _(
"Double power if the user\n"
"moves before the target.");
static const u8 sCourtChangeDescription[] = _(
"The user swaps effects on\n"
"either side of the field.");
static const u8 sClangorousSoulDescription[] = _(
"The user uses some of its\n"
"HP to raise all its stats.");
static const u8 sBodyPressDescription[] = _(
"Does more damage the\n"
"higher the user's Def.");
static const u8 sDecorateDescription[] = _(
"The user sharply raises\n"
"the target's Atk and Sp.Atk");
static const u8 sDrumBeatingDescription[] = _(
"Plays a drum to attack.\n"
"The foe's Speed is lowered.");
static const u8 sSnapTrapDescription[] = _(
"Snares the target in a snap\n"
"trap for four to five turns.");
static const u8 sPyroBallDescription[] = _(
"Launches a fiery ball at the\n"
"target. It may cause a burn.");
static const u8 sBehemothBladeDescription[] = _(
"Strikes as a sword. Deals 2x\n"
"damage to Dynamaxed foes.");
static const u8 sBehemothBashDescription[] = _(
"Attacks as a shield. Deals 2x\n"
"damage to Dynamaxed foes.");
static const u8 sAuraWheelDescription[] = _(
"Raises Speed to attack. The\n"
"Type is based on its form.");
static const u8 sBreakingSwipeDescription[] = _(
"Swings its tail to attack.\n"
"Lowers the Atk of those hit.");
static const u8 sBranchPokeDescription[] = _(
"The user pokes the target\n"
"with a pointed branch.");
static const u8 sOverdriveDescription[] = _(
"The user twangs its guitar,\n"
"causing strong vibrations.");
static const u8 sAppleAcidDescription[] = _(
"Attacks with tart apple acid\n"
"to lower the foe's Sp. Def.");
static const u8 sGravAppleDescription[] = _(
"Drops an apple from above.\n"
"Lowers the foe's Defense.");
static const u8 sSpiritBreakDescription[] = _(
"Attacks with spirit-breaking\n"
"force. Lowers Sp. Atk.");
static const u8 sStrangeSteamDescription[] = _(
"Emits a strange steam to\n"
"potentially confuse the foe.");
static const u8 sLifeDewDescription[] = _(
"Scatters water to restore\n"
"the HP of itself and allies.");
static const u8 sObstructDescription[] = _(
"Protects itself, harshly\n"
"lowering Def on contact.");
static const u8 sFalseSurrenderDescription[] = _(
"Bows to stab the foe\n"
"with hair. It never misses.");
static const u8 sMeteorAssaultDescription[] = _(
"Attacks with a thick leek.\n"
"The user must then rest.");
static const u8 sEternabeamDescription[] = _(
"Eternatus' strongest move.\n"
"The user rests next turn.");
static const u8 sSteelBeamDescription[] = _(
"Fires a beam of steel from\n"
"its body. It hurts the user.");
+1 -1
View File
@@ -1604,7 +1604,7 @@ static const u8 sText_Menacing_Moonraze_Maelstrom[] = _("Menacing Moonraze Maels
static const u8 sText_Light_That_Burns_The_Sky[] = _("Light That Burns The Sky");
static const u8 sText_Soul_Stealing_7_Star_Strike[] = _("Soul Stealing 7 Star Strike");
const u8 *const gZMoveNames[] =
const u8 *const gZMoveNames[] =
{
[MOVE_BREAKNECK_BLITZ - FIRST_Z_MOVE] = sText_Breakneck_Blitz,
[MOVE_ALL_OUT_PUMMELING - FIRST_Z_MOVE] = sText_All_Out_Pummeling,
+2 -2
View File
@@ -261,7 +261,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
CalculateMonStats(&pokemon);
species = newSpecies;
}
if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
{
experience = GetMonData(&pokemon, MON_DATA_EXP) + daycareMon->steps;
@@ -1359,7 +1359,7 @@ static u8 ModifyBreedingScoreForOvalCharm(u8 score)
return 88;
}
}
return score;
}
+2 -2
View File
@@ -1624,7 +1624,7 @@ static void DebugAction_Flags_CatchingOnOff(u8 taskId)
FlagToggle(B_FLAG_NO_CATCHING);
#endif
}
// *******************************
// Actions Variables
static void DebugAction_Vars_Vars(u8 taskId)
@@ -2720,7 +2720,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
}
//Pokedex entry
nationalDexNum = SpeciesToNationalPokedexNum(species);
nationalDexNum = SpeciesToNationalPokedexNum(species);
switch(sentToPc)
{
case MON_GIVEN_TO_PARTY:
+2 -2
View File
@@ -1211,7 +1211,7 @@ static void ShowDecorationOnMap_(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight,
{
x = mapX + i;
attributes = GetMetatileAttributesById(NUM_TILES_IN_PRIMARY + gDecorations[decoration].tiles[j * decWidth + i]);
if (MetatileBehavior_IsSecretBaseImpassable(attributes & METATILE_ATTR_BEHAVIOR_MASK) == TRUE
if (MetatileBehavior_IsSecretBaseImpassable(attributes & METATILE_ATTR_BEHAVIOR_MASK) == TRUE
|| (gDecorations[decoration].permission != DECORPERM_PASS_FLOOR && (attributes >> METATILE_ATTR_LAYER_SHIFT) != METATILE_LAYER_TYPE_NORMAL))
impassableFlag = MAPGRID_COLLISION_MASK;
else
@@ -1482,7 +1482,7 @@ static bool8 IsSecretBaseTrainerSpot(u8 behaviorAt, u16 layerType)
// Can't place decoration where the player was standing when they interacted with the PC
static bool8 IsntInitialPosition(u8 taskId, s16 x, s16 y, u16 layerType)
{
if (x == gTasks[taskId].tInitialX + MAP_OFFSET
if (x == gTasks[taskId].tInitialX + MAP_OFFSET
&& y == gTasks[taskId].tInitialY + MAP_OFFSET
&& layerType != METATILE_LAYER_TYPE_NORMAL)
return FALSE;
+2 -2
View File
@@ -665,7 +665,7 @@ void StartDodrioBerryPicking(u16 partyId, void (*exitCallback)(void))
{
sExitingGame = FALSE;
if (gReceivedRemoteLinkPlayers != 0 && (sGame = AllocZeroed(sizeof(*sGame))))
if (gReceivedRemoteLinkPlayers && (sGame = AllocZeroed(sizeof(*sGame))))
{
ResetTasksAndSprites();
InitDodrioGame(sGame);
@@ -775,7 +775,7 @@ static void Task_StartDodrioGame(u8 taskId)
case 3:
if (IsLinkTaskFinished())
{
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
+3 -3
View File
@@ -112,7 +112,7 @@ static bool32 ValidateEReaderConnection(void)
REG_IME = 0;
*(u64 *)handshakes = *(u64 *)gLink.handshakeBuffer;
REG_IME = backupIME;
// Validate that we are player 1, the EReader is player 2,
// and that players 3 and 4 are empty.
if (handshakes[0] == SLAVE_HANDSHAKE && handshakes[1] == EREADER_HANDSHAKE
@@ -154,8 +154,8 @@ enum {
static u32 TryReceiveCard(u8 *state, u16 *timer)
{
if (*state >= RECV_STATE_EXCHANGE
&& *state <= RECV_STATE_WAIT_DISCONNECT
if (*state >= RECV_STATE_EXCHANGE
&& *state <= RECV_STATE_WAIT_DISCONNECT
&& HasLinkErrorOccurred())
{
// Return error status if an error occurs
+1 -1
View File
@@ -2624,7 +2624,7 @@ bool8 ObjectEventIsTrainerAndCloseToPlayer(struct ObjectEvent *objectEvent)
minY = objY - objectEvent->trainerRange_berryTreeId;
maxX = objX + objectEvent->trainerRange_berryTreeId;
maxY = objY + objectEvent->trainerRange_berryTreeId;
if (minX > playerX || maxX < playerX
if (minX > playerX || maxX < playerX
|| minY > playerY || maxY < playerY)
return FALSE;
+1 -1
View File
@@ -565,7 +565,7 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon)
SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_HELD_ITEM, &data);
SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, &data);
SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_ENCRYPT_SEPARATOR, &data);
#if P_SHEDINJA_BALL >= GEN_4
SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_POKEBALL, &ball);
RemoveBagItem(ball, 1);
+9 -9
View File
@@ -251,7 +251,7 @@ static const struct PacifidlogMetatileOffsets *GetPacifidlogBridgeMetatileOffset
static void TrySetPacifidlogBridgeMetatiles(const struct PacifidlogMetatileOffsets *offsets, s16 x, s16 y, bool32 redrawMap)
{
offsets = GetPacifidlogBridgeMetatileOffsets(offsets, MapGridGetMetatileBehaviorAt(x, y));
// If offsets is NULL, position is not a log (don't set it)
if (offsets)
{
@@ -301,7 +301,7 @@ static bool32 ShouldRaisePacifidlogLogs(s16 newX, s16 newY, s16 oldX, s16 oldY)
}
else if (MetatileBehavior_IsPacifidlogHorizontalLogLeft(oldBehavior))
{
// Still on same one if moved from left to right
// Still on same one if moved from left to right
if (newX > oldX)
return FALSE;
}
@@ -340,13 +340,13 @@ static bool32 ShouldSinkPacifidlogLogs(s16 newX, s16 newY, s16 oldX, s16 oldY)
}
else if (MetatileBehavior_IsPacifidlogHorizontalLogLeft(newBehavior))
{
// Still on same one if moved from right to left
// Still on same one if moved from right to left
if (newX < oldX)
return FALSE;
}
else if (MetatileBehavior_IsPacifidlogHorizontalLogRight(newBehavior))
{
// Still on same one if moved from left to right
// Still on same one if moved from left to right
if (newX > oldX)
return FALSE;
}
@@ -371,7 +371,7 @@ static void PacifidlogBridgePerStepCallback(u8 taskId)
case 0:
tPrevX = x;
tPrevY = y;
// If player is already standing on a log when the callback
// is set then immediately set it to submerged
TrySetLogBridgeFullySubmerged(x, y, TRUE);
@@ -424,7 +424,7 @@ static void PacifidlogBridgePerStepCallback(u8 taskId)
{
// If player's current position is a log submerge it fully.
TrySetLogBridgeFullySubmerged(x, y, TRUE);
// Player's previous position is not the other end of a log
// they're standing on, try to raise their previous position.
if (tToRaiseX != -1 && tToRaiseY != -1)
@@ -499,7 +499,7 @@ static void FortreeBridgePerStepCallback(u8 taskId)
case 0:
tPrevX = x;
tPrevY = y;
// If player is already on bridge when callback is set then lower it immediately.
if (MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y)))
{
@@ -518,7 +518,7 @@ static void FortreeBridgePerStepCallback(u8 taskId)
isFortreeBridgeCur = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(x, y));
isFortreeBridgePrev = MetatileBehavior_IsFortreeBridge(MapGridGetMetatileBehaviorAt(prevX, prevY));
// Make sure player isn't below bridge
elevation = PlayerGetElevation();
onBridgeElevation = FALSE;
@@ -672,7 +672,7 @@ static void SootopolisGymIcePerStepCallback(u8 taskId)
// End if player hasn't moved
if (x == tPrevX && y == tPrevY)
return;
tPrevX = x;
tPrevY = y;
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+9 -8
View File
@@ -87,13 +87,13 @@ void InitMapFromSavedGame(void)
void InitBattlePyramidMap(bool8 setPlayerPosition)
{
CpuFastFill(MAPGRID_UNDEFINED << 16 | MAPGRID_UNDEFINED, sBackupMapData, sizeof(sBackupMapData));
CpuFastFill16(MAPGRID_UNDEFINED, sBackupMapData, sizeof(sBackupMapData));
GenerateBattlePyramidFloorLayout(sBackupMapData, setPlayerPosition);
}
void InitTrainerHillMap(void)
{
CpuFastFill(MAPGRID_UNDEFINED << 16 | MAPGRID_UNDEFINED, sBackupMapData, sizeof(sBackupMapData));
CpuFastFill16(MAPGRID_UNDEFINED, sBackupMapData, sizeof(sBackupMapData));
GenerateTrainerHillFloorLayout(sBackupMapData);
}
@@ -753,7 +753,7 @@ static int IsPosInConnectingMap(struct MapConnection *connection, int x, int y)
return FALSE;
}
struct MapConnection *GetConnectionAtCoords(s16 x, s16 y)
struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y)
{
int count;
struct MapConnection *connection;
@@ -860,12 +860,13 @@ static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTil
}
}
static void FieldmapPaletteDummy(u16 offset, u16 size)
// Below two are dummied functions from FRLG, used to tint the overworld palettes for the Quest Log
static void ApplyGlobalTintToPaletteEntries(u16 offset, u16 size)
{
}
static void FieldmapUnkDummy(void)
static void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count)
{
}
@@ -880,17 +881,17 @@ void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size)
{
LoadPalette(&black, destOffset, 2);
LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - 2);
FieldmapPaletteDummy(destOffset + 1, (size - 2) >> 1);
ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1);
}
else if (tileset->isSecondary == TRUE)
{
LoadPalette(((u16 *)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size);
FieldmapPaletteDummy(destOffset, size >> 1);
ApplyGlobalTintToPaletteEntries(destOffset, size >> 1);
}
else
{
LoadCompressedPalette((u32 *)tileset->palettes, destOffset, size);
FieldmapPaletteDummy(destOffset, size >> 1);
ApplyGlobalTintToPaletteEntries(destOffset, size >> 1);
}
}
}
-2
View File
@@ -15,8 +15,6 @@
#include "constants/items.h"
#include "constants/hold_effects.h"
extern u16 gUnknown_0203CF30[];
// this file's functions
static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count);
static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count);
+2 -2
View File
@@ -457,7 +457,7 @@ static void CheckForHiddenItemsInMapConnection(u8 taskId)
|| var2 > y
|| y >= height)
{
struct MapConnection *conn = GetConnectionAtCoords(x, y);
struct MapConnection *conn = GetMapConnectionAtPos(x, y);
if (conn && IsHiddenItemPresentInConnection(conn, x, y) == TRUE)
SetDistanceOfClosestHiddenItem(taskId, x - playerX, y - playerY);
}
@@ -1188,7 +1188,7 @@ void ItemUseInBattle_EnigmaBerry(u8 taskId)
}
}
void ItemUseOutOfBattle_FormChange(u8 taskId)
void ItemUseOutOfBattle_FormChange(u8 taskId)
{
gItemUseCB = ItemUseCB_FormChange;
gTasks[taskId].data[0] = FALSE;
+6 -6
View File
@@ -61,7 +61,7 @@ struct SioInfo
u8 filler[92];
};
// Struct is mostly empty, presumably because usage of
// Struct is mostly empty, presumably because usage of
// its fields was largely removed before release
struct RfuDebug
{
@@ -1115,7 +1115,7 @@ static void RfuHandleReceiveCommand(u8 unused)
{
gRfu.recvBlock[i].receiving = RECV_STATE_FINISHED;
Rfu_SetBlockReceivedFlag(i);
if (GetHostRfuGameData()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers != 0 && gRfu.parentChild == MODE_CHILD)
if (GetHostRfuGameData()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers && gRfu.parentChild == MODE_CHILD)
ValidateAndReceivePokemonSioInfo(gBlockRecvBuffer);
}
}
@@ -1643,7 +1643,7 @@ bool32 RfuTryDisconnectLeavingChildren(void)
{
u8 childrenLeaving = 0;
s32 i;
// Check all children, get those waiting to be disconnected
for (i = 0; i < RFU_CHILD_MAX; i++)
{
@@ -2123,7 +2123,7 @@ void SetUnionRoomChatPlayerData(u32 numPlayers)
// Only trainerId is shifted by the number of children, so the active flag and gender
// are only ever set for the first child
partnerInfo |= ((PINFO_ACTIVE_FLAG
| ((gLinkPlayers[gRfu.linkPlayerIdx[i]].gender & 1) << PINFO_GENDER_SHIFT)
| ((gLinkPlayers[gRfu.linkPlayerIdx[i]].gender & 1) << PINFO_GENDER_SHIFT)
| (gLinkPlayers[gRfu.linkPlayerIdx[i]].trainerId & PINFO_TID_MASK)) << (numConnectedChildren * 8));
numConnectedChildren++;
if (numConnectedChildren == numPlayers - 1)
@@ -2477,7 +2477,7 @@ static void LinkManagerCB_UnionRoom(u8 msg, u8 paramCount)
rfu_LMAN_stopManager(FALSE);
}
if (gRfuLinkStatus->parentChild == MODE_NEUTRAL
if (gRfuLinkStatus->parentChild == MODE_NEUTRAL
&& !lman.pcswitch_flag
&& FuncIsActiveTask(Task_UnionRoomListen) == TRUE)
gRfu.state = RFUSTATE_UR_CONNECT;
@@ -2816,7 +2816,7 @@ static bool32 IsPartnerActivityIncompatible(s16 activity, struct RfuGameData *pa
}
else if (activity == (ACTIVITY_TRADE | IN_UNION_ROOM))
{
// Verify that the trade offered hasn't changed
// Verify that the trade offered hasn't changed
struct RfuGameData *original = &gRfu.parent;
if (original->tradeSpecies == SPECIES_EGG)
{
+1 -1
View File
@@ -824,7 +824,7 @@ void UpdateWirelessStatusIndicatorSprite(void)
struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId];
u8 signalStrength = RFU_LINK_ICON_LEVEL4_MAX;
u8 i = 0;
// Get weakest signal strength
if (gRfuLinkStatus->parentChild == MODE_PARENT)
{
+5 -5
View File
@@ -29,9 +29,9 @@ struct LoadedSaveData
};
// EWRAM DATA
EWRAM_DATA struct SaveBlock2DMA gSaveblock2 = {0};
EWRAM_DATA struct SaveBlock1DMA gSaveblock1 = {0};
EWRAM_DATA struct PokemonStorageDMA gPokemonStorage = {0};
EWRAM_DATA struct SaveBlock2ASLR gSaveblock2 = {0};
EWRAM_DATA struct SaveBlock1ASLR gSaveblock1 = {0};
EWRAM_DATA struct PokemonStorageASLR gPokemonStorage = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = 0;
@@ -58,12 +58,12 @@ void CheckForFlashMemory(void)
void ClearSav2(void)
{
CpuFill16(0, &gSaveblock2, sizeof(struct SaveBlock2DMA));
CpuFill16(0, &gSaveblock2, sizeof(struct SaveBlock2ASLR));
}
void ClearSav1(void)
{
CpuFill16(0, &gSaveblock1, sizeof(struct SaveBlock1DMA));
CpuFill16(0, &gSaveblock1, sizeof(struct SaveBlock1ASLR));
}
// Offset is the sum of the trainer id bytes
+1 -1
View File
@@ -795,7 +795,7 @@ u8 MetatileBehavior_GetBridgeType(u8 metatileBehavior)
&& metatileBehavior <= MB_BRIDGE_OVER_POND_HIGH)
return metatileBehavior - MB_BRIDGE_OVER_OCEAN;
if (metatileBehavior >= MB_BRIDGE_OVER_POND_MED_EDGE_1
if (metatileBehavior >= MB_BRIDGE_OVER_POND_MED_EDGE_1
&& metatileBehavior <= MB_BRIDGE_OVER_POND_MED_EDGE_2)
return BRIDGE_TYPE_POND_MED;
+1 -1
View File
@@ -315,7 +315,7 @@ static void Task_StaticCountdown_Run(u8 taskId)
u16 packet[RFU_PACKET_SIZE];
s16 *data = gTasks[taskId].data;
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
// Read link timer
if (gRecvCmds[0][1] == LINKCMD_COUNTDOWN)
+1 -1
View File
@@ -201,7 +201,7 @@ static void CB2_MysteryEventMenu(void)
case 6:
if (IsLinkConnectionEstablished())
{
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
if (GetLinkPlayerDataExchangeStatusTimed(2, 2) == EXCHANGE_DIFF_SELECTIONS)
{
+4 -4
View File
@@ -171,8 +171,8 @@ static bool32 ValidateWonderCard(const struct WonderCard *card)
return FALSE;
if (card->type >= CARD_TYPE_COUNT)
return FALSE;
if (!(card->sendType == SEND_TYPE_DISALLOWED
|| card->sendType == SEND_TYPE_ALLOWED
if (!(card->sendType == SEND_TYPE_DISALLOWED
|| card->sendType == SEND_TYPE_ALLOWED
|| card->sendType == SEND_TYPE_ALLOWED_ALWAYS))
return FALSE;
if (card->bgType >= NUM_WONDER_BGS)
@@ -429,7 +429,7 @@ u32 MysteryGift_CompareCardFlags(const u16 *flagId, const struct MysteryGiftLink
u32 MysteryGift_CheckStamps(const u16 *stamp, const struct MysteryGiftLinkGameData *data, const void *unused)
{
int stampsMissing = data->maxStamps - GetNumStampsInMetadata(&data->cardMetadata, data->maxStamps);
// Has full stamp card?
if (stampsMissing == 0)
return 1;
@@ -598,7 +598,7 @@ void MysteryGift_TryIncrementStat(u32 stat, u32 trainerId)
switch (stat)
{
case CARD_STAT_NUM_TRADES:
IncrementCardStatForNewTrainer(CARD_STAT_NUM_TRADES,
IncrementCardStatForNewTrainer(CARD_STAT_NUM_TRADES,
trainerId,
gSaveBlock1Ptr->mysteryGift.trainerIds[1],
ARRAY_COUNT(gSaveBlock1Ptr->mysteryGift.trainerIds[1]));
+3 -3
View File
@@ -1232,7 +1232,7 @@ static void Task_MysteryGift(u8 taskId)
data->state = MG_STATE_CLIENT_LINK_WAIT;
break;
case MG_STATE_CLIENT_LINK_WAIT:
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
ClearScreenInBg0(TRUE);
data->state = MG_STATE_CLIENT_COMMUNICATING;
@@ -1240,7 +1240,7 @@ static void Task_MysteryGift(u8 taskId)
}
else if (gSpecialVar_Result == LINKUP_FAILED)
{
// Link failed, return to link start menu
// Link failed, return to link start menu
ClearScreenInBg0(TRUE);
data->state = MG_STATE_SOURCE_PROMPT;
}
@@ -1528,7 +1528,7 @@ static void Task_MysteryGift(u8 taskId)
}
break;
case MG_STATE_SERVER_LINK_WAIT:
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
ClearScreenInBg0(TRUE);
data->state = MG_STATE_SERVER_LINK_START;
+9 -9
View File
@@ -340,7 +340,7 @@ static void BufferCardText(void)
if (sWonderCardData->card.idNumber > 999999)
sWonderCardData->card.idNumber = 999999;
ConvertIntToDecimalStringN(sWonderCardData->idNumberText, sWonderCardData->card.idNumber, STR_CONV_MODE_LEFT_ALIGN, 6);
// Copy body text
for (i = 0; i < WONDER_CARD_BODY_TEXT_LINES; i++)
{
@@ -364,12 +364,12 @@ static void BufferCardText(void)
break;
case CARD_TYPE_LINK_STAT:
sWonderCardData->giftText[0] = EOS;
// Load stats
stats[0] = sWonderCardData->cardMetadata.battlesWon < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.battlesWon : MAX_WONDER_CARD_STAT;
stats[1] = sWonderCardData->cardMetadata.battlesLost < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.battlesLost : MAX_WONDER_CARD_STAT;
stats[2] = sWonderCardData->cardMetadata.numTrades < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.numTrades : MAX_WONDER_CARD_STAT;
// Init stat text arrays
for (i = 0; i < ARRAY_COUNT(sWonderCardData->statTextData); i++)
{
@@ -446,7 +446,7 @@ static void DrawCardWindow(u8 whichWindow)
sCard_FooterTextOffsets[sWonderCardData->card.type],
sCard_TextColorTable[sWonderCardData->gfx->footerTextPal],
0, sWonderCardData->footerLine1Text);
// Print footer line 2
if (sWonderCardData->card.type != CARD_TYPE_LINK_STAT)
{
@@ -486,7 +486,7 @@ static void CreateCardSprites(void)
{
u8 i = 0;
sWonderCardData->monIconSpriteId = SPRITE_NONE;
// Create icon sprite
if (sWonderCardData->cardMetadata.iconSpecies != SPECIES_NONE)
{
@@ -505,7 +505,7 @@ static void CreateCardSprites(void)
sWonderCardData->stampSpriteIds[i][1] = SPRITE_NONE;
sWonderCardData->stampSpriteIds[i][0] = CreateSprite(&sSpriteTemplate_StampShadow, 216 - 32 * i, 144, 8);
if (sWonderCardData->cardMetadata.stampData[STAMP_SPECIES][i] != SPECIES_NONE)
sWonderCardData->stampSpriteIds[i][1] = CreateMonIconNoPersonality(GetIconSpeciesNoPersonality(sWonderCardData->cardMetadata.stampData[STAMP_SPECIES][i]),
sWonderCardData->stampSpriteIds[i][1] = CreateMonIconNoPersonality(GetIconSpeciesNoPersonality(sWonderCardData->cardMetadata.stampData[STAMP_SPECIES][i]),
SpriteCallbackDummy,
216 - 32 * i,
136, 0);
@@ -520,7 +520,7 @@ static void DestroyCardSprites(void)
// Destroy icon sprite
if (sWonderCardData->monIconSpriteId != SPRITE_NONE)
FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->monIconSpriteId]);
// Destroy stamp sprites
if (sWonderCardData->card.maxStamps != 0 && sWonderCardData->card.type == CARD_TYPE_STAMP)
{
@@ -865,7 +865,7 @@ u32 WonderNews_GetInput(u16 input)
static void BufferNewsText(void)
{
u8 i = 0;
// Copy title text
memcpy(sWonderNewsData->titleText, sWonderNewsData->news.titleText, WONDER_NEWS_TEXT_LENGTH);
sWonderNewsData->titleText[WONDER_NEWS_TEXT_LENGTH] = EOS;
@@ -896,7 +896,7 @@ static void DrawNewsWindows(void)
if (x < 0)
x = 0;
AddTextPrinterParameterized3(sWonderNewsData->windowIds[NEWS_WIN_TITLE], FONT_SHORT_COPY_1, x, 6, sNews_TextColorTable[sWonderNewsData->gfx->titleTextPal], 0, sWonderNewsData->titleText);
// Print body text
for (; i < WONDER_NEWS_BODY_TEXT_LINES; i++)
AddTextPrinterParameterized3(sWonderNewsData->windowIds[NEWS_WIN_BODY], FONT_SHORT_COPY_1, 0,
+2
View File
@@ -1167,6 +1167,8 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
}
}
#undef HIBYTE
static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite)
{
if (sprite->data[0]++ > 24)
+3 -3
View File
@@ -560,7 +560,7 @@ static void DoAreaGlow(void)
if (sPokedexAreaScreen->markerTimer > 12)
{
sPokedexAreaScreen->markerTimer = 0;
// Flash the marker
// With a max of 4, the marker will disappear twice
sPokedexAreaScreen->markerFlashCounter++;
@@ -737,7 +737,7 @@ static void CreateAreaMarkerSprites(void)
static void DestroyAreaScreenSprites(void)
{
u16 i;
// Destroy area marker sprites
FreeSpriteTilesByTag(TAG_AREA_MARKER);
FreeSpritePaletteByTag(TAG_AREA_MARKER);
@@ -772,7 +772,7 @@ static void CreateAreaUnknownSprites(void)
if (sPokedexAreaScreen->numOverworldAreas || sPokedexAreaScreen->numSpecialAreas)
{
// The current species is present on the map, don't create any "Area Unknown" sprites
// The current species is present on the map, don't create any "Area Unknown" sprites
for (i = 0; i < ARRAY_COUNT(sPokedexAreaScreen->areaUnknownSprites); i++)
sPokedexAreaScreen->areaUnknownSprites[i] = NULL;
}
+23 -20
View File
@@ -39,6 +39,7 @@
#include "trainer_hill.h"
#include "util.h"
#include "constants/abilities.h"
#include "constants/battle_config.h"
#include "constants/battle_frontier.h"
#include "constants/battle_move_effects.h"
#include "constants/battle_script_commands.h"
@@ -49,8 +50,8 @@
#include "constants/moves.h"
#include "constants/songs.h"
#include "constants/trainers.h"
#include "constants/union_room.h"
#include "constants/weather.h"
#include "constants/battle_config.h"
struct SpeciesItem
{
@@ -2951,7 +2952,7 @@ static const u8 sMonAnimationDelayTable[NUM_SPECIES - 1] =
#define PP_UP_SHIFTS_INV(val) (u8)~(val), (u8)~((val) << 2), (u8)~((val) << 4), (u8)~((val) << 6)
// PP Up bonuses are stored for a Pokémon as a single byte.
// There are 2 bits (a value 0-3) for each move slot that
// There are 2 bits (a value 0-3) for each move slot that
// represent how many PP Ups have been applied.
// The following arrays take a move slot id and return:
// gPPUpGetMask - A mask to get the number of PP Ups applied to that move slot
@@ -2978,7 +2979,9 @@ const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2] =
{40, 10}, // +6, MAX_STAT_STAGE
};
const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE_LINK_FACILITY_CLASSES] =
// The classes used by other players in the Union Room.
// These should correspond with the overworld graphics in sUnionRoomObjGfxIds
const u16 gUnionRoomFacilityClasses[NUM_UNION_ROOM_CLASSES * GENDER_COUNT] =
{
// Male classes
FACILITY_CLASS_COOLTRAINER_M,
@@ -2989,7 +2992,7 @@ const u16 gLinkPlayerFacilityClasses[NUM_MALE_LINK_FACILITY_CLASSES + NUM_FEMALE
FACILITY_CLASS_BUG_CATCHER,
FACILITY_CLASS_PKMN_BREEDER_M,
FACILITY_CLASS_GUITARIST,
// Female Classes
// Female classes
FACILITY_CLASS_COOLTRAINER_F,
FACILITY_CLASS_HEX_MANIAC,
FACILITY_CLASS_PICNICKER,
@@ -3304,7 +3307,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
| (gSaveBlock2Ptr->playerTrainerId[1] << 8)
| (gSaveBlock2Ptr->playerTrainerId[2] << 16)
| (gSaveBlock2Ptr->playerTrainerId[3] << 24);
if (CheckBagHasItem(ITEM_SHINY_CHARM, 1))
{
u32 shinyValue;
@@ -3412,7 +3415,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
}
}
#endif
}
if (gBaseStats[species].abilities[1])
@@ -3827,9 +3830,9 @@ u16 GetUnionRoomTrainerPic(void)
else
linkId = GetMultiplayerId() ^ 1;
arrId = gLinkPlayers[linkId].trainerId & 7;
arrId |= gLinkPlayers[linkId].gender << 3;
return FacilityClassToPicIndex(gLinkPlayerFacilityClasses[arrId]);
arrId = gLinkPlayers[linkId].trainerId % NUM_UNION_ROOM_CLASSES;
arrId |= gLinkPlayers[linkId].gender * NUM_UNION_ROOM_CLASSES;
return FacilityClassToPicIndex(gUnionRoomFacilityClasses[arrId]);
}
u16 GetUnionRoomTrainerClass(void)
@@ -3842,9 +3845,9 @@ u16 GetUnionRoomTrainerClass(void)
else
linkId = GetMultiplayerId() ^ 1;
arrId = gLinkPlayers[linkId].trainerId & 7;
arrId |= gLinkPlayers[linkId].gender << 3;
return gFacilityClassToTrainerClass[gLinkPlayerFacilityClasses[arrId]];
arrId = gLinkPlayers[linkId].trainerId % NUM_UNION_ROOM_CLASSES;
arrId |= gLinkPlayers[linkId].gender * NUM_UNION_ROOM_CLASSES;
return gFacilityClassToTrainerClass[gUnionRoomFacilityClasses[arrId]];
}
void CreateEventLegalEnemyMon(void)
@@ -5289,7 +5292,7 @@ u16 GetAbilityBySpecies(u16 species, u8 abilityNum)
gLastUsedAbility = gBaseStats[species].abilities[abilityNum];
else
gLastUsedAbility = ABILITY_NONE;
if (abilityNum >= NUM_NORMAL_ABILITY_SLOTS) // if abilityNum is empty hidden ability, look for other hidden abilities
{
for (i = NUM_NORMAL_ABILITY_SLOTS; i < NUM_ABILITY_SLOTS && gLastUsedAbility == ABILITY_NONE; i++)
@@ -5297,12 +5300,12 @@ u16 GetAbilityBySpecies(u16 species, u8 abilityNum)
gLastUsedAbility = gBaseStats[species].abilities[i];
}
}
for (i = 0; i < NUM_ABILITY_SLOTS && gLastUsedAbility == ABILITY_NONE; i++) // look for any non-empty ability
{
gLastUsedAbility = gBaseStats[species].abilities[i];
}
return gLastUsedAbility;
}
@@ -6069,7 +6072,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
case 4: // ITEM5_PP_MAX
dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2);
temp2 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex);
// Check if 3 PP Ups have been applied already, and that the move has a total PP of at least 5 (excludes Sketch)
if (dataUnsigned < 3 && temp2 >= 5)
{
@@ -6349,7 +6352,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s
{
partnerSpecies = GetMonData(tradePartner, MON_DATA_SPECIES, 0);
partnerHeldItem = GetMonData(tradePartner, MON_DATA_HELD_ITEM, 0);
if (partnerHeldItem == ITEM_ENIGMA_BERRY)
partnerHoldEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
else
@@ -7720,7 +7723,7 @@ void SetWildMonHeldItem(void)
{
if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE)
continue; // prevent ovewriting previously set item
rnd = Random() % 100;
species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, 0);
if (gMapHeader.mapLayoutId == LAYOUT_ALTERING_CAVE)
@@ -8046,7 +8049,7 @@ static bool8 ShouldSkipFriendshipChange(void)
// Only the 'default' mode (MON_SPR_GFX_MODE_NORMAL) is used, which is set
// up to allocate 4 sprites using the battler sprite templates (gBattlerSpriteTemplates).
// MON_SPR_GFX_MODE_BATTLE is identical but never used.
// MON_SPR_GFX_MODE_FULL_PARTY is set up to allocate 7 sprites (party + trainer?)
// MON_SPR_GFX_MODE_FULL_PARTY is set up to allocate 7 sprites (party + trainer?)
// using a generic 64x64 template, and is also never used.
// Between the unnecessarily large sizes below, a mistake allocating the spritePointers
@@ -8108,7 +8111,7 @@ struct MonSpritesGfxManager *CreateMonSpritesGfxManager(u8 managerId, u8 mode)
gfx->dataSize = 1;
gfx->mode = MON_SPR_GFX_MODE_FULL_PARTY;
break;
// case MON_SPR_GFX_MODE_BATTLE:
// case MON_SPR_GFX_MODE_BATTLE:
case MON_SPR_GFX_MODE_NORMAL:
default:
gfx->numSprites = MAX_BATTLERS_COUNT;
+19 -19
View File
@@ -337,7 +337,7 @@ const u8 gFrontAnimNames[][34] =
[ANIM_SHAKE_GLOW_WHITE_SLOW] = _("SHAKE GLOW WHITE SLOW"),
[ANIM_SHAKE_GLOW_PURPLE_SLOW] = _("SHAKE GLOW PURPLE SLOW"),
};
const u8 gBattleBackgroundNames[][30] =
const u8 gBattleBackgroundNames[][30] =
{
[MAP_BATTLE_SCENE_NORMAL] = _("NORMAL "),
[MAP_BATTLE_SCENE_GYM] = _("GYM "),
@@ -354,7 +354,7 @@ const u8 gBattleBackgroundNames[][30] =
[MAP_BATTLE_SCENE_KYOGRE] = _("KYOGRE "),
[MAP_BATTLE_SCENE_RAYQUAZA] = _("RAYQUAZA "),
};
const u8 gBattleBackgroundTerrainNames[][26] =
const u8 gBattleBackgroundTerrainNames[][26] =
{
[BATTLE_TERRAIN_GRASS] = _("NORMAL - GRASS "),
[BATTLE_TERRAIN_LONG_GRASS] = _("NORMAL - LONG GRASS "),
@@ -403,13 +403,13 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data)
u8 textInstructionsSubmenuOneGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back {A_BUTTON} Submenu 2$");
u8 textInstructionsSubmenuTwo[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back$");
u8 textInstructionsSubmenuTwoGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back$");
u8 textBottom[] = _("BACK:\nFRONT:\nBG:$");
u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$");
u8 textBottomSubmenuTwo[] = _("B coords:\nF coords:\nF elev:");
u16 species = data->modifyArrows.currValue;
u8 textL[] = _("{L_BUTTON}");
u8 textR[] = _("{R_BUTTON}");
@@ -481,7 +481,7 @@ static void PrintDigitChars(struct PokemonDebugMenu *data)
for (i = 0; i < data->modifyArrows.maxDigits; i++)
text[i] = data->modifyArrows.charDigits[i];
text[i++] = CHAR_SPACE;
text[i++] = CHAR_HYPHEN;
@@ -490,7 +490,7 @@ static void PrintDigitChars(struct PokemonDebugMenu *data)
if (data->isFemale)
text[i++] = CHAR_FEMALE;
else
text[i++] = CHAR_MALE;
text[i++] = CHAR_MALE;
text[i++] = CHAR_HYPHEN;
}
@@ -641,7 +641,7 @@ static bool32 TryMoveDigit(struct PokemonDebugModifyArrows *modArrows, bool32 mo
if (charDigits[modArrows->currentDigit] == CHAR_0)
{
charDigits[modArrows->currentDigit] = CHAR_9;
for (i = modArrows->currentDigit - 1; i >= 0; i--)
{
if (charDigits[i] == CHAR_0)
@@ -796,7 +796,7 @@ static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 off
//FrontPicCoords
offset = gMonFrontPicCoords[species].y_offset + offset_picCoords;
//Elevation
offset -= GetElevationValue(species) + offset_elevation;
@@ -805,7 +805,7 @@ static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 off
if (y > DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8)
y = DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8;
return y;
}
@@ -839,7 +839,7 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data,
data->frontShadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, x, y + 29, 0xC8);
gSprites[data->frontShadowSpriteId].data[0] = data->frontspriteId;
gSprites[data->frontShadowSpriteId].callback = SpriteCB_EnemyShadowCustom;
gSprites[data->frontShadowSpriteId].oam.priority = 0;
gSprites[data->frontShadowSpriteId].invisible = invisible;
@@ -945,7 +945,7 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain)
LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2)));
LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26)));
LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60);
break;
break;
}
}
static void PrintBattleBgName(u8 taskId)
@@ -1005,7 +1005,7 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
{
if (increment)
data->battleBgType += 1;
else
else
data->battleBgType -= 1;
}
@@ -1148,7 +1148,7 @@ void CB2_Debug_Pokemon(void)
data->battleBgType = 0;
data->battleTerrain = 0;
LoadBattleBg(data->battleBgType , data->battleTerrain);
gMain.state++;
break;
case 2:
@@ -1377,7 +1377,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
data->animIdFront = sMonFrontAnimIdsTable[modArrows->currValue - 1];
UpdateMonAnimNames(taskId);
ResetOffsetSpriteValues(data);
UpdateBattlerValue(data);
ReloadPokemonSprites(data);
while (!(gMain.intrCheck & INTR_FLAG_VBLANK));
@@ -1486,7 +1486,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId)
if (JOY_NEW(START_BUTTON))
{
data->isShiny = !data->isShiny;
if(data->isShiny)
PlaySE(SE_SHINY);
@@ -1641,7 +1641,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId)
data->submenuYpos[2] += 1;
if (data->submenuYpos[2] >= 3)
data->submenuYpos[2] = 0;
data->yPosModifyArrows.currentDigit = data->submenuYpos[2];
gSprites[data->yPosModifyArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->yPosModifyArrows.currentDigit * 12;
}
@@ -1672,7 +1672,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data)
u16 species = data->currentmonId;
s16 offset_y;
u8 front_x = sBattlerCoords[0][1].x;
u8 front_y;
u8 front_y;
DestroySprite(&gSprites[data->frontspriteId]);
DestroySprite(&gSprites[data->backspriteId]);
@@ -1706,7 +1706,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data)
gSprites[data->frontspriteId].oam.priority = 0;
//Front Shadow
LoadAndCreateEnemyShadowSpriteCustom(data, species);
//Back
HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[2], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY));
BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 5);
@@ -1720,7 +1720,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data)
//Icon Sprite
data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY));
gSprites[data->iconspriteId].oam.priority = 0;
//Modify Arrows
LoadSpritePalette(&gSpritePalette_Arrow);
data->modifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW1_Y, 0);
+1 -1
View File
@@ -3742,7 +3742,7 @@ static void PrintMoveDetails(u16 move)
ShowSplitIcon(GetBattleMoveSplit(move));
#endif
PrintMovePowerAndAccuracy(move);
if (moveEffect != EFFECT_PLACEHOLDER)
PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0);
else
+1 -1
View File
@@ -904,7 +904,7 @@ static void StartOptionAnimations_Enter(void)
// Not selected, set default position
x = OPTION_DEFAULT_X;
}
// Slide new options in
StartOptionSlide(gfx->iconSprites[i], OPTION_EXIT_X, x, 12);
SetOptionInvisibility(gfx->iconSprites[i], FALSE);
+3 -3
View File
@@ -444,7 +444,7 @@ static void Task_MixingRecordsRecv(u8 taskId)
}
break;
case 1: // wait for handshake
if (gReceivedRemoteLinkPlayers != 0)
if (gReceivedRemoteLinkPlayers)
{
ConvertIntToDecimalStringN(gStringVar1, GetMultiplayerId_(), STR_CONV_MODE_LEADING_ZEROS, 2);
task->tState = 5;
@@ -879,7 +879,7 @@ static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *records, size
for (i = 0; i < linkPlayerCount; i++)
{
mixMail = (void *)records + i * recordSize;
// Count number of players that have at least
// one daycare Pokémon with no held item
if (canHoldItem[i][0] == TRUE || canHoldItem[i][1] == TRUE)
@@ -945,7 +945,7 @@ static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *records, size
case 4:
// 4 players can swap, select which 2 pairings will swap
ptr = idxs;
// Swap pair 1
playerSlot1 = sDaycareMailSwapIds_4Player[tableId][0];
playerSlot2 = sDaycareMailSwapIds_4Player[tableId][1];
Loaded 100 of 125 files, more files were not shown because too many files have changed in this diff. Show more