diff options
Diffstat (limited to 'src/scene/contest_painting.c')
-rw-r--r-- | src/scene/contest_painting.c | 786 |
1 files changed, 0 insertions, 786 deletions
diff --git a/src/scene/contest_painting.c b/src/scene/contest_painting.c deleted file mode 100644 index 0aa02312f..000000000 --- a/src/scene/contest_painting.c +++ /dev/null @@ -1,786 +0,0 @@ -#include "global.h" -#include "contest_painting.h" -#include "cute_sketch.h" -#include "data2.h" -#include "decompress.h" -#include "main.h" -#include "menu.h" -#include "palette.h" -#include "random.h" -#include "sprite.h" -#include "string_util.h" -#include "strings.h" -#include "text.h" -#include "scanline_effect.h" -#include "ewram.h" - -static u8 gUnknown_03000750; -static u16 gUnknown_03000752; -static u16 gUnknown_03000754; -static u8 gUnknown_03000756; - -u16 (*gUnknown_03005E10)[][32]; -struct Unk03005E20 gUnknown_03005E20; -u8 gUnknown_03005E40[0x4C]; -struct ContestEntry *gUnknown_03005E8C; -u16 (*gUnknown_03005E90)[]; - -static const u16 gPictureFramePalettes[][16] = -{ - INCBIN_U16("graphics/picture_frame/bg0.gbapal"), - INCBIN_U16("graphics/picture_frame/bg1.gbapal"), - INCBIN_U16("graphics/picture_frame/bg2.gbapal"), - INCBIN_U16("graphics/picture_frame/bg3.gbapal"), - INCBIN_U16("graphics/picture_frame/bg4.gbapal"), - INCBIN_U16("graphics/picture_frame/bg5.gbapal"), - {0}, - {0}, -}; -const u8 emptySpace[8 * 32] = {0}; -const u8 gPictureFrameTiles_0[] = INCBIN_U8("graphics/picture_frame/frame0.4bpp.rl"); -const u8 gPictureFrameTiles_1[] = INCBIN_U8("graphics/picture_frame/frame1.4bpp.rl"); -const u8 gPictureFrameTiles_2[] = INCBIN_U8("graphics/picture_frame/frame2.4bpp.rl"); -const u8 gPictureFrameTiles_3[] = INCBIN_U8("graphics/picture_frame/frame3.4bpp.rl"); -const u8 gPictureFrameTiles_4[] = INCBIN_U8("graphics/picture_frame/frame4.4bpp.rl"); -const u8 gPictureFrameTiles_5[] = INCBIN_U8("graphics/picture_frame/frame5.4bpp.rl"); -const u8 gPictureFrameTilemap_0[] = INCBIN_U8("graphics/picture_frame/frame0_map.bin.rl"); -const u8 gPictureFrameTilemap_1[] = INCBIN_U8("graphics/picture_frame/frame1_map.bin.rl"); -const u8 gPictureFrameTilemap_2[] = INCBIN_U8("graphics/picture_frame/frame2_map.bin.rl"); -const u8 gPictureFrameTilemap_3[] = INCBIN_U8("graphics/picture_frame/frame3_map.bin.rl"); -const u8 gPictureFrameTilemap_4[] = INCBIN_U8("graphics/picture_frame/frame4_map.bin.rl"); -const u8 gPictureFrameTilemap_5[] = INCBIN_U8("graphics/picture_frame/frame5_map.bin.rl"); -const u8 *const gUnknown_083F60AC[] = -{ - OtherText_Cool, - OtherText_Beauty2, - OtherText_Cute, - OtherText_Smart, - OtherText_Tough, -}; -const struct LabelPair gUnknown_083F60C0[] = -{ - {OtherText_NonstopSuperCool, OtherText_Terminator6}, - {OtherText_GoodLookingPoke, OtherText_Terminator7}, - {OtherText_MarvelousGreat, OtherText_Terminator8}, - {OtherText_CenturyLastVenus, OtherText_Terminator9}, - {OtherText_Terminator10, OtherText_DazzlingSmile}, - {OtherText_PokeCenterIdol, OtherText_Terminator11}, - {OtherText_LovelyAndSweet, OtherText_Terminator12}, - {OtherText_ThePretty, OtherText_WinningPortrait}, - {OtherText_GiveUsWink, OtherText_Terminator13}, - {OtherText_SmartnessMaestro, OtherText_Terminator15}, - {OtherText_ChosenPokeAmong, OtherText_Terminator15}, - {OtherText_TheExcellent, OtherText_ItsMomentOfElegance}, - {OtherText_PowerfullyMuscular, OtherText_Terminator16}, - {OtherText_StrongErEst, OtherText_Terminator17}, - {OtherText_MightyTough, OtherText_Exclamation}, -}; -const struct OamData gOamData_83F6138 = -{ - .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 1, - .bpp = 1, - .shape = 0, - .x = 0, - .matrixNum = 0, - .size = 3, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; -const u16 gUnknown_083F6140[] = {0, 0}; - -static void ShowContestPainting(); -static void CB2_HoldContestPainting(void); -static void HoldContestPainting(void); -static void ContestPaintingInitWindow(u8 arg0); -static void ContestPaintingPrintCaption(u8 arg0, u8 arg1); -static void ContestPaintingInitBG(void); -static void ContestPaintingInitVars(u8 arg0); -static void VBlankCB_ContestPainting(void); -void sub_8106B90(); //should be static -static void sub_8107090(u8 arg0, u8 arg1); - -__attribute__((naked)) -void sub_8106630(u32 arg0) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - ldr r2, _0810665C @ =gSharedMem + 0x15DE0\n\ - subs r4, r2, 0x2\n\ - subs r5, r2, 0x1\n\ - ldr r3, _08106660 @ =gSaveBlock1\n\ - subs r0, 0x1\n\ - lsls r1, r0, 5\n\ - adds r1, r3\n\ - ldr r3, _08106664 @ =0x00002dfc\n\ - adds r1, r3\n\ - ldm r1!, {r3,r6,r7}\n\ - stm r2!, {r3,r6,r7}\n\ - ldm r1!, {r3,r6,r7}\n\ - stm r2!, {r3,r6,r7}\n\ - ldm r1!, {r6,r7}\n\ - stm r2!, {r6,r7}\n\ - strb r0, [r4]\n\ - movs r0, 0\n\ - strb r0, [r5]\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0810665C: .4byte gSharedMem + 0x15DE0\n\ -_08106660: .4byte gSaveBlock1\n\ -_08106664: .4byte 0x00002dfc\n\ - .syntax divided\n"); -} - -void CB2_ContestPainting(void) -{ - ShowContestPainting(); -} - -static void ShowContestPainting(void) -{ - switch (gMain.state) - { - case 0: - ScanlineEffect_Stop(); - SetVBlankCallback(NULL); - gUnknown_03005E8C = &ewram15DE0; - ContestPaintingInitVars(TRUE); - ContestPaintingInitBG(); - gMain.state++; - break; - case 1: - { - ResetPaletteFade(); - DmaFill32Large(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000); - ResetSpriteData(); - gMain.state++; - break; - } - case 2: - SeedRng(gMain.vblankCounter1); - InitKeys(); - ContestPaintingInitWindow(ewram15DDF); - gMain.state++; - break; - case 3: - sub_8107090(ewram15DDE, ewram15DDF); - gMain.state++; - break; - case 4: - ContestPaintingPrintCaption(ewram15DDE, ewram15DDF); - LoadPalette(gUnknown_083F6140, 0, 1 * 2); - DmaClear32(3, PLTT, 0x400); - BeginFastPaletteFade(2); - SetVBlankCallback(VBlankCB_ContestPainting); - gUnknown_03000750 = 0; - REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; - SetMainCallback2(CB2_HoldContestPainting); - break; - } -} - -static void CB2_HoldContestPainting(void) -{ - HoldContestPainting(); - UpdatePaletteFade(); -} - -static void CB2_QuitContestPainting(void) -{ - SetMainCallback2(gMain.savedCallback); -} - -static void HoldContestPainting(void) -{ - switch (gUnknown_03000750) - { - case 0: - if (!gPaletteFade.active) - gUnknown_03000750 = 1; - if (gUnknown_03000756 != 0 && gUnknown_03000754 != 0) - gUnknown_03000754--; - break; - case 1: - if ((gMain.newKeys & 1) || (gMain.newKeys & 2)) - { - u8 two = 2; //needed to make the asm match - - gUnknown_03000750 = two; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - } - if (gUnknown_03000756 != 0) - gUnknown_03000754 = 0; - break; - case 2: - if (!gPaletteFade.active) - SetMainCallback2(CB2_QuitContestPainting); - if (gUnknown_03000756 != 0 && gUnknown_03000754 <= 0x1D) - gUnknown_03000754++; - break; - } -} - -static void ContestPaintingInitWindow(u8 arg0) -{ - InitMenuWindow(&gWindowTemplate_81E7160); - Text_LoadWindowTemplate(&gWindowTemplate_81E7160); -} - -static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) -{ - u8 xPos, yPos; - u8 *ptr; - u8 type; - - if (arg1 == TRUE) - return; - ptr = gUnknown_03005E40; - type = gUnknown_03005E8C->contestType; - if (contestType < 8) - { - ptr = StringCopy(ptr, gUnknown_083F60AC[type]); - ptr = StringCopy(ptr, gContestText_ContestWinner); -#if ENGLISH - ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name); -#elif GERMAN - ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); -#endif - - // {LATIN} - ptr[0] = 0xFC; - ptr[1] = 0x16; - ptr += 2; - - ptr = StringCopy(ptr, gOtherText_Unknown1); -#if ENGLISH - ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); -#elif GERMAN - ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name); -#endif - - xPos = 6; - yPos = 14; - } - else - { - ptr = StringCopy(ptr, gUnknown_083F60C0[type].prefix); - ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); - ptr = StringCopy(ptr, gUnknown_083F60C0[type].suffix); - - xPos = 3; - yPos = 14; - } - Menu_PrintTextPixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1); -} - -static void ContestPaintingInitBG(void) -{ - REG_DISPCNT = 0; - REG_IE |= INTR_FLAG_VBLANK; - REG_BG0CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256; - REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256; - REG_BLDCNT = 0; - REG_BLDALPHA = 0; - REG_BLDY = 0; -} - -static void ContestPaintingInitVars(bool8 arg0) -{ - if (arg0 == FALSE) - { - gUnknown_03000756 = FALSE; - gUnknown_03000752 = 0; - gUnknown_03000754 = 0; - } - else - { - gUnknown_03000756 = TRUE; - gUnknown_03000752 = 15; - gUnknown_03000754 = 30; - } -} - -static void ContestPaintingMosaic(void) -{ - if (gUnknown_03000756 == FALSE) - { - REG_MOSAIC = 0; - return; - } - - REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256; - gUnknown_03000752 = gUnknown_03000754 / 2; - - REG_MOSAIC = (gUnknown_03000752 << 12) | (gUnknown_03000752 << 8) | (gUnknown_03000752 << 4) | (gUnknown_03000752 << 0); -} - -static void VBlankCB_ContestPainting(void) -{ - ContestPaintingMosaic(); - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -#ifdef NONMATCHING -static void sub_8106AC4(u16 species, u8 arg1) -{ - void *pal; - - // Unsure what gUnknown_03005E8C->var0 is supposed to be. - pal = GetMonSpritePalFromOtIdPersonality(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0); - LZDecompressVram(pal, gUnknown_03005E90); - - if (arg1 == 1) - { - HandleLoadSpecialPokePic( - &gMonFrontPicTable[species], - gMonFrontPicCoords[species].x, - gMonFrontPicCoords[species].y, - 0x2000000, - gUnknown_081FAF4C[1], - species, - (u32)gUnknown_03005E8C->var0 - ); - sub_8106B90(gUnknown_081FAF4C[1], gUnknown_03005E90, gUnknown_03005E10); - } - else - { - HandleLoadSpecialPokePic( - &gMonBackPicTable[species], - gMonBackPicCoords[species].x, - gMonBackPicCoords[species].y, - 0x2000000, - gUnknown_081FAF4C[0], - species, - (u32)gUnknown_03005E8C->var0 - ); - sub_8106B90(gUnknown_081FAF4C[0], gUnknown_03005E90, gUnknown_03005E10); - } -} -#else -__attribute__((naked)) -static void sub_8106AC4(u16 arg0, u8 arg2) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0xC\n\ - adds r4, r1, 0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r7, _08106B28 @ =gUnknown_03005E8C\n\ - ldr r0, [r7]\n\ - ldr r1, [r0, 0x4]\n\ - ldr r2, [r0]\n\ - adds r0, r6, 0\n\ - bl GetMonSpritePalFromOtIdPersonality\n\ - ldr r1, _08106B2C @ =gUnknown_03005E90\n\ - mov r8, r1\n\ - ldr r1, [r1]\n\ - bl LZDecompressVram\n\ - cmp r4, 0\n\ - bne _08106B40\n\ - lsls r0, r6, 3\n\ - ldr r1, _08106B30 @ =gMonFrontPicTable\n\ - adds r0, r1\n\ - ldr r1, _08106B34 @ =gMonFrontPicCoords\n\ - lsls r2, r6, 2\n\ - adds r2, r1\n\ - ldrb r1, [r2]\n\ - ldrb r2, [r2, 0x1]\n\ - movs r3, 0x80\n\ - lsls r3, 18\n\ - ldr r4, _08106B38 @ =gUnknown_081FAF4C\n\ - ldr r5, [r4, 0x4]\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - ldr r4, [r7]\n\ - ldr r4, [r4]\n\ - str r4, [sp, 0x8]\n\ - bl HandleLoadSpecialPokePic\n\ - mov r2, r8\n\ - ldr r1, [r2]\n\ - ldr r0, _08106B3C @ =gUnknown_03005E10\n\ - ldr r2, [r0]\n\ - adds r0, r5, 0\n\ - bl sub_8106B90\n\ - b _08106B74\n\ - .align 2, 0\n\ -_08106B28: .4byte gUnknown_03005E8C\n\ -_08106B2C: .4byte gUnknown_03005E90\n\ -_08106B30: .4byte gMonFrontPicTable\n\ -_08106B34: .4byte gMonFrontPicCoords\n\ -_08106B38: .4byte gUnknown_081FAF4C\n\ -_08106B3C: .4byte gUnknown_03005E10\n\ -_08106B40:\n\ - lsls r0, r6, 3\n\ - ldr r1, _08106B80 @ =gMonBackPicTable\n\ - adds r0, r1\n\ - ldr r1, _08106B84 @ =gMonBackPicCoords\n\ - lsls r2, r6, 2\n\ - adds r2, r1\n\ - ldrb r1, [r2]\n\ - ldrb r2, [r2, 0x1]\n\ - movs r3, 0x80\n\ - lsls r3, 18\n\ - ldr r4, _08106B88 @ =gUnknown_081FAF4C\n\ - ldr r5, [r4]\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - ldr r4, [r7]\n\ - ldr r4, [r4]\n\ - str r4, [sp, 0x8]\n\ - bl HandleLoadSpecialPokePic\n\ - mov r0, r8\n\ - ldr r1, [r0]\n\ - ldr r0, _08106B8C @ =gUnknown_03005E10\n\ - ldr r2, [r0]\n\ - adds r0, r5, 0\n\ - bl sub_8106B90\n\ -_08106B74:\n\ - add sp, 0xC\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_08106B80: .4byte gMonBackPicTable\n\ -_08106B84: .4byte gMonBackPicCoords\n\ -_08106B88: .4byte gUnknown_081FAF4C\n\ -_08106B8C: .4byte gUnknown_03005E10\n\ - .syntax divided\n"); -} -#endif - -#ifdef NONMATCHING -void sub_8106B90(u8 a[][8][8][4], u16 b[], u16 c[][8][8][8]) -{ - u16 i; - u16 j; - u16 k; - u16 l; - - for (i = 0; i < 8; i++) - { - for (j = 0; j < 8; j++) - { - for (k = 0; k < 8; k++) - { - for (l = 0; l < 8; l++) - { - //u8 *arr = a[i][j][k]; - //u8 r1 = arr[l / 2]; - u8 r1 = a[i][j][k][l / 2]; - - if (l & 1) - r1 /= 16; - else - r1 %= 16; - //_08106BEA - if (r1 == 0) - c[i][k][j][l] = 0x8000; - else - c[i][k][j][l] = b[r1]; - } - } - } - } -} -#else -__attribute__((naked)) -void sub_8106B90() -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - mov r10, r0\n\ - mov r9, r1\n\ - str r2, [sp]\n\ - movs r0, 0\n\ -_08106BA4:\n\ - movs r3, 0\n\ - adds r1, r0, 0x1\n\ - str r1, [sp, 0x4]\n\ - lsls r0, 3\n\ - str r0, [sp, 0x8]\n\ -_08106BAE:\n\ - movs r1, 0\n\ - adds r2, r3, 0x1\n\ - mov r8, r2\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r3\n\ - lsls r0, 5\n\ - mov r12, r0\n\ - lsls r4, r3, 3\n\ -_08106BBE:\n\ - movs r3, 0\n\ - lsls r0, r1, 2\n\ - adds r6, r1, 0x1\n\ - mov r2, r12\n\ - adds r5, r2, r0\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r1\n\ - lsls r0, 7\n\ - ldr r1, [sp]\n\ - adds r2, r0, r1\n\ -_08106BD2:\n\ - lsrs r0, r3, 1\n\ - adds r0, r5, r0\n\ - add r0, r10\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08106BE6\n\ - lsrs r1, 4\n\ - b _08106BEA\n\ -_08106BE6:\n\ - movs r0, 0xF\n\ - ands r1, r0\n\ -_08106BEA:\n\ - cmp r1, 0\n\ - bne _08106BFC\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - movs r7, 0x80\n\ - lsls r7, 8\n\ - adds r1, r7, 0\n\ - b _08106C08\n\ -_08106BFC:\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - lsls r1, 1\n\ - add r1, r9\n\ - ldrh r1, [r1]\n\ -_08106C08:\n\ - strh r1, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _08106BD2\n\ - lsls r0, r6, 16\n\ - lsrs r1, r0, 16\n\ - cmp r1, 0x7\n\ - bls _08106BBE\n\ - mov r1, r8\n\ - lsls r0, r1, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _08106BAE\n\ - ldr r2, [sp, 0x4]\n\ - lsls r0, r2, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x7\n\ - bls _08106BA4\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); -} -#endif - -static void sub_8106C40(u8 arg0, u8 arg1) -{ - u8 x, y; - - LoadPalette(gPictureFramePalettes, 0, sizeof(gPictureFramePalettes)); - if (arg1 == 1) - { - switch (gUnknown_03005E8C->contestType / 3) - { - case CONTEST_COOL: - RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03005E10); - break; - case CONTEST_BEAUTY: - RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03005E10); - break; - case CONTEST_CUTE: - RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03005E10); - break; - case CONTEST_SMART: - RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03005E10); - break; - case CONTEST_TOUGH: - RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); - RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03005E10); - break; - } - -#define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)]) - - // Set the background - for (y = 0; y < 20; y++) - { - for (x = 0; x < 32; x++) - VRAM_PICTURE_DATA(x, y) = 0x1015; - } - - // Copy the image frame - for (y = 0; y < 10; y++) - { - for (x = 0; x < 18; x++) - VRAM_PICTURE_DATA(x + 6, y + 2) = (*gUnknown_03005E10)[y + 2][x + 6]; - } - - // Re-set the entire top row to the first top frame part - for (x = 0; x < 16; x++) - VRAM_PICTURE_DATA(x + 7, 2) = (*gUnknown_03005E10)[2][7]; - -#undef VRAM_PICTURE_DATA - } - else if (arg0 < 8) - { - RLUnCompVram(gPictureFrameTiles_5, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_5, (void *)(VRAM + 0x6000)); - } - else - { - switch (gUnknown_03005E8C->contestType / 3) - { - case CONTEST_COOL: - RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_0, (void *)(VRAM + 0x6000)); - break; - case CONTEST_BEAUTY: - RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_1, (void *)(VRAM + 0x6000)); - break; - case CONTEST_CUTE: - RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_2, (void *)(VRAM + 0x6000)); - break; - case CONTEST_SMART: - RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_3, (void *)(VRAM + 0x6000)); - break; - case CONTEST_TOUGH: - RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_4, (void *)(VRAM + 0x6000)); - break; - } - } -} - -static void sub_8106E98(u8 arg0) -{ - //Some hacks just to get the asm to match -#ifndef NONMATCHING - asm(""::"r"(arg0)); -#endif - - gMain.oamBuffer[0] = gOamData_83F6138; - gMain.oamBuffer[0].tileNum = 0; - -#ifndef NONMATCHING - if (arg0) arg0 = gMain.oamBuffer[0].tileNum; -#endif - - gMain.oamBuffer[0].x = 88; - gMain.oamBuffer[0].y = 24; -} - -static u8 sub_8106EE0(u8 arg0) -{ - u8 contestType; - - if (arg0 < 8) - contestType = gUnknown_03005E8C->contestType; - else - contestType = gUnknown_03005E8C->contestType / 3; - - switch (contestType) - { - case CONTEST_COOL: - return CONTESTRESULT_COOL; - case CONTEST_BEAUTY: - return CONTESTRESULT_BEAUTY; - case CONTEST_CUTE: - return CONTESTRESULT_CUTE; - case CONTEST_SMART: - return CONTESTRESULT_SMART; - case CONTEST_TOUGH: - return CONTESTRESULT_TOUGH; - } - - return contestType; -} - -static void sub_8106F4C(void) -{ - gUnknown_03005E90 = &ewram15E00.unk2017e00; - gUnknown_03005E10 = &ewram15E00.unk2015e00; -} - -static void sub_8106F6C(u8 arg0) -{ - gUnknown_03005E20.var_4 = gUnknown_03005E10; - gUnknown_03005E20.var_8 = gUnknown_03005E90; - gUnknown_03005E20.var_18 = 0; - gUnknown_03005E20.var_1F = gUnknown_03005E8C->var0; - gUnknown_03005E20.var_19 = 0; - gUnknown_03005E20.var_1A = 0; - gUnknown_03005E20.var_1B = 64; - gUnknown_03005E20.var_1C = 64; - gUnknown_03005E20.var_1D = 64; - gUnknown_03005E20.var_1E = 64; - - switch (arg0) - { - case CONTESTRESULT_SMART: - case CONTESTRESULT_TOUGH: - gUnknown_03005E20.var_14 = 3; - break; - case CONTESTRESULT_COOL: - case CONTESTRESULT_BEAUTY: - case CONTESTRESULT_CUTE: - default: - gUnknown_03005E20.var_14 = 1; - break; - } - - gUnknown_03005E20.var_16 = 2; - gUnknown_03005E20.var_0 = arg0; - gUnknown_03005E20.var_10 = 0x6010000; - - sub_80FC7A0(&gUnknown_03005E20); - sub_80FDA18(&gUnknown_03005E20); - sub_80FD8CC(&gUnknown_03005E20); - - LoadPalette(gUnknown_03005E90, 256, 256 * 2); -} - -static void sub_8107090(u8 arg0, u8 arg1) -{ - sub_8106F4C(); - sub_8106AC4(gUnknown_03005E8C->var8, 0); - sub_8106F6C(sub_8106EE0(arg0)); - sub_8106E98(arg0); - sub_8106C40(arg0, arg1); -} |