Merge with master

This commit is contained in:
DizzyEggg 2019-01-28 20:41:46 +01:00
commit 94d2a30d44
11 changed files with 3812 additions and 9620 deletions

File diff suppressed because it is too large Load Diff

View File

@ -406,7 +406,7 @@ gSpriteTemplate_858998C:: @ 858998C
spr_template 0x80eb, 0x80eb, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy spr_template 0x80eb, 0x80eb, gOamData_8589944, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_8589984, SpriteCallbackDummy
.align 2 .align 2
gUnknown_085899EC:: @ 85899EC gContestExcitementTable:: @ 85899EC
.2byte 0x0001, 0xffff, 0x0000, 0x0001, 0xffff, 0x00ff, 0x0001, 0xffff, 0x00ff, 0x0001, 0xff00, 0x00ff, 0x0001, 0x0000 .2byte 0x0001, 0xffff, 0x0000, 0x0001, 0xffff, 0x00ff, 0x0001, 0xffff, 0x00ff, 0x0001, 0xff00, 0x00ff, 0x0001, 0x0000

View File

@ -665,19 +665,19 @@ gText_0827E817:: @ 827E817
.string "{STR_VAR_1}'s\n" .string "{STR_VAR_1}'s\n"
.string "{STR_VAR_2} is ignored.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" .string "{STR_VAR_2} is ignored.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$"
gText_0827E837:: @ 827E837 gText_Contest_Shyness:: @ 827E837
.string "shyness$" .string "shyness$"
gText_0827E83F:: @ 827E83F gText_Contest_Anxiety:: @ 827E83F
.string "anxiety$" .string "anxiety$"
gText_0827E847:: @ 827E847 gText_Contest_Laziness:: @ 827E847
.string "laziness$" .string "laziness$"
gText_0827E850:: @ 827E850 gText_Contest_Hesitancy:: @ 827E850
.string "hesitancy$" .string "hesitancy$"
gText_0827E85A:: @ 827E85A gText_Contest_Fear:: @ 827E85A
.string "fear$" .string "fear$"
gText_0827E85F:: @ 827E85F gText_0827E85F:: @ 827E85F

View File

