Merge remote-tracking branch 'pret/master' into render_text

This commit is contained in:
Diegoisawesome
2018-11-06 11:40:17 -06:00
86 changed files with 3821 additions and 9029 deletions

View File

@@ -9,7 +9,8 @@ struct ApprenticeTrainer
u16 otId;
u8 facilityClass;
u16 species[APPRENTICE_SPECIES_COUNT];
u8 rest[14];
u8 id;
u16 easyChatWords[6];
};
extern const struct ApprenticeTrainer gApprentices[];

View File

@@ -3,7 +3,7 @@
extern u32 gUnknown_0203CD70;
s32 GetTrainerMonCountInBits(u16 tournamentTrainerId);
s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId);
s32 TrainerIdToDomeTournamentId(u16 trainerId);
#endif // GUARD_BATTLE_DOME_H

View File

@@ -1,6 +0,0 @@
#ifndef GUARD_BATTLE_FRONTIER_1_H
#define GUARD_BATTLE_FRONTIER_1_H
bool32 sub_8196034(void);
#endif // GUARD_BATTLE_FRONTIER_1_H

View File

@@ -1,19 +0,0 @@
#ifndef GUARD_BATTLE_FRONTIER_2_H
#define GUARD_BATTLE_FRONTIER_2_H
#define FRONTIER_BEFORE_TEXT 0
#define FRONTIER_WIN_TEXT 1
#define FRONTIER_LOSE_TEXT 2
void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
void sub_81A8934(u8);
void sub_81A895C(void);
u16 sub_81A89A0(u8);
void sub_81A8AF8(void);
bool8 InBattlePike(void);
void sub_81AA078(u16*, u8);
void sub_81A4C30(void);
bool8 sub_81A6BF4(void);
u8 sub_81A6CA8(u8, u8);
#endif // GUARD_BATTLE_FRONTIER_2_H

View File

@@ -38,4 +38,7 @@
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10
// For 'ShowFacilityResultsWindow' function which is a part of the 'CallFrontierUtilFunc' special.
#define RESULTS_LINK_CONTEST 7
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H

View File

@@ -15,5 +15,6 @@ bool32 sub_8138168(void);
bool32 sub_81381B0(void);
bool32 sub_81381F8(void);
bool32 CountSSTidalStep(u16 delta);
void sub_813A878(u8 a0);
#endif // GUARD_FIELD_SPECIALS_H

31
include/frontier_util.h Normal file
View File

@@ -0,0 +1,31 @@
#ifndef GUARD_FRONTIER_UTIL_H
#define GUARD_FRONTIER_UTIL_H
#define FRONTIER_BEFORE_TEXT 0
#define FRONTIER_PLAYER_LOST_TEXT 1
#define FRONTIER_PLAYER_WON_TEXT 2
void CallFrontierUtilFunc(void);
u8 sub_81A3610(void);
void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
void sub_81A3908(void);
u32 GetCurrentFacilityWinStreak(void);
void sub_81A3ACC(void);
u8 GetPlayerSymbolCountForFacility(u8 facility);
void ShowRankingHallRecordsWindow(void);
void ScrollRankingHallRecordsWindow(void);
void ClearRankingHallRecords(void);
u8 GetFrontierBrainTrainerPicIndex(void);
u8 GetFrontierBrainTrainerClass(void);
void CopyFrontierBrainTrainerName(u8 *dst);
bool8 IsFrontierBrainFemale(void);
void SetFrontierBrainEventObjGfx_2(void);
void CreateFrontierBrainPokemon(void);
u16 GetFrontierBrainMonSpecies(u8 monId);
void SetFrontierBrainEventObjGfx(u8 facility);
u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId);
u8 GetFrontierBrainMonNature(u8 monId);
u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId);
s32 GetFronterBrainSymbol(void);
#endif // GUARD_FRONTIER_UTIL_H

View File

