From 076d9e8deffa269c19829ef8c82a546035e65f25 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 13 Dec 2016 23:01:24 +0100 Subject: Contest painting --- src/contest_painting.c | 1353 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1353 insertions(+) create mode 100644 src/contest_painting.c (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c new file mode 100644 index 000000000..2e8a73ec4 --- /dev/null +++ b/src/contest_painting.c @@ -0,0 +1,1353 @@ +#include "global.h" +#include "asm.h" +#include "decompress.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "rng.h" +#include "sprite.h" +#include "string_util.h" +#include "text.h" + +#define MOSAIC_BIT_BG_HSIZE (0) +#define MOSAIC_BIT_BG_VSIZE (4) +#define MOSAIC_BIT_OBJ_HSIZE (8) +#define MOSAIC_BIT_OBJ_VSIZE (12) + +enum { + CONTEST_COOL, + CONTEST_BEAUTY, + CONTEST_CUTE, + CONTEST_SMART, + CONTEST_TOUGH, +}; + +enum { + CONTESTRESULT_COOL = 9, + CONTESTRESULT_BEAUTY = 13, + CONTESTRESULT_CUTE = 2, + CONTESTRESULT_SMART = 36, + CONTESTRESULT_TOUGH = 6, +}; + +struct ContestEntry { + /* 0x00 */ u8 var0; + /* 0x04 */ u32 var4; + /* 0x08 */ u16 var8; + /* 0x0A */ u8 contestType; + /* 0x0B */ u8 pokemon_name[POKEMON_NAME_LENGTH]; + /* 0x15 */ u8 pad15; + /* 0x16 */ u8 trainer_name[OT_NAME_LENGTH]; +}; + +struct Unk3000756 { + /* 0x00 */ u8 var_0; +}; + +struct LabelPair { + u8 (*prefix)[]; + u8 (*suffix)[]; +}; + +struct Unk03005E20 { + u8 var_0; + u8 pad1[3]; + u16 (*var_4)[][32]; + u16 (*var_8)[]; + u8 pad0C[4]; + u32 var_10; + u16 var_14; + u16 var_16; + u8 var_18; + u8 var_19; + u8 var_1A; + u8 var_1B; + u8 var_1C; + u8 var_1D; + u8 var_1E; + u8 var_1F; +}; + +extern struct Unk03005E20 gUnknown_03005E20; +extern u16 (*gUnknown_03005E90)[]; + +extern u8 gUnknown_03005E40[]; + +extern u8 unk_2000000[]; +extern u8 unk_2015de0[]; +extern u16 gUnknown_03000752; +extern u16 gUnknown_03000754; +extern struct Unk3000756 gUnknown_03000756; +extern struct ContestEntry *gUnknown_03005E8C; + +extern u16 (*gUnknown_03005E10)[32][32]; + +extern const struct SpriteSheet gMonFrontPicTable[]; +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct SpriteSheet gMonBackPicTable[]; +extern const struct MonCoords gMonBackPicCoords[]; + +extern void *gUnknown_081FAF4C[]; + +extern u16 gPictureFramePalettes[]; + +extern u8 gPictureFrameTiles_0[]; +extern u8 gPictureFrameTiles_1[]; +extern u8 gPictureFrameTiles_2[]; +extern u8 gPictureFrameTiles_3[]; +extern u8 gPictureFrameTiles_4[]; +extern u8 gPictureFrameTiles_5[]; + +extern u8 gPictureFrameTilemap_0[]; +extern u8 gPictureFrameTilemap_1[]; +extern u8 gPictureFrameTilemap_2[]; +extern u8 gPictureFrameTilemap_3[]; +extern u8 gPictureFrameTilemap_4[]; +extern u8 gPictureFrameTilemap_5[]; + +extern u8 *gUnknown_083F60AC[]; +extern struct LabelPair gUnknown_083F60C0[]; +extern struct OamData gOamData_83F6138; +extern u16 gUnknown_083F6140[]; + +extern u8 gContestText_ContestWinner[]; +extern u8 gOtherText_Unknown1[]; + +void HoldContestPainting(void); +void ShowContestPainting(); +void ContestPaintingInitWindow(u8 arg0); +void ContestPaintingInitVars(u8 arg0); +void sub_8107090(u8 arg0, u8 arg1); +void ContestPaintingPrintCaption(u8 arg0, u8 arg1); +void ContestPaintingInitBG(void); +void CB2_HoldContestPainting(void); +void VBlankCB_ContestPainting(void); + +void sub_80FC7A0(struct Unk03005E20*); +void sub_80FDA18(struct Unk03005E20*); +void sub_80FD8CC(struct Unk03005E20*); +extern void *species_and_otid_get_pal(); +void sub_8106B90(); + +__attribute__((naked)) +void sub_8106630(u32 arg0) { + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + ldr r2, _0810665C @ =0x02015de0\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 0x02015de0\n\ +_08106660: .4byte gSaveBlock1\n\ +_08106664: .4byte 0x00002dfc\n\ + .syntax divided\n"); +} + +void CB2_ContestPainting(void) { + ShowContestPainting(); +} + +#ifdef NONMATCHING +void ShowContestPainting(void) { + switch (gMain.state) { + case 0: + remove_some_task(); + SetVBlankCallback(NULL); + gUnknown_03005E8C->data = &unk_2015de0; + ContestPaintingInitVars(FALSE); + ContestPaintingInitBG(); + gMain.state += 1; + break; + + case 1: + ResetPaletteFade(); + + // DMA STUFF + + ResetSpriteData(); + gMain.state += 1; + break; + + case 2: + SeedRng(gMain.vblankCounter1); + InitKeys(); + ContestPaintingInitWindow(unk_2000000[0x15DDF]); + gMain.state += 1; + break; + + case 3: + sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); + gMain.state += 1; + break; + + case 4: + ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); + LoadPalette(gUnknown_083F6140, 0, 1 * 2); + // DMA STUFF + BeginFastPaletteFade(2); + SetVBlankCallback(VBlankCB_ContestPainting); + REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; + SetMainCallback2(CB2_HoldContestPainting); + break; + } +} +#else +__attribute__((naked)) +void ShowContestPainting(void) { + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x4\n\ + ldr r1, _08106694 @ =gMain\n\ + ldr r2, _08106698 @ =0x0000043c\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r4, r1, 0\n\ + cmp r0, 0x4\n\ + bls _08106688\n\ + b _081067E0\n\ +_08106688:\n\ + lsls r0, 2\n\ + ldr r1, _0810669C @ =_081066A0\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_08106694: .4byte gMain\n\ +_08106698: .4byte 0x0000043c\n\ +_0810669C: .4byte _081066A0\n\ + .align 2, 0\n\ +_081066A0:\n\ + .4byte _081066B4\n\ + .4byte _081066D8\n\ + .4byte _08106734\n\ + .4byte _0810675C\n\ + .4byte _0810678C\n\ +_081066B4:\n\ + bl remove_some_task\n\ + movs r0, 0\n\ + bl SetVBlankCallback\n\ + ldr r1, _081066D0 @ =gUnknown_03005E8C\n\ + ldr r0, _081066D4 @ =0x02015de0\n\ + str r0, [r1]\n\ + movs r0, 0x1\n\ + bl ContestPaintingInitVars\n\ + bl ContestPaintingInitBG\n\ + b _0810676E\n\ + .align 2, 0\n\ +_081066D0: .4byte gUnknown_03005E8C\n\ +_081066D4: .4byte 0x02015de0\n\ +_081066D8:\n\ + bl ResetPaletteFade\n\ + movs r2, 0xC0\n\ + lsls r2, 19\n\ + movs r3, 0xC0\n\ + lsls r3, 9\n\ + movs r5, 0\n\ + ldr r1, _08106724 @ =0x040000d4\n\ + movs r4, 0x80\n\ + lsls r4, 5\n\ + ldr r6, _08106728 @ =0x85000400\n\ + movs r7, 0x85\n\ + lsls r7, 24\n\ +_081066F2:\n\ + str r5, [sp]\n\ + mov r0, sp\n\ + str r0, [r1]\n\ + str r2, [r1, 0x4]\n\ + str r6, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + adds r2, r4\n\ + subs r3, r4\n\ + cmp r3, r4\n\ + bhi _081066F2\n\ + str r5, [sp]\n\ + mov r0, sp\n\ + str r0, [r1]\n\ + str r2, [r1, 0x4]\n\ + lsrs r0, r3, 2\n\ + orrs r0, r7\n\ + str r0, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + bl ResetSpriteData\n\ + ldr r1, _0810672C @ =gMain\n\ + ldr r2, _08106730 @ =0x0000043c\n\ + adds r1, r2\n\ + b _08106774\n\ + .align 2, 0\n\ +_08106724: .4byte 0x040000d4\n\ +_08106728: .4byte 0x85000400\n\ +_0810672C: .4byte gMain\n\ +_08106730: .4byte 0x0000043c\n\ +_08106734:\n\ + ldrh r0, [r4, 0x20]\n\ + bl SeedRng\n\ + bl InitKeys\n\ + ldr r0, _08106750 @ =0x02000000\n\ + ldr r1, _08106754 @ =0x00015ddf\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + bl ContestPaintingInitWindow\n\ + ldr r2, _08106758 @ =0x0000043c\n\ + adds r1, r4, r2\n\ + b _08106774\n\ + .align 2, 0\n\ +_08106750: .4byte 0x02000000\n\ +_08106754: .4byte 0x00015ddf\n\ +_08106758: .4byte 0x0000043c\n\ +_0810675C:\n\ + ldr r1, _0810677C @ =0x02000000\n\ + ldr r2, _08106780 @ =0x00015dde\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r2, 0x1\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + bl sub_8107090\n\ +_0810676E:\n\ + ldr r1, _08106784 @ =gMain\n\ + ldr r0, _08106788 @ =0x0000043c\n\ + adds r1, r0\n\ +_08106774:\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _081067E0\n\ + .align 2, 0\n\ +_0810677C: .4byte 0x02000000\n\ +_08106780: .4byte 0x00015dde\n\ +_08106784: .4byte gMain\n\ +_08106788: .4byte 0x0000043c\n\ +_0810678C:\n\ + ldr r1, _081067E8 @ =0x02000000\n\ + ldr r2, _081067EC @ =0x00015dde\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + adds r2, 0x1\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + bl ContestPaintingPrintCaption\n\ + ldr r0, _081067F0 @ =gUnknown_083F6140\n\ + movs r1, 0\n\ + movs r2, 0x2\n\ + bl LoadPalette\n\ + movs r1, 0xA0\n\ + lsls r1, 19\n\ + movs r4, 0\n\ + str r4, [sp]\n\ + ldr r0, _081067F4 @ =0x040000d4\n\ + mov r2, sp\n\ + str r2, [r0]\n\ + str r1, [r0, 0x4]\n\ + ldr r1, _081067F8 @ =0x85000100\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + movs r0, 0x2\n\ + bl BeginFastPaletteFade\n\ + ldr r0, _081067FC @ =VBlankCB_ContestPainting\n\ + bl SetVBlankCallback\n\ + ldr r0, _08106800 @ =gUnknown_03000750\n\ + strb r4, [r0]\n\ + movs r1, 0x80\n\ + lsls r1, 19\n\ + movs r2, 0x9A\n\ + lsls r2, 5\n\ + adds r0, r2, 0\n\ + strh r0, [r1]\n\ + ldr r0, _08106804 @ =CB2_HoldContestPainting\n\ + bl SetMainCallback2\n\ +_081067E0:\n\ + add sp, 0x4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_081067E8: .4byte 0x02000000\n\ +_081067EC: .4byte 0x00015dde\n\ +_081067F0: .4byte gUnknown_083F6140\n\ +_081067F4: .4byte 0x040000d4\n\ +_081067F8: .4byte 0x85000100\n\ +_081067FC: .4byte VBlankCB_ContestPainting\n\ +_08106800: .4byte gUnknown_03000750\n\ +_08106804: .4byte CB2_HoldContestPainting\n\ + .syntax divided\n"); +} + +#endif + +void CB2_HoldContestPainting(void) { + HoldContestPainting(); + UpdatePaletteFade(); +} + +void CB2_QuitContestPainting(void) { + SetMainCallback2(gMain.savedCallback); +} + +__attribute__((naked)) +void HoldContestPainting(void) { + asm(".syntax unified\n\ + push {lr}\n\ + sub sp, 0x4\n\ + ldr r3, _08106844 @ =gUnknown_03000750\n\ + ldrb r1, [r3]\n\ + cmp r1, 0x1\n\ + beq _08106880\n\ + cmp r1, 0x1\n\ + bgt _08106848\n\ + cmp r1, 0\n\ + beq _0810684E\n\ + b _081068E6\n\ + .align 2, 0\n\ +_08106844: .4byte gUnknown_03000750\n\ +_08106848:\n\ + cmp r1, 0x2\n\ + beq _081068C0\n\ + b _081068E6\n\ +_0810684E:\n\ + ldr r0, _08106874 @ =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810685E\n\ + movs r0, 0x1\n\ + strb r0, [r3]\n\ +_0810685E:\n\ + ldr r0, _08106878 @ =gUnknown_03000756\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081068E6\n\ + ldr r1, _0810687C @ =gUnknown_03000754\n\ + ldrh r0, [r1]\n\ + cmp r0, 0\n\ + beq _081068E6\n\ + subs r0, 0x1\n\ + b _081068E4\n\ + .align 2, 0\n\ +_08106874: .4byte gPaletteFade\n\ +_08106878: .4byte gUnknown_03000756\n\ +_0810687C: .4byte gUnknown_03000754\n\ +_08106880:\n\ + ldr r0, _081068B4 @ =gMain\n\ + ldrh r2, [r0, 0x2E]\n\ + ands r1, r2\n\ + cmp r1, 0\n\ + bne _08106892\n\ + movs r0, 0x2\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _081068A4\n\ +_08106892:\n\ + movs r0, 0x2\n\ + strb r0, [r3]\n\ + subs r0, 0x3\n\ + movs r1, 0\n\ + str r1, [sp]\n\ + movs r2, 0\n\ + movs r3, 0x10\n\ + bl BeginNormalPaletteFade\n\ +_081068A4:\n\ + ldr r0, _081068B8 @ =gUnknown_03000756\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081068E6\n\ + ldr r1, _081068BC @ =gUnknown_03000754\n\ + movs r0, 0\n\ + b _081068E4\n\ + .align 2, 0\n\ +_081068B4: .4byte gMain\n\ +_081068B8: .4byte gUnknown_03000756\n\ +_081068BC: .4byte gUnknown_03000754\n\ +_081068C0:\n\ + ldr r0, _081068EC @ =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _081068D2\n\ + ldr r0, _081068F0 @ =CB2_QuitContestPainting\n\ + bl SetMainCallback2\n\ +_081068D2:\n\ + ldr r0, _081068F4 @ =gUnknown_03000756\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081068E6\n\ + ldr r1, _081068F8 @ =gUnknown_03000754\n\ + ldrh r0, [r1]\n\ + cmp r0, 0x1D\n\ + bhi _081068E6\n\ + adds r0, 0x1\n\ +_081068E4:\n\ + strh r0, [r1]\n\ +_081068E6:\n\ + add sp, 0x4\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_081068EC: .4byte gPaletteFade\n\ +_081068F0: .4byte CB2_QuitContestPainting\n\ +_081068F4: .4byte gUnknown_03000756\n\ +_081068F8: .4byte gUnknown_03000754\n\ + .syntax divided\n"); +} + +void ContestPaintingInitWindow(u8 arg0) { + InitMenuWindow(&gWindowConfig_81E7160); + SetUpWindowConfig(&gWindowConfig_81E7160); +} + +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); + ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name); + + // {ENG} + ptr[0] = 0xFC; + ptr[1] = 0x16; + ptr += 2; + + ptr = StringCopy(ptr, gOtherText_Unknown1); + ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); + + 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; + } + + MenuPrint_PixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1); +} + +void ContestPaintingInitBG(void) { + REG_DISPCNT = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_BG0CNT = 0x0C42; + REG_BG1CNT = 0x0A45; + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + REG_BLDY = 0; +} + +void ContestPaintingInitVars(bool8 arg0) { + if (arg0 == 0) { + gUnknown_03000756.var_0 = FALSE; + gUnknown_03000752 = 0; + gUnknown_03000754 = 0; + } else { + gUnknown_03000756.var_0 = TRUE; + gUnknown_03000752 = 15; + gUnknown_03000754 = 30; + } +} + +void ContestPaintingMosaic(void) { + if (gUnknown_03000756.var_0 == FALSE) { + REG_MOSAIC = 0; + return; + } + + REG_BG1CNT = 0xA45; + gUnknown_03000752 = gUnknown_03000754 / 2; + + REG_MOSAIC = (gUnknown_03000752 << 12) | (gUnknown_03000752 << 8) | (gUnknown_03000752 << 4) | (gUnknown_03000752 << 0); +} + +void VBlankCB_ContestPainting(void) { + ContestPaintingMosaic(); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +struct MonCoords { + u8 x, y; +}; + +#ifdef NONMATCHING +void sub_8106AC4(u16 species, u8 arg1) { + void *pal; + + // Unsure what gUnknown_03005E8C->var0 is supposed to be. + pal = species_and_otid_get_pal(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)) +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 species_and_otid_get_pal\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 + +__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"); +} + +#ifdef NONMATCHING +void sub_8106C40(u8 arg0, u8 arg1) { + LoadPalette(gPictureFramePalettes, 0, 128 * 2); + + 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; + } + + { + u8 x; + u8 y; + + u16 (*vram)[32][32] = (void *) (VRAM + 0x6000); + + // Set the background + for (y = 0; y < 20; y++) { + for (x = 0; x < 32; x++) { + (*vram)[y][x] = 1 << 12 | 21; + } + } + + // Copy the image frame + for (y = 0; y < 10; y++) { + for (x = 0; x < 18; x++) { + (*vram)[y + 2][x + 6] = (*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)[2][x + 7] = (*gUnknown_03005E10)[2][7]; + } + } + + // def_8106C7A + } else { + if (arg0 < 8) { + RLUnCompVram(gPictureFrameTiles_5, (void *) VRAM); + RLUnCompVram(gPictureFrameTilemap_5, (void *) (VRAM + 0x6000)); + return; + } + + 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; + } + } +} +#else +__attribute__((naked)) +void sub_8106C40(u8 arg0, u8 arg1) { + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + adds r4, r1, 0\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r0, _08106C7C @ =gPictureFramePalettes\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + movs r1, 0\n\ + bl LoadPalette\n\ + cmp r4, 0x1\n\ + beq _08106C5E\n\ + b _08106DB4\n\ +_08106C5E:\n\ + ldr r0, _08106C80 @ =gUnknown_03005E8C\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0xA]\n\ + movs r1, 0x3\n\ + bl __udivsi3\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x4\n\ + bhi _08106D1C\n\ + lsls r0, 2\n\ + ldr r1, _08106C84 @ =_08106C88\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_08106C7C: .4byte gPictureFramePalettes\n\ +_08106C80: .4byte gUnknown_03005E8C\n\ +_08106C84: .4byte _08106C88\n\ + .align 2, 0\n\ +_08106C88:\n\ + .4byte _08106C9C\n\ + .4byte _08106CB4\n\ + .4byte _08106CCC\n\ + .4byte _08106CE4\n\ + .4byte _08106D08\n\ +_08106C9C:\n\ + ldr r0, _08106CAC @ =gPictureFrameTiles_0\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106CB0 @ =gPictureFrameTilemap_0\n\ + b _08106CF0\n\ + .align 2, 0\n\ +_08106CAC: .4byte gPictureFrameTiles_0\n\ +_08106CB0: .4byte gPictureFrameTilemap_0\n\ +_08106CB4:\n\ + ldr r0, _08106CC4 @ =gPictureFrameTiles_1\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106CC8 @ =gPictureFrameTilemap_1\n\ + b _08106CF0\n\ + .align 2, 0\n\ +_08106CC4: .4byte gPictureFrameTiles_1\n\ +_08106CC8: .4byte gPictureFrameTilemap_1\n\ +_08106CCC:\n\ + ldr r0, _08106CDC @ =gPictureFrameTiles_2\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106CE0 @ =gPictureFrameTilemap_2\n\ + b _08106CF0\n\ + .align 2, 0\n\ +_08106CDC: .4byte gPictureFrameTiles_2\n\ +_08106CE0: .4byte gPictureFrameTilemap_2\n\ +_08106CE4:\n\ + ldr r0, _08106CFC @ =gPictureFrameTiles_3\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106D00 @ =gPictureFrameTilemap_3\n\ +_08106CF0:\n\ + ldr r1, _08106D04 @ =gUnknown_03005E10\n\ + ldr r1, [r1]\n\ + bl RLUnCompWram\n\ + b _08106D1C\n\ + .align 2, 0\n\ +_08106CFC: .4byte gPictureFrameTiles_3\n\ +_08106D00: .4byte gPictureFrameTilemap_3\n\ +_08106D04: .4byte gUnknown_03005E10\n\ +_08106D08:\n\ + ldr r0, _08106D98 @ =gPictureFrameTiles_4\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106D9C @ =gPictureFrameTilemap_4\n\ + ldr r1, _08106DA0 @ =gUnknown_03005E10\n\ + ldr r1, [r1]\n\ + bl RLUnCompWram\n\ +_08106D1C:\n\ + movs r1, 0\n\ + ldr r5, _08106DA4 @ =0x06006000\n\ + ldr r0, _08106DA8 @ =0x00001015\n\ + adds r4, r0, 0\n\ +_08106D24:\n\ + movs r3, 0\n\ + lsls r2, r1, 5\n\ +_08106D28:\n\ + adds r0, r2, r3\n\ + lsls r0, 1\n\ + adds r0, r5\n\ + strh r4, [r0]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x1F\n\ + bls _08106D28\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x13\n\ + bls _08106D24\n\ + movs r1, 0\n\ + ldr r0, _08106DAC @ =0x0600608c\n\ + mov r12, r0\n\ + ldr r7, _08106DA0 @ =gUnknown_03005E10\n\ +_08106D4C:\n\ + movs r3, 0\n\ + adds r6, r1, 0x1\n\ + lsls r5, r1, 5\n\ + lsls r4, r1, 6\n\ +_08106D54:\n\ + adds r2, r5, r3\n\ + lsls r2, 1\n\ + add r2, r12\n\ + ldr r0, [r7]\n\ + adds r0, r4, r0\n\ + lsls r1, r3, 1\n\ + adds r0, r1\n\ + adds r0, 0x8C\n\ + ldrh r0, [r0]\n\ + strh r0, [r2]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x11\n\ + bls _08106D54\n\ + lsls r0, r6, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x9\n\ + bls _08106D4C\n\ + movs r3, 0\n\ + ldr r4, _08106DB0 @ =0x0600608e\n\ + ldr r2, _08106DA0 @ =gUnknown_03005E10\n\ +_08106D80:\n\ + lsls r1, r3, 1\n\ + adds r1, r4\n\ + ldr r0, [r2]\n\ + adds r0, 0x8E\n\ + ldrh r0, [r0]\n\ + strh r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0xF\n\ + bls _08106D80\n\ + b _08106E86\n\ + .align 2, 0\n\ +_08106D98: .4byte gPictureFrameTiles_4\n\ +_08106D9C: .4byte gPictureFrameTilemap_4\n\ +_08106DA0: .4byte gUnknown_03005E10\n\ +_08106DA4: .4byte 0x06006000\n\ +_08106DA8: .4byte 0x00001015\n\ +_08106DAC: .4byte 0x0600608c\n\ +_08106DB0: .4byte 0x0600608e\n\ +_08106DB4:\n\ + cmp r5, 0x7\n\ + bhi _08106DD0\n\ + ldr r0, _08106DC8 @ =gPictureFrameTiles_5\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106DCC @ =gPictureFrameTilemap_5\n\ + b _08106E60\n\ + .align 2, 0\n\ +_08106DC8: .4byte gPictureFrameTiles_5\n\ +_08106DCC: .4byte gPictureFrameTilemap_5\n\ +_08106DD0:\n\ + ldr r0, _08106DF0 @ =gUnknown_03005E8C\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0xA]\n\ + movs r1, 0x3\n\ + bl __udivsi3\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x4\n\ + bhi _08106E86\n\ + lsls r0, 2\n\ + ldr r1, _08106DF4 @ =_08106DF8\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_08106DF0: .4byte gUnknown_03005E8C\n\ +_08106DF4: .4byte _08106DF8\n\ + .align 2, 0\n\ +_08106DF8:\n\ + .4byte _08106E0C\n\ + .4byte _08106E24\n\ + .4byte _08106E3C\n\ + .4byte _08106E54\n\ + .4byte _08106E74\n\ +_08106E0C:\n\ + ldr r0, _08106E1C @ =gPictureFrameTiles_0\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106E20 @ =gPictureFrameTilemap_0\n\ + b _08106E60\n\ + .align 2, 0\n\ +_08106E1C: .4byte gPictureFrameTiles_0\n\ +_08106E20: .4byte gPictureFrameTilemap_0\n\ +_08106E24:\n\ + ldr r0, _08106E34 @ =gPictureFrameTiles_1\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106E38 @ =gPictureFrameTilemap_1\n\ + b _08106E60\n\ + .align 2, 0\n\ +_08106E34: .4byte gPictureFrameTiles_1\n\ +_08106E38: .4byte gPictureFrameTilemap_1\n\ +_08106E3C:\n\ + ldr r0, _08106E4C @ =gPictureFrameTiles_2\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106E50 @ =gPictureFrameTilemap_2\n\ + b _08106E60\n\ + .align 2, 0\n\ +_08106E4C: .4byte gPictureFrameTiles_2\n\ +_08106E50: .4byte gPictureFrameTilemap_2\n\ +_08106E54:\n\ + ldr r0, _08106E68 @ =gPictureFrameTiles_3\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106E6C @ =gPictureFrameTilemap_3\n\ +_08106E60:\n\ + ldr r1, _08106E70 @ =0x06006000\n\ + bl RLUnCompVram\n\ + b _08106E86\n\ + .align 2, 0\n\ +_08106E68: .4byte gPictureFrameTiles_3\n\ +_08106E6C: .4byte gPictureFrameTilemap_3\n\ +_08106E70: .4byte 0x06006000\n\ +_08106E74:\n\ + ldr r0, _08106E8C @ =gPictureFrameTiles_4\n\ + movs r1, 0xC0\n\ + lsls r1, 19\n\ + bl RLUnCompVram\n\ + ldr r0, _08106E90 @ =gPictureFrameTilemap_4\n\ + ldr r1, _08106E94 @ =0x06006000\n\ + bl RLUnCompVram\n\ +_08106E86:\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08106E8C: .4byte gPictureFrameTiles_4\n\ +_08106E90: .4byte gPictureFrameTilemap_4\n\ +_08106E94: .4byte 0x06006000\n\ + .syntax divided\n"); +} +#endif + +#ifdef NONMATCHING +void sub_8106E98(u8 arg0 ) { + gMain.oamBuffer[0] = gOamData_83F6138; + + gMain.oamBuffer[0].tileNum = 0; + gMain.oamBuffer[0].x = 88; + gMain.oamBuffer[0].y = 24; +} +#else +__attribute__((naked)) +void sub_8106E98(u8 arg0) { + asm(".syntax unified\n\ + push {r4,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r4, _08106ED0 @ =gMain\n\ + ldr r1, _08106ED4 @ =gOamData_83F6138\n\ + ldr r2, [r1, 0x4]\n\ + ldr r1, [r1]\n\ + str r1, [r4, 0x3C]\n\ + str r2, [r4, 0x40]\n\ + adds r3, r4, 0\n\ + adds r3, 0x40\n\ + ldrh r2, [r3]\n\ + ldr r1, _08106ED8 @ =0xfffffc00\n\ + ands r1, r2\n\ + strh r1, [r3]\n\ + ldrh r1, [r4, 0x3E]\n\ + ldr r0, _08106EDC @ =0xfffffe00\n\ + ands r0, r1\n\ + movs r1, 0x58\n\ + orrs r0, r1\n\ + strh r0, [r4, 0x3E]\n\ + adds r1, r4, 0\n\ + adds r1, 0x3C\n\ + movs r0, 0x18\n\ + strb r0, [r1]\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08106ED0: .4byte gMain\n\ +_08106ED4: .4byte gOamData_83F6138\n\ +_08106ED8: .4byte 0xfffffc00\n\ +_08106EDC: .4byte 0xfffffe00\n\ + .syntax divided\n"); +} +#endif + +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; +} + +#ifdef NONMATCHING +void sub_8106F4C(void) { + gUnknown_03005E90 = (void *) 0x02017e00; + gUnknown_03005E10 = (void *) 0x02015e00; +} +#else +__attribute__((naked)) +void sub_8106F4C(void) { + asm(".syntax unified\n\ + ldr r0, _08106F5C @ =gUnknown_03005E90\n\ + ldr r1, _08106F60 @ =0x02017e00\n\ + str r1, [r0]\n\ + ldr r0, _08106F64 @ =gUnknown_03005E10\n\ + ldr r2, _08106F68 @ =0xffffe000\n\ + adds r1, r2\n\ + str r1, [r0]\n\ + bx lr\n\ + .align 2, 0\n\ +_08106F5C: .4byte gUnknown_03005E90\n\ +_08106F60: .4byte 0x02017e00\n\ +_08106F64: .4byte gUnknown_03005E10\n\ +_08106F68: .4byte 0xffffe000\n\ + .syntax divided\n"); +} +#endif + +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); +} + +void sub_8107090(u8 arg0, u8 arg1) { + u8 local0; + + sub_8106F4C(); + sub_8106AC4(gUnknown_03005E8C->var8, 0); + + local0 = sub_8106EE0(arg0); + sub_8106F6C(local0); + + sub_8106E98(arg0); + sub_8106C40(arg0, arg1); +} -- cgit v1.2.3 From 50f7bf64ee2dee8cc58e60499ed53eda535cbfcf Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 7 Jan 2017 12:41:48 -0600 Subject: get ShowContestPainting to match --- src/contest_painting.c | 286 ++++++++++--------------------------------------- 1 file changed, 59 insertions(+), 227 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 2e8a73ec4..0cfbd5290 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -68,10 +68,10 @@ struct Unk03005E20 { u8 var_1F; }; +extern u8 gUnknown_03000750; extern struct Unk03005E20 gUnknown_03005E20; -extern u16 (*gUnknown_03005E90)[]; - extern u8 gUnknown_03005E40[]; +extern u16 (*gUnknown_03005E90)[]; extern u8 unk_2000000[]; extern u8 unk_2015de0[]; @@ -161,236 +161,68 @@ _08106664: .4byte 0x00002dfc\n\ .syntax divided\n"); } -void CB2_ContestPainting(void) { +void CB2_ContestPainting(void) +{ ShowContestPainting(); } -#ifdef NONMATCHING -void ShowContestPainting(void) { - switch (gMain.state) { - case 0: - remove_some_task(); - SetVBlankCallback(NULL); - gUnknown_03005E8C->data = &unk_2015de0; - ContestPaintingInitVars(FALSE); - ContestPaintingInitBG(); - gMain.state += 1; - break; - - case 1: - ResetPaletteFade(); - - // DMA STUFF - - ResetSpriteData(); - gMain.state += 1; - break; - - case 2: - SeedRng(gMain.vblankCounter1); - InitKeys(); - ContestPaintingInitWindow(unk_2000000[0x15DDF]); - gMain.state += 1; - break; - - case 3: - sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); - gMain.state += 1; - break; - - case 4: - ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); - LoadPalette(gUnknown_083F6140, 0, 1 * 2); - // DMA STUFF - BeginFastPaletteFade(2); - SetVBlankCallback(VBlankCB_ContestPainting); - REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; - SetMainCallback2(CB2_HoldContestPainting); - break; +void ShowContestPainting(void) +{ + switch (gMain.state) + { + case 0: + remove_some_task(); + SetVBlankCallback(NULL); + gUnknown_03005E8C = (struct ContestEntry *)&unk_2015de0; + ContestPaintingInitVars(TRUE); + ContestPaintingInitBG(); + gMain.state++; + break; + case 1: + { + u8 *addr; + size_t size; + + ResetPaletteFade(); + addr = (void *)VRAM; + size = 0x18000; + while (1) + { + DmaFill32(3, 0, addr, 0x1000); + addr += 0x1000; + size -= 0x1000; + if (size <= 0x1000) + { + DmaFill32(3, 0, addr, size); + break; + } + } + ResetSpriteData(); + gMain.state++; + break; + } + case 2: + SeedRng(gMain.vblankCounter1); + InitKeys(); + ContestPaintingInitWindow(unk_2000000[0x15DDF]); + gMain.state++; + break; + case 3: + sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); + gMain.state++; + break; + case 4: + ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]); + 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; } } -#else -__attribute__((naked)) -void ShowContestPainting(void) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - ldr r1, _08106694 @ =gMain\n\ - ldr r2, _08106698 @ =0x0000043c\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r4, r1, 0\n\ - cmp r0, 0x4\n\ - bls _08106688\n\ - b _081067E0\n\ -_08106688:\n\ - lsls r0, 2\n\ - ldr r1, _0810669C @ =_081066A0\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_08106694: .4byte gMain\n\ -_08106698: .4byte 0x0000043c\n\ -_0810669C: .4byte _081066A0\n\ - .align 2, 0\n\ -_081066A0:\n\ - .4byte _081066B4\n\ - .4byte _081066D8\n\ - .4byte _08106734\n\ - .4byte _0810675C\n\ - .4byte _0810678C\n\ -_081066B4:\n\ - bl remove_some_task\n\ - movs r0, 0\n\ - bl SetVBlankCallback\n\ - ldr r1, _081066D0 @ =gUnknown_03005E8C\n\ - ldr r0, _081066D4 @ =0x02015de0\n\ - str r0, [r1]\n\ - movs r0, 0x1\n\ - bl ContestPaintingInitVars\n\ - bl ContestPaintingInitBG\n\ - b _0810676E\n\ - .align 2, 0\n\ -_081066D0: .4byte gUnknown_03005E8C\n\ -_081066D4: .4byte 0x02015de0\n\ -_081066D8:\n\ - bl ResetPaletteFade\n\ - movs r2, 0xC0\n\ - lsls r2, 19\n\ - movs r3, 0xC0\n\ - lsls r3, 9\n\ - movs r5, 0\n\ - ldr r1, _08106724 @ =0x040000d4\n\ - movs r4, 0x80\n\ - lsls r4, 5\n\ - ldr r6, _08106728 @ =0x85000400\n\ - movs r7, 0x85\n\ - lsls r7, 24\n\ -_081066F2:\n\ - str r5, [sp]\n\ - mov r0, sp\n\ - str r0, [r1]\n\ - str r2, [r1, 0x4]\n\ - str r6, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - adds r2, r4\n\ - subs r3, r4\n\ - cmp r3, r4\n\ - bhi _081066F2\n\ - str r5, [sp]\n\ - mov r0, sp\n\ - str r0, [r1]\n\ - str r2, [r1, 0x4]\n\ - lsrs r0, r3, 2\n\ - orrs r0, r7\n\ - str r0, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - bl ResetSpriteData\n\ - ldr r1, _0810672C @ =gMain\n\ - ldr r2, _08106730 @ =0x0000043c\n\ - adds r1, r2\n\ - b _08106774\n\ - .align 2, 0\n\ -_08106724: .4byte 0x040000d4\n\ -_08106728: .4byte 0x85000400\n\ -_0810672C: .4byte gMain\n\ -_08106730: .4byte 0x0000043c\n\ -_08106734:\n\ - ldrh r0, [r4, 0x20]\n\ - bl SeedRng\n\ - bl InitKeys\n\ - ldr r0, _08106750 @ =0x02000000\n\ - ldr r1, _08106754 @ =0x00015ddf\n\ - adds r0, r1\n\ - ldrb r0, [r0]\n\ - bl ContestPaintingInitWindow\n\ - ldr r2, _08106758 @ =0x0000043c\n\ - adds r1, r4, r2\n\ - b _08106774\n\ - .align 2, 0\n\ -_08106750: .4byte 0x02000000\n\ -_08106754: .4byte 0x00015ddf\n\ -_08106758: .4byte 0x0000043c\n\ -_0810675C:\n\ - ldr r1, _0810677C @ =0x02000000\n\ - ldr r2, _08106780 @ =0x00015dde\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r2, 0x1\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - bl sub_8107090\n\ -_0810676E:\n\ - ldr r1, _08106784 @ =gMain\n\ - ldr r0, _08106788 @ =0x0000043c\n\ - adds r1, r0\n\ -_08106774:\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _081067E0\n\ - .align 2, 0\n\ -_0810677C: .4byte 0x02000000\n\ -_08106780: .4byte 0x00015dde\n\ -_08106784: .4byte gMain\n\ -_08106788: .4byte 0x0000043c\n\ -_0810678C:\n\ - ldr r1, _081067E8 @ =0x02000000\n\ - ldr r2, _081067EC @ =0x00015dde\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r2, 0x1\n\ - adds r1, r2\n\ - ldrb r1, [r1]\n\ - bl ContestPaintingPrintCaption\n\ - ldr r0, _081067F0 @ =gUnknown_083F6140\n\ - movs r1, 0\n\ - movs r2, 0x2\n\ - bl LoadPalette\n\ - movs r1, 0xA0\n\ - lsls r1, 19\n\ - movs r4, 0\n\ - str r4, [sp]\n\ - ldr r0, _081067F4 @ =0x040000d4\n\ - mov r2, sp\n\ - str r2, [r0]\n\ - str r1, [r0, 0x4]\n\ - ldr r1, _081067F8 @ =0x85000100\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - movs r0, 0x2\n\ - bl BeginFastPaletteFade\n\ - ldr r0, _081067FC @ =VBlankCB_ContestPainting\n\ - bl SetVBlankCallback\n\ - ldr r0, _08106800 @ =gUnknown_03000750\n\ - strb r4, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 19\n\ - movs r2, 0x9A\n\ - lsls r2, 5\n\ - adds r0, r2, 0\n\ - strh r0, [r1]\n\ - ldr r0, _08106804 @ =CB2_HoldContestPainting\n\ - bl SetMainCallback2\n\ -_081067E0:\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_081067E8: .4byte 0x02000000\n\ -_081067EC: .4byte 0x00015dde\n\ -_081067F0: .4byte gUnknown_083F6140\n\ -_081067F4: .4byte 0x040000d4\n\ -_081067F8: .4byte 0x85000100\n\ -_081067FC: .4byte VBlankCB_ContestPainting\n\ -_08106800: .4byte gUnknown_03000750\n\ -_08106804: .4byte CB2_HoldContestPainting\n\ - .syntax divided\n"); -} - -#endif void CB2_HoldContestPainting(void) { HoldContestPainting(); -- cgit v1.2.3 From 022f4210acd31a25c3bf3baf55ef7ffde90c9d58 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 7 Jan 2017 13:54:50 -0600 Subject: get HoldContestPainting to match --- src/contest_painting.c | 143 +++++++++++-------------------------------------- 1 file changed, 32 insertions(+), 111 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 0cfbd5290..4fa37adaa 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -68,17 +68,16 @@ struct Unk03005E20 { u8 var_1F; }; -extern u8 gUnknown_03000750; -extern struct Unk03005E20 gUnknown_03005E20; -extern u8 gUnknown_03005E40[]; -extern u16 (*gUnknown_03005E90)[]; - extern u8 unk_2000000[]; extern u8 unk_2015de0[]; +extern u8 gUnknown_03000750; extern u16 gUnknown_03000752; extern u16 gUnknown_03000754; extern struct Unk3000756 gUnknown_03000756; +extern struct Unk03005E20 gUnknown_03005E20; +extern u8 gUnknown_03005E40[]; extern struct ContestEntry *gUnknown_03005E8C; +extern u16 (*gUnknown_03005E90)[]; extern u16 (*gUnknown_03005E10)[32][32]; @@ -233,112 +232,34 @@ void CB2_QuitContestPainting(void) { SetMainCallback2(gMain.savedCallback); } -__attribute__((naked)) -void HoldContestPainting(void) { - asm(".syntax unified\n\ - push {lr}\n\ - sub sp, 0x4\n\ - ldr r3, _08106844 @ =gUnknown_03000750\n\ - ldrb r1, [r3]\n\ - cmp r1, 0x1\n\ - beq _08106880\n\ - cmp r1, 0x1\n\ - bgt _08106848\n\ - cmp r1, 0\n\ - beq _0810684E\n\ - b _081068E6\n\ - .align 2, 0\n\ -_08106844: .4byte gUnknown_03000750\n\ -_08106848:\n\ - cmp r1, 0x2\n\ - beq _081068C0\n\ - b _081068E6\n\ -_0810684E:\n\ - ldr r0, _08106874 @ =gPaletteFade\n\ - ldrb r1, [r0, 0x7]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0810685E\n\ - movs r0, 0x1\n\ - strb r0, [r3]\n\ -_0810685E:\n\ - ldr r0, _08106878 @ =gUnknown_03000756\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _081068E6\n\ - ldr r1, _0810687C @ =gUnknown_03000754\n\ - ldrh r0, [r1]\n\ - cmp r0, 0\n\ - beq _081068E6\n\ - subs r0, 0x1\n\ - b _081068E4\n\ - .align 2, 0\n\ -_08106874: .4byte gPaletteFade\n\ -_08106878: .4byte gUnknown_03000756\n\ -_0810687C: .4byte gUnknown_03000754\n\ -_08106880:\n\ - ldr r0, _081068B4 @ =gMain\n\ - ldrh r2, [r0, 0x2E]\n\ - ands r1, r2\n\ - cmp r1, 0\n\ - bne _08106892\n\ - movs r0, 0x2\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _081068A4\n\ -_08106892:\n\ - movs r0, 0x2\n\ - strb r0, [r3]\n\ - subs r0, 0x3\n\ - movs r1, 0\n\ - str r1, [sp]\n\ - movs r2, 0\n\ - movs r3, 0x10\n\ - bl BeginNormalPaletteFade\n\ -_081068A4:\n\ - ldr r0, _081068B8 @ =gUnknown_03000756\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _081068E6\n\ - ldr r1, _081068BC @ =gUnknown_03000754\n\ - movs r0, 0\n\ - b _081068E4\n\ - .align 2, 0\n\ -_081068B4: .4byte gMain\n\ -_081068B8: .4byte gUnknown_03000756\n\ -_081068BC: .4byte gUnknown_03000754\n\ -_081068C0:\n\ - ldr r0, _081068EC @ =gPaletteFade\n\ - ldrb r1, [r0, 0x7]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _081068D2\n\ - ldr r0, _081068F0 @ =CB2_QuitContestPainting\n\ - bl SetMainCallback2\n\ -_081068D2:\n\ - ldr r0, _081068F4 @ =gUnknown_03000756\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _081068E6\n\ - ldr r1, _081068F8 @ =gUnknown_03000754\n\ - ldrh r0, [r1]\n\ - cmp r0, 0x1D\n\ - bhi _081068E6\n\ - adds r0, 0x1\n\ -_081068E4:\n\ - strh r0, [r1]\n\ -_081068E6:\n\ - add sp, 0x4\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_081068EC: .4byte gPaletteFade\n\ -_081068F0: .4byte CB2_QuitContestPainting\n\ -_081068F4: .4byte gUnknown_03000756\n\ -_081068F8: .4byte gUnknown_03000754\n\ - .syntax divided\n"); +void HoldContestPainting(void) +{ + switch (gUnknown_03000750) + { + case 0: + if (!gPaletteFade.active) + gUnknown_03000750 = 1; + if (gUnknown_03000756.var_0 != 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.var_0 != 0) + gUnknown_03000754 = 0; + break; + case 2: + if (!gPaletteFade.active) + SetMainCallback2(CB2_QuitContestPainting); + if (gUnknown_03000756.var_0 != 0 && gUnknown_03000754 <= 0x1D) + gUnknown_03000754++; + break; + } } void ContestPaintingInitWindow(u8 arg0) { -- cgit v1.2.3 From 4acd2f9657195607dc1c251a9cda3064ba2b9767 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 7 Jan 2017 20:16:03 -0600 Subject: get more functions to match and clean up --- src/contest_painting.c | 767 ++++++++++++++++--------------------------------- 1 file changed, 246 insertions(+), 521 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 4fa37adaa..b6cdda034 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -14,7 +14,8 @@ #define MOSAIC_BIT_OBJ_HSIZE (8) #define MOSAIC_BIT_OBJ_VSIZE (12) -enum { +enum +{ CONTEST_COOL, CONTEST_BEAUTY, CONTEST_CUTE, @@ -22,7 +23,8 @@ enum { CONTEST_TOUGH, }; -enum { +enum +{ CONTESTRESULT_COOL = 9, CONTESTRESULT_BEAUTY = 13, CONTESTRESULT_CUTE = 2, @@ -30,26 +32,36 @@ enum { CONTESTRESULT_TOUGH = 6, }; -struct ContestEntry { - /* 0x00 */ u8 var0; - /* 0x04 */ u32 var4; - /* 0x08 */ u16 var8; - /* 0x0A */ u8 contestType; - /* 0x0B */ u8 pokemon_name[POKEMON_NAME_LENGTH]; - /* 0x15 */ u8 pad15; - /* 0x16 */ u8 trainer_name[OT_NAME_LENGTH]; +struct Unk2015E00 +{ + u16 unk2015e00[128][32]; + u16 unk2017e00[0]; }; -struct Unk3000756 { - /* 0x00 */ u8 var_0; +struct ContestEntry +{ + /*0x00*/ u8 var0; + /*0x04*/ u32 var4; + /*0x08*/ u16 var8; + /*0x0A*/ u8 contestType; + /*0x0B*/ u8 pokemon_name[POKEMON_NAME_LENGTH]; + /*0x15*/ u8 pad15; + /*0x16*/ u8 trainer_name[OT_NAME_LENGTH]; +}; + +struct Unk3000756 +{ + /*0x00*/ u8 var_0; }; -struct LabelPair { +struct LabelPair +{ u8 (*prefix)[]; u8 (*suffix)[]; }; -struct Unk03005E20 { +struct Unk03005E20 +{ u8 var_0; u8 pad1[3]; u16 (*var_4)[][32]; @@ -69,18 +81,18 @@ struct Unk03005E20 { }; extern u8 unk_2000000[]; -extern u8 unk_2015de0[]; +extern struct ContestEntry unk_2015de0; +extern struct Unk2015E00 unk_2015e00; extern u8 gUnknown_03000750; extern u16 gUnknown_03000752; extern u16 gUnknown_03000754; extern struct Unk3000756 gUnknown_03000756; +extern u16 (*gUnknown_03005E10)[][32]; extern struct Unk03005E20 gUnknown_03005E20; extern u8 gUnknown_03005E40[]; extern struct ContestEntry *gUnknown_03005E8C; extern u16 (*gUnknown_03005E90)[]; -extern u16 (*gUnknown_03005E10)[32][32]; - extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpriteSheet gMonBackPicTable[]; @@ -112,24 +124,25 @@ extern u16 gUnknown_083F6140[]; extern u8 gContestText_ContestWinner[]; extern u8 gOtherText_Unknown1[]; -void HoldContestPainting(void); -void ShowContestPainting(); -void ContestPaintingInitWindow(u8 arg0); -void ContestPaintingInitVars(u8 arg0); -void sub_8107090(u8 arg0, u8 arg1); -void ContestPaintingPrintCaption(u8 arg0, u8 arg1); -void ContestPaintingInitBG(void); -void CB2_HoldContestPainting(void); -void VBlankCB_ContestPainting(void); - -void sub_80FC7A0(struct Unk03005E20*); -void sub_80FDA18(struct Unk03005E20*); -void sub_80FD8CC(struct Unk03005E20*); +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); + +extern void sub_80FC7A0(struct Unk03005E20*); +extern void sub_80FDA18(struct Unk03005E20*); +extern void sub_80FD8CC(struct Unk03005E20*); extern void *species_and_otid_get_pal(); -void sub_8106B90(); __attribute__((naked)) -void sub_8106630(u32 arg0) { +void sub_8106630(u32 arg0) +{ asm(".syntax unified\n\ push {r4-r7,lr}\n\ ldr r2, _0810665C @ =0x02015de0\n\ @@ -165,14 +178,14 @@ void CB2_ContestPainting(void) ShowContestPainting(); } -void ShowContestPainting(void) +static void ShowContestPainting(void) { switch (gMain.state) { case 0: remove_some_task(); SetVBlankCallback(NULL); - gUnknown_03005E8C = (struct ContestEntry *)&unk_2015de0; + gUnknown_03005E8C = &unk_2015de0; ContestPaintingInitVars(TRUE); ContestPaintingInitBG(); gMain.state++; @@ -223,16 +236,18 @@ void ShowContestPainting(void) } } -void CB2_HoldContestPainting(void) { +static void CB2_HoldContestPainting(void) +{ HoldContestPainting(); UpdatePaletteFade(); } -void CB2_QuitContestPainting(void) { +static void CB2_QuitContestPainting(void) +{ SetMainCallback2(gMain.savedCallback); } -void HoldContestPainting(void) +static void HoldContestPainting(void) { switch (gUnknown_03000750) { @@ -262,23 +277,24 @@ void HoldContestPainting(void) } } -void ContestPaintingInitWindow(u8 arg0) { +static void ContestPaintingInitWindow(u8 arg0) +{ InitMenuWindow(&gWindowConfig_81E7160); SetUpWindowConfig(&gWindowConfig_81E7160); } -void ContestPaintingPrintCaption(u8 contestType, u8 arg1) { +static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) +{ u8 xPos, yPos; u8 *ptr; u8 type; - if (arg1 == TRUE) { + if (arg1 == TRUE) return; - } - ptr = gUnknown_03005E40; type = gUnknown_03005E8C->contestType; - if (contestType < 8) { + if (contestType < 8) + { ptr = StringCopy(ptr, gUnknown_083F60AC[type]); ptr = StringCopy(ptr, gContestText_ContestWinner); ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name); @@ -293,7 +309,9 @@ void ContestPaintingPrintCaption(u8 contestType, u8 arg1) { xPos = 6; yPos = 14; - } else { + } + else + { ptr = StringCopy(ptr, *gUnknown_083F60C0[type].prefix); ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); ptr = StringCopy(ptr, *gUnknown_083F60C0[type].suffix); @@ -301,11 +319,11 @@ void ContestPaintingPrintCaption(u8 contestType, u8 arg1) { xPos = 3; yPos = 14; } - MenuPrint_PixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1); } -void ContestPaintingInitBG(void) { +static void ContestPaintingInitBG(void) +{ REG_DISPCNT = 0; REG_IE |= INTR_FLAG_VBLANK; REG_BG0CNT = 0x0C42; @@ -315,20 +333,26 @@ void ContestPaintingInitBG(void) { REG_BLDY = 0; } -void ContestPaintingInitVars(bool8 arg0) { - if (arg0 == 0) { +static void ContestPaintingInitVars(bool8 arg0) +{ + if (arg0 == FALSE) + { gUnknown_03000756.var_0 = FALSE; gUnknown_03000752 = 0; gUnknown_03000754 = 0; - } else { + } + else + { gUnknown_03000756.var_0 = TRUE; gUnknown_03000752 = 15; gUnknown_03000754 = 30; } } -void ContestPaintingMosaic(void) { - if (gUnknown_03000756.var_0 == FALSE) { +static void ContestPaintingMosaic(void) +{ + if (gUnknown_03000756.var_0 == FALSE) + { REG_MOSAIC = 0; return; } @@ -339,19 +363,23 @@ void ContestPaintingMosaic(void) { REG_MOSAIC = (gUnknown_03000752 << 12) | (gUnknown_03000752 << 8) | (gUnknown_03000752 << 4) | (gUnknown_03000752 << 0); } -void VBlankCB_ContestPainting(void) { +static void VBlankCB_ContestPainting(void) +{ ContestPaintingMosaic(); LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -struct MonCoords { - u8 x, y; + +struct MonCoords +{ + u8 x; + u8 y; }; #ifdef NONMATCHING -void sub_8106AC4(u16 species, u8 arg1) { +static void sub_8106AC4(u16 species, u8 arg1) { void *pal; // Unsure what gUnknown_03005E8C->var0 is supposed to be. @@ -384,7 +412,7 @@ void sub_8106AC4(u16 species, u8 arg1) { } #else __attribute__((naked)) -void sub_8106AC4(u16 arg0, u8 arg2) { +static void sub_8106AC4(u16 arg0, u8 arg2) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r8\n\ @@ -480,8 +508,44 @@ _08106B8C: .4byte gUnknown_03005E10\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() { +void sub_8106B90() +{ asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -581,481 +645,146 @@ _08106C08:\n\ bx r0\n\ .syntax divided\n"); } +#endif -#ifdef NONMATCHING -void sub_8106C40(u8 arg0, u8 arg1) { +static void sub_8106C40(u8 arg0, u8 arg1) +{ + u8 x, y; + LoadPalette(gPictureFramePalettes, 0, 128 * 2); - - 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; + 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++) { - u8 x; - u8 y; - - u16 (*vram)[32][32] = (void *) (VRAM + 0x6000); - - // Set the background - for (y = 0; y < 20; y++) { - for (x = 0; x < 32; x++) { - (*vram)[y][x] = 1 << 12 | 21; - } - } - - // Copy the image frame - for (y = 0; y < 10; y++) { - for (x = 0; x < 18; x++) { - (*vram)[y + 2][x + 6] = (*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)[2][x + 7] = (*gUnknown_03005E10)[2][7]; - } + for (x = 0; x < 32; x++) + VRAM_PICTURE_DATA(x, y) = 0x1015; } - // def_8106C7A - } else { - if (arg0 < 8) { - RLUnCompVram(gPictureFrameTiles_5, (void *) VRAM); - RLUnCompVram(gPictureFrameTilemap_5, (void *) (VRAM + 0x6000)); - return; + // 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]; } - 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; + // 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; } } } -#else -__attribute__((naked)) -void sub_8106C40(u8 arg0, u8 arg1) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - adds r4, r1, 0\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r0, _08106C7C @ =gPictureFramePalettes\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - movs r1, 0\n\ - bl LoadPalette\n\ - cmp r4, 0x1\n\ - beq _08106C5E\n\ - b _08106DB4\n\ -_08106C5E:\n\ - ldr r0, _08106C80 @ =gUnknown_03005E8C\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0xA]\n\ - movs r1, 0x3\n\ - bl __udivsi3\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x4\n\ - bhi _08106D1C\n\ - lsls r0, 2\n\ - ldr r1, _08106C84 @ =_08106C88\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_08106C7C: .4byte gPictureFramePalettes\n\ -_08106C80: .4byte gUnknown_03005E8C\n\ -_08106C84: .4byte _08106C88\n\ - .align 2, 0\n\ -_08106C88:\n\ - .4byte _08106C9C\n\ - .4byte _08106CB4\n\ - .4byte _08106CCC\n\ - .4byte _08106CE4\n\ - .4byte _08106D08\n\ -_08106C9C:\n\ - ldr r0, _08106CAC @ =gPictureFrameTiles_0\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106CB0 @ =gPictureFrameTilemap_0\n\ - b _08106CF0\n\ - .align 2, 0\n\ -_08106CAC: .4byte gPictureFrameTiles_0\n\ -_08106CB0: .4byte gPictureFrameTilemap_0\n\ -_08106CB4:\n\ - ldr r0, _08106CC4 @ =gPictureFrameTiles_1\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106CC8 @ =gPictureFrameTilemap_1\n\ - b _08106CF0\n\ - .align 2, 0\n\ -_08106CC4: .4byte gPictureFrameTiles_1\n\ -_08106CC8: .4byte gPictureFrameTilemap_1\n\ -_08106CCC:\n\ - ldr r0, _08106CDC @ =gPictureFrameTiles_2\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106CE0 @ =gPictureFrameTilemap_2\n\ - b _08106CF0\n\ - .align 2, 0\n\ -_08106CDC: .4byte gPictureFrameTiles_2\n\ -_08106CE0: .4byte gPictureFrameTilemap_2\n\ -_08106CE4:\n\ - ldr r0, _08106CFC @ =gPictureFrameTiles_3\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106D00 @ =gPictureFrameTilemap_3\n\ -_08106CF0:\n\ - ldr r1, _08106D04 @ =gUnknown_03005E10\n\ - ldr r1, [r1]\n\ - bl RLUnCompWram\n\ - b _08106D1C\n\ - .align 2, 0\n\ -_08106CFC: .4byte gPictureFrameTiles_3\n\ -_08106D00: .4byte gPictureFrameTilemap_3\n\ -_08106D04: .4byte gUnknown_03005E10\n\ -_08106D08:\n\ - ldr r0, _08106D98 @ =gPictureFrameTiles_4\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106D9C @ =gPictureFrameTilemap_4\n\ - ldr r1, _08106DA0 @ =gUnknown_03005E10\n\ - ldr r1, [r1]\n\ - bl RLUnCompWram\n\ -_08106D1C:\n\ - movs r1, 0\n\ - ldr r5, _08106DA4 @ =0x06006000\n\ - ldr r0, _08106DA8 @ =0x00001015\n\ - adds r4, r0, 0\n\ -_08106D24:\n\ - movs r3, 0\n\ - lsls r2, r1, 5\n\ -_08106D28:\n\ - adds r0, r2, r3\n\ - lsls r0, 1\n\ - adds r0, r5\n\ - strh r4, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x1F\n\ - bls _08106D28\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x13\n\ - bls _08106D24\n\ - movs r1, 0\n\ - ldr r0, _08106DAC @ =0x0600608c\n\ - mov r12, r0\n\ - ldr r7, _08106DA0 @ =gUnknown_03005E10\n\ -_08106D4C:\n\ - movs r3, 0\n\ - adds r6, r1, 0x1\n\ - lsls r5, r1, 5\n\ - lsls r4, r1, 6\n\ -_08106D54:\n\ - adds r2, r5, r3\n\ - lsls r2, 1\n\ - add r2, r12\n\ - ldr r0, [r7]\n\ - adds r0, r4, r0\n\ - lsls r1, r3, 1\n\ - adds r0, r1\n\ - adds r0, 0x8C\n\ - ldrh r0, [r0]\n\ - strh r0, [r2]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x11\n\ - bls _08106D54\n\ - lsls r0, r6, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0x9\n\ - bls _08106D4C\n\ - movs r3, 0\n\ - ldr r4, _08106DB0 @ =0x0600608e\n\ - ldr r2, _08106DA0 @ =gUnknown_03005E10\n\ -_08106D80:\n\ - lsls r1, r3, 1\n\ - adds r1, r4\n\ - ldr r0, [r2]\n\ - adds r0, 0x8E\n\ - ldrh r0, [r0]\n\ - strh r0, [r1]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0xF\n\ - bls _08106D80\n\ - b _08106E86\n\ - .align 2, 0\n\ -_08106D98: .4byte gPictureFrameTiles_4\n\ -_08106D9C: .4byte gPictureFrameTilemap_4\n\ -_08106DA0: .4byte gUnknown_03005E10\n\ -_08106DA4: .4byte 0x06006000\n\ -_08106DA8: .4byte 0x00001015\n\ -_08106DAC: .4byte 0x0600608c\n\ -_08106DB0: .4byte 0x0600608e\n\ -_08106DB4:\n\ - cmp r5, 0x7\n\ - bhi _08106DD0\n\ - ldr r0, _08106DC8 @ =gPictureFrameTiles_5\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106DCC @ =gPictureFrameTilemap_5\n\ - b _08106E60\n\ - .align 2, 0\n\ -_08106DC8: .4byte gPictureFrameTiles_5\n\ -_08106DCC: .4byte gPictureFrameTilemap_5\n\ -_08106DD0:\n\ - ldr r0, _08106DF0 @ =gUnknown_03005E8C\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0xA]\n\ - movs r1, 0x3\n\ - bl __udivsi3\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x4\n\ - bhi _08106E86\n\ - lsls r0, 2\n\ - ldr r1, _08106DF4 @ =_08106DF8\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_08106DF0: .4byte gUnknown_03005E8C\n\ -_08106DF4: .4byte _08106DF8\n\ - .align 2, 0\n\ -_08106DF8:\n\ - .4byte _08106E0C\n\ - .4byte _08106E24\n\ - .4byte _08106E3C\n\ - .4byte _08106E54\n\ - .4byte _08106E74\n\ -_08106E0C:\n\ - ldr r0, _08106E1C @ =gPictureFrameTiles_0\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106E20 @ =gPictureFrameTilemap_0\n\ - b _08106E60\n\ - .align 2, 0\n\ -_08106E1C: .4byte gPictureFrameTiles_0\n\ -_08106E20: .4byte gPictureFrameTilemap_0\n\ -_08106E24:\n\ - ldr r0, _08106E34 @ =gPictureFrameTiles_1\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106E38 @ =gPictureFrameTilemap_1\n\ - b _08106E60\n\ - .align 2, 0\n\ -_08106E34: .4byte gPictureFrameTiles_1\n\ -_08106E38: .4byte gPictureFrameTilemap_1\n\ -_08106E3C:\n\ - ldr r0, _08106E4C @ =gPictureFrameTiles_2\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106E50 @ =gPictureFrameTilemap_2\n\ - b _08106E60\n\ - .align 2, 0\n\ -_08106E4C: .4byte gPictureFrameTiles_2\n\ -_08106E50: .4byte gPictureFrameTilemap_2\n\ -_08106E54:\n\ - ldr r0, _08106E68 @ =gPictureFrameTiles_3\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106E6C @ =gPictureFrameTilemap_3\n\ -_08106E60:\n\ - ldr r1, _08106E70 @ =0x06006000\n\ - bl RLUnCompVram\n\ - b _08106E86\n\ - .align 2, 0\n\ -_08106E68: .4byte gPictureFrameTiles_3\n\ -_08106E6C: .4byte gPictureFrameTilemap_3\n\ -_08106E70: .4byte 0x06006000\n\ -_08106E74:\n\ - ldr r0, _08106E8C @ =gPictureFrameTiles_4\n\ - movs r1, 0xC0\n\ - lsls r1, 19\n\ - bl RLUnCompVram\n\ - ldr r0, _08106E90 @ =gPictureFrameTilemap_4\n\ - ldr r1, _08106E94 @ =0x06006000\n\ - bl RLUnCompVram\n\ -_08106E86:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_08106E8C: .4byte gPictureFrameTiles_4\n\ -_08106E90: .4byte gPictureFrameTilemap_4\n\ -_08106E94: .4byte 0x06006000\n\ - .syntax divided\n"); -} -#endif -#ifdef NONMATCHING -void sub_8106E98(u8 arg0 ) { +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; } -#else -__attribute__((naked)) -void sub_8106E98(u8 arg0) { - asm(".syntax unified\n\ - push {r4,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r4, _08106ED0 @ =gMain\n\ - ldr r1, _08106ED4 @ =gOamData_83F6138\n\ - ldr r2, [r1, 0x4]\n\ - ldr r1, [r1]\n\ - str r1, [r4, 0x3C]\n\ - str r2, [r4, 0x40]\n\ - adds r3, r4, 0\n\ - adds r3, 0x40\n\ - ldrh r2, [r3]\n\ - ldr r1, _08106ED8 @ =0xfffffc00\n\ - ands r1, r2\n\ - strh r1, [r3]\n\ - ldrh r1, [r4, 0x3E]\n\ - ldr r0, _08106EDC @ =0xfffffe00\n\ - ands r0, r1\n\ - movs r1, 0x58\n\ - orrs r0, r1\n\ - strh r0, [r4, 0x3E]\n\ - adds r1, r4, 0\n\ - adds r1, 0x3C\n\ - movs r0, 0x18\n\ - strb r0, [r1]\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_08106ED0: .4byte gMain\n\ -_08106ED4: .4byte gOamData_83F6138\n\ -_08106ED8: .4byte 0xfffffc00\n\ -_08106EDC: .4byte 0xfffffe00\n\ - .syntax divided\n"); -} -#endif -u8 sub_8106EE0(u8 arg0) { +static u8 sub_8106EE0(u8 arg0) +{ u8 contestType; - if (arg0 < 8) { + if (arg0 < 8) contestType = gUnknown_03005E8C->contestType; - } else { + 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; + 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; } -#ifdef NONMATCHING -void sub_8106F4C(void) { - gUnknown_03005E90 = (void *) 0x02017e00; - gUnknown_03005E10 = (void *) 0x02015e00; -} -#else -__attribute__((naked)) -void sub_8106F4C(void) { - asm(".syntax unified\n\ - ldr r0, _08106F5C @ =gUnknown_03005E90\n\ - ldr r1, _08106F60 @ =0x02017e00\n\ - str r1, [r0]\n\ - ldr r0, _08106F64 @ =gUnknown_03005E10\n\ - ldr r2, _08106F68 @ =0xffffe000\n\ - adds r1, r2\n\ - str r1, [r0]\n\ - bx lr\n\ - .align 2, 0\n\ -_08106F5C: .4byte gUnknown_03005E90\n\ -_08106F60: .4byte 0x02017e00\n\ -_08106F64: .4byte gUnknown_03005E10\n\ -_08106F68: .4byte 0xffffe000\n\ - .syntax divided\n"); +static void sub_8106F4C(void) +{ + gUnknown_03005E90 = &unk_2015e00.unk2017e00; + gUnknown_03005E10 = &unk_2015e00.unk2015e00; } -#endif -void sub_8106F6C(u8 arg0) { +static void sub_8106F6C(u8 arg0) +{ gUnknown_03005E20.var_4 = gUnknown_03005E10; gUnknown_03005E20.var_8 = gUnknown_03005E90; gUnknown_03005E20.var_18 = 0; @@ -1067,18 +796,18 @@ void sub_8106F6C(u8 arg0) { 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; + 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; @@ -1092,15 +821,11 @@ void sub_8106F6C(u8 arg0) { LoadPalette(gUnknown_03005E90, 256, 256 * 2); } -void sub_8107090(u8 arg0, u8 arg1) { - u8 local0; - +static void sub_8107090(u8 arg0, u8 arg1) +{ sub_8106F4C(); sub_8106AC4(gUnknown_03005E8C->var8, 0); - - local0 = sub_8106EE0(arg0); - sub_8106F6C(local0); - + sub_8106F6C(sub_8106EE0(arg0)); sub_8106E98(arg0); sub_8106C40(arg0, arg1); } -- cgit v1.2.3 From 801877553db80267a62c0c3c0b2805b6716d1ef9 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 17 Jan 2017 14:38:44 +0100 Subject: Remove trailing whitespace --- src/contest_painting.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index b6cdda034..7de005a46 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -194,7 +194,7 @@ static void ShowContestPainting(void) { u8 *addr; size_t size; - + ResetPaletteFade(); addr = (void *)VRAM; size = 0x18000; @@ -261,7 +261,7 @@ static void HoldContestPainting(void) 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); } @@ -515,7 +515,7 @@ void sub_8106B90(u8 a[][8][8][4], u16 b[], u16 c[][8][8][8]) u16 j; u16 k; u16 l; - + for (i = 0; i < 8; i++) { for (j = 0; j < 8; j++) @@ -527,7 +527,7 @@ void sub_8106B90(u8 a[][8][8][4], u16 b[], u16 c[][8][8][8]) //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 @@ -650,7 +650,7 @@ _08106C08:\n\ static void sub_8106C40(u8 arg0, u8 arg1) { u8 x, y; - + LoadPalette(gPictureFramePalettes, 0, 128 * 2); if (arg1 == 1) { @@ -677,11 +677,11 @@ static void sub_8106C40(u8 arg0, u8 arg1) 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 (y = 0; y < 20; y++) { for (x = 0; x < 32; x++) VRAM_PICTURE_DATA(x, y) = 0x1015; @@ -697,7 +697,7 @@ static void sub_8106C40(u8 arg0, u8 arg1) // 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) @@ -739,14 +739,14 @@ static void sub_8106E98(u8 arg0) #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; } -- cgit v1.2.3 From bcaab977727ded65c9eeaef9dbef9e9441d26fb7 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 21 Jan 2017 16:48:06 -0800 Subject: formatting --- src/contest_painting.c | 79 +++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 37 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 7de005a46..b77041f41 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -379,40 +379,45 @@ struct MonCoords }; #ifdef NONMATCHING -static void sub_8106AC4(u16 species, u8 arg1) { +static void sub_8106AC4(u16 species, u8 arg1) +{ void *pal; // Unsure what gUnknown_03005E8C->var0 is supposed to be. pal = species_and_otid_get_pal(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0); LZDecompressVram(pal, gUnknown_03005E90); - if (arg1 == 1) { + if (arg1 == 1) + { HandleLoadSpecialPokePic( - &gMonFrontPicTable[species], - gMonFrontPicCoords[species].x, - gMonFrontPicCoords[species].y, - 0x2000000, - gUnknown_081FAF4C[1], - species, - (u32) gUnknown_03005E8C->var0 + &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 { + } + else + { HandleLoadSpecialPokePic( - &gMonBackPicTable[species], - gMonBackPicCoords[species].x, - gMonBackPicCoords[species].y, - 0x2000000, - gUnknown_081FAF4C[0], - species, - (u32) gUnknown_03005E8C->var0 + &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) { +static void sub_8106AC4(u16 arg0, u8 arg2) +{ asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r8\n\ @@ -657,28 +662,28 @@ static void sub_8106C40(u8 arg0, u8 arg1) switch (gUnknown_03005E8C->contestType / 3) { case CONTEST_COOL: - RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM); + RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03005E10); break; case CONTEST_BEAUTY: - RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM); + RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03005E10); break; case CONTEST_CUTE: - RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM); + RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03005E10); break; case CONTEST_SMART: - RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM); + RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03005E10); break; case CONTEST_TOUGH: - RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM); + RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03005E10); break; } - #define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)]) +#define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)]) // Set the background for (y = 0; y < 20; y++) @@ -698,36 +703,36 @@ static void sub_8106C40(u8 arg0, u8 arg1) for (x = 0; x < 16; x++) VRAM_PICTURE_DATA(x + 7, 2) = (*gUnknown_03005E10)[2][7]; - #undef VRAM_PICTURE_DATA +#undef VRAM_PICTURE_DATA } else if (arg0 < 8) { - RLUnCompVram(gPictureFrameTiles_5, (void *) VRAM); - RLUnCompVram(gPictureFrameTilemap_5, (void *) (VRAM + 0x6000)); + 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)); + 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)); + 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)); + 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)); + 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)); + RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); + RLUnCompVram(gPictureFrameTilemap_4, (void *)(VRAM + 0x6000)); break; } } -- cgit v1.2.3 From b9f1143d3e9b32120cc62fcc7a822d3bca8ef976 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 28 Jan 2017 01:31:09 -0500 Subject: define more data in C (#220) * define more data in C * correct typo in comments --- src/contest_painting.c | 140 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 110 insertions(+), 30 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index b77041f41..5dbc50791 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -56,8 +56,8 @@ struct Unk3000756 struct LabelPair { - u8 (*prefix)[]; - u8 (*suffix)[]; + const u8 *prefix; + const u8 *suffix; }; struct Unk03005E20 @@ -97,32 +97,112 @@ extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpriteSheet gMonBackPicTable[]; extern const struct MonCoords gMonBackPicCoords[]; - extern void *gUnknown_081FAF4C[]; - -extern u16 gPictureFramePalettes[]; - -extern u8 gPictureFrameTiles_0[]; -extern u8 gPictureFrameTiles_1[]; -extern u8 gPictureFrameTiles_2[]; -extern u8 gPictureFrameTiles_3[]; -extern u8 gPictureFrameTiles_4[]; -extern u8 gPictureFrameTiles_5[]; - -extern u8 gPictureFrameTilemap_0[]; -extern u8 gPictureFrameTilemap_1[]; -extern u8 gPictureFrameTilemap_2[]; -extern u8 gPictureFrameTilemap_3[]; -extern u8 gPictureFrameTilemap_4[]; -extern u8 gPictureFrameTilemap_5[]; - -extern u8 *gUnknown_083F60AC[]; -extern struct LabelPair gUnknown_083F60C0[]; -extern struct OamData gOamData_83F6138; -extern u16 gUnknown_083F6140[]; - -extern u8 gContestText_ContestWinner[]; -extern u8 gOtherText_Unknown1[]; +extern const u8 OtherText_Cool[]; +extern const u8 OtherText_Beauty2[]; +extern const u8 OtherText_Cute[]; +extern const u8 OtherText_Smart[]; +extern const u8 OtherText_Tough[]; +extern const u8 OtherText_NonstopSuperCool[]; +extern const u8 OtherText_Terminator6[]; +extern const u8 OtherText_GoodLookingPoke[]; +extern const u8 OtherText_Terminator7[]; +extern const u8 OtherText_MarvelousGreat[]; +extern const u8 OtherText_Terminator8[]; +extern const u8 OtherText_CenturyLastVenus[]; +extern const u8 OtherText_Terminator9[]; +extern const u8 OtherText_Terminator10[]; +extern const u8 OtherText_DazzlingSlime[]; +extern const u8 OtherText_PokeCenterIdol[]; +extern const u8 OtherText_Terminator11[]; +extern const u8 OtherText_LovelyAndSweet[]; +extern const u8 OtherText_Terminator12[]; +extern const u8 OtherText_ThePretty[]; +extern const u8 OtherText_WinningPortrait[]; +extern const u8 OtherText_GiveUsWink[]; +extern const u8 OtherText_Terminator13[]; +extern const u8 OtherText_SmartnessMaestro[]; +extern const u8 OtherText_Terminator14[]; +extern const u8 OtherText_ChosenPokeAmong[]; +extern const u8 OtherText_Terminator15[]; +extern const u8 OtherText_TheExcellent[]; +extern const u8 OtherText_ItsMomentOfElegance[]; +extern const u8 OtherText_PowerfullyMuscular[]; +extern const u8 OtherText_Terminator16[]; +extern const u8 OtherText_StrongErEst[]; +extern const u8 OtherText_Terminator17[]; +extern const u8 OtherText_MightyTough[]; +extern const u8 OtherText_Exclamation[]; +extern const u8 gContestText_ContestWinner[]; +extern const u8 gOtherText_Unknown1[]; + +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_DazzlingSlime}, + {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); @@ -312,9 +392,9 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) } else { - ptr = StringCopy(ptr, *gUnknown_083F60C0[type].prefix); + ptr = StringCopy(ptr, gUnknown_083F60C0[type].prefix); ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); - ptr = StringCopy(ptr, *gUnknown_083F60C0[type].suffix); + ptr = StringCopy(ptr, gUnknown_083F60C0[type].suffix); xPos = 3; yPos = 14; @@ -656,7 +736,7 @@ static void sub_8106C40(u8 arg0, u8 arg1) { u8 x, y; - LoadPalette(gPictureFramePalettes, 0, 128 * 2); + LoadPalette(gPictureFramePalettes, 0, sizeof(gPictureFramePalettes)); if (arg1 == 1) { switch (gUnknown_03005E8C->contestType / 3) -- cgit v1.2.3 From ed8f49d5e1418309cbc4f705a242d073258c8639 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 28 Jan 2017 13:51:14 -0800 Subject: tabs to spaces --- src/contest_painting.c | 378 ++++++++++++++++++++++++------------------------- 1 file changed, 189 insertions(+), 189 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 5dbc50791..556456814 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -224,29 +224,29 @@ __attribute__((naked)) void sub_8106630(u32 arg0) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - ldr r2, _0810665C @ =0x02015de0\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\ + push {r4-r7,lr}\n\ + ldr r2, _0810665C @ =0x02015de0\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 0x02015de0\n\ _08106660: .4byte gSaveBlock1\n\ _08106664: .4byte 0x00002dfc\n\ @@ -499,53 +499,53 @@ __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 species_and_otid_get_pal\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\ + 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 species_and_otid_get_pal\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\ @@ -553,38 +553,38 @@ _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\ + 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\ + 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\ @@ -632,102 +632,102 @@ __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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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 -- cgit v1.2.3 From 6035511c139549a0291b6b3d43b9b080f792b2b6 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 18 Mar 2017 04:00:15 +0100 Subject: reorganize and add new headers for many files --- src/contest_painting.c | 86 +++++--------------------------------------------- 1 file changed, 8 insertions(+), 78 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 556456814..41f6afabf 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -8,91 +8,21 @@ #include "sprite.h" #include "string_util.h" #include "text.h" - -#define MOSAIC_BIT_BG_HSIZE (0) -#define MOSAIC_BIT_BG_VSIZE (4) -#define MOSAIC_BIT_OBJ_HSIZE (8) -#define MOSAIC_BIT_OBJ_VSIZE (12) - -enum -{ - CONTEST_COOL, - CONTEST_BEAUTY, - CONTEST_CUTE, - CONTEST_SMART, - CONTEST_TOUGH, -}; - -enum -{ - CONTESTRESULT_COOL = 9, - CONTESTRESULT_BEAUTY = 13, - CONTESTRESULT_CUTE = 2, - CONTESTRESULT_SMART = 36, - CONTESTRESULT_TOUGH = 6, -}; - -struct Unk2015E00 -{ - u16 unk2015e00[128][32]; - u16 unk2017e00[0]; -}; - -struct ContestEntry -{ - /*0x00*/ u8 var0; - /*0x04*/ u32 var4; - /*0x08*/ u16 var8; - /*0x0A*/ u8 contestType; - /*0x0B*/ u8 pokemon_name[POKEMON_NAME_LENGTH]; - /*0x15*/ u8 pad15; - /*0x16*/ u8 trainer_name[OT_NAME_LENGTH]; -}; - -struct Unk3000756 -{ - /*0x00*/ u8 var_0; -}; - -struct LabelPair -{ - const u8 *prefix; - const u8 *suffix; -}; - -struct Unk03005E20 -{ - u8 var_0; - u8 pad1[3]; - u16 (*var_4)[][32]; - u16 (*var_8)[]; - u8 pad0C[4]; - u32 var_10; - u16 var_14; - u16 var_16; - u8 var_18; - u8 var_19; - u8 var_1A; - u8 var_1B; - u8 var_1C; - u8 var_1D; - u8 var_1E; - u8 var_1F; -}; +#include "contest_painting.h" extern u8 unk_2000000[]; -extern struct ContestEntry unk_2015de0; -extern struct Unk2015E00 unk_2015e00; extern u8 gUnknown_03000750; extern u16 gUnknown_03000752; extern u16 gUnknown_03000754; -extern struct Unk3000756 gUnknown_03000756; extern u16 (*gUnknown_03005E10)[][32]; -extern struct Unk03005E20 gUnknown_03005E20; extern u8 gUnknown_03005E40[]; -extern struct ContestEntry *gUnknown_03005E8C; extern u16 (*gUnknown_03005E90)[]; +extern struct ContestEntry unk_2015de0; +extern struct Unk2015E00 unk_2015e00; +extern struct Unk3000756 gUnknown_03000756; +extern struct Unk03005E20 gUnknown_03005E20; +extern struct ContestEntry *gUnknown_03005E8C; extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpriteSheet gMonBackPicTable[]; @@ -112,7 +42,7 @@ extern const u8 OtherText_Terminator8[]; extern const u8 OtherText_CenturyLastVenus[]; extern const u8 OtherText_Terminator9[]; extern const u8 OtherText_Terminator10[]; -extern const u8 OtherText_DazzlingSlime[]; +extern const u8 OtherText_DazzlingSmile[]; extern const u8 OtherText_PokeCenterIdol[]; extern const u8 OtherText_Terminator11[]; extern const u8 OtherText_LovelyAndSweet[]; @@ -174,7 +104,7 @@ const struct LabelPair gUnknown_083F60C0[] = {OtherText_GoodLookingPoke, OtherText_Terminator7}, {OtherText_MarvelousGreat, OtherText_Terminator8}, {OtherText_CenturyLastVenus, OtherText_Terminator9}, - {OtherText_Terminator10, OtherText_DazzlingSlime}, + {OtherText_Terminator10, OtherText_DazzlingSmile}, {OtherText_PokeCenterIdol, OtherText_Terminator11}, {OtherText_LovelyAndSweet, OtherText_Terminator12}, {OtherText_ThePretty, OtherText_WinningPortrait}, -- cgit v1.2.3 From ddc846fa6a0d9a13cfba6f52488a66f6f4562a2d Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Thu, 27 Apr 2017 15:43:31 +0200 Subject: Sort includes --- src/contest_painting.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 41f6afabf..08244597e 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,4 +1,5 @@ #include "global.h" +#include "contest_painting.h" #include "asm.h" #include "decompress.h" #include "main.h" @@ -8,7 +9,6 @@ #include "sprite.h" #include "string_util.h" #include "text.h" -#include "contest_painting.h" extern u8 unk_2000000[]; extern u8 gUnknown_03000750; -- cgit v1.2.3 From fbebe08ae94b8e165ba120d71959554765307ce3 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 9 May 2017 12:52:39 -0500 Subject: use macros to set DISPCNT and BG*CNT registers (#286) * use macros to set DISPCNT and BG*CNT registers * add a few more --- src/contest_painting.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 08244597e..2ef50ee17 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -336,8 +336,8 @@ static void ContestPaintingInitBG(void) { REG_DISPCNT = 0; REG_IE |= INTR_FLAG_VBLANK; - REG_BG0CNT = 0x0C42; - REG_BG1CNT = 0x0A45; + 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; @@ -367,7 +367,7 @@ static void ContestPaintingMosaic(void) return; } - REG_BG1CNT = 0xA45; + 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); -- cgit v1.2.3 From 7c4f99560812cd5a8eedb124a9bc99c3f4243438 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sun, 21 May 2017 11:37:35 +0200 Subject: Remove duplicate strings.h declarations --- src/contest_painting.c | 38 +------------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 2ef50ee17..c970deaf2 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -8,6 +8,7 @@ #include "rng.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "text.h" extern u8 unk_2000000[]; @@ -28,43 +29,6 @@ extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpriteSheet gMonBackPicTable[]; extern const struct MonCoords gMonBackPicCoords[]; extern void *gUnknown_081FAF4C[]; -extern const u8 OtherText_Cool[]; -extern const u8 OtherText_Beauty2[]; -extern const u8 OtherText_Cute[]; -extern const u8 OtherText_Smart[]; -extern const u8 OtherText_Tough[]; -extern const u8 OtherText_NonstopSuperCool[]; -extern const u8 OtherText_Terminator6[]; -extern const u8 OtherText_GoodLookingPoke[]; -extern const u8 OtherText_Terminator7[]; -extern const u8 OtherText_MarvelousGreat[]; -extern const u8 OtherText_Terminator8[]; -extern const u8 OtherText_CenturyLastVenus[]; -extern const u8 OtherText_Terminator9[]; -extern const u8 OtherText_Terminator10[]; -extern const u8 OtherText_DazzlingSmile[]; -extern const u8 OtherText_PokeCenterIdol[]; -extern const u8 OtherText_Terminator11[]; -extern const u8 OtherText_LovelyAndSweet[]; -extern const u8 OtherText_Terminator12[]; -extern const u8 OtherText_ThePretty[]; -extern const u8 OtherText_WinningPortrait[]; -extern const u8 OtherText_GiveUsWink[]; -extern const u8 OtherText_Terminator13[]; -extern const u8 OtherText_SmartnessMaestro[]; -extern const u8 OtherText_Terminator14[]; -extern const u8 OtherText_ChosenPokeAmong[]; -extern const u8 OtherText_Terminator15[]; -extern const u8 OtherText_TheExcellent[]; -extern const u8 OtherText_ItsMomentOfElegance[]; -extern const u8 OtherText_PowerfullyMuscular[]; -extern const u8 OtherText_Terminator16[]; -extern const u8 OtherText_StrongErEst[]; -extern const u8 OtherText_Terminator17[]; -extern const u8 OtherText_MightyTough[]; -extern const u8 OtherText_Exclamation[]; -extern const u8 gContestText_ContestWinner[]; -extern const u8 gOtherText_Unknown1[]; static const u16 gPictureFramePalettes[][16] = { -- cgit v1.2.3 From 6f2cd1e2da53cb0c4a4f4465d8ad72532050174d Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sun, 21 May 2017 13:25:26 +0200 Subject: Add data2 header --- src/contest_painting.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index c970deaf2..d7bacb905 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,6 +1,7 @@ #include "global.h" #include "contest_painting.h" #include "asm.h" +#include "data2.h" #include "decompress.h" #include "main.h" #include "menu.h" @@ -24,11 +25,6 @@ extern struct Unk2015E00 unk_2015e00; extern struct Unk3000756 gUnknown_03000756; extern struct Unk03005E20 gUnknown_03005E20; extern struct ContestEntry *gUnknown_03005E8C; -extern const struct SpriteSheet gMonFrontPicTable[]; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct SpriteSheet gMonBackPicTable[]; -extern const struct MonCoords gMonBackPicCoords[]; -extern void *gUnknown_081FAF4C[]; static const u16 gPictureFramePalettes[][16] = { @@ -345,13 +341,6 @@ static void VBlankCB_ContestPainting(void) TransferPlttBuffer(); } - -struct MonCoords -{ - u8 x; - u8 y; -}; - #ifdef NONMATCHING static void sub_8106AC4(u16 species, u8 arg1) { -- cgit v1.2.3 From 4d2b22a899c11dfcacfec6889968ab01655a3fe3 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 14:53:51 +0200 Subject: Add headers --- src/contest_painting.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index d7bacb905..3abcf85d1 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,6 +1,7 @@ +#include "unknown_task.h" +#include "cute_sketch.h" #include "global.h" #include "contest_painting.h" -#include "asm.h" #include "data2.h" #include "decompress.h" #include "main.h" @@ -105,11 +106,6 @@ static void VBlankCB_ContestPainting(void); void sub_8106B90(); //should be static static void sub_8107090(u8 arg0, u8 arg1); -extern void sub_80FC7A0(struct Unk03005E20*); -extern void sub_80FDA18(struct Unk03005E20*); -extern void sub_80FD8CC(struct Unk03005E20*); -extern void *species_and_otid_get_pal(); - __attribute__((naked)) void sub_8106630(u32 arg0) { -- cgit v1.2.3 From f26daa3d6954d2db3a7c44b79d319a7a084462c2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 15:01:42 +0200 Subject: Sort includes --- src/contest_painting.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index 3abcf85d1..eddcc87c1 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -1,7 +1,6 @@ -#include "unknown_task.h" -#include "cute_sketch.h" #include "global.h" #include "contest_painting.h" +#include "cute_sketch.h" #include "data2.h" #include "decompress.h" #include "main.h" @@ -12,6 +11,7 @@ #include "string_util.h" #include "strings.h" #include "text.h" +#include "unknown_task.h" extern u8 unk_2000000[]; extern u8 gUnknown_03000750; -- cgit v1.2.3 From f7528a440daa93ed0916834dcaf84ea26ba0e22d Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 24 Jun 2017 18:23:41 +0200 Subject: wip src --- src/contest_painting.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/contest_painting.c') diff --git a/src/contest_painting.c b/src/contest_painting.c index eddcc87c1..d75947e05 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -263,15 +263,23 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) { 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 - // {ENG} + // {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; -- cgit v1.2.3