diff options
Diffstat (limited to 'src/personality_test.c')
-rw-r--r-- | src/personality_test.c | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/src/personality_test.c b/src/personality_test.c index 9aef10a..41fbfed 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -1,21 +1,15 @@ #include "global.h" +#include "constants/emotions.h" #include "constants/species.h" +#include "personality_test.h" #include "pokemon.h" -#define NUM_PARTNERS 10 +extern void sub_80073E0(u32); +extern void sub_80073B8(u32); +extern void sub_8008C54(u32); +extern void sub_800836C(u32, u8 *r0, u32); +extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray); -// TODO convert this... maybe a script? -const u8 gUnknown_80F4244[32] = -{ - 0, 0, 0, 0, - 5, 0, 0, 0, - 0xC, 0, 6, 0, - 5, 0, 5, 0, - 5, 0, 0, 0, - 0, 0, 0, 0, - - 'p', 'k', 's', 'd', 'i', 'r', '0', 0 -}; const s16 gPartners[NUM_PARTNERS] = { @@ -35,14 +29,34 @@ extern u8 gUnknown_80F42D0[]; extern u8 gUnknown_80F42F0[]; extern u8 gUnknown_203B408; -struct unkStruct_203B404 +// Definitely wrong but need to figure out better structure later +struct FaceData { - // Size: 0xB8 - /* 0x0 */ s16 StarterID; - /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; + /* 0x0 */ u8 *unk0[5]; }; -extern struct unkStruct_203B404 *gUnknown_203B404; +void PersonalityTest_DisplayPartnerSprite(void) +{ + s32 partnerID; + struct OpenedFile *faceFile; + int palleteIndex; + u8 *r6; + u32 faceIndex; + + partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection]; + sub_8008C54(1); + sub_80073B8(1); + faceFile = GetDialogueSpriteDataPtr(partnerID); + r6 = ((struct FaceData *)(faceFile->data))->unk0[1 + EMOTION_NORMAL]; + faceIndex = EMOTION_NORMAL; + for(palleteIndex = 0; palleteIndex < 16; palleteIndex++){ + SetBGPaletteBufferColorArray(palleteIndex + 224,&((struct FaceData *)(faceFile->data))->unk0[faceIndex][palleteIndex << 2]); + } + sub_800836C(1,r6,0xe); + CloseFile(faceFile); + sub_80073E0(1); + gUnknown_203B404->unk16 = 1; +} s32 GetValidPartners(void) { @@ -88,5 +102,3 @@ u8 sub_803D100(u8 r0) { return gUnknown_80F42D0[r0]; } - - |