Merge branch 'pokemon_expansion' of https://github.com/rh-hideout/pokeemerald-expansion into PE/form-change-table
4
Makefile
@ -219,8 +219,8 @@ include songs.mk
|
||||
%.lz: % ; $(GFX) $< $@
|
||||
%.rl: % ; $(GFX) $< $@
|
||||
|
||||
$(CRY_SUBDIR)/cry_not_%.bin: $(CRY_SUBDIR)/cry_not_%.aif ; $(AIF) $< $@
|
||||
$(CRY_SUBDIR)/cry_%.bin: $(CRY_SUBDIR)/cry_%.aif ; $(AIF) $< $@ --compress
|
||||
$(CRY_SUBDIR)/uncomp_%.bin: $(CRY_SUBDIR)/uncomp_%.aif ; $(AIF) $< $@
|
||||
$(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress
|
||||
sound/%.bin: sound/%.aif ; $(AIF) $< $@
|
||||
|
||||
|
||||
|
@ -151,13 +151,13 @@
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
.endm
|
||||
|
||||
.macro cry_not sample @ not compressed
|
||||
.macro cry_uncomp sample @ not compressed
|
||||
.byte 0x0, 60, 0, 0
|
||||
.4byte \sample
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
.endm
|
||||
|
||||
.macro cry2_not sample @ not compressed
|
||||
.macro cry2_uncomp sample @ not compressed
|
||||
.byte 0x10, 60, 0, 0
|
||||
.4byte \sample
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
|
@ -1 +1 @@
|
||||
gUnknown_030062E8
|
||||
gFactorySelect_CurrentOptionFunc
|
||||
|
@ -1,6 +1,7 @@
|
||||
.equiv ID_NUMBER, 0x68736d53
|
||||
|
||||
.equiv PCM_DMA_BUF_SIZE, 1584
|
||||
.equiv MAX_DIRECTSOUND_CHANNELS, 12
|
||||
|
||||
.equiv C_V, 0x40
|
||||
|
||||
@ -93,7 +94,7 @@
|
||||
struct_field o_SoundInfo_plynote, 4
|
||||
struct_field o_SoundInfo_ExtVolPit, 4
|
||||
struct_field o_SoundInfo_gap2, 16
|
||||
struct_field o_SoundInfo_chans, 768
|
||||
struct_field o_SoundInfo_chans, MAX_DIRECTSOUND_CHANNELS * 64
|
||||
struct_field o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2
|
||||
struct_field SoundInfo_size, 0
|
||||
|
||||
|
@ -462,18 +462,18 @@ AI_CBM_Attract: @ 82DC5F5
|
||||
get_ability AI_TARGET
|
||||
if_equal ABILITY_OBLIVIOUS, Score_Minus10
|
||||
get_gender AI_USER
|
||||
if_equal 0, AI_CBM_Attract_CheckIfTargetIsFemale
|
||||
if_equal 254, AI_CBM_Attract_CheckIfTargetIsMale
|
||||
if_equal MON_MALE, AI_CBM_Attract_CheckIfTargetIsFemale
|
||||
if_equal MON_FEMALE, AI_CBM_Attract_CheckIfTargetIsMale
|
||||
goto Score_Minus10
|
||||
|
||||
AI_CBM_Attract_CheckIfTargetIsFemale: @ 82DC61A
|
||||
get_gender AI_TARGET
|
||||
if_equal 254, AI_CBM_Attract_End
|
||||
if_equal MON_FEMALE, AI_CBM_Attract_End
|
||||
goto Score_Minus10
|
||||
|
||||
AI_CBM_Attract_CheckIfTargetIsMale: @ 82DC627
|
||||
get_gender AI_TARGET
|
||||
if_equal 0, AI_CBM_Attract_End
|
||||
if_equal MON_MALE, AI_CBM_Attract_End
|
||||
goto Score_Minus10
|
||||
|
||||
AI_CBM_Attract_End: @ 82DC634
|
||||
@ -2057,12 +2057,22 @@ AI_CV_Protect_ScoreDown2:
|
||||
AI_CV_Protect_End:
|
||||
end
|
||||
|
||||
@ BUG: Foresight is only encouraged if the user is Ghost type or
|
||||
@ has high evasion, but should check target instead
|
||||
AI_CV_Foresight:
|
||||
.ifdef BUGFIX
|
||||
get_target_type1
|
||||
if_equal TYPE_GHOST, AI_CV_Foresight2
|
||||
get_target_type2
|
||||
if_equal TYPE_GHOST, AI_CV_Foresight2
|
||||
if_stat_level_more_than AI_TARGET, STAT_EVASION, 8, AI_CV_Foresight3
|
||||
.else
|
||||
get_user_type1
|
||||
if_equal TYPE_GHOST, AI_CV_Foresight2
|
||||
get_user_type2
|
||||
if_equal TYPE_GHOST, AI_CV_Foresight2
|
||||
if_stat_level_more_than AI_USER, STAT_EVASION, 8, AI_CV_Foresight3
|
||||
.endif
|
||||
score -2
|
||||
goto AI_CV_Foresight_End
|
||||
|
||||
@ -2329,13 +2339,13 @@ AI_CV_SemiInvulnerable2:
|
||||
if_status2 AI_TARGET, STATUS2_CURSED, AI_CV_SemiInvulnerable_TryEncourage
|
||||
if_status3 AI_TARGET, STATUS3_LEECHSEED, AI_CV_SemiInvulnerable_TryEncourage
|
||||
get_weather
|
||||
.ifdef BUGFIX
|
||||
.ifdef BUGFIX
|
||||
if_equal AI_WEATHER_HAIL, AI_CV_SemiInvulnerable_CheckIceType
|
||||
if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckSandstormTypes
|
||||
.else
|
||||
.else
|
||||
if_equal AI_WEATHER_HAIL, AI_CV_SemiInvulnerable_CheckSandstormTypes
|
||||
if_equal AI_WEATHER_SANDSTORM, AI_CV_SemiInvulnerable_CheckIceType
|
||||
.endif
|
||||
.endif
|
||||
goto AI_CV_SemiInvulnerable5
|
||||
|
||||
AI_CV_SemiInvulnerable_CheckSandstormTypes:
|
||||
@ -2404,11 +2414,11 @@ AI_CV_Hail_End:
|
||||
|
||||
@ BUG: Facade score is increased if the target is statused, but should be if the user is
|
||||
AI_CV_Facade:
|
||||
.ifdef BUGFIX
|
||||
.ifdef BUGFIX
|
||||
if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End
|
||||
.else
|
||||
.else
|
||||
if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End
|
||||
.endif
|
||||
.endif
|
||||
score +1
|
||||
AI_CV_Facade_End:
|
||||
end
|
||||
|
@ -374,41 +374,41 @@ gBattleAnims_Moves::
|
||||
|
||||
.align 2
|
||||
gBattleAnims_StatusConditions::
|
||||
.4byte Status_Poison
|
||||
.4byte Status_Confusion
|
||||
.4byte Status_Burn
|
||||
.4byte Status_Infatuation
|
||||
.4byte Status_Sleep
|
||||
.4byte Status_Paralysis
|
||||
.4byte Status_Freeze
|
||||
.4byte Status_Curse
|
||||
.4byte Status_Nightmare
|
||||
.4byte Status_Poison @ B_ANIM_STATUS_PSN
|
||||
.4byte Status_Confusion @ B_ANIM_STATUS_CONFUSION
|
||||
.4byte Status_Burn @ B_ANIM_STATUS_BRN
|
||||
.4byte Status_Infatuation @ B_ANIM_STATUS_INFATUATION
|
||||
.4byte Status_Sleep @ B_ANIM_STATUS_SLP
|
||||
.4byte Status_Paralysis @ B_ANIM_STATUS_PRZ
|
||||
.4byte Status_Freeze @ B_ANIM_STATUS_FRZ
|
||||
.4byte Status_Curse @ B_ANIM_STATUS_CURSED
|
||||
.4byte Status_Nightmare @ B_ANIM_STATUS_NIGHTMARE
|
||||
|
||||
.align 2
|
||||
gBattleAnims_General::
|
||||
.4byte General_CastformChange
|
||||
.4byte General_StatsChange
|
||||
.4byte General_SubstituteFade
|
||||
.4byte General_SubstituteAppear
|
||||
.4byte General_PokeblockThrow
|
||||
.4byte General_ItemKnockoff
|
||||
.4byte General_TurnTrap
|
||||
.4byte General_HeldItemEffect
|
||||
.4byte General_SmokeballEscape
|
||||
.4byte General_FocusBand
|
||||
.4byte General_Rain
|
||||
.4byte General_Sun
|
||||
.4byte General_Sandstorm
|
||||
.4byte General_Hail
|
||||
.4byte General_LeechSeedDrain
|
||||
.4byte General_MonHit
|
||||
.4byte General_ItemSteal
|
||||
.4byte General_SnatchMove
|
||||
.4byte General_FutureSightHit
|
||||
.4byte General_DoomDesireHit
|
||||
.4byte General_FocusPunchSetUp
|
||||
.4byte General_IngrainHeal
|
||||
.4byte General_WishHeal
|
||||
.4byte General_CastformChange @ B_ANIM_CASTFORM_CHANGE
|
||||
.4byte General_StatsChange @ B_ANIM_STATS_CHANGE
|
||||
.4byte General_SubstituteFade @ B_ANIM_SUBSTITUTE_FADE
|
||||
.4byte General_SubstituteAppear @ B_ANIM_SUBSTITUTE_APPEAR
|
||||
.4byte General_PokeblockThrow @ B_ANIM_POKEBLOCK_THROW
|
||||
.4byte General_ItemKnockoff @ B_ANIM_ITEM_KNOCKOFF
|
||||
.4byte General_TurnTrap @ B_ANIM_TURN_TRAP
|
||||
.4byte General_HeldItemEffect @ B_ANIM_HELD_ITEM_EFFECT
|
||||
.4byte General_SmokeballEscape @ B_ANIM_SMOKEBALL_ESCAPE
|
||||
.4byte General_FocusBand @ B_ANIM_FOCUS_BAND
|
||||
.4byte General_Rain @ B_ANIM_RAIN_CONTINUES
|
||||
.4byte General_Sun @ B_ANIM_SUN_CONTINUES
|
||||
.4byte General_Sandstorm @ B_ANIM_SANDSTORM_CONTINUES
|
||||
.4byte General_Hail @ B_ANIM_HAIL_CONTINUES
|
||||
.4byte General_LeechSeedDrain @ B_ANIM_LEECH_SEED_DRAIN
|
||||
.4byte General_MonHit @ B_ANIM_MON_HIT
|
||||
.4byte General_ItemSteal @ B_ANIM_ITEM_STEAL
|
||||
.4byte General_SnatchMove @ B_ANIM_SNATCH_MOVE
|
||||
.4byte General_FutureSightHit @ B_ANIM_FUTURE_SIGHT_HIT
|
||||
.4byte General_DoomDesireHit @ B_ANIM_DOOM_DESIRE_HIT
|
||||
.4byte General_FocusPunchSetUp @ B_ANIM_FOCUS_PUNCH_SETUP
|
||||
.4byte General_IngrainHeal @ B_ANIM_INGRAIN_HEAL
|
||||
.4byte General_WishHeal @ B_ANIM_WISH_HEAL
|
||||
|
||||
.align 2
|
||||
gBattleAnims_Special::
|
||||
|
@ -2860,7 +2860,7 @@ BattleScript_FaintedMonTryChooseAnother::
|
||||
switchhandleorder BS_FAINTED, 0x2
|
||||
jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother
|
||||
jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother
|
||||
jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother
|
||||
jumpifbattletype BATTLE_TYPE_RECORDED_LINK, BattleScript_FaintedMonChooseAnother
|
||||
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_FaintedMonChooseAnother
|
||||
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
|
||||
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother
|
||||
@ -2978,7 +2978,7 @@ BattleScript_LocalBattleLostPrintTrainersWinText::
|
||||
trainerslidein BS_ATTACKER
|
||||
waitstate
|
||||
printstring STRINGID_TRAINER1WINTEXT
|
||||
jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText
|
||||
jumpifbattletype BATTLE_TYPE_TOWER_LINK_MULTI, BattleScript_LocalBattleLostDoTrainer2WinText
|
||||
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
|
||||
BattleScript_LocalBattleLostDoTrainer2WinText::
|
||||
trainerslideout B_POSITION_OPPONENT_LEFT
|
||||
@ -3834,7 +3834,7 @@ BattleScript_MoveUsedIsConfusedNoMore::
|
||||
return
|
||||
|
||||
BattleScript_PrintPayDayMoneyString::
|
||||
printstring STRINGID_PKMNPICKEDUPITEM
|
||||
printstring STRINGID_PLAYERPICKEDUPMONEY
|
||||
waitmessage 0x40
|
||||
return
|
||||
|
||||
|
@ -168,7 +168,7 @@ BattleFrontier_BattleFactoryPreBattleRoom_EventScript_SwapMons:: @ 8259DF2
|
||||
fadescreen FADE_TO_BLACK
|
||||
factory_swapmons
|
||||
waitstate
|
||||
compare VAR_RESULT, 1
|
||||
compare VAR_RESULT, TRUE @ Did player keep current pokemon
|
||||
goto_if_eq BattleFrontier_BattleFactoryPreBattleRoom_EventScript_EnterBattleRoom
|
||||
factory_setswapped
|
||||
msgbox BattleFrontier_BattleFactoryPreBattleRoom_Text_YourSwapIsComplete, MSGBOX_DEFAULT
|
||||
|
@ -3,5 +3,5 @@ CaveOfOrigin_1F_MapScripts:: @ 8235768
|
||||
.byte 0
|
||||
|
||||
CaveOfOrigin_1F_OnTransition: @ 823576E
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers
|
||||
end
|
||||
|
@ -3,5 +3,5 @@ CaveOfOrigin_UnusedRubySapphireMap1_MapScripts:: @ 8235778
|
||||
.byte 0
|
||||
|
||||
CaveOfOrigin_UnusedRubySapphireMap1_OnTransition: @ 823577E
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers
|
||||
end
|
||||
|
@ -3,6 +3,6 @@ CaveOfOrigin_UnusedRubySapphireMap2_MapScripts:: @ 8235788
|
||||
.byte 0
|
||||
|
||||
CaveOfOrigin_UnusedRubySapphireMap2_OnTransition: @ 823578E
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers
|
||||
end
|
||||
|
||||
|
@ -3,6 +3,6 @@ CaveOfOrigin_UnusedRubySapphireMap3_MapScripts:: @ 8235798
|
||||
.byte 0
|
||||
|
||||
CaveOfOrigin_UnusedRubySapphireMap3_OnTransition: @ 823579E
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_SetTempVars
|
||||
call_if_set FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE, CaveOfOrigin_EventScript_DisableTriggers
|
||||
end
|
||||
|
||||
|
@ -209,7 +209,7 @@ gScriptCmdTable:: @ 81DB67C
|
||||
.4byte ScrCmd_checkmonobedience @ 0xce
|
||||
.4byte ScrCmd_gotoram @ 0xcf
|
||||
.4byte ScrCmd_nop1 @ 0xd0
|
||||
.4byte ScrCmd_warpD1 @ 0xd1
|
||||
.4byte ScrCmd_warpspinenter @ 0xd1
|
||||
.4byte ScrCmd_setmonmetlocation @ 0xd2
|
||||
.4byte ScrCmd_moverotatingtileobjects @ 0xd3
|
||||
.4byte ScrCmd_turnrotatingtileobjects @ 0xd4
|
||||
|
@ -36,7 +36,7 @@ CaveOfOrigin_EventScript_Shake:: @ 82722A7
|
||||
releaseall
|
||||
end
|
||||
|
||||
CaveOfOrigin_EventScript_SetTempVars:: @ 82722C1
|
||||
CaveOfOrigin_EventScript_DisableTriggers:: @ 82722C1
|
||||
setvar VAR_TEMP_1, 1
|
||||
setvar VAR_TEMP_2, 1
|
||||
setvar VAR_TEMP_3, 1
|
||||
|
@ -65,7 +65,7 @@ EventScript_PkmnCenterNurse_ReturnPkmn:: @ 82719E2
|
||||
goto_if_eq EventScript_PkmnCenterNurse_ReturnPkmn2
|
||||
message gText_RestoredPkmnToFullHealth
|
||||
waitmessage
|
||||
applymovement VAR_0x800B, EventScript_PkmnCenterNurse_Bow
|
||||
applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow
|
||||
waitmovement 0
|
||||
message gText_WeHopeToSeeYouAgain
|
||||
return
|
||||
@ -73,7 +73,7 @@ EventScript_PkmnCenterNurse_ReturnPkmn:: @ 82719E2
|
||||
EventScript_PkmnCenterNurse_ReturnPkmn2:: @ 8271A03
|
||||
message gText_ThankYouForWaiting
|
||||
waitmessage
|
||||
applymovement VAR_0x800B, EventScript_PkmnCenterNurse_Bow
|
||||
applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow
|
||||
waitmovement 0
|
||||
message gText_WeHopeToSeeYouAgain2
|
||||
return
|
||||
@ -84,7 +84,7 @@ EventScript_PkmnCenterNurse_PlayerWaitingInUnionRoom:: @ 8271A19
|
||||
setflag FLAG_NURSE_UNION_ROOM_REMINDER
|
||||
message CableClub_Text_PlayerIsWaiting
|
||||
waitmessage
|
||||
applymovement VAR_0x800B, EventScript_PkmnCenterNurse_Bow
|
||||
applymovement VAR_0x800B, Movement_PkmnCenterNurse_Bow
|
||||
waitmovement 0
|
||||
message gText_WeHopeToSeeYouAgain
|
||||
return
|
||||
@ -129,7 +129,7 @@ EventScript_PkmnCenterNurse_GoldCardHealPkmn:: @ 8271AC5
|
||||
goto EventScript_PkmnCenterNurse_HealPkmn
|
||||
end
|
||||
|
||||
EventScript_PkmnCenterNurse_Bow: @ 8271AD0
|
||||
Movement_PkmnCenterNurse_Bow: @ 8271AD0
|
||||
nurse_joy_bow
|
||||
delay_4
|
||||
step_end
|
||||
|
@ -6,16 +6,15 @@ EventScript_MixRecordsPrompt:: @ 8271D5E
|
||||
compare VAR_RESULT, YES
|
||||
goto_if_eq EventScript_MixRecords
|
||||
compare VAR_RESULT, NO
|
||||
goto_if_eq EventScript_DeclineMixRecords
|
||||
goto EventScript_DeclineMixRecords
|
||||
goto_if_eq EventScript_EndMixRecords
|
||||
goto EventScript_EndMixRecords
|
||||
|
||||
EventScript_MixRecords:: @ 8271D83
|
||||
special RecordMixingPlayerSpotTriggered
|
||||
waitstate
|
||||
lock
|
||||
faceplayer
|
||||
|
||||
EventScript_DeclineMixRecords:: @ 8271D89
|
||||
EventScript_EndMixRecords:: @ 8271D89
|
||||
message Text_WeHopeToSeeYouAgain
|
||||
waitmessage
|
||||
waitbuttonpress
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
# Bugs and Glitches
|
||||
|
||||
These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` preprocessor variable will fix some of these automatically.
|
||||
These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` and `UBFIX` preprocessor variables will fix some of these automatically. `UBFIX` will already be defined for MODERN builds.
|
||||
|
||||
Fixes are written in the `diff` format. If you've used Git before, this should look familiar:
|
||||
|
||||
@ -13,55 +13,9 @@ Fixes are written in the `diff` format. If you've used Git before, this should l
|
||||
|
||||
## Contents
|
||||
|
||||
- [RNG does not get seeded](#rng-does-not-get-seeded)
|
||||
- [Scrolling through items in the bag causes the image to flicker](#scrolling-through-items-in-the-bag-causes-the-image-to-flicker)
|
||||
|
||||
|
||||
## RNG does not get seeded
|
||||
|
||||
**Fix:** Add the following function to [src/main.c](https://github.com/pret/pokeemerald/blob/master/src/main.c):
|
||||
```diff
|
||||
+static void SeedRngWithRtc(void)
|
||||
+{
|
||||
+ u32 seed = RtcGetMinuteCount();
|
||||
+ seed = (seed >> 16) ^ (seed & 0xFFFF);
|
||||
+ SeedRng(seed);
|
||||
+}
|
||||
```
|
||||
|
||||
And edit `AgbMain`:
|
||||
|
||||
```diff
|
||||
...
|
||||
RtcInit();
|
||||
CheckForFlashMemory();
|
||||
InitMainCallbacks();
|
||||
InitMapMusic();
|
||||
+ SeedRngWithRtc();
|
||||
ClearDma3Requests();
|
||||
...
|
||||
```
|
||||
|
||||
This restores the code of Ruby/Sapphire.
|
||||
|
||||
**Alternate Fix:** Edit the following function in [src/title_screen.c](https://github.com/pret/pokeemerald/blob/master/src/title_screen.c):
|
||||
|
||||
```diff
|
||||
void CB2_InitTitleScreen(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
+ StartTimer1();
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
...
|
||||
```
|
||||
This matches what FRLG does and obtains the seed differently than RS, independently of the RTC.
|
||||
|
||||
## Scrolling through items in the bag causes the image to flicker
|
||||
|
||||
**Fix:** Add the following function to [src/item_menu_icons.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu_icons.c):
|
||||
@ -89,27 +43,9 @@ Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/p
|
||||
```diff
|
||||
...
|
||||
{
|
||||
- RemoveBagItemIconSprite(1 ^ gBagMenu->unk81B_1);
|
||||
+ HideBagItemIconSprite(gBagMenu->unk81B_1 ^ 1);
|
||||
+ RemoveBagItemIconSprite(gBagMenu->unk81B_1);
|
||||
if (a != -2)
|
||||
- RemoveBagItemIconSprite(1 ^ gBagMenu->itemIconSlot);
|
||||
+ HideBagItemIconSprite(gBagMenu->itemIconSlot ^ 1);
|
||||
+ RemoveBagItemIconSprite(gBagMenu->itemIconSlot);
|
||||
if (itemIndex != LIST_CANCEL)
|
||||
...
|
||||
```
|
||||
|
||||
## Pokémon that have an affine transform as part of their entry animation glitch when going in and out of Poké Balls without a screen transition in between
|
||||
|
||||
**Fix:** Edit `sub_817F77C` in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028):
|
||||
|
||||
```diff
|
||||
...
|
||||
-#ifdef BUGFIX
|
||||
else
|
||||
{
|
||||
// FIX: Reset these back to normal after they were changed so Poké Ball catch/release
|
||||
// animations without a screen transition in between don't break
|
||||
sprite->affineAnimPaused = FALSE;
|
||||
sprite->affineAnims = gUnknown_082FF694;
|
||||
}
|
||||
-#endif // BUGFIX
|
||||
}
|
||||
```
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
static void *sHeapStart;
|
||||
static u32 sHeapSize;
|
||||
static u32 malloc_c_unused_0300000c; // needed to align dma3_manager.o(.bss)
|
||||
static u32 sFiller; // needed to align dma3_manager.o(.bss)
|
||||
|
||||
#define MALLOC_SYSTEM_ID 0xA3A3
|
||||
|
||||
|
@ -1320,6 +1320,11 @@ void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 matrixNum, struct AffineAnim
|
||||
s16 ConvertScaleParam(s16 scale)
|
||||
{
|
||||
s32 val = 0x10000;
|
||||
// UB: possible division by zero
|
||||
#ifdef UBFIX
|
||||
if (scale == 0)
|
||||
return 0;
|
||||
#endif //UBFIX
|
||||
return val / scale;
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,6 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi
|
||||
{
|
||||
int i;
|
||||
u16 j;
|
||||
u8 *ptr;
|
||||
|
||||
if (!gFonts)
|
||||
return FALSE;
|
||||
@ -1235,7 +1234,6 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
|
||||
bool8 isJapanese;
|
||||
int minGlyphWidth;
|
||||
u32 (*func)(u16 glyphId, bool32 isJapanese);
|
||||
s32 result;
|
||||
int localLetterSpacing;
|
||||
u32 lineWidth;
|
||||
const u8 *bufferPointer;
|
||||
|
BIN
graphics/battle_anims/sprites/substitute_back.png
Normal file
After Width: | Height: | Size: 405 B |
BIN
graphics/battle_frontier/factory_screen/action_box_left.png
Normal file
After Width: | Height: | Size: 156 B |
BIN
graphics/battle_frontier/factory_screen/action_box_right.png
Normal file
After Width: | Height: | Size: 134 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 139 B |
After Width: | Height: | Size: 139 B |
BIN
graphics/battle_frontier/factory_screen/arrow.png
Normal file
After Width: | Height: | Size: 167 B |
BIN
graphics/battle_frontier/factory_screen/menu_highlight_left.png
Normal file
After Width: | Height: | Size: 135 B |
BIN
graphics/battle_frontier/factory_screen/menu_highlight_right.png
Normal file
After Width: | Height: | Size: 132 B |
BIN
graphics/battle_frontier/factory_screen/mon_pic_bg.png
Normal file
After Width: | Height: | Size: 138 B |
BIN
graphics/battle_frontier/factory_screen/mon_pic_bg_anim.png
Normal file
After Width: | Height: | Size: 158 B |
BIN
graphics/battle_frontier/factory_screen/pokeball.png
Normal file
After Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 993 B |
Before Width: | Height: | Size: 740 B After Width: | Height: | Size: 740 B |
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 884 B After Width: | Height: | Size: 884 B |
Before Width: | Height: | Size: 828 B After Width: | Height: | Size: 828 B |
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 115 B |
Before Width: | Height: | Size: 75 B |
Before Width: | Height: | Size: 72 B |
Before Width: | Height: | Size: 99 B |
Before Width: | Height: | Size: 77 B |
Before Width: | Height: | Size: 110 B |
Before Width: | Height: | Size: 82 B |
Before Width: | Height: | Size: 82 B |
Before Width: | Height: | Size: 98 B |
Before Width: | Height: | Size: 78 B |
@ -1,19 +0,0 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
||||
213 255 238
|
@ -85,8 +85,8 @@ enum
|
||||
|
||||
struct UnusedControllerStruct
|
||||
{
|
||||
u8 field_0:7;
|
||||
u8 flag_x80:1;
|
||||
u8 unk:7;
|
||||
u8 flag:1;
|
||||
};
|
||||
|
||||
struct HpAndStatus
|
||||
@ -145,19 +145,19 @@ enum
|
||||
CONTROLLER_STATUSXOR,
|
||||
CONTROLLER_DATATRANSFER,
|
||||
CONTROLLER_DMA3TRANSFER,
|
||||
CONTROLLER_31,
|
||||
CONTROLLER_PLAYBGM,
|
||||
CONTROLLER_32,
|
||||
CONTROLLER_TWORETURNVALUES,
|
||||
CONTROLLER_CHOSENMONRETURNVALUE,
|
||||
CONTROLLER_ONERETURNVALUE,
|
||||
CONTROLLER_ONERETURNVALUE_DUPLICATE,
|
||||
CONTROLLER_37,
|
||||
CONTROLLER_38,
|
||||
CONTROLLER_39,
|
||||
CONTROLLER_40,
|
||||
CONTROLLER_CLEARUNKVAR,
|
||||
CONTROLLER_SETUNKVAR,
|
||||
CONTROLLER_CLEARUNKFLAG,
|
||||
CONTROLLER_TOGGLEUNKFLAG,
|
||||
CONTROLLER_HITANIMATION,
|
||||
CONTROLLER_42,
|
||||
CONTROLLER_EFFECTIVENESSSOUND,
|
||||
CONTROLLER_PLAYSE,
|
||||
CONTROLLER_PLAYFANFAREORBGM,
|
||||
CONTROLLER_FAINTINGCRY,
|
||||
CONTROLLER_INTROSLIDE,
|
||||
@ -175,7 +175,7 @@ enum
|
||||
CONTROLLER_CMDS_COUNT
|
||||
};
|
||||
|
||||
extern struct UnusedControllerStruct gUnknown_02022D0C;
|
||||
extern struct UnusedControllerStruct gUnusedControllerStruct;
|
||||
|
||||
// general functions
|
||||
void HandleLinkBattleSetup(void);
|
||||
@ -222,10 +222,10 @@ void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
|
||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
|
||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
|
||||
void BtlController_EmitCmd37(u8 bufferId); // unused
|
||||
void BtlController_EmitCmd38(u8 bufferId, u8 b); // unused
|
||||
void BtlController_EmitCmd39(u8 bufferId); // unused
|
||||
void BtlController_EmitCmd40(u8 bufferId); // unused
|
||||
void BtlController_EmitClearUnkVar(u8 bufferId); // unused
|
||||
void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused
|
||||
void BtlController_EmitClearUnkFlag(u8 bufferId); // unused
|
||||
void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused
|
||||
void BtlController_EmitHitAnimation(u8 bufferId);
|
||||
void BtlController_EmitCmd42(u8 bufferId);
|
||||
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
|
||||
|
@ -44,38 +44,38 @@
|
||||
#define BIT_FLANK 2
|
||||
|
||||
// Battle Type Flags
|
||||
#define BATTLE_TYPE_DOUBLE (1 << 0)
|
||||
#define BATTLE_TYPE_LINK (1 << 1)
|
||||
#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set.
|
||||
#define BATTLE_TYPE_TRAINER (1 << 3)
|
||||
#define BATTLE_TYPE_FIRST_BATTLE (1 << 4)
|
||||
#define BATTLE_TYPE_20 (1 << 5)
|
||||
#define BATTLE_TYPE_MULTI (1 << 6)
|
||||
#define BATTLE_TYPE_SAFARI (1 << 7)
|
||||
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9)
|
||||
#define BATTLE_TYPE_ROAMER (1 << 10)
|
||||
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
|
||||
#define BATTLE_TYPE_LEGENDARY (1 << 13)
|
||||
#define BATTLE_TYPE_REGI (1 << 14)
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15)
|
||||
#define BATTLE_TYPE_DOME (1 << 16)
|
||||
#define BATTLE_TYPE_PALACE (1 << 17)
|
||||
#define BATTLE_TYPE_ARENA (1 << 18)
|
||||
#define BATTLE_TYPE_FACTORY (1 << 19)
|
||||
#define BATTLE_TYPE_PIKE (1 << 20)
|
||||
#define BATTLE_TYPE_PYRAMID (1 << 21)
|
||||
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
|
||||
#define BATTLE_TYPE_x800000 (1 << 23)
|
||||
#define BATTLE_TYPE_RECORDED (1 << 24)
|
||||
#define BATTLE_TYPE_x2000000 (1 << 25)
|
||||
#define BATTLE_TYPE_TRAINER_HILL (1 << 26)
|
||||
#define BATTLE_TYPE_SECRET_BASE (1 << 27)
|
||||
#define BATTLE_TYPE_GROUDON (1 << 28)
|
||||
#define BATTLE_TYPE_KYOGRE (1 << 29)
|
||||
#define BATTLE_TYPE_RAYQUAZA (1 << 30)
|
||||
#define BATTLE_TYPE_x80000000 (1 << 31)
|
||||
#define BATTLE_TYPE_DOUBLE (1 << 0)
|
||||
#define BATTLE_TYPE_LINK (1 << 1)
|
||||
#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set.
|
||||
#define BATTLE_TYPE_TRAINER (1 << 3)
|
||||
#define BATTLE_TYPE_FIRST_BATTLE (1 << 4)
|
||||
#define BATTLE_TYPE_LINK_IN_BATTLE (1 << 5) // Set on battle entry, cleared on exit. Checked rarely
|
||||
#define BATTLE_TYPE_MULTI (1 << 6)
|
||||
#define BATTLE_TYPE_SAFARI (1 << 7)
|
||||
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9)
|
||||
#define BATTLE_TYPE_ROAMER (1 << 10)
|
||||
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
|
||||
#define BATTLE_TYPE_LEGENDARY (1 << 13)
|
||||
#define BATTLE_TYPE_REGI (1 << 14)
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15)
|
||||
#define BATTLE_TYPE_DOME (1 << 16)
|
||||
#define BATTLE_TYPE_PALACE (1 << 17)
|
||||
#define BATTLE_TYPE_ARENA (1 << 18)
|
||||
#define BATTLE_TYPE_FACTORY (1 << 19)
|
||||
#define BATTLE_TYPE_PIKE (1 << 20)
|
||||
#define BATTLE_TYPE_PYRAMID (1 << 21)
|
||||
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
|
||||
#define BATTLE_TYPE_TOWER_LINK_MULTI (1 << 23)
|
||||
#define BATTLE_TYPE_RECORDED (1 << 24)
|
||||
#define BATTLE_TYPE_RECORDED_LINK (1 << 25)
|
||||
#define BATTLE_TYPE_TRAINER_HILL (1 << 26)
|
||||
#define BATTLE_TYPE_SECRET_BASE (1 << 27)
|
||||
#define BATTLE_TYPE_GROUDON (1 << 28)
|
||||
#define BATTLE_TYPE_KYOGRE (1 << 29)
|
||||
#define BATTLE_TYPE_RAYQUAZA (1 << 30)
|
||||
#define BATTLE_TYPE_RECORDED_IS_MASTER (1 << 31)
|
||||
#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
|
||||
#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
|
||||
|
||||
|
@ -346,51 +346,51 @@
|
||||
#define BG_SOLARBEAM_PLAYER 25
|
||||
#define BG_SOLARBEAM_CONTESTS 26
|
||||
|
||||
// table ids for general animations
|
||||
#define B_ANIM_CASTFORM_CHANGE 0x0
|
||||
#define B_ANIM_STATS_CHANGE 0x1
|
||||
#define B_ANIM_SUBSTITUTE_FADE 0x2
|
||||
#define B_ANIM_SUBSTITUTE_APPEAR 0x3
|
||||
#define B_ANIM_POKEBLOCK_THROW 0x4
|
||||
#define B_ANIM_ITEM_KNOCKOFF 0x5
|
||||
#define B_ANIM_TURN_TRAP 0x6
|
||||
#define B_ANIM_HELD_ITEM_EFFECT 0x7
|
||||
#define B_ANIM_SMOKEBALL_ESCAPE 0x8
|
||||
#define B_ANIM_FOCUS_BAND 0x9
|
||||
#define B_ANIM_RAIN_CONTINUES 0xA
|
||||
#define B_ANIM_SUN_CONTINUES 0xB
|
||||
#define B_ANIM_SANDSTORM_CONTINUES 0xC
|
||||
#define B_ANIM_HAIL_CONTINUES 0xD
|
||||
#define B_ANIM_LEECH_SEED_DRAIN 0xE
|
||||
#define B_ANIM_MON_HIT 0xF
|
||||
#define B_ANIM_ITEM_STEAL 0x10
|
||||
#define B_ANIM_SNATCH_MOVE 0x11
|
||||
#define B_ANIM_FUTURE_SIGHT_HIT 0x12
|
||||
#define B_ANIM_DOOM_DESIRE_HIT 0x13
|
||||
#define B_ANIM_FOCUS_PUNCH_SETUP 0x14
|
||||
#define B_ANIM_INGRAIN_HEAL 0x15
|
||||
#define B_ANIM_WISH_HEAL 0x16
|
||||
// table ids for general animations (gBattleAnims_General)
|
||||
#define B_ANIM_CASTFORM_CHANGE 0
|
||||
#define B_ANIM_STATS_CHANGE 1
|
||||
#define B_ANIM_SUBSTITUTE_FADE 2
|
||||
#define B_ANIM_SUBSTITUTE_APPEAR 3
|
||||
#define B_ANIM_POKEBLOCK_THROW 4
|
||||
#define B_ANIM_ITEM_KNOCKOFF 5
|
||||
#define B_ANIM_TURN_TRAP 6
|
||||
#define B_ANIM_HELD_ITEM_EFFECT 7
|
||||
#define B_ANIM_SMOKEBALL_ESCAPE 8
|
||||
#define B_ANIM_FOCUS_BAND 9
|
||||
#define B_ANIM_RAIN_CONTINUES 10
|
||||
#define B_ANIM_SUN_CONTINUES 11
|
||||
#define B_ANIM_SANDSTORM_CONTINUES 12
|
||||
#define B_ANIM_HAIL_CONTINUES 13
|
||||
#define B_ANIM_LEECH_SEED_DRAIN 14
|
||||
#define B_ANIM_MON_HIT 15
|
||||
#define B_ANIM_ITEM_STEAL 16
|
||||
#define B_ANIM_SNATCH_MOVE 17
|
||||
#define B_ANIM_FUTURE_SIGHT_HIT 18
|
||||
#define B_ANIM_DOOM_DESIRE_HIT 19
|
||||
#define B_ANIM_FOCUS_PUNCH_SETUP 20
|
||||
#define B_ANIM_INGRAIN_HEAL 21
|
||||
#define B_ANIM_WISH_HEAL 22
|
||||
|
||||
// special animations table
|
||||
#define B_ANIM_LVL_UP 0x0
|
||||
#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
|
||||
#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
|
||||
#define B_ANIM_BALL_THROW 0x3
|
||||
#define B_ANIM_BALL_THROW_WITH_TRAINER 0x4
|
||||
#define B_ANIM_SUBSTITUTE_TO_MON 0x5
|
||||
#define B_ANIM_MON_TO_SUBSTITUTE 0x6
|
||||
// special animations table (gBattleAnims_Special)
|
||||
#define B_ANIM_LVL_UP 0
|
||||
#define B_ANIM_SWITCH_OUT_PLAYER_MON 1
|
||||
#define B_ANIM_SWITCH_OUT_OPPONENT_MON 2
|
||||
#define B_ANIM_BALL_THROW 3
|
||||
#define B_ANIM_BALL_THROW_WITH_TRAINER 4
|
||||
#define B_ANIM_SUBSTITUTE_TO_MON 5
|
||||
#define B_ANIM_MON_TO_SUBSTITUTE 6
|
||||
|
||||
// status animation table
|
||||
#define B_ANIM_STATUS_PSN 0x0
|
||||
#define B_ANIM_STATUS_CONFUSION 0x1
|
||||
#define B_ANIM_STATUS_BRN 0x2
|
||||
#define B_ANIM_STATUS_INFATUATION 0x3
|
||||
#define B_ANIM_STATUS_SLP 0x4
|
||||
#define B_ANIM_STATUS_PRZ 0x5
|
||||
#define B_ANIM_STATUS_FRZ 0x6
|
||||
#define B_ANIM_STATUS_CURSED 0x7
|
||||
#define B_ANIM_STATUS_NIGHTMARE 0x8
|
||||
#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist
|
||||
// status animation table (gBattleAnims_StatusConditions)
|
||||
#define B_ANIM_STATUS_PSN 0
|
||||
#define B_ANIM_STATUS_CONFUSION 1
|
||||
#define B_ANIM_STATUS_BRN 2
|
||||
#define B_ANIM_STATUS_INFATUATION 3
|
||||
#define B_ANIM_STATUS_SLP 4
|
||||
#define B_ANIM_STATUS_PRZ 5
|
||||
#define B_ANIM_STATUS_FRZ 6
|
||||
#define B_ANIM_STATUS_CURSED 7
|
||||
#define B_ANIM_STATUS_NIGHTMARE 8
|
||||
#define B_ANIM_STATUS_WRAPPED 9 // does not actually exist
|
||||
|
||||
// Tasks with return values often assign them to gBattleAnimArgs[7].
|
||||
#define ARG_RET_ID 7
|
||||
|
@ -216,4 +216,6 @@
|
||||
#define EFFECT_DRAGON_DANCE 212
|
||||
#define EFFECT_CAMOUFLAGE 213
|
||||
|
||||
#define NUM_BATTLE_MOVE_EFFECTS 214
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
||||
|
@ -124,7 +124,7 @@
|
||||
#define STRINGID_PKMNSTORINGENERGY 120
|
||||
#define STRINGID_PKMNUNLEASHEDENERGY 121
|
||||
#define STRINGID_PKMNFATIGUECONFUSION 122
|
||||
#define STRINGID_PKMNPICKEDUPITEM 123
|
||||
#define STRINGID_PLAYERPICKEDUPMONEY 123
|
||||
#define STRINGID_PKMNUNAFFECTED 124
|
||||
#define STRINGID_PKMNTRANSFORMEDINTO 125
|
||||
#define STRINGID_PKMNMADESUBSTITUTE 126
|
||||
|
@ -17,7 +17,11 @@
|
||||
#define ITEM_LUXURY_BALL 11
|
||||
#define ITEM_PREMIER_BALL 12
|
||||
|
||||
#define LAST_BALL ITEM_PREMIER_BALL
|
||||
// Note: If moving ball IDs around, updating FIRST_BALL/LAST_BALL is not sufficient
|
||||
// Several places expect the ball IDs to be first and contiguous (e.g. gBattlescriptsForBallThrow and MON_DATA_POKEBALL)
|
||||
// If adding new balls, it's easiest to insert them after the last ball and increment the below IDs (and removing ITEM_034 for example)
|
||||
#define FIRST_BALL ITEM_MASTER_BALL
|
||||
#define LAST_BALL ITEM_PREMIER_BALL
|
||||
|
||||
// Pokemon Items
|
||||
#define ITEM_POTION 13
|
||||
@ -145,6 +149,8 @@
|
||||
#define ITEM_FAB_MAIL 131
|
||||
#define ITEM_RETRO_MAIL 132
|
||||
|
||||
#define FIRST_MAIL_INDEX ITEM_ORANGE_MAIL
|
||||
|
||||
// Berries
|
||||
#define ITEM_CHERI_BERRY 133
|
||||
#define ITEM_CHESTO_BERRY 134
|
||||
@ -189,6 +195,10 @@
|
||||
#define ITEM_LANSAT_BERRY 173
|
||||
#define ITEM_STARF_BERRY 174
|
||||
#define ITEM_ENIGMA_BERRY 175
|
||||
|
||||
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
|
||||
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
|
||||
|
||||
#define ITEM_0B0 176
|
||||
#define ITEM_0B1 177
|
||||
#define ITEM_0B2 178
|
||||
@ -467,9 +477,6 @@
|
||||
#define ITEMS_COUNT 377
|
||||
#define ITEM_FIELD_ARROW ITEMS_COUNT
|
||||
|
||||
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
|
||||
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
|
||||
|
||||
// Range of berries given out by various NPCS
|
||||
#define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY
|
||||
#define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY
|
||||
@ -506,6 +513,21 @@
|
||||
#define GOOD_ROD 1
|
||||
#define SUPER_ROD 2
|
||||
|
||||
// Secondary IDs for bikes
|
||||
#define MACH_BIKE 0
|
||||
#define ACRO_BIKE 1
|
||||
|
||||
// Item type IDs (used to determine the exit callback)
|
||||
#define ITEM_USE_MAIL 0
|
||||
#define ITEM_USE_PARTY_MENU 1
|
||||
#define ITEM_USE_FIELD 2
|
||||
#define ITEM_USE_PBLOCK_CASE 3
|
||||
#define ITEM_USE_BAG_MENU 4 // No exit callback, stays in bag menu
|
||||
|
||||
// Item battle usage IDs (only checked to see if nonzero)
|
||||
#define ITEM_B_USE_MEDICINE 1
|
||||
#define ITEM_B_USE_OTHER 2
|
||||
|
||||
// Check if the item is one that can be used on a Pokemon.
|
||||
#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
|
||||
|
||||
|
@ -233,6 +233,9 @@
|
||||
#define STATUS_PRIMARY_POKERUS 6
|
||||
#define STATUS_PRIMARY_FAINTED 7
|
||||
|
||||
#define MAX_PER_STAT_IVS 31
|
||||
#define MAX_IV_MASK 31
|
||||
#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1)
|
||||
#define MAX_PER_STAT_EVS 255
|
||||
#define MAX_TOTAL_EVS 510
|
||||
#define EV_ITEM_RAISE_LIMIT 100
|
||||
|
@ -5,19 +5,22 @@
|
||||
#define GET_G(color) (((color) >> 5) & 0x1F)
|
||||
#define GET_B(color) (((color) >> 10) & 0x1F)
|
||||
|
||||
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
||||
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
||||
#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
|
||||
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
|
||||
|
||||
#define RGB_BLACK RGB(0, 0, 0)
|
||||
#define RGB_WHITE RGB(31, 31, 31)
|
||||
#define RGB_RED RGB(31, 0, 0)
|
||||
#define RGB_GREEN RGB(0, 31, 0)
|
||||
#define RGB_BLUE RGB(0, 0, 31)
|
||||
#define RGB_PURPLE RGB(24, 0, 24)
|
||||
#define RGB_YELLOW RGB(31, 31, 0)
|
||||
#define RGB_MAGENTA RGB(31, 0, 31)
|
||||
#define RGB_CYAN RGB(0, 31, 31)
|
||||
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
|
||||
#define RGB_ALPHA (1 << 15)
|
||||
#define IS_ALPHA(color) ((color) & RGB_ALPHA)
|
||||
|
||||
#define RGB_BLACK RGB(0, 0, 0)
|
||||
#define RGB_WHITE RGB(31, 31, 31)
|
||||
#define RGB_RED RGB(31, 0, 0)
|
||||
#define RGB_GREEN RGB(0, 31, 0)
|
||||
#define RGB_BLUE RGB(0, 0, 31)
|
||||
#define RGB_PURPLE RGB(24, 0, 24)
|
||||
#define RGB_YELLOW RGB(31, 31, 0)
|
||||
#define RGB_MAGENTA RGB(31, 0, 31)
|
||||
#define RGB_CYAN RGB(0, 31, 31)
|
||||
#define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA)
|
||||
|
||||
#endif // GUARD_RGB_H
|
||||
|
@ -440,7 +440,7 @@
|
||||
#define SPECIES_BRONZOR 436
|
||||
#define SPECIES_BRONZONG 437
|
||||
#define SPECIES_BONSLY 438
|
||||
#define SPECIES_MIMEJR 439
|
||||
#define SPECIES_MIME_JR 439
|
||||
#define SPECIES_HAPPINY 440
|
||||
#define SPECIES_CHATOT 441
|
||||
#define SPECIES_SPIRITOMB 442
|
||||
@ -1232,7 +1232,7 @@
|
||||
|
||||
// Oricorio
|
||||
#define SPECIES_ORICORIO_POM_POM FORMS_START + 244
|
||||
#define SPECIES_ORICORIO_PA_U FORMS_START + 245
|
||||
#define SPECIES_ORICORIO_PAU FORMS_START + 245
|
||||
#define SPECIES_ORICORIO_SENSU FORMS_START + 246
|
||||
|
||||
// Rockruff
|
||||
@ -1791,7 +1791,7 @@
|
||||
#define NATIONAL_DEX_BRONZOR 436
|
||||
#define NATIONAL_DEX_BRONZONG 437
|
||||
#define NATIONAL_DEX_BONSLY 438
|
||||
#define NATIONAL_DEX_MIMEJR 439
|
||||
#define NATIONAL_DEX_MIME_JR 439
|
||||
#define NATIONAL_DEX_HAPPINY 440
|
||||
#define NATIONAL_DEX_CHATOT 441
|
||||
#define NATIONAL_DEX_SPIRITOMB 442
|
||||
|
@ -16,14 +16,22 @@ enum SpinnerRunnerFollowPatterns
|
||||
RUNFOLLOW_SOUTH_EAST_WEST
|
||||
};
|
||||
|
||||
enum ReflectionTypes
|
||||
{
|
||||
REFL_TYPE_NONE,
|
||||
REFL_TYPE_ICE,
|
||||
REFL_TYPE_WATER,
|
||||
NUM_REFLECTION_TYPES
|
||||
};
|
||||
|
||||
#define FIGURE_8_LENGTH 72
|
||||
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
|
||||
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2)
|
||||
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE (1 << 3)
|
||||
#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 4)
|
||||
#define GROUND_EFFECT_FLAG_REFLECTION (1 << 5)
|
||||
#define GROUND_EFFECT_FLAG_WATER_REFLECTION (1 << 4)
|
||||
#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 5)
|
||||
#define GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER (1 << 6)
|
||||
#define GROUND_EFFECT_FLAG_SAND (1 << 7)
|
||||
#define GROUND_EFFECT_FLAG_DEEP_SAND (1 << 8)
|
||||
@ -414,10 +422,10 @@ u8 MovementType_RunInPlace_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementType_Invisible_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementType_Invisible_Step1(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementType_Invisible_Step2(struct ObjectEvent *, struct Sprite *);
|
||||
void SetObjectEventSpriteInvisibility(u8 var, bool32 var2);
|
||||
bool32 IsObjectEventSpriteInvisible(u8 var);
|
||||
void SetObjectEventSpriteGraphics(u8 var1, u8 graphicsId);
|
||||
void SetObjectEventSpriteAnim(u8 var1, u8 var2);
|
||||
bool32 IsObjectEventSpriteAnimating(u8 var);
|
||||
void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible);
|
||||
bool32 IsObjectEventSpriteInvisible(u8 objectEventId);
|
||||
void SetObjectEventSpriteGraphics(u8 objectEventId, u8 graphicsId);
|
||||
void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum);
|
||||
bool32 IsObjectEventSpriteAnimating(u8 objectEventId);
|
||||
|
||||
#endif //GUARD_EVENT_OBJECT_MOVEMENT_H
|
||||
|
@ -36,7 +36,7 @@ void sub_808BCE8(void);
|
||||
void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d);
|
||||
void sub_808B864(void);
|
||||
void sub_808BCF4(void);
|
||||
void sub_808D074(u8);
|
||||
void SetSpinStartFacingDir(u8);
|
||||
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
|
||||
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
|
||||
void SetPlayerAvatarFieldMove(void);
|
||||
@ -57,10 +57,10 @@ void PlayerWheelieMove(u8 direction);
|
||||
void PlayerPopWheelieWhileMoving(u8 direction);
|
||||
void PlayerUseAcroBikeOnBumpySlope(u8 direction);
|
||||
void PlayerEndWheelieWhileMoving(u8 direction);
|
||||
void sub_808D194(void);
|
||||
void sub_808D1C8(void);
|
||||
bool32 sub_808D1B4(void);
|
||||
bool32 sub_808D1E8(void);
|
||||
void DoPlayerSpinEntrance(void);
|
||||
void DoPlayerSpinExit(void);
|
||||
bool32 IsPlayerSpinEntranceActive(void);
|
||||
bool32 IsPlayerSpinExitActive(void);
|
||||
void SetPlayerInvisibility(bool8 invisible);
|
||||
u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y);
|
||||
void StartFishing(u8 rod);
|
||||
|
@ -18,8 +18,8 @@ void FieldCB_WarpExitFadeFromBlack(void);
|
||||
void FieldCB_WarpExitFadeFromWhite(void);
|
||||
bool8 FieldCB_ReturnToFieldOpenStartMenu(void);
|
||||
void ReturnToFieldOpenStartMenu(void);
|
||||
void sub_80AF6D4(void);
|
||||
void sub_80AF6F0(void);
|
||||
void FieldCB_ReturnToFieldNoScript(void);
|
||||
void FieldCB_ReturnToFieldNoScriptCheckMusic(void);
|
||||
void DoWarp(void);
|
||||
void DoDiveWarp(void);
|
||||
void DoSootopolisLegendWarp(void);
|
||||
@ -35,8 +35,8 @@ void DoCableClubWarp(void);
|
||||
void DoContestHallWarp(void);
|
||||
void AnimateFlash(u8 flashLevel);
|
||||
void WriteBattlePyramidViewScanlineEffectBuffer(void);
|
||||
void sub_80B0244(void);
|
||||
void sub_80B0268(void);
|
||||
void DoSpinEnterWarp(void);
|
||||
void DoSpinExitWarp(void);
|
||||
void DoOrbEffect(void);
|
||||
void FadeOutOrbEffect(void);
|
||||
void sub_80B05B4(void);
|
||||
|
@ -158,7 +158,7 @@ extern const u32 gMonFrontPic_Goldeen[];
|
||||
extern const u32 gMonFrontPic_Seaking[];
|
||||
extern const u32 gMonFrontPic_Staryu[];
|
||||
extern const u32 gMonFrontPic_Starmie[];
|
||||
extern const u32 gMonFrontPic_Mrmime[];
|
||||
extern const u32 gMonFrontPic_MrMime[];
|
||||
extern const u32 gMonFrontPic_Scyther[];
|
||||
extern const u32 gMonFrontPic_Jynx[];
|
||||
extern const u32 gMonFrontPic_Electabuzz[];
|
||||
@ -476,7 +476,7 @@ extern const u32 gMonFrontPic_Skuntank[];
|
||||
extern const u32 gMonFrontPic_Bronzor[];
|
||||
extern const u32 gMonFrontPic_Bronzong[];
|
||||
extern const u32 gMonFrontPic_Bonsly[];
|
||||
extern const u32 gMonFrontPic_Mimejr[];
|
||||
extern const u32 gMonFrontPic_MimeJr[];
|
||||
extern const u32 gMonFrontPic_Happiny[];
|
||||
extern const u32 gMonFrontPic_Chatot[];
|
||||
extern const u32 gMonFrontPic_Spiritomb[];
|
||||
@ -809,7 +809,7 @@ extern const u32 gMonFrontPic_Golisopod[];
|
||||
extern const u32 gMonFrontPic_Sandygast[];
|
||||
extern const u32 gMonFrontPic_Palossand[];
|
||||
extern const u32 gMonFrontPic_Pyukumuku[];
|
||||
extern const u32 gMonFrontPic_Type_null[];
|
||||
extern const u32 gMonFrontPic_TypeNull[];
|
||||
extern const u32 gMonFrontPic_Silvally[];
|
||||
extern const u32 gMonFrontPic_Minior[];
|
||||
extern const u32 gMonFrontPic_Komala[];
|
||||
@ -819,13 +819,13 @@ extern const u32 gMonFrontPic_Mimikyu[];
|
||||
extern const u32 gMonFrontPic_Bruxish[];
|
||||
extern const u32 gMonFrontPic_Drampa[];
|
||||
extern const u32 gMonFrontPic_Dhelmise[];
|
||||
extern const u32 gMonFrontPic_Jangmo_o[];
|
||||
extern const u32 gMonFrontPic_Hakamo_o[];
|
||||
extern const u32 gMonFrontPic_Kommo_o[];
|
||||
extern const u32 gMonFrontPic_Tapu_koko[];
|
||||
extern const u32 gMonFrontPic_Tapu_lele[];
|
||||
extern const u32 gMonFrontPic_Tapu_bulu[];
|
||||
extern const u32 gMonFrontPic_Tapu_fini[];
|
||||
extern const u32 gMonFrontPic_Jangmoo[];
|
||||
extern const u32 gMonFrontPic_Hakamoo[];
|
||||
extern const u32 gMonFrontPic_Kommoo[];
|
||||
extern const u32 gMonFrontPic_TapuKoko[];
|
||||
extern const u32 gMonFrontPic_TapuLele[];
|
||||
extern const u32 gMonFrontPic_TapuBulu[];
|
||||
extern const u32 gMonFrontPic_TapuFini[];
|
||||
extern const u32 gMonFrontPic_Cosmog[];
|
||||
extern const u32 gMonFrontPic_Cosmoem[];
|
||||
extern const u32 gMonFrontPic_Solgaleo[];
|
||||
@ -1298,7 +1298,7 @@ extern const u32 gMonBackPic_Goldeen[];
|
||||
extern const u32 gMonBackPic_Seaking[];
|
||||
extern const u32 gMonBackPic_Staryu[];
|
||||
extern const u32 gMonBackPic_Starmie[];
|
||||
extern const u32 gMonBackPic_Mrmime[];
|
||||
extern const u32 gMonBackPic_MrMime[];
|
||||
extern const u32 gMonBackPic_Scyther[];
|
||||
extern const u32 gMonBackPic_Jynx[];
|
||||
extern const u32 gMonBackPic_Electabuzz[];
|
||||
@ -1616,7 +1616,7 @@ extern const u32 gMonBackPic_Skuntank[];
|
||||
extern const u32 gMonBackPic_Bronzor[];
|
||||
extern const u32 gMonBackPic_Bronzong[];
|
||||
extern const u32 gMonBackPic_Bonsly[];
|
||||
extern const u32 gMonBackPic_Mimejr[];
|
||||
extern const u32 gMonBackPic_MimeJr[];
|
||||
extern const u32 gMonBackPic_Happiny[];
|
||||
extern const u32 gMonBackPic_Chatot[];
|
||||
extern const u32 gMonBackPic_Spiritomb[];
|
||||
@ -1949,7 +1949,7 @@ extern const u32 gMonBackPic_Golisopod[];
|
||||
extern const u32 gMonBackPic_Sandygast[];
|
||||
extern const u32 gMonBackPic_Palossand[];
|
||||
extern const u32 gMonBackPic_Pyukumuku[];
|
||||
extern const u32 gMonBackPic_Type_null[];
|
||||
extern const u32 gMonBackPic_TypeNull[];
|
||||
extern const u32 gMonBackPic_Silvally[];
|
||||
extern const u32 gMonBackPic_Minior[];
|
||||
extern const u32 gMonBackPic_Komala[];
|
||||
@ -1959,13 +1959,13 @@ extern const u32 gMonBackPic_Mimikyu[];
|
||||
extern const u32 gMonBackPic_Bruxish[];
|
||||
extern const u32 gMonBackPic_Drampa[];
|
||||
extern const u32 gMonBackPic_Dhelmise[];
|
||||
extern const u32 gMonBackPic_Jangmo_o[];
|
||||
extern const u32 gMonBackPic_Hakamo_o[];
|
||||
extern const u32 gMonBackPic_Kommo_o[];
|
||||
extern const u32 gMonBackPic_Tapu_koko[];
|
||||
extern const u32 gMonBackPic_Tapu_lele[];
|
||||
extern const u32 gMonBackPic_Tapu_bulu[];
|
||||
extern const u32 gMonBackPic_Tapu_fini[];
|
||||
extern const u32 gMonBackPic_Jangmoo[];
|
||||
extern const u32 gMonBackPic_Hakamoo[];
|
||||
extern const u32 gMonBackPic_Kommoo[];
|
||||
extern const u32 gMonBackPic_TapuKoko[];
|
||||
extern const u32 gMonBackPic_TapuLele[];
|
||||
extern const u32 gMonBackPic_TapuBulu[];
|
||||
extern const u32 gMonBackPic_TapuFini[];
|
||||
extern const u32 gMonBackPic_Cosmog[];
|
||||
extern const u32 gMonBackPic_Cosmoem[];
|
||||
extern const u32 gMonBackPic_Solgaleo[];
|
||||
@ -2437,7 +2437,7 @@ extern const u32 gMonPalette_Goldeen[];
|
||||
extern const u32 gMonPalette_Seaking[];
|
||||
extern const u32 gMonPalette_Staryu[];
|
||||
extern const u32 gMonPalette_Starmie[];
|
||||
extern const u32 gMonPalette_Mrmime[];
|
||||
extern const u32 gMonPalette_MrMime[];
|
||||
extern const u32 gMonPalette_Scyther[];
|
||||
extern const u32 gMonPalette_Jynx[];
|
||||
extern const u32 gMonPalette_Electabuzz[];
|
||||
@ -2754,7 +2754,7 @@ extern const u32 gMonPalette_Skuntank[];
|
||||
extern const u32 gMonPalette_Bronzor[];
|
||||
extern const u32 gMonPalette_Bronzong[];
|
||||
extern const u32 gMonPalette_Bonsly[];
|
||||
extern const u32 gMonPalette_Mimejr[];
|
||||
extern const u32 gMonPalette_MimeJr[];
|
||||
extern const u32 gMonPalette_Happiny[];
|
||||
extern const u32 gMonPalette_Chatot[];
|
||||
extern const u32 gMonPalette_Spiritomb[];
|
||||
@ -3087,7 +3087,7 @@ extern const u32 gMonPalette_Golisopod[];
|
||||
extern const u32 gMonPalette_Sandygast[];
|
||||
extern const u32 gMonPalette_Palossand[];
|
||||
extern const u32 gMonPalette_Pyukumuku[];
|
||||
extern const u32 gMonPalette_Type_null[];
|
||||
extern const u32 gMonPalette_TypeNull[];
|
||||
extern const u32 gMonPalette_Silvally[];
|
||||
extern const u32 gMonPalette_Minior[];
|
||||
extern const u32 gMonPalette_Komala[];
|
||||
@ -3097,13 +3097,13 @@ extern const u32 gMonPalette_Mimikyu[];
|
||||
extern const u32 gMonPalette_Bruxish[];
|
||||
extern const u32 gMonPalette_Drampa[];
|
||||
extern const u32 gMonPalette_Dhelmise[];
|
||||
extern const u32 gMonPalette_Jangmo_o[];
|
||||
extern const u32 gMonPalette_Hakamo_o[];
|
||||
extern const u32 gMonPalette_Kommo_o[];
|
||||
extern const u32 gMonPalette_Tapu_koko[];
|
||||
extern const u32 gMonPalette_Tapu_lele[];
|
||||
extern const u32 gMonPalette_Tapu_bulu[];
|
||||
extern const u32 gMonPalette_Tapu_fini[];
|
||||
extern const u32 gMonPalette_Jangmoo[];
|
||||
extern const u32 gMonPalette_Hakamoo[];
|
||||
extern const u32 gMonPalette_Kommoo[];
|
||||
extern const u32 gMonPalette_TapuKoko[];
|
||||
extern const u32 gMonPalette_TapuLele[];
|
||||
extern const u32 gMonPalette_TapuBulu[];
|
||||
extern const u32 gMonPalette_TapuFini[];
|
||||
extern const u32 gMonPalette_Cosmog[];
|
||||
extern const u32 gMonPalette_Cosmoem[];
|
||||
extern const u32 gMonPalette_Solgaleo[];
|
||||
@ -3602,7 +3602,7 @@ extern const u32 gMonShinyPalette_Goldeen[];
|
||||
extern const u32 gMonShinyPalette_Seaking[];
|
||||
extern const u32 gMonShinyPalette_Staryu[];
|
||||
extern const u32 gMonShinyPalette_Starmie[];
|
||||
extern const u32 gMonShinyPalette_Mrmime[];
|
||||
extern const u32 gMonShinyPalette_MrMime[];
|
||||
extern const u32 gMonShinyPalette_Scyther[];
|
||||
extern const u32 gMonShinyPalette_Jynx[];
|
||||
extern const u32 gMonShinyPalette_Electabuzz[];
|
||||
@ -3919,7 +3919,7 @@ extern const u32 gMonShinyPalette_Skuntank[];
|
||||
extern const u32 gMonShinyPalette_Bronzor[];
|
||||
extern const u32 gMonShinyPalette_Bronzong[];
|
||||
extern const u32 gMonShinyPalette_Bonsly[];
|
||||
extern const u32 gMonShinyPalette_Mimejr[];
|
||||
extern const u32 gMonShinyPalette_MimeJr[];
|
||||
extern const u32 gMonShinyPalette_Happiny[];
|
||||
extern const u32 gMonShinyPalette_Chatot[];
|
||||
extern const u32 gMonShinyPalette_Spiritomb[];
|
||||
@ -4252,7 +4252,7 @@ extern const u32 gMonShinyPalette_Golisopod[];
|
||||
extern const u32 gMonShinyPalette_Sandygast[];
|
||||
extern const u32 gMonShinyPalette_Palossand[];
|
||||
extern const u32 gMonShinyPalette_Pyukumuku[];
|
||||
extern const u32 gMonShinyPalette_Type_null[];
|
||||
extern const u32 gMonShinyPalette_TypeNull[];
|
||||
extern const u32 gMonShinyPalette_Silvally[];
|
||||
extern const u32 gMonShinyPalette_Minior[];
|
||||
extern const u32 gMonShinyPalette_Komala[];
|
||||
@ -4262,13 +4262,13 @@ extern const u32 gMonShinyPalette_Mimikyu[];
|
||||
extern const u32 gMonShinyPalette_Bruxish[];
|
||||
extern const u32 gMonShinyPalette_Drampa[];
|
||||
extern const u32 gMonShinyPalette_Dhelmise[];
|
||||
extern const u32 gMonShinyPalette_Jangmo_o[];
|
||||
extern const u32 gMonShinyPalette_Hakamo_o[];
|
||||
extern const u32 gMonShinyPalette_Kommo_o[];
|
||||
extern const u32 gMonShinyPalette_Tapu_koko[];
|
||||
extern const u32 gMonShinyPalette_Tapu_lele[];
|
||||
extern const u32 gMonShinyPalette_Tapu_bulu[];
|
||||
extern const u32 gMonShinyPalette_Tapu_fini[];
|
||||
extern const u32 gMonShinyPalette_Jangmoo[];
|
||||
extern const u32 gMonShinyPalette_Hakamoo[];
|
||||
extern const u32 gMonShinyPalette_Kommoo[];
|
||||
extern const u32 gMonShinyPalette_TapuKoko[];
|
||||
extern const u32 gMonShinyPalette_TapuLele[];
|
||||
extern const u32 gMonShinyPalette_TapuBulu[];
|
||||
extern const u32 gMonShinyPalette_TapuFini[];
|
||||
extern const u32 gMonShinyPalette_Cosmog[];
|
||||
extern const u32 gMonShinyPalette_Cosmoem[];
|
||||
extern const u32 gMonShinyPalette_Solgaleo[];
|
||||
@ -4759,7 +4759,7 @@ extern const u8 gMonIcon_Goldeen[];
|
||||
extern const u8 gMonIcon_Seaking[];
|
||||
extern const u8 gMonIcon_Staryu[];
|
||||
extern const u8 gMonIcon_Starmie[];
|
||||
extern const u8 gMonIcon_Mrmime[];
|
||||
extern const u8 gMonIcon_MrMime[];
|
||||
extern const u8 gMonIcon_Scyther[];
|
||||
extern const u8 gMonIcon_Jynx[];
|
||||
extern const u8 gMonIcon_Electabuzz[];
|
||||
@ -5076,7 +5076,7 @@ extern const u8 gMonIcon_Skuntank[];
|
||||
extern const u8 gMonIcon_Bronzor[];
|
||||
extern const u8 gMonIcon_Bronzong[];
|
||||
extern const u8 gMonIcon_Bonsly[];
|
||||
extern const u8 gMonIcon_Mimejr[];
|
||||
extern const u8 gMonIcon_MimeJr[];
|
||||
extern const u8 gMonIcon_Happiny[];
|
||||
extern const u8 gMonIcon_Chatot[];
|
||||
extern const u8 gMonIcon_Spiritomb[];
|
||||
@ -5409,7 +5409,7 @@ extern const u8 gMonIcon_Golisopod[];
|
||||
extern const u8 gMonIcon_Sandygast[];
|
||||
extern const u8 gMonIcon_Palossand[];
|
||||
extern const u8 gMonIcon_Pyukumuku[];
|
||||
extern const u8 gMonIcon_Type_null[];
|
||||
extern const u8 gMonIcon_TypeNull[];
|
||||
extern const u8 gMonIcon_Silvally[];
|
||||
extern const u8 gMonIcon_Minior[];
|
||||
extern const u8 gMonIcon_Komala[];
|
||||
@ -5419,13 +5419,13 @@ extern const u8 gMonIcon_Mimikyu[];
|
||||
extern const u8 gMonIcon_Bruxish[];
|
||||
extern const u8 gMonIcon_Drampa[];
|
||||
extern const u8 gMonIcon_Dhelmise[];
|
||||
extern const u8 gMonIcon_Jangmo_o[];
|
||||
extern const u8 gMonIcon_Hakamo_o[];
|
||||
extern const u8 gMonIcon_Kommo_o[];
|
||||
extern const u8 gMonIcon_Tapu_koko[];
|
||||
extern const u8 gMonIcon_Tapu_lele[];
|
||||
extern const u8 gMonIcon_Tapu_bulu[];
|
||||
extern const u8 gMonIcon_Tapu_fini[];
|
||||
extern const u8 gMonIcon_Jangmoo[];
|
||||
extern const u8 gMonIcon_Hakamoo[];
|
||||
extern const u8 gMonIcon_Kommoo[];
|
||||
extern const u8 gMonIcon_TapuKoko[];
|
||||
extern const u8 gMonIcon_TapuLele[];
|
||||
extern const u8 gMonIcon_TapuBulu[];
|
||||
extern const u8 gMonIcon_TapuFini[];
|
||||
extern const u8 gMonIcon_Cosmog[];
|
||||
extern const u8 gMonIcon_Cosmoem[];
|
||||
extern const u8 gMonIcon_Solgaleo[];
|
||||
@ -5781,7 +5781,7 @@ extern const u8 gMonFootprint_Goldeen[];
|
||||
extern const u8 gMonFootprint_Seaking[];
|
||||
extern const u8 gMonFootprint_Staryu[];
|
||||
extern const u8 gMonFootprint_Starmie[];
|
||||
extern const u8 gMonFootprint_Mrmime[];
|
||||
extern const u8 gMonFootprint_MrMime[];
|
||||
extern const u8 gMonFootprint_Scyther[];
|
||||
extern const u8 gMonFootprint_Jynx[];
|
||||
extern const u8 gMonFootprint_Electabuzz[];
|
||||
@ -7529,8 +7529,8 @@ extern const u32 gConfetti_Gfx[];
|
||||
extern const u32 gConfetti_Pal[];
|
||||
|
||||
extern const u32 gUnknown_08C093F0[];
|
||||
extern const u32 gSubstituteDollTilemap[];
|
||||
extern const u32 gSubstituteDollGfx[];
|
||||
extern const u32 gSubstituteDollBackGfx[];
|
||||
extern const u32 gSubstituteDollFrontGfx[];
|
||||
extern const u32 gSubstituteDollPal[];
|
||||
extern const u32 gHealthboxSinglesPlayerGfx[];
|
||||
extern const u32 gHealthboxSinglesOpponentGfx[];
|
||||
@ -8456,6 +8456,11 @@ extern const u16 gPokenavMessageBox_Pal[];
|
||||
extern const u32 gPokenavOptions_Gfx[];
|
||||
extern const u16 gPokenavOptions_Pal[];
|
||||
|
||||
// Battle Factory Screen
|
||||
extern const u8 gFrontierFactorySelectMenu_Gfx[];
|
||||
extern const u8 gFrontierFactorySelectMenu_Tilemap[];
|
||||
extern const u16 gFrontierFactorySelectMenu_Pal[];
|
||||
|
||||
// Object event pals
|
||||
extern const u16 gObjectEventPal_Brendan[];
|
||||
extern const u16 gObjectEventPal_May[];
|
||||
|
@ -16,6 +16,7 @@ struct PokemonSubstruct0
|
||||
u32 experience;
|
||||
u8 ppBonuses;
|
||||
u8 friendship;
|
||||
u16 filler;
|
||||
};
|
||||
|
||||
struct PokemonSubstruct1
|
||||
@ -243,12 +244,23 @@ struct Evolution
|
||||
u16 targetSpecies;
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
struct FormChange {
|
||||
u16 method;
|
||||
u16 targetSpecies;
|
||||
u16 param1;
|
||||
u16 param2;
|
||||
};
|
||||
=======
|
||||
#define NUM_UNOWN_FORMS 28
|
||||
|
||||
#define GET_UNOWN_LETTER(personality) (( \
|
||||
(((personality) & 0x03000000) >> 18) \
|
||||
| (((personality) & 0x00030000) >> 12) \
|
||||
| (((personality) & 0x00000300) >> 6) \
|
||||
| (((personality) & 0x00000003) >> 0) \
|
||||
) % NUM_UNOWN_FORMS)
|
||||
>>>>>>> b2a541a33b2a5116f6780f1830f2606a5dbc065e
|
||||
|
||||
extern u8 gPlayerPartyCount;
|
||||
extern struct Pokemon gPlayerParty[PARTY_SIZE];
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
extern u32 gRecordedBattleRngSeed;
|
||||
extern u32 gBattlePalaceMoveSelectionRngValue;
|
||||
extern u8 gUnknown_0203C7B4;
|
||||
extern u8 gRecordedBattleMultiplayerId;
|
||||
|
||||
void sub_8184DA4(u8 arg0);
|
||||
void sub_8184E58(void);
|
||||
|
@ -2988,4 +2988,31 @@ extern const u8 gText_SavingDontTurnOff2[];
|
||||
extern const u8 gText_BlenderMaxSpeedRecord[];
|
||||
extern const u8 gText_234Players[];
|
||||
|
||||
// Battle Factory Screen
|
||||
extern const u8 gText_RentalPkmn2[];
|
||||
extern const u8 gText_SelectFirstPkmn[];
|
||||
extern const u8 gText_SelectSecondPkmn[];
|
||||
extern const u8 gText_SelectThirdPkmn[];
|
||||
extern const u8 gText_TheseThreePkmnOkay[];
|
||||
extern const u8 gText_CantSelectSamePkmn[];
|
||||
extern const u8 gText_Summary[];
|
||||
extern const u8 gText_Rechoose[];
|
||||
extern const u8 gText_Deselect[];
|
||||
extern const u8 gText_Rent[];
|
||||
extern const u8 gText_Others2[];
|
||||
extern const u8 gText_Yes2[];
|
||||
extern const u8 gText_Yes3[];
|
||||
extern const u8 gText_No2[];
|
||||
extern const u8 gText_No3[];
|
||||
extern const u8 gText_QuitSwapping[];
|
||||
extern const u8 gText_AcceptThisPkmn[];
|
||||
extern const u8 gText_SelectPkmnToAccept[];
|
||||
extern const u8 gText_SelectPkmnToSwap[];
|
||||
extern const u8 gText_PkmnSwap[];
|
||||
extern const u8 gText_Swap[];
|
||||
extern const u8 gText_Summary2[];
|
||||
extern const u8 gText_PkmnForSwap[];
|
||||
extern const u8 gText_SamePkmnInPartyAlready[];
|
||||
extern const u8 gText_Cancel3[];
|
||||
|
||||
#endif // GUARD_STRINGS_H
|
||||
|
@ -8,7 +8,7 @@ extern u8 *const gTVStringVarPtrs[3];
|
||||
|
||||
void ClearTVShowData(void);
|
||||
void sub_80EE184(void);
|
||||
void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove);
|
||||
void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove);
|
||||
void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility);
|
||||
void DoTVShow(void);
|
||||
void DoTVShowInSearchOfTrainers(void);
|
||||
|