diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 148 | ||||
-rw-r--r-- | include/battle_controllers.h | 24 | ||||
-rw-r--r-- | include/battle_setup.h | 6 | ||||
-rw-r--r-- | include/flags.h | 2 | ||||
-rw-r--r-- | include/global.berry.h | 13 | ||||
-rw-r--r-- | include/global.h | 9 | ||||
-rw-r--r-- | include/link.h | 19 | ||||
-rw-r--r-- | include/load_save.h | 1 | ||||
-rw-r--r-- | include/main.h | 1 | ||||
-rw-r--r-- | include/pokemon.h | 4 | ||||
-rw-r--r-- | include/recorded_battle.h | 12 | ||||
-rw-r--r-- | include/sprite.h | 16 | ||||
-rw-r--r-- | include/unknown_task.h | 13 |
13 files changed, 201 insertions, 67 deletions
diff --git a/include/battle.h b/include/battle.h index 67d3d873d..50d2389ac 100644 --- a/include/battle.h +++ b/include/battle.h @@ -54,11 +54,15 @@ #define BATTLE_TYPE_GROUDON 0x10000000 #define BATTLE_TYPE_KYORGE 0x20000000 #define BATTLE_TYPE_RAYQUAZA 0x40000000 +#define BATTLE_TYPE_x80000000 0x80000000 +#define TRAINER_OPPONENT_C00 0xC00 +#define TRAINER_OPPONENT_800 0x800 #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) +#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | 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_x100000) #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 @@ -133,6 +137,7 @@ #define HITMARKER_PURSUIT_TRAP 0x00001000 #define HITMARKER_IGNORE_SAFEGUARD 0x00002000 #define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_x8000 0x00008000 #define HITMARKER_IGNORE_ON_AIR 0x00010000 #define HITMARKER_IGNORE_UNDERGROUND 0x00020000 #define HITMARKER_IGNORE_UNDERWATER 0x00040000 @@ -176,6 +181,9 @@ #define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 #define ABILITYEFFECT_COUNT_ON_FIELD 0x12 #define ABILITYEFFECT_CHECK_ON_FIELD 0x13 +#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF + +#define ITEMEFFECT_ON_SWITCH_IN 0x0 #define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) @@ -215,14 +223,18 @@ #define BATTLE_TERRAIN_POND 5 #define BATTLE_TERRAIN_ROCK 6 #define BATTLE_TERRAIN_CAVE 7 +#define BATTLE_TERRAIN_INSIDE 8 // array entries for battle communication -#define MULTIUSE_STATE 0x0 -#define CURSOR_POSITION 0x1 -#define TASK_ID 0x1 // task Id and cursor position share the same field -#define MOVE_EFFECT_BYTE 0x3 -#define MULTISTRING_CHOOSER 0x5 -#define MSG_DISPLAY 0x7 +#define MULTIUSE_STATE 0x0 +#define CURSOR_POSITION 0x1 +#define TASK_ID 0x1 // task Id and cursor position share the same field +#define SPRITES_INIT_STATE1 0x1 // shares the Id as well +#define SPRITES_INIT_STATE2 0x2 +#define MOVE_EFFECT_BYTE 0x3 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 +#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 #define MOVE_TARGET_SELECTED 0x0 #define MOVE_TARGET_DEPENDS 0x1 @@ -259,32 +271,32 @@ struct TrainerMonNoItemDefaultMoves { - u16 species; + u16 iv; u8 lvl; - u16 evsValue; + u16 species; }; struct TrainerMonItemDefaultMoves { - u16 species; + u16 iv; u8 lvl; - u16 evsValue; + u16 species; u16 heldItem; }; struct TrainerMonNoItemCustomMoves { - u16 species; + u16 iv; u8 lvl; - u16 evsValue; + u16 species; u16 moves[4]; }; struct TrainerMonItemCustomMoves { - u16 species; + u16 iv; u8 lvl; - u16 evsValue; + u16 species; u16 heldItem; u16 moves[4]; }; @@ -551,7 +563,7 @@ struct BattleResults u16 caughtMonSpecies; // 0x28 u8 caughtMonNick[10]; // 0x2A u8 filler34[2]; - u8 catchAttempts[10]; // 0x36 + u8 catchAttempts[12]; // 0x36 }; extern struct BattleResults gBattleResults; @@ -582,7 +594,7 @@ struct BattleStruct u8 field_49; u8 moneyMultiplier; u8 field_4B; - u8 field_4C; + u8 switchInAbilitiesCounter; u8 field_4D; u8 field_4E; u8 field_4F; @@ -604,10 +616,7 @@ struct BattleStruct u8 field_7E; u8 formToChangeInto; u8 chosenMovesIds[4]; - u8 field_84; - u8 field_85; - u8 field_86; - u8 field_87; + u8 field_84[4]; u8 field_88; u8 field_89; u8 field_8A; @@ -633,31 +642,33 @@ struct BattleStruct u8 field_A5; u8 field_A6; u8 field_A7; - u16 hpOnSwitchout[4]; + u16 hpOnSwitchout[2]; + u32 savedBattleTypeFlags; u8 field_B0; u8 hpScale; u8 synchronizeMoveEffect; u8 field_B3; - u8 field_B4; - u8 field_B5; - u8 field_B6; - u8 field_B7; + void (*savedCallback)(void); u16 usedHeldItems[BATTLE_BANKS_COUNT]; u8 field_C0[8]; u16 choicedMove[BATTLE_BANKS_COUNT]; u16 changedItems[BATTLE_BANKS_COUNT]; u8 intimidateBank; - u8 fillerD9[0xDA-0xD9]; + u8 switchInItemsCounter; u8 field_DA; u8 turnSideTracker; u8 fillerDC[0xDF-0xDC]; u8 field_DF; u8 mirrorMoveArrays[32]; u16 castformPalette[4][16]; - u8 field_180[32]; + u8 field_180; + u8 field_181; + u8 field_182; + u8 field_183; + struct BattleEnigmaBerry battleEnigmaBerry; u8 field_1A0; u8 field_1A1; - u8 filler1A2; + bool8 overworldWeatherDone; u8 atkCancellerTracker; u8 field_1A4[240]; u8 field_294[4]; @@ -838,24 +849,38 @@ struct BattleScripting u8 statChanger; u8 field_1B; u8 atk23_state; - u8 field_1D; + u8 battleStyle; u8 atk6C_state; u8 learnMoveState; u8 field_20; + u8 field_21; + u8 field_22; + u8 field_23; + u8 field_24; + u8 multiplayerId; }; extern struct BattleScripting gBattleScripting; // functions +// battle_1 +void LoadBattleTextboxAndBackground(void); +void LoadBattleEntryBackground(void); +void ApplyPlayerChosenFrameToBattleMenu(void); +bool8 LoadChosenBattleElement(u8 caseId); +void task00_0800F6FC(u8 taskId); + // battle_2 +void CB2_InitBattle(void); +void CB2_QuitRecordedBattle(void); void CancelMultiTurnMoves(u8 bank); void PressurePPLose(u8 bankAtk, u8 bankDef, u16 move); void PrepareStringBattle(u16 stringId, u8 bank); u8 GetBattleBank(u8 caseId); -void UndoEffectsAfterFainting(void); +void FaintClearSetData(void); bool8 HasMoveFailed(u8 bank); -void SwitchInClearStructs(void); +void SwitchInClearSetData(void); void sub_803BDA0(u8 bank); void sub_803FA70(u8 bank); void BattleMainCB2(void); @@ -865,6 +890,9 @@ bool8 CanRunFromBattle(u8 bank); bool8 IsRunningFromBattleImpossible(void); void PressurePPLoseOnUsingPerishSong(u8 bankAtk); void PressurePPLoseOnUsingImprision(u8 bankAtk); +u8 GetWhoStrikesFirst(u8 bankAtk, u8 bankDef, bool8 ignoreChosenMoves); +void sub_803CEDC(u8, u8); +void BattleTurnPassed(void); // battle_3 #define MOVE_LIMITATION_ZEROMOVE (1 << 0) @@ -877,7 +905,7 @@ void PressurePPLoseOnUsingImprision(u8 bankAtk); void BattleScriptPush(const u8* bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); -u8 sub_803FB4C(void); // msg, can't select a move +u8 TrySetCantSelectMoveBattleScript(void); u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); bool8 AreAllMovesUnusable(void); u8 GetImprisonedMovesCount(u8 bank, u16 move); @@ -914,30 +942,80 @@ extern void (* const gBattleScriptingCommandsTable[])(void); extern const u8 gUnknown_0831C494[]; // battle_5 +void AllocateBattleResrouces(void); +void FreeBattleResources(void); void AdjustFriendshipOnBattleFaint(u8 bank); void sub_80571DC(u8 bank, u8 arg1); u32 sub_805725C(u8 bank); // battle 7 +void AllocateBattleSpritesData(void); +void FreeBattleSpritesData(void); +void AllocateMonSpritesGfx(void); +void FreeMonSpritesGfx(void); void BattleMusicStop(void); void sub_805E990(struct Pokemon* mon, u8 bank); +void sub_805EF14(void); +bool8 BattleInitAllSprites(u8 *state1, u8 *state2); // rom_80A5C6C u8 GetBankSide(u8 bank); u8 GetBankIdentity(u8 bank); u8 GetBankByIdentity(u8 bank); +struct BattleSpriteInfo +{ + u16 invisible : 1; // 0x1 + u16 flag_x2 : 1; // 0x2 + u16 behindSubstitute : 1; // 0x4 + u16 flag_x8 : 1; // 0x8 + u16 hpNumbersNoBars : 1; // 0x10 + u16 transformSpecies; +}; + +struct BattleAnimationInfo +{ + u16 field; // to fill up later +}; + +struct BattleHealthboxInfo +{ + u8 flag_x1 : 1; + u8 flag_x2 : 1; + u8 flag_x4 : 1; + u8 field_1; + u8 field_2; + u8 field_3; + u8 field_4; + u8 field_5; + u8 field_6; + u8 field_7; + u8 field_8; + u8 field_9; + u8 field_A; + u8 field_B; +}; + +struct BattleSpriteData +{ + struct BattleSpriteInfo *bankData; + struct BattleHealthboxInfo *healthBoxesData; + struct BattleAnimationInfo *animationData; +}; + +extern struct BattleSpriteData *gBattleSpritesDataPtr; + // Move this somewhere else #include "sprite.h" -struct BattleSpritesGfx +struct MonSpritesGfx { void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon void* sprites[4]; struct SpriteTemplate templates[4]; }; -extern struct BattleSpritesGfx* gBattleSpritesGfx; +extern struct MonSpritesGfx* gMonSpritesGfxPtr; #endif // GUARD_BATTLE_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b2846d7cf..9a7f947fa 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -14,6 +14,16 @@ struct MovePpInfo u8 ppBonuses; }; +struct ChooseMoveStruct +{ + u16 moves[4]; + u8 ppNumbers[4]; + u8 ppWithBonusNumbers[4]; + u16 species; + u8 monType1; + u8 monType2; +}; + #define REQUEST_ALL_BATTLE 0x0 #define REQUEST_SPECIES_BATTLE 0x1 #define REQUEST_HELDITEM_BATTLE 0x2 @@ -40,18 +50,26 @@ void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible); void EmitReturnPokeToBall(u8 bufferId, u8 arg1); void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2); void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); -void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, const u8* arg4); -void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, u8 arg2); +void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4); +void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2); void EmitTrainerSlide(u8 bufferId); void EmitTrainerSlideBack(u8 bufferId); void EmitFaintingCry(u8 bufferId); void Emit_x37(u8 bufferId, u8 arg1); void EmitHitAnimation(u8 bufferId); -void EmitCmd48(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); +void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2); void EmitCmd49(u8 bufferId); void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); void EmitCmd13(u8 bufferId); void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); +void EmitIntroSlide(u8 bufferId, u8 terrainId); +void EmitDrawTrainerPic(u8 bufferId); +void EmitLoadMonSprite(u8 bufferId); +void EmitIntroTrainerBallThrow(u8 bufferId); +void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); +void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct* movePpData); +void EmitOpenBag(u8 bufferId, u8* arg1); +void Emit_x32(u8 bufferId); #define RESET_ACTION_MOVE_SELECTION 0 #define RESET_ACTION_SELECTION 1 diff --git a/include/battle_setup.h b/include/battle_setup.h new file mode 100644 index 000000000..80fb55da2 --- /dev/null +++ b/include/battle_setup.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_SETUP_H +#define GUARD_BATTLE_SETUP_H + +u8 BattleSetup_GetTerrainId(void); + +#endif // GUARD_BATTLE_SETUP_H diff --git a/include/flags.h b/include/flags.h index 19ec01b56..020fc59cb 100644 --- a/include/flags.h +++ b/include/flags.h @@ -84,6 +84,8 @@ #define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61 #define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62 +#define SYS_FRONTIER_PASS CODE_FLAGS + 0x72 + #define SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77 #define SYS_MYSTERY_GIFT_ENABLE CODE_FLAGS + 0x7B diff --git a/include/global.berry.h b/include/global.berry.h index a77da20ba..5c8a43a02 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -1,9 +1,12 @@ #ifndef GUARD_GLOBAL_BERRY_H #define GUARD_GLOBAL_BERRY_H +#define BERRY_NAME_COUNT 7 +#define BERRY_ITEM_EFFECT_COUNT 18 + struct Berry { - const u8 name[7]; + const u8 name[BERRY_NAME_COUNT]; u8 firmness; u16 size; u8 maxYield; @@ -23,7 +26,7 @@ struct Berry struct Berry2 { - u8 name[7]; + u8 name[BERRY_NAME_COUNT]; u8 firmness; u16 size; u8 maxYield; @@ -42,7 +45,7 @@ struct Berry2 struct EnigmaBerry { struct Berry2 berry; - u8 itemEffect[18]; + u8 itemEffect[BERRY_ITEM_EFFECT_COUNT]; u8 holdEffect; u8 holdEffectParam; u32 checksum; @@ -50,9 +53,9 @@ struct EnigmaBerry struct BattleEnigmaBerry { - /*0x00*/ u8 name[7]; + /*0x00*/ u8 name[BERRY_NAME_COUNT]; /*0x07*/ u8 holdEffect; - /*0x08*/ u8 itemEffect[18]; + /*0x08*/ u8 itemEffect[BERRY_ITEM_EFFECT_COUNT]; /*0x1A*/ u8 holdEffectParam; }; diff --git a/include/global.h b/include/global.h index 4014c6dde..e0c09d29a 100644 --- a/include/global.h +++ b/include/global.h @@ -198,8 +198,13 @@ struct SaveBlock2 // All below could be a one giant struct /*0x64C*/ u8 field_64C[1629]; - /*0xCA9*/ u8 frontierChosenLvl : 2; - /*0xCA9*/ u8 field_CA9_a : 6; + /*0xCA9*/ u8 frontierChosenLvl : 2; // 0x1, 0x2 -> 0x3 + /*0xCA9*/ u8 field_CA9_a : 1; // 0x4 + /*0xCA9*/ u8 field_CA9_b : 1; // 0x8 + /*0xCA9*/ u8 field_CA9_c : 1; // 0x10 + /*0xCA9*/ u8 field_CA9_d : 1; // 0x20 + /*0xCA9*/ u8 field_CA9_e : 1; // 0x40 + /*0xCA9*/ u8 field_CA9_f : 1; // 0x80 /*0xCAA*/ u8 field_CAA[368]; /*0xE1A*/ u16 battlePyramidFloor; // possibly? /*0xE1C*/ u8 field_E1C[16]; diff --git a/include/link.h b/include/link.h index 5db3ff3d2..9d581a6c1 100644 --- a/include/link.h +++ b/include/link.h @@ -143,7 +143,6 @@ extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; void Task_DestroySelf(u8); -void sub_8007270(u8); void OpenLink(void); void CloseLink(void); u16 LinkMain2(u16 *); @@ -162,24 +161,12 @@ void sub_8007E4C(void); u8 GetMultiplayerId(void); u8 bitmask_all_link_players_but_self(void); bool8 SendBlock(u8, void *, u16); -bool8 sub_8007E9C(u8); -bool8 sub_8007ECC(void); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlag(u8); -void sub_8007F4C(void); void SetLinkDebugValues(u32, u32); -u8 sub_8008198(void); -void sub_80081C8(u8); -u8 sub_800820C(void); -u8 sub_8008218(void); -void sub_800826C(void); -void sub_80082EC(void); u8 GetLinkPlayerCount_2(void); bool8 IsLinkMaster(void); -void sub_800832C(void); -void sub_8008480(void); -void sub_80084A4(void); void CB2_LinkError(void); u8 GetSioMultiSI(void); bool8 IsLinkConnectionEstablished(void); @@ -191,4 +178,10 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); +void sub_800E0E8(void); +bool8 sub_800A520(void); +bool8 sub_8010500(void); +void sub_800DFB4(u8, u8); +void sub_800ADF8(void); + #endif // GUARD_LINK_H diff --git a/include/load_save.h b/include/load_save.h index 20848e1a7..1f406bbad 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -19,5 +19,6 @@ void LoadSerializedGame(void); void LoadPlayerBag(void); void SavePlayerBag(void); void SetSaveBlocksPointers(u16); +void MoveSaveBlocks_ResetHeap(void); #endif // GUARD_LOAD_SAVE_H diff --git a/include/main.h b/include/main.h index e5460b3bf..e283d1754 100644 --- a/include/main.h +++ b/include/main.h @@ -39,6 +39,7 @@ struct Main /*0x439*/ u8 oamLoadDisabled:1; /*0x439*/ u8 inBattle:1; + /*0x439*/ u8 field_439_x4:1; }; extern u8 gUnknown_3001764; diff --git a/include/pokemon.h b/include/pokemon.h index 20e904f39..b3155881e 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -632,9 +632,13 @@ void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); s32 sub_806D864(u16 a1); bool16 sub_806D82C(u8 id); u16 MonTryLearningNewMove(struct Pokemon* mon, bool8); +void sub_8068AA4(void); // sets stats for deoxys +bool8 HasTwoFramesAnimation(u16 species); #include "sprite.h" void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); +void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); +void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); #endif // GUARD_POKEMON_H diff --git a/include/recorded_battle.h b/include/recorded_battle.h index d19a2b713..2df1620e4 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -1,6 +1,18 @@ #ifndef GUARD_RECORDED_BATTLE_H #define GUARD_RECORDED_BATTLE_H +extern u32 gRecordedBattleRngSeed; + +void sub_8185F84(void); +void sub_8184E58(void); void RecordedBattle_SetBankAction(u8 bank, u8 action); +void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear); +void sub_8185F90(u16 arg0); +bool8 sub_8186450(void); +u8 sub_8185FAC(void); +u8 sub_8185FB8(void); +u8 MoveRecordedBattleToSaveData(void); +void sub_818603C(u8); +void sub_8185FD0(void); #endif // GUARD_RECORDED_BATTLE_H diff --git a/include/sprite.h b/include/sprite.h index 838b0d7c0..a9377165e 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -212,14 +212,14 @@ struct Sprite u16 flags_5:1; //0x20 u16 flags_6:1; //0x40 u16 flags_7:1; //0x80 - /*0x3F*/ u16 hFlip:1; - u16 vFlip:1; - u16 animBeginning:1; - u16 affineAnimBeginning:1; - u16 animEnded:1; - u16 affineAnimEnded:1; - u16 usingSheet:1; - u16 flags_f:1; + /*0x3F*/ u16 hFlip:1; //1 + u16 vFlip:1; //2 + u16 animBeginning:1; //4 + u16 affineAnimBeginning:1; //8 + u16 animEnded:1; //0x10 + u16 affineAnimEnded:1; //0x20 + u16 usingSheet:1; //0x40 + u16 flags_f:1; //0x80 /*0x40*/ u16 sheetTileStart; diff --git a/include/unknown_task.h b/include/unknown_task.h index f59ca9ac3..9c6968c30 100644 --- a/include/unknown_task.h +++ b/include/unknown_task.h @@ -2,10 +2,21 @@ #define GUARD_unknown_task_H // Exported type declarations +struct UnknownTaskStruct +{ + volatile void *dest; + u32 control; + u8 unk8; + u8 unk9; +}; + +extern struct UnknownTaskStruct gUnknown_0831AC70; // Exported RAM declarations // Exported ROM declarations void remove_some_task(void); +void sub_80BA038(struct UnknownTaskStruct arg0); +void sub_80BA0A8(void); -#endif //GUARD_unknown_task_H +#endif // GUARD_unknown_task_H |