diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-07 23:44:45 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-01-07 23:44:45 -0500 |
commit | 46a8dd57dacb79919d94f316e887578afa175afc (patch) | |
tree | ae82584f9ae99b3cff17eeada664f87b73a6193c /include | |
parent | d4df8046d45e50e19d2305bd4388e47087949960 (diff) | |
parent | 6b38db228befa044a2cfe31ed78555e3f0bd3935 (diff) |
Merge branch 'master' of https://github.com/pret/pokeruby into assert
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 31 | ||||
-rw-r--r-- | include/battle_ai.h | 1 | ||||
-rw-r--r-- | include/battle_message.h | 137 | ||||
-rw-r--r-- | include/battle_util.h | 29 | ||||
-rw-r--r-- | include/constants/battle_constants.h | 74 | ||||
-rwxr-xr-x | include/ewram.h | 7 | ||||
-rw-r--r-- | include/pokemon.h | 14 | ||||
-rw-r--r-- | include/roamer.h | 2 | ||||
-rw-r--r-- | include/rom_8077ABC.h | 6 | ||||
-rw-r--r-- | include/trainer.h | 270 | ||||
-rw-r--r-- | include/tv.h | 1 |
11 files changed, 415 insertions, 157 deletions
diff --git a/include/battle.h b/include/battle.h index 0824fc46c..27ed57045 100644 --- a/include/battle.h +++ b/include/battle.h @@ -227,10 +227,8 @@ struct BattleStruct /* 0x2000000 */ /*0x160D5*/ u8 unk160D5; /*0x160D6*/ u8 unk160D6; /*0x160D7*/ u8 unk160D7; - /*0x160D8*/ u8 unk160D8; - /*0x160D9*/ u8 unk160D9; - /*0x160DA*/ u8 unk160DA; - /*0x160DB*/ u8 unk160DB; + /*0x160D8*/ u8 unk160D8[2]; + /*0x160DA*/ u8 unk160DA[2]; /*0x160DC*/ u8 unk160DC; /*0x160DD*/ u8 intimidateBank; /*0x160DE*/ u8 unk160DE; @@ -501,7 +499,7 @@ extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE]; extern struct BattleResults gBattleResults; extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE]; extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE]; -extern struct sideTimer gSideTimer[2]; +extern struct sideTimer gSideTimers[2]; extern struct WishFutureKnock gWishFutureKnock; extern struct AI_ThinkingStruct gAIThinkingSpace; extern struct Struct20238C8 gUnknown_020238C8; @@ -551,7 +549,7 @@ extern u8 gBattleTextBuff1[]; //function declarations of buffer emits void EmitGetAttributes(u8 buffID, u8 request, u8 c); //0x0 void Emitcmd1(u8 a, u8 b, u8 c); //0x1 -void EmitSetAttributes(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2 +void EmitSetMonData(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2 void EmitSendOutPoke(u8 a, u8 b, u8 c); //0x5 void EmitReturnPokeToBall(u8 a, u8 b); //0x6 void EmitTrainerSlide(u8 a); //0x8 @@ -606,7 +604,7 @@ void InitBattle(void); void sub_800EC9C(void); void sub_800F104(void); void sub_800F298(void); -void sub_800F808(void); +void BattleMainCB2(void); void sub_800F838(struct Sprite *); u8 CreateNPCTrainerParty(struct Pokemon *, u16); void sub_800FCFC(void); @@ -638,32 +636,28 @@ void sub_8011970(void); void sub_80119B4(void); void BattleBeginFirstTurn(void); void BattleTurnPassed(void); +void RunBattleScriptCommands_PopCallbacksStack(void); +void RunBattleScriptCommands(void); +bool8 TryRunFromBattle(u8 bank); // asm/battle_2.o void sub_8012324(void); -void sub_8012FBC(u8, u8); +void SwapTurnOrder(u8, u8); u8 GetWhoStrikesFirst(u8, u8, u8); -void TurnValuesCleanUp(u8); -void SpecialStatusesClear(void); -void sub_80138F0(void); -void sub_80155A4(); -void CancelMultiTurnMoves(u8 bank); -void PrepareStringBattle(); -void sub_80156DC(); -void sub_80157C4(u8 index); // asm/battle_3.o u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); -u8 sub_80170DC(); -u8 sub_80173A4(); +u8 HandleFaintedMonActions(); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move); u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); +u8 GetMoveTarget(u16 move, u8 useMoveTarget); // asm/battle_4.o void AI_CalcDmg(u8, u8); u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def); +u8 BankGetTurnOrder(u8 bank); // asm/battle_5.o void nullsub_91(void); @@ -686,6 +680,7 @@ void sub_80324F8(struct Pokemon *, u8); void sub_8032638(); void sub_8032AA8(u8, u8); void SetBankFuncToOpponentBufferRunCommand(void); +void BattleMusicStop(void); // asm/battle_9.o void SetBankFuncToLinkOpponentBufferRunCommand(void); diff --git a/include/battle_ai.h b/include/battle_ai.h index 60ca5d000..c22ca8633 100644 --- a/include/battle_ai.h +++ b/include/battle_ai.h @@ -24,5 +24,6 @@ void sub_810745C(void); void AIStackPushVar(u8 *); u8 AIStackPop(void); void BattleAI_HandleItemUseBeforeAISetup(void); +void RecordAbilityBattle(u8 a, u8 b); #endif diff --git a/include/battle_message.h b/include/battle_message.h index 3e37a1ccd..9c27994ee 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -16,6 +16,143 @@ struct StringInfoBattle u8 textBuffs[3][0x10]; }; +// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 + +#define B_BUFF_STRING 0 +#define B_BUFF_NUMBER 1 +#define B_BUFF_MOVE 2 +#define B_BUFF_TYPE 3 +#define B_BUFF_MON_NICK_WITH_PREFIX 4 +#define B_BUFF_STAT 5 +#define B_BUFF_SPECIES 6 +#define B_BUFF_MON_NICK 7 +#define B_BUFF_NEGATIVE_FLAVOR 8 +#define B_BUFF_ABILITY 9 +#define B_BUFF_ITEM 10 + +#define B_BUFF_PLACEHOLDER_BEGIN 0xFD +#define B_BUFF_EOS 0xFF + +#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \ + textVar[2] = flavorId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_STAT_BUFFER(textVar, statId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STAT; \ + textVar[2] = statId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ABILITY; \ + textVar[2] = abilityId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_TYPE_BUFFER(textVar, typeId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_TYPE; \ + textVar[2] = typeId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 1; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = B_BUFF_EOS; \ +} + +#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 2; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = B_BUFF_EOS; \ +} + +#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 4; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = (number & 0x00FF0000) >> 16; \ + textVar[7] = (number & 0xFF000000) >> 24; \ + textVar[8] = B_BUFF_EOS; \ +} + +#define PREPARE_STRING_BUFFER(textVar, stringId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STRING; \ + textVar[2] = stringId; \ + textVar[3] = (stringId & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MOVE_BUFFER(textVar, move) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MOVE; \ + textVar[2] = move; \ + textVar[3] = (move & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_ITEM_BUFFER(textVar, item) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ITEM; \ + textVar[2] = item; \ + textVar[3] = (item & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_SPECIES_BUFFER(textVar, species) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_SPECIES; \ + textVar[2] = species; \ + textVar[3] = (species & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + void BufferStringBattle(u16 stringID); u32 StrCpyDecodeToDisplayedStringBattle(const u8* src); u32 StrCpyDecodeBattle(const u8* src, u8* dst); diff --git a/include/battle_util.h b/include/battle_util.h new file mode 100644 index 000000000..f47b00b2c --- /dev/null +++ b/include/battle_util.h @@ -0,0 +1,29 @@ +#ifndef GUARD_BATTLE_UTIL_H +#define GUARD_BATTLE_UTIL_H + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_PLAYER1 11 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + +void TryClearRageStatuses(void); +void BattleScriptPush(u8* BS_ptr); +void PressurePPLoseOnUsingImprision(u8 bankAtk); +void PressurePPLoseOnUsingPerishSong(u8 bankAtk); +void sub_80155A4(u8); +void CancelMultiTurnMoves(u8 bank); +bool8 WasUnableToUseMove(u8 bank); +void PrepareStringBattle(u16 stringId, u8 bank); +void ResetSentPokesToOpponentValue(void); +void sub_8015740(u8 bank); +void sub_80157C4(u8 bank); +bool8 HandleWishPerishSongOnTurnEnd(void); +void BattleScriptExecute(u8* BS_ptr); +void BattleScriptPushCursorAndCallback(u8* BS_ptr); +u8 IsMonDisobedient(void); + +#endif // GUARD_BATTLE_UTIL_H diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index f7efb0dfd..49768f33e 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -1,6 +1,13 @@ #ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H #define GUARD_CONSTANTS_BATTLE_CONSTANTS_H +// Bank sides +#define SIDE_PLAYER 0x0 +#define SIDE_OPPONENT 0x1 + +#define BIT_SIDE 0x1 +#define BIT_MON 0x2 + #define STATUS_SLEEP 0x7 #define STATUS_POISON 0x8 #define STATUS_BURN 0x10 @@ -65,6 +72,7 @@ #define HITMARKER_PURSUIT_TRAP 0x00001000 #define HITMARKER_IGNORE_SAFEGUARD 0x00002000 #define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_RUN 0x00008000 #define HITMARKER_IGNORE_ON_AIR 0x00010000 #define HITMARKER_IGNORE_UNDERGROUND 0x00020000 #define HITMARKER_IGNORE_UNDERWATER 0x00040000 @@ -75,6 +83,7 @@ #define HITMARKER_x800000 0x00800000 #define HITMARKER_GRUDGE 0x01000000 #define HITMARKER_OBEYS 0x02000000 +#define HITMARKER_x4000000 0x04000000 #define HITMARKER_x8000000 0x08000000 #define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) #define HITMARKER_UNK(bank) ((0x10000000 << bank)) @@ -88,6 +97,11 @@ #define MOVESTATUS_ENDURED (1 << 6) #define MOVESTATUS_HUNGON (1 << 7) +#define IDENTITY_PLAYER_MON1 0 +#define IDENTITY_OPPONENT_MON1 1 +#define IDENTITY_PLAYER_MON2 2 +#define IDENTITY_OPPONENT_MON2 3 + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -117,6 +131,8 @@ #define BATTLE_OUT_OF_BALLS 0x8 #define BATTLE_OPPONENT_TELEPORTED 0xA +#define OUTCOME_LINK_BATTLE_RUN 0x80 + #define SIDE_STATUS_REFLECT (1 << 0) #define SIDE_STATUS_LIGHTSCREEN (1 << 1) #define SIDE_STATUS_X4 (1 << 2) @@ -126,6 +142,22 @@ #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) +#define ACTION_USE_MOVE 0 +#define ACTION_USE_ITEM 1 +#define ACTION_SWITCH 2 +#define ACTION_RUN 3 +#define ACTION_WATCHES_CAREFULLY 4 +#define ACTION_SAFARI_ZONE_BALL 5 +#define ACTION_POKEBLOCK_CASE 6 +#define ACTION_GO_NEAR 7 +#define ACTION_SAFARI_ZONE_RUN 8 +#define ACTION_9 9 +#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action +#define ACTION_CANCEL_PARTNER 12 // when choosing an action +#define ACTION_FINISHED 12 // when executing an action +#define ACTION_NOTHING_FAINTED 13 // when choosing an action +#define ACTION_INIT_VALUE 0xFF + #define TARGET_SELECTED_POKEMON 0 #define TARGET_SPECIAL (1 << 0) #define TARGET_UNK2 (1 << 1) @@ -192,6 +224,40 @@ #define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) #define WEATHER_HAIL (1 << 7) +#define MOVE_TARGET_SELECTED 0x0 +#define MOVE_TARGET_DEPENDS 0x1 +#define MOVE_TARGET_USER 0x2 +#define MOVE_TARGET_RANDOM 0x4 +#define MOVE_TARGET_x10 0x10 +#define MOVE_TARGET_BOTH 0x8 +#define MOVE_TARGET_FOES_AND_ALLY 0x20 +#define MOVE_TARGET_OPPONENTS_FIELD 0x40 + +// 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 SPRITES_INIT_STATE1 0x1 // shares the Id as well +#define SPRITES_INIT_STATE2 0x2 +#define MOVE_EFFECT_BYTE 0x3 +#define ACTIONS_CONFIRMED_COUNT 0x4 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 +#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update +#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + // status animation table #define B_ANIM_STATUS_PSN 0x0 #define B_ANIM_STATUS_CONFUSION 0x1 @@ -238,4 +304,12 @@ #define B_ANIM_SUBSTITUTE_TO_MON 0x5 #define B_ANIM_MON_TO_SUBSTITUTE 0x6 +// AI switch items +#define AI_ITEM_FULL_RESTORE 1 +#define AI_ITEM_HEAL_HP 2 +#define AI_ITEM_CURE_CONDITION 3 +#define AI_ITEM_X_STAT 4 +#define AI_ITEM_GUARD_SPECS 5 +#define AI_ITEM_NOT_RECOGNIZABLE 6 + #endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H diff --git a/include/ewram.h b/include/ewram.h index 07f9d1ad2..17ca3508a 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -108,6 +108,7 @@ extern u8 gSharedMem[]; #define ewram16010arr(bank) (gSharedMem[0x16010 + bank]) #define ewram1601B (gSharedMem[0x1601B]) #define eDynamicMoveType (gSharedMem[0x1601C]) +#define eFocusPunchBank (gSharedMem[0x1601D]) #define eDmgMultiplier (gSharedMem[0x1601F]) #define ewram16020 ((u8 *)(gSharedMem + 0x16020)) #define ewram16020arr(i) (gSharedMem[0x16020 + i]) @@ -133,6 +134,8 @@ extern u8 gSharedMem[]; #define ewram1608Carr(bank) (gSharedMem[0x1608C + bank]) #define EWRAM_1609D (gSharedMem[0x1609D]) #define ewram160A1 (gSharedMem[0x160A1]) +#define ewram160A4 (gSharedMem[0x160A4]) +#define ewram160A5 (gSharedMem[0x160A5]) #define ewram160A6 (gSharedMem[0x160A6]) #define ewram160A8 (gSharedMem[0x160A8]) #define ewram160A9 (gSharedMem[0x160A9]) @@ -155,9 +158,12 @@ extern u8 gSharedMem[]; #define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2])))) #define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)]) #define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2]) +#define ewram160D8(bank) (gSharedMem[0x160D8 + (bank / 2)]) +#define ewram160DA(bank) (gSharedMem[0x160DA + (bank / 2)]) #define ewram160DD (gSharedMem[0x160DD]) #define ewram160E0(i) (gSharedMem[0x160E0 + i]) #define ewram160E6 (gSharedMem[0x160E6]) +#define ewram160E7 (gSharedMem[0x160E7]) #define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2]))) #define ewram160E8 ((u8 *)(gSharedMem + 0x160E8)) #define ewram160E8arr(i) (gSharedMem[0x160E8 + i]) @@ -175,6 +181,7 @@ extern u8 gSharedMem[]; #define ewram16108arr(i) (gSharedMem[0x16108 + i]) #define ewram16110 (gSharedMem[0x16110]) #define ewram16111 (gSharedMem[0x16111]) +#define eMultihitMoveEffect (gSharedMem[0x16112]) #define ewram16113 (gSharedMem[0x16113]) #define ewram16400 (gSharedMem + 0x16400) #define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800)) diff --git a/include/pokemon.h b/include/pokemon.h index a1c30f1f3..71b35e65c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -363,6 +363,16 @@ enum STAT_STAGE_EVASION, // 7 }; +enum +{ + STAT_HP, // 0 + STAT_ATK, // 1 + STAT_DEF, // 2 + STAT_SPD, // 3 + STAT_SPATK, // 4 + STAT_SPDEF, // 5 +}; + struct BaseStats { /*0x00*/ u8 baseHP; @@ -405,7 +415,7 @@ struct BattleMove u8 pp; u8 secondaryEffectChance; u8 target; - u8 priority; + s8 priority; u8 flags; u8 pad[3]; }; @@ -613,6 +623,8 @@ bool8 IsPokeSpriteNotFlipped(u16); u8 GetLevelUpMovesBySpecies(u16, u16 *); u8 TryIncrementMonLevel(struct Pokemon *); bool8 IsShiny(struct Pokemon *mon); +void RandomlyGivePartyPokerus(struct Pokemon *party); +void PartySpreadPokerus(struct Pokemon *party); struct Sprite *sub_80F7920(u16, u16, const u16 *); diff --git a/include/roamer.h b/include/roamer.h index 9d5f3c4ed..86908bd00 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -7,5 +7,7 @@ void UpdateLocationHistoryForRoamer(void); void RoamerMoveToOtherLocationSet(void); void RoamerMove(); u8 TryStartRoamerEncounter(void); +void UpdateRoamerHPStatus(struct Pokemon *mon); +void SetRoamerInactive(void); #endif diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index dda90c48f..21ec88a90 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -25,9 +25,9 @@ u8 GetBankSide(u8 slot); u8 GetBankSide(u8); u8 GetBankIdentity(u8); u8 GetBankIdentity(u8 slot); -u8 GetBankByPlayerAI(u8); -u8 GetBankByPlayerAI(u8); -u8 GetBankByPlayerAI(u8 state); +u8 GetBankByIdentity(u8); +u8 GetBankByIdentity(u8); +u8 GetBankByIdentity(u8 state); bool8 IsBankSpritePresent(u8); bool8 IsDoubleBattle(); u8 IsDoubleBattle(void); diff --git a/include/trainer.h b/include/trainer.h index 2e0beb342..e8f2776d2 100644 --- a/include/trainer.h +++ b/include/trainer.h @@ -17,83 +17,83 @@ #define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen enum { - TRAINER_CLASS_AQUA_LEADER, - TRAINER_CLASS_TEAM_AQUA_M, - TRAINER_CLASS_TEAM_AQUA_F, - TRAINER_CLASS_AROMA_LADY, - TRAINER_CLASS_RUIN_MANIAC, - TRAINER_CLASS_INTERVIEWER, - TRAINER_CLASS_TUBER_F, - TRAINER_CLASS_TUBER_M, - TRAINER_CLASS_COOL_TRAINER_M, - TRAINER_CLASS_COOL_TRAINER_F, - TRAINER_CLASS_HEX_MANIAC, - TRAINER_CLASS_LADY, - TRAINER_CLASS_BEAUTY, - TRAINER_CLASS_RICH_BOY, - TRAINER_CLASS_POKEMANIAC, - TRAINER_CLASS_SWIMMER_M, - TRAINER_CLASS_BLACK_BELT, - TRAINER_CLASS_GUITARIST, - TRAINER_CLASS_KINDLER, - TRAINER_CLASS_CAMPER, - TRAINER_CLASS_BUG_MANIAC, - TRAINER_CLASS_PSYCHIC_M, - TRAINER_CLASS_PSYCHIC_F, - TRAINER_CLASS_GENTLEMAN, - TRAINER_CLASS_ELITE_FOUR_M, - TRAINER_CLASS_ELITE_FOUR_F, - TRAINER_CLASS_LEADER_F, - TRAINER_CLASS_LEADER_M, - TRAINER_CLASS_LEADER_MF, - TRAINER_CLASS_SCHOOL_KID_M, - TRAINER_CLASS_SCHOOL_KID_F, - TRAINER_CLASS_SR_AND_JR, - TRAINER_CLASS_POKEFAN_M, - TRAINER_CLASS_POKEFAN_F, - TRAINER_CLASS_EXPERT_M, - TRAINER_CLASS_EXPERT_F, - TRAINER_CLASS_YOUNGSTER, - TRAINER_CLASS_CHAMPION, - TRAINER_CLASS_FISHERMAN, - TRAINER_CLASS_CYCLING_TRIATHLETE_M, - TRAINER_CLASS_CYCLING_TRIATHLETE_F, - TRAINER_CLASS_RUNNING_TRIATHLETE_M, - TRAINER_CLASS_RUNNING_TRIATHLETE_F, - TRAINER_CLASS_SWIMMING_TRIATHLETE_M, - TRAINER_CLASS_SWIMMING_TRIATHLETE_F, - TRAINER_CLASS_DRAGON_TAMER, - TRAINER_CLASS_BIRD_KEEPER, - TRAINER_CLASS_NINJA_BOY, - TRAINER_CLASS_BATTLE_GIRL, - TRAINER_CLASS_PARASOL_LADY, - TRAINER_CLASS_SWIMMER_F, - TRAINER_CLASS_PICNICKER, - TRAINER_CLASS_TWINS, - TRAINER_CLASS_SAILOR, - TRAINER_CLASS_BOARDER_1, - TRAINER_CLASS_BOARDER_2, - TRAINER_CLASS_COLLECTOR, - TRAINER_CLASS_WALLY, - TRAINER_CLASS_BRENDAN_1, - TRAINER_CLASS_BRENDAN_2, - TRAINER_CLASS_BRENDAN_3, - TRAINER_CLASS_MAY_1, - TRAINER_CLASS_MAY_2, - TRAINER_CLASS_MAY_3, - TRAINER_CLASS_POKEMON_BREEDER_M, - TRAINER_CLASS_POKEMON_BREEDER_F, - TRAINER_CLASS_POKEMON_RANGER_M, - TRAINER_CLASS_POKEMON_RANGER_F, - TRAINER_CLASS_MAGMA_LEADER, - TRAINER_CLASS_TEAM_MAGMA_M, - TRAINER_CLASS_TEAM_MAGMA_F, - TRAINER_CLASS_LASS, - TRAINER_CLASS_BUG_CATCHER, - TRAINER_CLASS_HIKER, - TRAINER_CLASS_YOUNG_COUPLE, - TRAINER_CLASS_OLD_COUPLE, - TRAINER_CLASS_SIS_AND_BRO + FACILITY_CLASS_AQUA_LEADER, + FACILITY_CLASS_TEAM_AQUA_M, + FACILITY_CLASS_TEAM_AQUA_F, + FACILITY_CLASS_AROMA_LADY, + FACILITY_CLASS_RUIN_MANIAC, + FACILITY_CLASS_INTERVIEWER, + FACILITY_CLASS_TUBER_F, + FACILITY_CLASS_TUBER_M, + FACILITY_CLASS_COOL_TRAINER_M, + FACILITY_CLASS_COOL_TRAINER_F, + FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_LADY, + FACILITY_CLASS_BEAUTY, + FACILITY_CLASS_RICH_BOY, + FACILITY_CLASS_POKEMANIAC, + FACILITY_CLASS_SWIMMER_M, + FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_GUITARIST, + FACILITY_CLASS_KINDLER, + FACILITY_CLASS_CAMPER, + FACILITY_CLASS_BUG_MANIAC, + FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_GENTLEMAN, + FACILITY_CLASS_ELITE_FOUR_M, + FACILITY_CLASS_ELITE_FOUR_F, + FACILITY_CLASS_LEADER_F, + FACILITY_CLASS_LEADER_M, + FACILITY_CLASS_LEADER_MF, + FACILITY_CLASS_SCHOOL_KID_M, + FACILITY_CLASS_SCHOOL_KID_F, + FACILITY_CLASS_SR_AND_JR, + FACILITY_CLASS_POKEFAN_M, + FACILITY_CLASS_POKEFAN_F, + FACILITY_CLASS_EXPERT_M, + FACILITY_CLASS_EXPERT_F, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_CHAMPION, + FACILITY_CLASS_FISHERMAN, + FACILITY_CLASS_CYCLING_TRIATHLETE_M, + FACILITY_CLASS_CYCLING_TRIATHLETE_F, + FACILITY_CLASS_RUNNING_TRIATHLETE_M, + FACILITY_CLASS_RUNNING_TRIATHLETE_F, + FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + FACILITY_CLASS_DRAGON_TAMER, + FACILITY_CLASS_BIRD_KEEPER, + FACILITY_CLASS_NINJA_BOY, + FACILITY_CLASS_BATTLE_GIRL, + FACILITY_CLASS_PARASOL_LADY, + FACILITY_CLASS_SWIMMER_F, + FACILITY_CLASS_PICNICKER, + FACILITY_CLASS_TWINS, + FACILITY_CLASS_SAILOR, + FACILITY_CLASS_BOARDER_1, + FACILITY_CLASS_BOARDER_2, + FACILITY_CLASS_COLLECTOR, + FACILITY_CLASS_WALLY, + FACILITY_CLASS_BRENDAN_1, + FACILITY_CLASS_BRENDAN_2, + FACILITY_CLASS_BRENDAN_3, + FACILITY_CLASS_MAY_1, + FACILITY_CLASS_MAY_2, + FACILITY_CLASS_MAY_3, + FACILITY_CLASS_POKEMON_BREEDER_M, + FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_POKEMON_RANGER_M, + FACILITY_CLASS_POKEMON_RANGER_F, + FACILITY_CLASS_MAGMA_LEADER, + FACILITY_CLASS_TEAM_MAGMA_M, + FACILITY_CLASS_TEAM_MAGMA_F, + FACILITY_CLASS_LASS, + FACILITY_CLASS_BUG_CATCHER, + FACILITY_CLASS_HIKER, + FACILITY_CLASS_YOUNG_COUPLE, + FACILITY_CLASS_OLD_COUPLE, + FACILITY_CLASS_SIS_AND_BRO }; enum { @@ -183,64 +183,64 @@ enum { }; enum { - TRAINER_CLASS_NAME_POKEMON_TRAINER_1, - TRAINER_CLASS_NAME_POKEMON_TRAINER_2, - TRAINER_CLASS_NAME_AQUA_LEADER, - TRAINER_CLASS_NAME_TEAM_AQUA, - TRAINER_CLASS_NAME_AQUA_ADMIN, - TRAINER_CLASS_NAME_AROMA_LADY, - TRAINER_CLASS_NAME_RUIN_MANIAC, - TRAINER_CLASS_NAME_INTERVIEWER, - TRAINER_CLASS_NAME_TUBER_F, - TRAINER_CLASS_NAME_TUBER_M, - TRAINER_CLASS_NAME_COOL_TRAINER, - TRAINER_CLASS_NAME_HEX_MANIAC, - TRAINER_CLASS_NAME_LADY, - TRAINER_CLASS_NAME_BEAUTY, - TRAINER_CLASS_NAME_RICH_BOY, - TRAINER_CLASS_NAME_POKEMANIAC, - TRAINER_CLASS_NAME_SWIMMER_M, - TRAINER_CLASS_NAME_BLACK_BELT, - TRAINER_CLASS_NAME_GUITARIST, - TRAINER_CLASS_NAME_KINDLER, - TRAINER_CLASS_NAME_CAMPER, - TRAINER_CLASS_NAME_BUG_MANIAC, - TRAINER_CLASS_NAME_PSYCHIC, - TRAINER_CLASS_NAME_GENTLEMAN, - TRAINER_CLASS_NAME_ELITE_FOUR, - TRAINER_CLASS_NAME_LEADER, - TRAINER_CLASS_NAME_SCHOOL_KID, - TRAINER_CLASS_NAME_SR_AND_JR, - TRAINER_CLASS_NAME_WINSTRATE, - TRAINER_CLASS_NAME_POKEFAN, - TRAINER_CLASS_NAME_EXPERT, - TRAINER_CLASS_NAME_YOUNGSTER, - TRAINER_CLASS_NAME_CHAMPION, - TRAINER_CLASS_NAME_FISHERMAN, - TRAINER_CLASS_NAME_TRIATHLETE, - TRAINER_CLASS_NAME_DRAGON_TAMER, - TRAINER_CLASS_NAME_BIRD_KEEPER, - TRAINER_CLASS_NAME_NINJA_BOY, - TRAINER_CLASS_NAME_BATTLE_GIRL, - TRAINER_CLASS_NAME_PARASOL_LADY, - TRAINER_CLASS_NAME_SWIMMER_F, - TRAINER_CLASS_NAME_PICNICKER, - TRAINER_CLASS_NAME_TWINS, - TRAINER_CLASS_NAME_SAILOR, - TRAINER_CLASS_NAME_BOARDER, - TRAINER_CLASS_NAME_COLLECTOR, - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, - TRAINER_CLASS_NAME_POKEMON_BREEDER, - TRAINER_CLASS_NAME_POKEMON_RANGER, - TRAINER_CLASS_NAME_MAGMA_LEADER, - TRAINER_CLASS_NAME_TEAM_MAGMA, - TRAINER_CLASS_NAME_MAGMA_ADMIN, - TRAINER_CLASS_NAME_LASS, - TRAINER_CLASS_NAME_BUG_CATCHER, - TRAINER_CLASS_NAME_HIKER, - TRAINER_CLASS_NAME_YOUNG_COUPLE, - TRAINER_CLASS_NAME_OLD_COUPLE, - TRAINER_CLASS_NAME_SIS_AND_BRO + TRAINER_CLASS_POKEMON_TRAINER_1, + TRAINER_CLASS_POKEMON_TRAINER_2, + TRAINER_CLASS_AQUA_LEADER, + TRAINER_CLASS_TEAM_AQUA, + TRAINER_CLASS_AQUA_ADMIN, + TRAINER_CLASS_AROMA_LADY, + TRAINER_CLASS_RUIN_MANIAC, + TRAINER_CLASS_INTERVIEWER, + TRAINER_CLASS_TUBER_F, + TRAINER_CLASS_TUBER_M, + TRAINER_CLASS_COOL_TRAINER, + TRAINER_CLASS_HEX_MANIAC, + TRAINER_CLASS_LADY, + TRAINER_CLASS_BEAUTY, + TRAINER_CLASS_RICH_BOY, + TRAINER_CLASS_POKEMANIAC, + TRAINER_CLASS_SWIMMER_M, + TRAINER_CLASS_BLACK_BELT, + TRAINER_CLASS_GUITARIST, + TRAINER_CLASS_KINDLER, + TRAINER_CLASS_CAMPER, + TRAINER_CLASS_BUG_MANIAC, + TRAINER_CLASS_PSYCHIC, + TRAINER_CLASS_GENTLEMAN, + TRAINER_CLASS_ELITE_FOUR, + TRAINER_CLASS_LEADER, + TRAINER_CLASS_SCHOOL_KID, + TRAINER_CLASS_SR_AND_JR, + TRAINER_CLASS_WINSTRATE, + TRAINER_CLASS_POKEFAN, + TRAINER_CLASS_EXPERT, + TRAINER_CLASS_YOUNGSTER, + TRAINER_CLASS_CHAMPION, + TRAINER_CLASS_FISHERMAN, + TRAINER_CLASS_TRIATHLETE, + TRAINER_CLASS_DRAGON_TAMER, + TRAINER_CLASS_BIRD_KEEPER, + TRAINER_CLASS_NINJA_BOY, + TRAINER_CLASS_BATTLE_GIRL, + TRAINER_CLASS_PARASOL_LADY, + TRAINER_CLASS_SWIMMER_F, + TRAINER_CLASS_PICNICKER, + TRAINER_CLASS_TWINS, + TRAINER_CLASS_SAILOR, + TRAINER_CLASS_BOARDER, + TRAINER_CLASS_COLLECTOR, + TRAINER_CLASS_POKEMON_TRAINER_3, + TRAINER_CLASS_POKEMON_BREEDER, + TRAINER_CLASS_POKEMON_RANGER, + TRAINER_CLASS_MAGMA_LEADER, + TRAINER_CLASS_TEAM_MAGMA, + TRAINER_CLASS_MAGMA_ADMIN, + TRAINER_CLASS_LASS, + TRAINER_CLASS_BUG_CATCHER, + TRAINER_CLASS_HIKER, + TRAINER_CLASS_YOUNG_COUPLE, + TRAINER_CLASS_OLD_COUPLE, + TRAINER_CLASS_SIS_AND_BRO }; #endif // GUARD_TRAINER_H diff --git a/include/tv.h b/include/tv.h index 91b871f71..2edccb365 100644 --- a/include/tv.h +++ b/include/tv.h @@ -107,5 +107,6 @@ void UpdateTVShowsPerDay(u16); void sub_80C045C(); void sub_80BF088(u8, s32); void sub_80BFD20(void); +void PutPokemonTodayCaughtOnAir(void); #endif // GUARD_TV_H |