@@ -137,6 +137,7 @@ enum LanguageId
#define BAG_BERRIES_COUNT 46
#define PYRAMID_BAG_ITEMS_COUNT 10
#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.
// string lengths
#define ITEM_NAME_LENGTH 14
@@ -331,8 +332,8 @@ struct EmeraldBattleTowerRecord
/*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ u16 greeting[6];
/*0x1C*/ u16 unk1C[6];
/*0x28*/ u16 unk28[6];
/*0x1C*/ u16 speechWon[6];
/*0x28*/ u16 speechLost[6];
/*0x34*/ struct UnknownPokemonStruct party[4];
/*0xE4*/ u8 language;
/*0xE8*/ u32 checksum;
@@ -400,14 +401,11 @@ struct BattleFrontier
/*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor.
/*0xCB4*/ u16 field_CB4[20];
/*0xCDC*/ u32 field_CDC;
/*0xCE0*/ u16 winStreaks[4][2];
/*0xCF0*/ u16 field_CF0[2];
/*0xCF4*/ u16 field_CF4[2];
/*0xCF8*/ u16 field_CF8[2];
/*0xCFC*/ u16 field_CFC[2];
/*0xD06*/ u16 field_D00;
/*0xD06*/ u16 field_D02;
/*0xD06*/ u16 field_D04;
/*0xCE0*/ u16 towerWinStreaks[4][2];
/*0xCF0*/ u16 towerRecordWinStreaks[4][2];
/*0xD00*/ u16 field_D00;
/*0xD02*/ u16 field_D02;
/*0xD04*/ u16 field_D04;
/*0xD06*/ u8 field_D06;
/*0xD07*/ u8 field_D07;
/*0xD08*/ u8 field_D08_0:1;
@@ -421,43 +419,37 @@ struct BattleFrontier
/*0xD09*/ u8 filler_D09;
/*0xD0A*/ u8 field_D0A;
/*0xD0B*/ u8 field_D0B;
/*0xD0C*/ u16 field_D0C[2][2];
/*0xD14*/ u16 field_D14[2][2];
/*0xD1C*/ u16 field_D1C[2][2];
/*0xD0C*/ u16 domeWinStreaks[2][2];
/*0xD14*/ u16 domeRecordWinStreaks[2][2];
/*0xD1C*/ u16 domeTotalChampionships[2][2];
/*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
/*0xD64*/ u16 domeMonId[DOME_TOURNAMENT_TRAINERS_COUNT][3];
/*0xD64*/ u16 domeMonIds[DOME_TOURNAMENT_TRAINERS_COUNT][3];
/*0xD64*/ u16 field_DC4[2];
/*0xDC8*/ u16 field_DC8[2][2];
/*0xDD0*/ u16 field_DD0[2][2];
/*0xDC8*/ u16 palaceWinStreaks[2][2];
/*0xDD0*/ u16 palaceRecordWinStreaks[2][2];
/*0xDD8*/ u16 field_DD8;
/*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
/*0xDE2*/ u16 field_DE2[2][2];
/*0xDEA*/ u16 field_DEA[2];
/*0xDEE*/ u16 field_DEE;
/*0xDF0*/ u16 field_DF0;
/*0xDF2*/ u16 field_DF2;
/*0xDF4*/ u16 field_DF4;
/*0xDF6*/ u16 field_DF6;
/*0xDF8*/ u16 field_DF8;
/*0xDFA*/ u16 field_DFA;
/*0xDFC*/ u16 field_DFC;
/*0xDFE*/ u16 field_DFE;
/*0xE00*/ u16 field_E00;
/*0xDDA*/ u16 arenaWinStreaks[2];
/*0xDDE*/ u16 arenaRecordStreaks[2];
/*0xDE2*/ u16 factoryWinStreaks[2][2];
/*0xDEA*/ u16 factoryRecordWinStreaks[2][2];
/*0xDF6*/ u16 factoryRentsCount[2][2];
/*0xDFA*/ u16 factoryRecordRentsCount[2][2];
/*0xE02*/ u16 field_E02;
/*0xE04*/ u16 field_E04[2];
/*0xE08*/ u16 field_E08[9];
/*0xE1A*/ u16 field_E1A[2];
/*0xE1E*/ u16 field_E1E[7];
/*0xE04*/ u16 pikeWinStreaks[2];
/*0xE08*/ u16 pikeRecordStreaks[2];
/*0xE0C*/ u16 pikeTotalStreaks[2];
/*0xE10*/ u16 field_E10[5];
/*0xE1A*/ u16 pyramidWinStreaks[2];
/*0xE1E*/ u16 pyramidRecordStreaks[2];
/*0xE1E*/ u16 field_E1F[5];
/*0xE2C*/ struct PyramidBag pyramidBag;
/*0xE58*/ u16 field_E58;
/*0xE6A*/ u16 field_E6A;
/*0xE6C*/ u16 field_E6C;
/*0xE6E*/ u16 field_E6E;
/*0xE70*/ struct Struct_field_E70 field_E70[6];
/*0xEB8*/ u16 frontierBattlePoints;
/*0xEBA*/ u8 field_EBA;
/*0xEBB*/ u8 field_EBB;
/*0xEB8*/ u16 battlePoints;
/*0xEBA*/ u16 field_EBA;
/*0xEBC*/ u32 battlesCount;
/*0xEC0*/ u16 field_EC0[16];
/*0xEE0*/ u8 field_EE0;
@@ -491,6 +483,24 @@ struct PlayersApprentice
/*0xB8*/ struct Sav2_B8 field_B8[9];
};
struct RankingHall1P
{
u8 id[4];
u16 winStreak;
u8 name[PLAYER_NAME_LENGTH + 1];
u8 language;
};
struct RankingHall2P
{
u8 id1[4];
u8 id2[4];
u16 winStreak;
u8 name1[PLAYER_NAME_LENGTH + 1];
u8 name2[PLAYER_NAME_LENGTH + 1];
u8 language;
};
struct SaveBlock2
{
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
@@ -515,12 +525,13 @@ struct SaveBlock2
/*0xA8*/ u32 field_A8;
/*0xAC*/ u32 encryptionKey;
/*0xB0*/ struct PlayersApprentice playerApprentice;
/*0xDC*/ struct Apprentice apprentices[4];
/*0xDC*/ struct Apprentice apprentices[4]; // From record mixing.
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
/*0x21C*/ u8 field_21C[1032];
/*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array
/*0x21C*/ struct RankingHall1P hallRecords1P[HALL_FACILITIES_COUNT][2][3]; // From record mixing.
/*0x57C*/ struct RankingHall2P hallRecords2P[2][3]; // From record mixing.
/*0x624*/ u16 contestLinkResults[5][4]; // 4 positions for 5 categories.
/*0x64C*/ struct BattleFrontier frontier;
}; // sizeof=0xF2C

