diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-28 01:56:26 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-28 01:56:43 +0800 |
commit | f52d439a8588f82268ed199ce08ce3c792071ff3 (patch) | |
tree | 0735d9cd082a7103225ae1040ab6395ee1ab2910 /src | |
parent | fd543fd799caf59cabf55721e561fcfb0f59315d (diff) |
finished decompress (1 failed attempt)
Diffstat (limited to 'src')
-rw-r--r-- | src/daycare.c | 4 | ||||
-rw-r--r-- | src/decompress.c | 664 | ||||
-rw-r--r-- | src/egg_hatch.c | 4 | ||||
-rw-r--r-- | src/item_menu_icons.c | 4 | ||||
-rw-r--r-- | src/item_pc.c | 4 | ||||
-rw-r--r-- | src/mevent_8145654.c | 2 | ||||
-rw-r--r-- | src/oak_speech.c | 10 | ||||
-rw-r--r-- | src/tm_case.c | 2 | ||||
-rw-r--r-- | src/trainer_pokemon_sprites.c | 4 | ||||
-rw-r--r-- | src/unk_815C980.c | 2 | ||||
-rw-r--r-- | src/unk_815F138.c | 2 |
11 files changed, 683 insertions, 19 deletions
diff --git a/src/daycare.c b/src/daycare.c index 206e0b383..7f64cf548 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1768,8 +1768,8 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc { u16 species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); - sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); - LoadCompressedObjectPalette(GetMonSpritePalStruct(mon)); + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); + LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); *speciesLoc = species; } break; diff --git a/src/decompress.c b/src/decompress.c new file mode 100644 index 000000000..ddc86b5b7 --- /dev/null +++ b/src/decompress.c @@ -0,0 +1,664 @@ +#include "global.h" +#include "malloc.h" +#include "decompress.h" +#include "pokemon.h" +#include "text.h" +#include "constants/species.h" + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; + +static void DuplicateDeoxysTiles(void *pointer, s32 species); + +void LZDecompressWram(const void *src, void *dest) +{ + LZ77UnCompWram(src, dest); +} + +void LZDecompressVram(const void *src, void *dest) +{ + LZ77UnCompVram(src, dest); +} + +u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src) +{ + struct SpriteSheet dest; + + LZ77UnCompWram(src->data, gDecompressionBuffer); + dest.data = gDecompressionBuffer; + dest.size = src->size; + dest.tag = src->tag; + return LoadSpriteSheet(&dest); +} + +void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer) +{ + struct SpriteSheet dest; + + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); +} + +void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src) +{ + struct SpritePalette dest; + + LZ77UnCompWram(src->data, gDecompressionBuffer); + dest.data = (void*) gDecompressionBuffer; + dest.tag = src->tag; + LoadSpritePalette(&dest); +} + +void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer) +{ + struct SpritePalette dest; + + LZ77UnCompWram(a->data, buffer); + dest.data = buffer; + dest.tag = a->tag; + LoadSpritePalette(&dest); +} + +void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species) +{ + if (species > NUM_SPECIES) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); + DuplicateDeoxysTiles(buffer, species); +} + +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + + LoadSpecialPokePic(src, dest, species, personality, isFrontPic); +} + +void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else + LZ77UnCompWram(src->data, dest); + + DuplicateDeoxysTiles(dest, species); + DrawSpindaSpots(species, personality, dest, isFrontPic); +} + +static void DuplicateDeoxysTiles(void *pointer, s32 species) +{ + if (species == SPECIES_DEOXYS) + CpuCopy32(pointer + 0x800, pointer, 0x800); +} + +static void Unused_LZDecompressWramIndirect(const void **src, void *dest) +{ + LZ77UnCompWram(*src, dest); +} + +#ifdef NONMATCHING +static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3) +{ + u8 *v1, *v2; + int i, j, k, l; + + if (a0 & 1) + { + u8 v40 = ((a0 >> 1) + 4); + for (i = 0; i < a1; ++i) + { + // this nested loop failed to match + for (j = 0; j < 8 - a0; ++j) + { + for (k = 0; k < 8; ++k) + { + + v1 = a3 + 0x100 * v40 + 0x100 * (j >> 1) + 0x20 * k; + v2 = a3 + 0x20 * k + 0x100 * (j >> 1); + for (l = 0; l < 0x10; ++l) + { + if (!(j & 1)) + { + v2[0] = j & 1; + v1[16] = 0; +// a3[0x100 * (j / 2) + 0x20 * k + l] = 0; +// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0; + } + else + { + v2[16] = 0; + v1[0x100] = 0; +// a3[0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0; +// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x100] = 0; + } + ++v1; + ++v2; // this should be generated if you write stuff inside operator [] instead of declaring v1/v2 + } + } + } + for (j = 0; j < 2; ++j) + { + for (k = 0; k < 8; ++k) + { + for (l = 0; l < 0x20; ++l) + { + a3[0x100 * k + 0x20 * j + l] = 0; + a3[0x100 * k + 0xC0 + 0x20 * j + l] = 0; + } + } + } + if (a0 == 5) + a3 += 0x120; + for (j = 0; j < a0; ++j) + { + for (k = 0; k < a0; ++k) + { + for (l = 0; l < 4; ++l) + { + a3[0x12 + 4 * l] = a2[0 + 4 * l]; + a3[0x13 + 4 * l] = a2[1 + 4 * l]; + a3[0x12 + 0x1E + 4 * l] = a2[2 + 4 * l]; + a3[0x12 + 0x1F + 4 * l] = a2[3 + 4 * l]; + a3[0x102 + 4 * l] = a2[0x10 + 4 * l]; + a3[0x103 + 4 * l] = a2[0x11 + 4 * l]; + a3[0x120 + 4 * l] = a2[0x12 + 4 * l]; + a3[0x121 + 4 * l] = a2[0x13 + 4 * l]; + } + a2 += 0x20; + a3 += 0x20; + } + if (a0 == 7) + a3 += 0x20; + else if (a0 == 5) + a3 += 0x60; + } + if (a0 == 7) + a3 += 0x100; + else if (a0 == 5) + a3 += 0x1E0; + } + } + else + { + for (i = 0; i < a1; ++i) + { + if (a0 == 6) + for (j = 0; j < 0x100; ++j) + *a3++ = 0; + for (j = 0; j < a0; ++j) + { + if (a0 == 6) + for (k = 0; k < 0x20; ++k) + *a3++ = 0; + for (k = 0; k < 0x20 * a0; ++k) + *a3++ = *a2++; + if (a0 == 6) + for (k = 0; k < 0x20; ++k) + *a3++ = 0; + } + if (a0 == 6) + for (j = 0; j < 0x100; ++j) + *a3++ = 0; + } + } +} +#else +NAKED +static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3) +{ + asm_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, 0x24\n\ + mov r9, r0\n\ + str r1, [sp]\n\ + str r2, [sp, 0x4]\n\ + adds r5, r3, 0\n\ + movs r0, 0x1\n\ + mov r1, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0800EDFC\n\ + b _0800EF94\n\ + _0800EDFC:\n\ + asrs r0, r1, 1\n\ + adds r0, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ + movs r0, 0\n\ + ldr r2, [sp]\n\ + cmp r0, r2\n\ + blt _0800EE10\n\ + b _0800F024\n\ + _0800EE10:\n\ + movs r4, 0x8\n\ + subs r1, r4, r1\n\ + str r1, [sp, 0x10]\n\ + _0800EE16:\n\ + movs r7, 0\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x14]\n\ + ldr r0, [sp, 0x10]\n\ + cmp r7, r0\n\ + bge _0800EE92\n\ + ldr r1, [sp, 0x8]\n\ + lsls r1, 8\n\ + str r1, [sp, 0x18]\n\ + movs r2, 0\n\ + mov r10, r2\n\ + mov r0, r9\n\ + movs r4, 0x8\n\ + subs r0, r4, r0\n\ + str r0, [sp, 0xC]\n\ + _0800EE34:\n\ + movs r3, 0\n\ + asrs r0, r7, 1\n\ + adds r1, r7, 0\n\ + movs r2, 0x1\n\ + ands r1, r2\n\ + str r1, [sp, 0x20]\n\ + lsls r0, 8\n\ + mov r8, r0\n\ + mov r12, r5\n\ + _0800EE46:\n\ + lsls r1, r3, 5\n\ + ldr r4, [sp, 0x18]\n\ + adds r0, r5, r4\n\ + adds r0, r1\n\ + mov r1, r8\n\ + adds r2, r0, r1\n\ + mov r1, r12\n\ + add r1, r8\n\ + movs r6, 0xF\n\ + _0800EE58:\n\ + ldr r4, [sp, 0x20]\n\ + cmp r4, 0\n\ + bne _0800EE68\n\ + strb r4, [r1]\n\ + add r4, sp, 0x20\n\ + ldrb r4, [r4]\n\ + strb r4, [r2, 0x10]\n\ + b _0800EE76\n\ + _0800EE68:\n\ + mov r0, r10\n\ + strb r0, [r1, 0x10]\n\ + movs r4, 0x80\n\ + lsls r4, 1\n\ + adds r4, r2, r4\n\ + str r4, [sp, 0x1C]\n\ + strb r0, [r4]\n\ + _0800EE76:\n\ + adds r2, 0x1\n\ + adds r1, 0x1\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _0800EE58\n\ + movs r0, 0x20\n\ + add r12, r0\n\ + adds r3, 0x1\n\ + cmp r3, 0x7\n\ + ble _0800EE46\n\ + adds r7, 0x1\n\ + ldr r1, [sp, 0xC]\n\ + cmp r7, r1\n\ + blt _0800EE34\n\ + _0800EE92:\n\ + movs r7, 0\n\ + movs r2, 0\n\ + _0800EE96:\n\ + movs r6, 0\n\ + adds r4, r7, 0x1\n\ + mov r8, r4\n\ + lsls r4, r7, 5\n\ + _0800EE9E:\n\ + adds r0, r6, 0x1\n\ + mov r10, r0\n\ + lsls r1, r6, 8\n\ + adds r0, r1, 0\n\ + adds r0, 0xC0\n\ + adds r0, r5, r0\n\ + adds r0, r4\n\ + adds r1, r5, r1\n\ + adds r1, r4\n\ + movs r3, 0x1F\n\ + _0800EEB2:\n\ + strb r2, [r1]\n\ + strb r2, [r0]\n\ + adds r0, 0x1\n\ + adds r1, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EEB2\n\ + mov r6, r10\n\ + cmp r6, 0x7\n\ + ble _0800EE9E\n\ + mov r7, r8\n\ + cmp r7, 0x1\n\ + ble _0800EE96\n\ + mov r1, r9\n\ + cmp r1, 0x5\n\ + bne _0800EED8\n\ + movs r2, 0x90\n\ + lsls r2, 1\n\ + adds r5, r2\n\ + _0800EED8:\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _0800EF6E\n\ + _0800EEDE:\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + cmp r3, r9\n\ + bge _0800EF4E\n\ + _0800EEE8:\n\ + adds r3, 0x1\n\ + mov r10, r3\n\ + ldr r4, [sp, 0x4]\n\ + adds r4, 0x20\n\ + adds r7, r5, 0\n\ + adds r7, 0x20\n\ + movs r0, 0x12\n\ + adds r0, r5\n\ + mov r12, r0\n\ + ldr r2, [sp, 0x4]\n\ + adds r3, r5, 0\n\ + movs r6, 0x3\n\ + _0800EF00:\n\ + ldrb r0, [r2]\n\ + mov r1, r12\n\ + strb r0, [r1]\n\ + ldrb r0, [r2, 0x1]\n\ + strb r0, [r1, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + strb r0, [r1, 0x1E]\n\ + ldrb r0, [r2, 0x3]\n\ + strb r0, [r1, 0x1F]\n\ + movs r0, 0x81\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x10]\n\ + strb r0, [r1]\n\ + ldr r0, _0800EF58 @ =0x00000103\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x11]\n\ + strb r0, [r1]\n\ + movs r0, 0x90\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x12]\n\ + strb r0, [r1]\n\ + ldr r0, _0800EF5C @ =0x00000121\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x13]\n\ + strb r0, [r1]\n\ + movs r1, 0x4\n\ + add r12, r1\n\ + adds r2, 0x4\n\ + adds r3, 0x4\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _0800EF00\n\ + str r4, [sp, 0x4]\n\ + adds r5, r7, 0\n\ + mov r3, r10\n\ + cmp r3, r9\n\ + blt _0800EEE8\n\ + _0800EF4E:\n\ + mov r2, r9\n\ + cmp r2, 0x7\n\ + bne _0800EF60\n\ + adds r5, 0x20\n\ + b _0800EF68\n\ + .align 2, 0\n\ + _0800EF58: .4byte 0x00000103\n\ + _0800EF5C: .4byte 0x00000121\n\ + _0800EF60:\n\ + mov r4, r9\n\ + cmp r4, 0x5\n\ + bne _0800EF68\n\ + adds r5, 0x60\n\ + _0800EF68:\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _0800EEDE\n\ + _0800EF6E:\n\ + mov r0, r9\n\ + cmp r0, 0x7\n\ + bne _0800EF7C\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r5, r1\n\ + b _0800EF88\n\ + _0800EF7C:\n\ + mov r2, r9\n\ + cmp r2, 0x5\n\ + bne _0800EF88\n\ + movs r4, 0xF0\n\ + lsls r4, 1\n\ + adds r5, r4\n\ + _0800EF88:\n\ + ldr r0, [sp, 0x14]\n\ + ldr r1, [sp]\n\ + cmp r0, r1\n\ + bge _0800EF92\n\ + b _0800EE16\n\ + _0800EF92:\n\ + b _0800F024\n\ + _0800EF94:\n\ + movs r6, 0\n\ + ldr r2, [sp]\n\ + cmp r6, r2\n\ + bge _0800F024\n\ + _0800EF9C:\n\ + adds r6, 0x1\n\ + mov r10, r6\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _0800EFB4\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ + _0800EFAA:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EFAA\n\ + _0800EFB4:\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _0800F008\n\ + _0800EFBA:\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + mov r1, r9\n\ + lsls r0, r1, 5\n\ + cmp r1, 0x6\n\ + bne _0800EFD4\n\ + movs r1, 0\n\ + movs r3, 0x1F\n\ + _0800EFCA:\n\ + strb r1, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EFCA\n\ + _0800EFD4:\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + ble _0800EFEE\n\ + adds r3, r1, 0\n\ + _0800EFDC:\n\ + ldr r2, [sp, 0x4]\n\ + ldrb r0, [r2]\n\ + strb r0, [r5]\n\ + adds r2, 0x1\n\ + str r2, [sp, 0x4]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bne _0800EFDC\n\ + _0800EFEE:\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _0800F002\n\ + movs r0, 0\n\ + movs r3, 0x1F\n\ + _0800EFF8:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EFF8\n\ + _0800F002:\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _0800EFBA\n\ + _0800F008:\n\ + mov r0, r9\n\ + cmp r0, 0x6\n\ + bne _0800F01C\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ + _0800F012:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800F012\n\ + _0800F01C:\n\ + mov r6, r10\n\ + ldr r1, [sp]\n\ + cmp r6, r1\n\ + blt _0800EF9C\n\ + _0800F024:\n\ + add sp, 0x24\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\ + "); +} +#endif + +bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src) +{ + struct SpriteSheet dest; + void* buffer; + + buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8); + if (!buffer) + return TRUE; + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); + Free(buffer); + return FALSE; +} + +bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src) +{ + struct SpritePalette dest; + void* buffer; + + buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8); + if (!buffer) + return TRUE; + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.tag = src->tag; + LoadSpritePalette(&dest); + Free(buffer); + return FALSE; +} + +u32 GetDecompressedDataSize(const u8 *ptr) +{ + u32 ptr32[1]; + u8 *ptr8 = (u8 *)ptr32; + + ptr8[0] = ptr[1]; + ptr8[1] = ptr[2]; + ptr8[2] = ptr[3]; + ptr8[3] = 0; + return ptr32[0]; +} + +void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species) +{ + if (species > NUM_SPECIES) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); +} + +void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + LoadSpecialPokePic_DontHandleDeoxys(src, dest, species, personality, isFrontPic); +} + +void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + { + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + } + else + { + LZ77UnCompWram(src->data, dest); + } + DrawSpindaSpots(species, personality, dest, isFrontPic); +} diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 5e27a6482..f8d1044f6 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -437,8 +437,8 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc { u16 species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); - sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); - LoadCompressedObjectPalette(GetMonSpritePalStruct(mon)); + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); + LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); *speciesLoc = species; } break; diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index a244a1075..0c2c60437 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -683,7 +683,7 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) spritePalette.data = sub_8098974(itemId, 1); spritePalette.tag = paletteTag; - LoadCompressedObjectPalette(&spritePalette); + LoadCompressedSpritePalette(&spritePalette); CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate)); template.tileTag = tilesTag; @@ -714,7 +714,7 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT spritePalette.data = sub_8098974(itemId, 1); spritePalette.tag = paletteTag; - LoadCompressedObjectPalette(&spritePalette); + LoadCompressedSpritePalette(&spritePalette); CpuCopy16(origTemplate, &template, sizeof(struct SpriteTemplate)); template.tileTag = tilesTag; diff --git a/src/item_pc.c b/src/item_pc.c index afc82a73f..1df6bcc9d 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -452,11 +452,11 @@ static bool8 ItemPc_LoadGraphics(void) sStateDataPtr->data[0]++; break; case 3: - LoadCompressedObjectPic(&gBagSwapSpriteSheet); + LoadCompressedSpriteSheet(&gBagSwapSpriteSheet); sStateDataPtr->data[0]++; break; default: - LoadCompressedObjectPalette(&gBagSwapSpritePalette); + LoadCompressedSpritePalette(&gBagSwapSpritePalette); sStateDataPtr->data[0] = 0; return TRUE; } diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index 034a07679..6534a8dc1 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -402,7 +402,7 @@ void sub_8146060(void) } if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1) { - sub_800F034(&gUnknown_8467F58); + LoadCompressedSpriteSheetUsingHeap(&gUnknown_8467F58); LoadSpritePalette(&gUnknown_8467F60[gUnknown_203F3C8->unk_0170->textPal4]); for (; r7 < gUnknown_203F3C8->unk_0000.unk_09; r7++) { diff --git a/src/oak_speech.c b/src/oak_speech.c index 3bf174778..d6939d4e1 100644 --- a/src/oak_speech.c +++ b/src/oak_speech.c @@ -1613,7 +1613,7 @@ static void CreateNidoranFSprite(u8 taskId) u8 spriteId; DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F); - sub_800F078(&gUnknown_82373F4); + LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4); SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0); spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1); gSprites[spriteId].callback = SpriteCallbackDummy; @@ -1635,9 +1635,9 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st switch (state) { case 0: - LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]); - LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]); - LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]); + LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[0]); + LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[1]); + LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[2]); LoadSpritePalette(&sOakSpeech_PikaSpritePal); spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2); gSprites[spriteId].oam.priority = 0; @@ -1654,7 +1654,7 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st gTasks[taskId].data[9] = spriteId; break; case 1: - LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet); + LoadCompressedSpriteSheet(&sOakSpeech_GrassPlatformSpriteSheet); LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal); for (i = 0; i < 3; i++) { diff --git a/src/tm_case.c b/src/tm_case.c index 7c26c1c58..f32273add 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -469,7 +469,7 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void) sTMCaseDynamicResources->seqId++; break; case 4: - LoadCompressedObjectPic(&sTMSpriteSheet); + LoadCompressedSpriteSheet(&sTMSpriteSheet); sTMCaseDynamicResources->seqId++; break; default: diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index ecd889d80..25a8d4515 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -109,7 +109,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett else { sCreatingSpriteTemplate.paletteTag = paletteTag; - LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); + LoadCompressedSpritePalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); } } else @@ -122,7 +122,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett else { sCreatingSpriteTemplate.paletteTag = paletteTag; - LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); + LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[species]); } } } diff --git a/src/unk_815C980.c b/src/unk_815C980.c index b90d2fb03..09b92c834 100644 --- a/src/unk_815C980.c +++ b/src/unk_815C980.c @@ -128,7 +128,7 @@ bool32 sub_815CA40(u32 id, s32 arg1, const struct UnkStruct3 *arg2) compObjectPic = *(struct CompressedSpriteSheet*)(arg2->spriteSheet); compObjectPic.size = GetDecompressedDataSize(arg2->spriteSheet->data); - gUnknown_203F454->array[id].tileStart = LoadCompressedObjectPic(&compObjectPic); + gUnknown_203F454->array[id].tileStart = LoadCompressedSpriteSheet(&compObjectPic); } if (gUnknown_203F454->array[id].tileStart == 0xFFFF) diff --git a/src/unk_815F138.c b/src/unk_815F138.c index 8941f1559..96005a07b 100644 --- a/src/unk_815F138.c +++ b/src/unk_815F138.c @@ -209,7 +209,7 @@ void sub_815F564(u16 tilesTag, u16 palTag) struct SpritePalette spritePalette = {gUnknown_847A328}; spriteSheet.tag = tilesTag; spritePalette.tag = palTag; - LoadCompressedObjectPic(&spriteSheet); + LoadCompressedSpriteSheet(&spriteSheet); LoadSpritePalette(&spritePalette); } |