@ -221,22 +221,6 @@ struct ContestPokemon
/*0x3C*/ u32 otId; // otId /*0x3C*/ u32 otId; // otId
}; // wow }; // wow
extern struct ContestPokemon gContestMons[4];
extern u8 gContestMonPartyIndex;
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
extern u8 gUnknown_02039F2B;
extern u8 gNumLinkContestPlayers;
extern u8 gHighestRibbonRank;
extern u8 gContestFinalStandings[4];
extern u8 gContestPlayerMonIndex;
extern s16 gUnknown_02039F08[4];
extern s16 gUnknown_02039F10[4];
extern s16 gUnknown_02039F18[4];
extern s16 gContestMonConditions[4];
extern u8 gIsLinkContest;
extern struct ContestWinner gUnknown_02039F3C;
struct Shared18000 struct Shared18000
{ {
/*0x18000*/ u8 unk18000; /*0x18000*/ u8 unk18000;
@ -260,10 +244,10 @@ struct ContestStruct_field_18
struct Contest struct Contest
{ {
/*0x19204*/ u8 playerMoveChoice; /*0x0*/ u8 playerMoveChoice;
/*0x19205*/ u8 turnNumber; /*0x1*/ u8 turnNumber;
/*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function /*0x2*/ u8 unk19206[4]; // seems to only be used by an unref function
/*0x1920A*/ u16 unk1920A_0:1; // Task active flags? /*0x6*/ u16 unk1920A_0:1; // Task active flags?
u16 unk1920A_1:1; u16 unk1920A_1:1;
u16 unk1920A_2:1; u16 unk1920A_2:1;
u16 unk1920A_3:1; u16 unk1920A_3:1;
@ -271,18 +255,18 @@ struct Contest
u16 unk1920A_5:1; u16 unk1920A_5:1;
u16 unk1920A_6:1; u16 unk1920A_6:1;
u16 unk1920A_7:1; u16 unk1920A_7:1;
/*0x1920B*/ u16 unk1920B_0:1; /*0x7*/ u16 unk1920B_0:1;
u16 unk1920B_1:1; u16 unk1920B_1:1;
u16 unk1920B_2:1; u16 unk1920B_2:1;
/*0x1920C*/ u8 mainTaskId; /*0x8*/ u8 mainTaskId;
/*0x1920D*/ u8 unk1920D[4]; /*0x9*/ u8 unk1920D[4];
/*0x19211*/ u8 unk19211; /*0xD*/ u8 unk19211;
/*0x19212*/ u8 unk19212; /*0xE*/ u8 unk19212;
/*0x19213*/ u8 filler19213; /*0xF*/ u8 filler19213;
/*0x19214*/ u8 unk19214; /*0x10*/ u8 unk19214;
/*0x19215*/ u8 unk19215; /*0x11*/ u8 unk19215;
/*0x19216*/ u8 unk19216; // sprite ID /*0x12*/ u8 unk19216; // sprite ID
/*0x19217*/ s8 applauseLevel; /*0x13*/ s8 applauseLevel;
/*0x19218*/ u8 unk19218[4]; /*0x19218*/ u8 unk19218[4];
/*0x1921C*/ u32 unk1921C; // saved RNG value? /*0x1921C*/ u32 unk1921C; // saved RNG value?
u16 unk19220[5][4]; // move history? u16 unk19220[5][4]; // move history?
@ -385,9 +369,22 @@ struct UnknownContestStruct4
u8 unk2_2:1; u8 unk2_2:1;
}; };
struct UnknownContestStruct6
{
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
};
struct ContestResourcesField1C struct ContestResourcesField1C
{ {
u8 filler_00[0x40]; u16 unk0[5];
s16 unkA;
u8 unkC;
u8 unkD;
u8 unkE_1:1;
u8 unkE_2:1;
}; };
struct ContestResourcesField20 struct ContestResourcesField20
@ -412,38 +409,62 @@ struct ContestResources
void * field_3c; void * field_3c;
}; };
extern struct ContestResources *gContestResources;
#define sContest (*gContestResources->field_0) #define sContest (*gContestResources->field_0)
#define sContestantStatus (gContestResources->field_4) #define sContestantStatus (gContestResources->field_4)
#define shared192D0 (*gContestResources->field_8) #define shared192D0 (*gContestResources->field_8)
#define eContestAI (gContestResources->field_C) #define eContestAI (gContestResources->field_C)
#define shared19328 (*gContestResources->field_10) #define shared19328 (*gContestResources->field_10)
#define shared19338 (*gContestResources->field_14) #define shared19338 (*gContestResources->field_14)
#define shared15800 (gHeap + 0x18000) #define shared15800 (gHeap + 0x18000)
#define shared16800 (gHeap + 0x19000)
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) #define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))
extern u32 gContestRngValue; extern struct ContestPokemon gContestMons[4];
extern s16 gContestMonConditions[4];
extern s16 gUnknown_02039F08[4];
extern s16 gUnknown_02039F10[4];
extern s16 gUnknown_02039F18[4];
extern u8 gContestFinalStandings[4];
extern u8 gContestMonPartyIndex;
extern u8 gContestPlayerMonIndex;
extern u8 gUnknown_02039F26[4]; extern u8 gUnknown_02039F26[4];
extern u8 gIsLinkContest;
extern u8 gUnknown_02039F2B;
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
extern u8 gNumLinkContestPlayers;
extern u8 gHighestRibbonRank;
extern struct ContestResources *gContestResources;
extern u8 sContestBgCopyFlags;
extern struct ContestWinner gUnknown_02039F3C;
bool8 IsSpeciesNotUnown(u16 species); extern u32 gContestRngValue;
// contest.c
void ResetLinkContestBoolean(void);
void LoadContestBgAfterMoveAnim(void); void LoadContestBgAfterMoveAnim(void);
void sub_80D7B24(void);
void sub_80DA8C8(u8 partyIndex);
void sub_80DAB8C(u8 contestType, u8 rank);
void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame);
u8 sub_80DAE0C(struct Pokemon *pkmn);
void sub_80DB09C(u8 contestCategory);
bool8 IsSpeciesNotUnown(u16 species);
bool8 Contest_IsMonsTurnDisabled(u8 a);
void sub_80DBED4(void);
void sub_80DCE58(u8 a);
void SetContestantEffectStringID(u8 a, u8 b); void SetContestantEffectStringID(u8 a, u8 b);
void SetContestantEffectStringID2(u8 a, u8 b); void SetContestantEffectStringID2(u8 a, u8 b);
void SetStartledString(u8 contestant, u8 jam);
void MakeContestantNervous(u8 p); void MakeContestantNervous(u8 p);
bool8 Contest_IsMonsTurnDisabled(u8 a); s8 Contest_GetMoveExcitement(u16 move);
bool8 sub_80DE1E8(u8 a); bool8 sub_80DE1E8(u8 a);
void SetStartledString(u8 a, u8 b); void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId);
s8 Contest_GetMoveExcitement(u16); void ResetContestLinkResults(void);
u8 sub_80DAE0C(struct Pokemon *); bool8 sub_80DEDA8(u8 a);
void sub_80DEDA8(u8); u8 sub_80DEFA8(u8 a, u8 b);
void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); void ClearContestWinnerPicsInContestHall(void);
void sub_80DB09C(u8 contestCategory); void sub_80DFA08(struct ContestPokemon *mon, s32 language);
void sub_80DCE58(u8);
void sub_80DFA08(struct ContestPokemon *mon, int language);
void sub_80DBED4(void);
u8 sub_80DEFA8(u8, u8);
// contest link // contest link
void sub_81D9DE4(u8 taskId); void sub_81D9DE4(u8 taskId);
@ -456,5 +477,4 @@ bool8 sub_80FC55C(void);
bool8 sub_80FC530(u8); bool8 sub_80FC530(u8);
u8 sub_80F86E0(u8 *); u8 sub_80F86E0(u8 *);
#endif //GUARD_CONTEST_H #endif //GUARD_CONTEST_H