View File

@@ -26,7 +26,6 @@ u16 RunTextPrintersAndIsPrinter0Active(void);
void sub_81973A4(void);
void NewMenuHelpers_DrawDialogueFrame(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);

View File

@@ -1,9 +1,9 @@
#ifndef GUARD_NEW_GAME_H
#define GUARD_NEW_GAME_H
void WriteUnalignedWord(u32 var, u8 *dataPtr);
u32 ReadUnalignedWord(u8* dataPtr);
void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
void SetTrainerId(u32 trainerId, u8 *dst);
u32 GetTrainerId(u8 *trainerId);
void CopyTrainerId(u8 *dst, u8 *src);
void NewGameInitData(void);
void sub_808447C(void);
void Sav2_ClearSetDefault(void);

View File

@@ -1,35 +1,13 @@
#ifndef GUARD_RECORD_MIXING_H
#define GUARD_RECORD_MIXING_H
// Exported type declarations
struct UnkRecordMixingStruct2a
struct PlayerHallRecords
{
u8 playerId[4];
u16 field_4;
u8 playerName[PLAYER_NAME_LENGTH + 1];
u8 language;
struct RankingHall1P onePlayer[9][2];
struct RankingHall2P twoPlayers[2];
};
struct UnkRecordMixingStruct2b
{
u8 playerId1[4];
u8 playerId2[4];
u16 field_8;
u8 playerName1[PLAYER_NAME_LENGTH + 1];
u8 playerName2[PLAYER_NAME_LENGTH + 1];
u8 language;
};
struct UnkRecordMixingStruct2
{
struct UnkRecordMixingStruct2a field_0[9][2];
struct UnkRecordMixingStruct2b field_120[2];
};
// Exported RAM declarations
// Exported ROM declarations
void sub_80E6BE8(void);
void sub_80E8260(struct UnkRecordMixingStruct2 *arg0);
void GetPlayerHallRecords(struct PlayerHallRecords *dst);
#endif //GUARD_RECORD_MIXING_H

View File

