Merge branch 'pokemon_expansion' of https://github.com/rh-hideout/pokeemerald-expansion into PE/form-change-table

This commit is contained in:
ExpoSeed 2021-03-01 19:38:13 -06:00
commit 7802264732
1851 changed files with 9907 additions and 9338 deletions

View File

@ -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) $< $@

View File

@ -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

View File

@ -1 +1 @@
gUnknown_030062E8
gFactorySelect_CurrentOptionFunc

View File

@ -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

View File

@ -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

View File

@ -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::

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}
```

View File

@ -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

View File

@ -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;
}

View File

@ -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;

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

View File

Before

Width:  |  Height:  |  Size: 993 B

After

Width:  |  Height:  |  Size: 993 B

View File

Before

Width:  |  Height:  |  Size: 740 B

After

Width:  |  Height:  |  Size: 740 B

View File

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 272 B

View File

Before

Width:  |  Height:  |  Size: 609 B

After

Width:  |  Height:  |  Size: 609 B

View File

Before

Width:  |  Height:  |  Size: 290 B

After

Width:  |  Height:  |  Size: 290 B

View File

Before

Width:  |  Height:  |  Size: 884 B

After

Width:  |  Height:  |  Size: 884 B

View File

Before

Width:  |  Height:  |  Size: 828 B

After

Width:  |  Height:  |  Size: 828 B

View File

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 B

View File

@ -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

View File

@ -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);

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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[];

View File

@ -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];

View File

@ -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);

View File

@ -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

View File

@ -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);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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