View File

@ -4750,9 +4750,13 @@ extern const u32 gBattleStatMask8_Pal[];
extern const u32 gUnknown_08D9A88C[]; extern const u32 gUnknown_08D9A88C[];
extern const u32 gContestMiscGfx[]; extern const u32 gContestMiscGfx[];
extern const u32 gContestAudienceGfx[]; extern const u32 gContestAudienceGfx[];
extern const u8 gContestApplauseMeterGfx[];
extern const u8 gContestNextTurnNumbersGfx[];
extern const u8 gContestNextTurnRandomGfx[];
extern const u32 gUnknown_08C16FA8[]; extern const u32 gUnknown_08C16FA8[];
extern const u32 gUnknown_08C16E90[]; extern const u32 gUnknown_08C16E90[];
extern const u32 gUnknown_08C17170[]; extern const u32 gUnknown_08C17170[];
extern const u32 gUnknown_08C17980[];
extern const u32 gUnknown_08D95E00[]; extern const u32 gUnknown_08D95E00[];
extern const u32 gUnknown_08D960D0[]; extern const u32 gUnknown_08D960D0[];

View File

@ -13,11 +13,15 @@
#define CHAR_7 0xA8 #define CHAR_7 0xA8
#define CHAR_8 0xA9 #define CHAR_8 0xA9
#define CHAR_9 0xAA #define CHAR_9 0xAA
#define CHAR_EXCL_MARK 0xAB
#define CHAR_QUESTION_MARK 0xAC #define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD #define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE #define CHAR_HYPHEN 0xAE
#define CHAR_ELLIPSIS 0xB0 #define CHAR_ELLIPSIS 0xB0
#define CHAR_APOS 0xB4 #define CHAR_DBL_QUOT_LEFT 0xB1
#define CHAR_DBL_QUOT_RIGHT 0xB2
#define CHAR_SGL_QUOT_LEFT 0xB3
#define CHAR_SGL_QUOT_RIGHT 0xB4
#define CHAR_MALE 0xB5 #define CHAR_MALE 0xB5
#define CHAR_FEMALE 0xB6 #define CHAR_FEMALE 0xB6
#define CHAR_CURRENCY 0xB7 #define CHAR_CURRENCY 0xB7