@@ -14,16 +14,16 @@ u8 sub_81850D0(void);
u8 sub_81850DC(u8 *arg0);
void sub_81851A8(u8 *arg0);
bool32 CanCopyRecordedBattleSaveData(void);
u32 MoveRecordedBattleToSaveData(void);
bool32 MoveRecordedBattleToSaveData(void);
void PlayRecordedBattle(void (*CB2_After)(void));
u8 GetRecordedBattleFrontierFacility(void);
u8 sub_8185EAC(void);
u8 GetRecordedBattleFronterBrainSymbol(void);
void RecordedBattle_SaveParties(void);
u8 GetActiveBattlerLinkPlayerGender(void);
void sub_8185F84(void);
void sub_8185F90(u16 arg0);
u8 sub_8185FAC(void);
u8 GetBattleStyleInRecordedBattle(void);
u8 GetBattleSceneInRecordedBattle(void);
u8 GetTextSpeedInRecordedBattle(void);
void RecordedBattle_CopyBattlerMoves(void);
void sub_818603C(u8 arg0);
@@ -31,11 +31,11 @@ u32 GetAiScriptsInRecordedBattle(void);
void sub_8186444(void);
bool8 sub_8186450(void);
void sub_8186468(u8 *dst);
u8 sub_818649C(void);
u8 sub_81864A8(void);
u8 sub_81864B4(void);
u8 sub_81864C0(void);
void sub_81864CC(void);
u16 *sub_81864E0(void);
u8 GetRecordedBattleRecordMixFriendClass(void);
u8 GetRecordedBattleApprenticeId(void);
u8 GetRecordedBattleRecordMixFriendLanguage(void);
u8 GetRecordedBattleApprenticeLanguage(void);
void RecordedBattle_SaveBattleOutcome(void);
u16 *GetRecordedBattleEasyChatSpeech(void);
#endif // GUARD_RECORDED_BATTLE_H

View File

@@ -94,7 +94,7 @@ u16 CalculateChecksum(void *data, u16 size);
void UpdateSaveAddresses(void);
u8 HandleSavingData(u8 saveType);
u8 TrySavingData(u8 saveType);
u8 sub_8153380(void);
bool8 sub_8153380(void);
bool8 sub_81533AC(void);
u8 sub_81533E0(void);
u8 sub_8153408(void);

View File

@@ -877,4 +877,47 @@ extern const u8 gText_PokemonOnHook[];
extern const u8 gText_NotEvenANibble[];
extern const u8 gText_ItGotAway[];
// Frontier records.
extern const u8 gText_WinStreak[];
extern const u8 gText_Record[];
extern const u8 gText_Current[];
extern const u8 gText_RoomsCleared[];
extern const u8 gText_Prev[];
extern const u8 gText_SingleBattleRoomResults[];
extern const u8 gText_DoubleBattleRoomResults[];
extern const u8 gText_MultiBattleRoomResults[];
extern const u8 gText_LinkMultiBattleRoomResults[];
extern const u8 gText_Lv502[];
extern const u8 gText_OpenLv[];
extern const u8 gText_RentalSwap[];
extern const u8 gText_ClearStreak[];
extern const u8 gText_Total[];
extern const u8 gText_Championships[];
extern const u8 gText_SingleBattleTourneyResults[];
extern const u8 gText_DoubleBattleTourneyResults[];
extern const u8 gText_SingleBattleHallResults[];
extern const u8 gText_DoubleBattleHallResults[];
extern const u8 gText_BattleChoiceResults[];
extern const u8 gText_TimesCleared[];
extern const u8 gText_KOsInARow[];
extern const u8 gText_SetKOTourneyResults[];
extern const u8 gText_TimesVar1[];
extern const u8 gText_BattleSwapSingleResults[];
extern const u8 gText_BattleSwapDoubleResults[];
extern const u8 gText_FloorsCleared[];
extern const u8 gText_BattleQuestResults[];
extern const u8 gText_LinkContestResults[];
extern const u8 gText_4th[];
extern const u8 gText_3rd[];
extern const u8 gText_2nd[];
extern const u8 gText_1st[];
extern const u8 gText_SpaceAndSpace[];
extern const u8 gText_CommaSpace[];
extern const u8 gText_NewLine[];
extern const u8 gText_ScrollTextUp[];
extern const u8 gText_Space2[];
extern const u8 gText_Are[];
extern const u8 gText_Are2[];
extern const u8 gText_123Dot[][3];
#endif //GUARD_STRINGS_H

View File

@@ -51,5 +51,7 @@ void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);
void UpdateTVScreensOnMap(int, int);
void TV_PrintIntToStringVar(u8 varIdx, int value);
void SaveRecordedItemPurchasesForTVShow(void);
bool8 sub_80EE818(void);
void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);
#endif //GUARD_TV_H