View File

@ -56,5 +56,10 @@ void SaveRecordedItemPurchasesForTVShow(void);
bool8 sub_80EE818(void); bool8 sub_80EE818(void);
void sub_80EE8C8(u16 winStreak, u8 facilityAndMode); void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);
void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace); void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace);
void ContestLiveUpdates_BeforeInterview_1(u8 a0);
void ContestLiveUpdates_BeforeInterview_2(u8 a0);
void ContestLiveUpdates_BeforeInterview_3(u8 a0);
void ContestLiveUpdates_BeforeInterview_4(u16 a0);
void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1);
#endif //GUARD_TV_H #endif //GUARD_TV_H

View File

@ -15,5 +15,7 @@ u16 CalcCRC16WithTable(u8 *data, u32 length);
u32 CalcByteArraySum(const u8* data, u32 length); u32 CalcByteArraySum(const u8* data, u32 length);
void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor); void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha); void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha);
void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output);
#endif // GUARD_UTIL_H #endif // GUARD_UTIL_H

View File

@ -136,7 +136,6 @@ SECTIONS {
src/battle_anim_80D51AC.o(.text); src/battle_anim_80D51AC.o(.text);
src/item.o(.text); src/item.o(.text);
src/contest.o(.text); src/contest.o(.text);
asm/contest.o(.text);
src/shop.o(.text); src/shop.o(.text);
src/fldeff_escalator.o(.text); src/fldeff_escalator.o(.text);
src/berry.o(.text); src/berry.o(.text);

File diff suppressed because it is too large Load Diff

View File

@ -1032,8 +1032,8 @@ const u32 gBattleAnimSpriteSheet_262[] = INCBIN_U32("graphics/battle_anims/sprit
const u32 gBattleAnimSpritePalette_262[] = INCBIN_U32("graphics/battle_anims/sprites/262.gbapal.lz"); const u32 gBattleAnimSpritePalette_262[] = INCBIN_U32("graphics/battle_anims/sprites/262.gbapal.lz");
const u32 gContestNextTurnGfx[] = INCBIN_U32("graphics/contest/nextturn.4bpp.lz"); const u32 gContestNextTurnGfx[] = INCBIN_U32("graphics/contest/nextturn.4bpp.lz");
const u8 gUnknown_08D8E9B4[] = INCBIN_U8("graphics/contest/nextturn_numbers.4bpp"); const u8 gContestNextTurnNumbersGfx[] = INCBIN_U8("graphics/contest/nextturn_numbers.4bpp");
const u8 gUnknown_08D8EA34[] = INCBIN_U8("graphics/contest/nextturn_random.4bpp"); const u8 gContestNextTurnRandomGfx[] = INCBIN_U8("graphics/contest/nextturn_random.4bpp");
const u32 gBattleAnimSpriteSheet_264[] = INCBIN_U32("graphics/battle_anims/sprites/264.4bpp.lz"); const u32 gBattleAnimSpriteSheet_264[] = INCBIN_U32("graphics/battle_anims/sprites/264.4bpp.lz");
const u32 gBattleAnimSpritePalette_264[] = INCBIN_U32("graphics/battle_anims/sprites/264.gbapal.lz"); const u32 gBattleAnimSpritePalette_264[] = INCBIN_U32("graphics/battle_anims/sprites/264.gbapal.lz");