From 87e049d371cf17d020c5157c43143a30d1f7a96a Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 12 May 2017 18:16:30 +0200 Subject: Decompile more credits functions --- src/credits.c | 649 +++++++++++++++++++++++++++------------------------------- 1 file changed, 302 insertions(+), 347 deletions(-) (limited to 'src') diff --git a/src/credits.c b/src/credits.c index 01af78bce..68056c9ac 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1,12 +1,17 @@ #include "global.h" #include "asm.h" #include "decompress.h" +#include "event_data.h" #include "m4a.h" #include "main.h" #include "menu.h" #include "palette.h" +#include "pokedex.h" +#include "rng.h" #include "songs.h" #include "sound.h" +#include "species.h" +#include "starter_choose.h" #include "trig.h" asm(".set REG_BASE, 0x4000000"); @@ -104,7 +109,7 @@ enum TDA_TASK_B_ID = 15, // Appears to be responsible for text - TDB_0 = 0, + TDB_0 = 0, TDB_TASK_A_ID = 1, TDB_CURRENT_PAGE = 2, TDB_3 = 3, @@ -126,14 +131,17 @@ enum TDE_TASK_A_ID = 2, }; +#define POKEMON_TILE_COUNT 68 + struct Unk201C000 { - u16 unk0[8]; - u8 pad_10[0x78]; + u16 unk0[POKEMON_TILE_COUNT]; u16 unk88; u16 unk8A; u16 unk8C; u16 unk8E; + u16 unk90[386]; + u16 unk394; }; struct CreditsEntry @@ -227,10 +235,10 @@ static void task_d_8144514(u8 taskIdD); static bool8 sub_8144ECC(u8 data, u8 taskIdA); static void sub_81450AC(u8 taskIdA); void sub_8145128(u16, u16, u16); -static void sub_81452D0(u16 arg0, u16 arg1); +static void sub_81452D0(u16 arg0, u16 palette); static void spritecb_player_8145378(struct Sprite *sprite); static void spritecb_rival_8145420(struct Sprite *sprite); -u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 arg3); +u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position); void sub_81458DC(void); static void vblank_8143948(void) @@ -666,8 +674,7 @@ static void task_b_81441B8(u8 taskIdB) for (i = 0; i < 5; i++) { - sub_8072BD8(gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, 0, - 9 + i * 2, 240); + sub_8072BD8(gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, 0, 9 + i * 2, 240); } gTasks[taskIdB].data[TDB_CURRENT_PAGE] += 1; @@ -816,8 +823,6 @@ static u8 sub_8144454(u8 page, u8 taskIdA) return FALSE; } -#define UNK_DEFINE_44 (0x44) - static void task_d_8144514(u8 taskIdD) { struct Unk201C000 *r6 = &ewram1c000; @@ -834,7 +839,7 @@ static void task_d_8144514(u8 taskIdD) gTasks[taskIdD].data[TDD_STATE]++; break; case 2: - if (r6->unk88 == UNK_DEFINE_44 || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != task_a_8143B68) + if (r6->unk88 == POKEMON_TILE_COUNT || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != task_a_8143B68) break; r2 = sub_81456B4(r6->unk0[r6->unk8C], gUnknown_0840CA00[r6->unk8A][0], gUnknown_0840CA00[r6->unk8A][1], r6->unk8A); if (r6->unk8C < r6->unk8E - 1) @@ -1205,6 +1210,50 @@ static void sub_81450AC(u8 taskIdA) gUnknown_0203935C = 1; } +#ifdef NONMATCHING +// Sets up the tilemap for 'misc/end_copyright.png' +void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { + u16 i; + u16 baseTile; + u16 offset0, offset1, offset2, offset3, offset4; + + LZ77UnCompVram(gCreditsCopyrightEnd_Gfx, (void *) (VRAM + arg0)); + LoadPalette(gIntroCopyright_Pal, arg2, sizeof(gIntroCopyright_Pal)); + + baseTile = (arg2 / 16) << 12; + + offset0 = baseTile + 1; + for (i = 0; i < 32 * 32; i++) + { + ((u16 *) (VRAM + arg1))[i] = baseTile + 1; + } + + offset1 = offset0 + 1; + offset2 = offset1 + 21; + offset3 = offset2 + 20; + offset4 = offset3 + 23; + + for (i = 0; i < 21; i++) + { + ((u16 *) (VRAM + arg1))[7 * 32 + 4 + i] = offset1 + i; + } + + for (i = 0; i < 20; i++) + { + ((u16 *) (VRAM + arg1))[9 * 32 + 4 + i] = offset2 + i; + } + + for (i = 0; i < 23; i++) + { + ((u16 *) (VRAM + arg1))[11 * 32 + 4 + i] = offset3 + i; + } + + for (i = 0; i < 12; i++) + { + ((u16 *) (VRAM + arg1))[13 * 32 + 4 + i] = offset4 + i; + } +} +#else __attribute__((naked)) void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { @@ -1319,6 +1368,7 @@ _08145200: .4byte 0x060002c8\n\ _08145204: .4byte 0x06000348\n\ .syntax divided\n"); } +#endif u16 sub_8145208(u8 arg0) { @@ -1332,106 +1382,45 @@ u16 sub_8145208(u8 arg0) if (arg0 & (1 << 7)) { - out |= 0x800; + out |= 1 << 11; } if (arg0 & (1 << 6)) { - out |= 0x400; + out |= 1 << 10; } return out; } -__attribute__((naked)) -void sub_814524C(void *arg0, u8 arg1, u8 arg2, u16 arg3, int arg4) -{ - 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\ - str r0, [sp]\n\ - ldr r0, [sp, 0x2C]\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r10, r1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x4]\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - str r3, [sp, 0x8]\n\ - lsls r0, 16\n\ - lsrs r0, 20\n\ - lsls r0, 28\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - movs r5, 0\n\ -_0814527A:\n\ - movs r4, 0\n\ - lsls r7, r5, 1\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1, r5\n\ - adds r2, r5, 0x1\n\ - mov r8, r2\n\ - lsls r0, 6\n\ - ldr r1, [sp, 0x8]\n\ - adds r6, r0, r1\n\ -_0814528C:\n\ - adds r0, r7, r5\n\ - adds r0, r4\n\ - ldr r2, [sp]\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - bl sub_8145208\n\ - mov r2, r10\n\ - adds r1, r2, r4\n\ - lsls r1, 1\n\ - adds r1, r6\n\ - movs r2, 0xC0\n\ - lsls r2, 19\n\ - adds r1, r2\n\ - add r0, r9\n\ - strh r0, [r1]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x2\n\ - bls _0814528C\n\ - mov r1, r8\n\ - lsls r0, r1, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x4\n\ - bls _0814527A\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"); +void sub_814524C(u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette) { + u8 y, x; + + const u16 tileOffset = (palette / 16) << 12; + + for (y = 0; y < 5; y++) + { + for (x = 0; x < 3; x++) + { + ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + sub_8145208(arg0[y * 3 + x]); + } + } } -static void sub_81452D0(u16 arg0, u16 arg1) +static void sub_81452D0(u16 arg0, u16 palette) { - u16 i; - u16 foo = arg1 / 16; - u16 bar = foo * 4096; - - for (i = 0; i < 0x400; i++) - ((u16 *)(VRAM + arg0))[i] = bar + 1; - - sub_814524C(&gUnknown_0840B83C, 3, 7, arg0, arg1); - sub_814524C(&gUnknown_0840B84B, 7, 7, arg0, arg1); - sub_814524C(&gUnknown_0840B85A, 11, 7, arg0, arg1); - sub_814524C(&gUnknown_0840B85A, 16, 7, arg0, arg1); - sub_814524C(&gUnknown_0840B869, 20, 7, arg0, arg1); - sub_814524C(&gUnknown_0840B878, 24, 7, arg0, arg1); + u16 pos; + u16 baseTile = (palette / 16) << 12; + + for (pos = 0; pos < 32 * 32; pos++) + ((u16 *) (VRAM + arg0))[pos] = baseTile + 1; + + sub_814524C(gUnknown_0840B83C, 3, 7, arg0, palette); + sub_814524C(gUnknown_0840B84B, 7, 7, arg0, palette); + sub_814524C(gUnknown_0840B85A, 11, 7, arg0, palette); + sub_814524C(gUnknown_0840B85A, 16, 7, arg0, palette); + sub_814524C(gUnknown_0840B869, 20, 7, arg0, palette); + sub_814524C(gUnknown_0840B878, 24, 7, arg0, palette); } static void spritecb_player_8145378(struct Sprite *sprite) @@ -1538,248 +1527,117 @@ static void spritecb_rival_8145420(struct Sprite *sprite) } } -__attribute__((naked)) -void spritecb_81454E0(struct Sprite *sprite) -{ - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - sub sp, 0x4\n\ - adds r5, r0, 0\n\ - ldr r0, _081454F8 @ =gUnknown_0203935C\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - cmp r0, 0\n\ - beq _081454FC\n\ - adds r0, r5, 0\n\ - bl DestroySprite\n\ - b _081456A6\n\ - .align 2, 0\n\ -_081454F8: .4byte gUnknown_0203935C\n\ -_081454FC:\n\ - ldrh r0, [r5, 0x3C]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x3C]\n\ - movs r2, 0x2E\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0xA\n\ - bhi _08145544\n\ - lsls r0, 2\n\ - ldr r1, _08145514 @ =_08145518\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ -_08145514: .4byte _08145518\n\ - .align 2, 0\n\ -_08145518:\n\ - .4byte _08145544\n\ - .4byte _0814559E\n\ - .4byte _08145620\n\ - .4byte _08145660\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145696\n\ -_08145544:\n\ - ldrb r1, [r5, 0x1]\n\ - movs r0, 0x4\n\ - negs r0, r0\n\ - ands r0, r1\n\ - movs r1, 0x1\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x1]\n\ - movs r0, 0x30\n\ - ldrsh r1, [r5, r0]\n\ - movs r0, 0x1F\n\ - ands r1, r0\n\ - lsls r1, 1\n\ - ldrb r2, [r5, 0x3]\n\ - movs r0, 0x3F\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x3]\n\ - movs r0, 0x10\n\ - strh r0, [r5, 0x32]\n\ - ldrh r4, [r5, 0x30]\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r0, 0x80\n\ - lsls r0, 9\n\ - movs r1, 0x10\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - str r1, [sp]\n\ - adds r0, r4, 0\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl SetOamMatrix\n\ - adds r2, r5, 0\n\ - adds r2, 0x3E\n\ - ldrb r1, [r2]\n\ - movs r0, 0x5\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - movs r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ - b _081456A6\n\ -_0814559E:\n\ - ldrh r1, [r5, 0x32]\n\ - movs r2, 0x32\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0xFF\n\ - bgt _081455D4\n\ - adds r0, r1, 0\n\ - adds r0, 0x8\n\ - strh r0, [r5, 0x32]\n\ - ldrh r4, [r5, 0x30]\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r0, 0x32\n\ - ldrsh r1, [r5, r0]\n\ - movs r0, 0x80\n\ - lsls r0, 9\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - str r1, [sp]\n\ - adds r0, r4, 0\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl SetOamMatrix\n\ - b _081455DA\n\ -_081455D4:\n\ - ldrh r0, [r5, 0x2E]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ -_081455DA:\n\ - movs r2, 0x30\n\ - ldrsh r1, [r5, r2]\n\ - cmp r1, 0x2\n\ - beq _081456A6\n\ - cmp r1, 0x2\n\ - bgt _081455EC\n\ - cmp r1, 0x1\n\ - beq _081455F2\n\ - b _081456A6\n\ -_081455EC:\n\ - cmp r1, 0x3\n\ - beq _0814560A\n\ - b _081456A6\n\ -_081455F2:\n\ - ldrh r1, [r5, 0x3C]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08145602\n\ - ldrh r0, [r5, 0x22]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x22]\n\ -_08145602:\n\ - ldrh r0, [r5, 0x20]\n\ - subs r0, 0x2\n\ - strh r0, [r5, 0x20]\n\ - b _081456A6\n\ -_0814560A:\n\ - ldrh r0, [r5, 0x3C]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _08145618\n\ - ldrh r0, [r5, 0x22]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x22]\n\ -_08145618:\n\ - ldrh r0, [r5, 0x20]\n\ - adds r0, 0x2\n\ - strh r0, [r5, 0x20]\n\ - b _081456A6\n\ -_08145620:\n\ - ldrh r1, [r5, 0x34]\n\ - movs r2, 0x34\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0\n\ - beq _08145630\n\ - subs r0, r1, 0x1\n\ - strh r0, [r5, 0x34]\n\ - b _081456A6\n\ -_08145630:\n\ - ldr r1, _0814565C @ =REG_BLDCNT\n\ - movs r2, 0xF4\n\ - lsls r2, 4\n\ - adds r0, r2, 0\n\ - strh r0, [r1]\n\ - adds r1, 0x2\n\ - movs r0, 0x10\n\ - strh r0, [r1]\n\ - ldrb r1, [r5, 0x1]\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r1\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x1]\n\ - movs r0, 0x10\n\ - strh r0, [r5, 0x34]\n\ - ldrh r0, [r5, 0x2E]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ - b _081456A6\n\ - .align 2, 0\n\ -_0814565C: .4byte REG_BLDCNT\n\ -_08145660:\n\ - ldrh r1, [r5, 0x34]\n\ - movs r2, 0x34\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0\n\ - beq _08145684\n\ - subs r1, 0x1\n\ - strh r1, [r5, 0x34]\n\ - ldr r3, _08145680 @ =REG_BLDALPHA\n\ - movs r0, 0x34\n\ - ldrsh r2, [r5, r0]\n\ - movs r0, 0x10\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - adds r1, r0\n\ - strh r1, [r3]\n\ - b _081456A6\n\ - .align 2, 0\n\ -_08145680: .4byte REG_BLDALPHA\n\ -_08145684:\n\ - adds r2, r5, 0\n\ - adds r2, 0x3E\n\ - ldrb r0, [r2]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - strb r0, [r2]\n\ - movs r0, 0xA\n\ - strh r0, [r5, 0x2E]\n\ - b _081456A6\n\ -_08145696:\n\ - ldr r0, _081456B0 @ =REG_BLDCNT\n\ - movs r1, 0\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, r5, 0\n\ - bl DestroySprite\n\ -_081456A6:\n\ - add sp, 0x4\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_081456B0: .4byte REG_BLDCNT\n\ - .syntax divided\n"); +void spritecb_81454E0(struct Sprite *sprite) { + if (gUnknown_0203935C) + { + DestroySprite(sprite); + return; + } + + sprite->data7 += 1; + switch (sprite->data0) + { + case 0: + default: + sprite->oam.affineMode = 1; + sprite->oam.matrixNum = sprite->data1; + sprite->data2 = 16; + SetOamMatrix(sprite->data1, 0x10000 / sprite->data2, 0, 0, 0x10000 / sprite->data2); + sprite->invisible = FALSE; + sprite->data0 = 1; + break; + + case 1: + if (sprite->data2 < 256) + { + sprite->data2 += 8; + SetOamMatrix(sprite->data1, 0x10000 / sprite->data2, 0, 0, 0x10000 / sprite->data2); + } + else + { + sprite->data0 += 1; + } + switch (sprite->data1) + { + case 1: + if ((sprite->data7 & 3) == 0) + { + sprite->pos1.y += 1; + } + sprite->pos1.x -= 2; + break; + case 2: + break; + case 3: + if ((sprite->data7 & 3) == 0) + { + sprite->pos1.y += 1; + } + sprite->pos1.x += 2; + break; + } + break; + + case 2: + if (sprite->data3 != 0) + { + sprite->data3 -= 1; + } + else + { + REG_BLDCNT = 0xF40; + REG_BLDALPHA = 0x10; + sprite->oam.objMode = 1; + sprite->data3 = 16; + sprite->data0 += 1; + } + break; + + case 3: + if (sprite->data3 != 0) + { + int data3; + vu16 *reg; + + sprite->data3 -= 1; + + reg = ®_BLDALPHA; + data3 = 16 - sprite->data3; + *reg = (data3 << 8) + sprite->data3; + } + else + { + sprite->invisible = TRUE; + sprite->data0 = 10; + } + break; + + case 10: + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + DestroySprite(sprite); + break; + + } } #ifdef NONMATCHING -u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 arg3) +/* +extern struct SpriteFrameImage *gUnknown_0840B69C[]; +extern const union AmimCmd *const gSpriteAnimTable_81E7C64[]; +extern struct SpriteTemplate gUnknown_0840B6B8; + +void sub_8143648(u16 paletteTag, u8 arg1) { + gUnknown_02024E8C = gUnknown_0840B6B8; + gUnknown_02024E8C.paletteTag = paletteTag; + gUnknown_02024E8C.images = gUnknown_0840B69C[arg1]; + gUnknown_02024E8C.anims = (const union AnimCmd *const *) gSpriteAnimTable_81E7C64; +} +*/ + +void sub_8143648(u16 paletteTag, u8 arg1); + +u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position) { u32 species; u32 personality; @@ -1787,19 +1645,22 @@ u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 arg3) u8 spriteId; u8 spriteId2; + // FIXME: For some reason r0 is copied to r6 before. species = NationalPokedexNumToSpecies(nationalNum); + + switch (species) { - case SPECIES_UNOWN: - personality = gSaveBlock2.pokedex.unownPersonality; + default: + personality = 0; break; case SPECIES_SPINDA: personality = gSaveBlock2.pokedex.spindaPersonality; break; - default: - personality = 0; + case SPECIES_UNOWN: + personality = gSaveBlock2.pokedex.unownPersonality; break; } @@ -1808,27 +1669,27 @@ u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 arg3) gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y, 0x2000000, - gUnknown_0840B5A0[arg3], + gUnknown_0840B5A0[position], species, personality, 1 ); palette = species_and_otid_get_pal(species, 0, 0xFFFF); - LoadCompressedPalette(palette, 0x100 + (arg3 * 16), 0x20); - sub_8143648(arg3, arg3); + LoadCompressedPalette(palette, 0x100 + (position * 16), 0x20); + sub_8143648(position, position); spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0); - gSprites[spriteId].oam.paletteNum = arg3; + gSprites[spriteId].oam.paletteNum = position; gSprites[spriteId].oam.priority = 1; - gSprites[spriteId].data1 = arg3 + 1; + gSprites[spriteId].data1 = position + 1; gSprites[spriteId].invisible = TRUE; gSprites[spriteId].callback = spritecb_81454E0; spriteId2 = CreateSprite(&gSpriteTemplate_840CAEC, gSprites[spriteId].pos1.x, gSprites[spriteId].pos1.y, 1); gSprites[spriteId2].data0 = spriteId; - StartSpriteAnimIfDifferent(&gSprites[spriteId2], arg3); + StartSpriteAnimIfDifferent(&gSprites[spriteId2], position); return spriteId; } @@ -2015,6 +1876,99 @@ void spritecb_814580C(struct Sprite *sprite) sprite->pos1.y = gSprites[sprite->data0].pos1.y; } +#ifdef NONMATCHING +void sub_81458DC(void) { + u16 dexNum, seenTypesCount, count, i2; + + struct Unk201C000 *unk201C000 = &ewram1c000; + + const u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); + + dexNum = 1; + seenTypesCount = 0; + for (; dexNum < 386; dexNum++) + { + if (sub_8090D90(dexNum, 1)) + { + unk201C000->unk90[seenTypesCount] = dexNum; + seenTypesCount += 1; + } + } + + count = seenTypesCount; + while (count < 386) + { + unk201C000->unk90[count] = 0; + count += 1; + } + + unk201C000->unk394 = seenTypesCount; + if (unk201C000->unk394 < POKEMON_TILE_COUNT) + { + unk201C000->unk8E = unk201C000->unk394; + } + else + { + unk201C000->unk8E = POKEMON_TILE_COUNT; + } + + for (i2 = 0; i2 < POKEMON_TILE_COUNT;) + { + const u16 r2 = Random() % unk201C000->unk394; + unk201C000->unk0[i2] = unk201C000->unk90[r2]; + i2 += 1; + + unk201C000->unk90[r2] = 0; + unk201C000->unk394 -= 1; + + if (r2 != unk201C000->unk394) + { + unk201C000->unk90[r2] = unk201C000->unk90[unk201C000->unk394]; + unk201C000->unk90[unk201C000->unk394] = 0; + } + + if (unk201C000->unk394 == 0) + { + break; + } + } + + if (unk201C000->unk8E < POKEMON_TILE_COUNT) + { + u16 i; + u16 page; + for (i = unk201C000->unk8E; i < POKEMON_TILE_COUNT; i++) + { + unk201C000->unk0[i] = unk201C000->unk0[page]; + page += 1; + + if (page == unk201C000->unk8E) + { + page = 0; + } + } + } + else + { + u16 starterIndex; + for (starterIndex = 0; starterIndex < POKEMON_TILE_COUNT; starterIndex++) + { + if (unk201C000->unk0[starterIndex] == starter) + { + break; + } + } + + if (starterIndex < unk201C000->unk8E) + { + unk201C000->unk0[starterIndex] = unk201C000->unk0[POKEMON_TILE_COUNT - 1]; + } + } + + unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; + unk201C000->unk8E = POKEMON_TILE_COUNT; +} +#else __attribute__((naked)) void sub_81458DC(void) { @@ -2235,3 +2189,4 @@ _08145A62:\n\ bx r0\n\ .syntax divided\n"); } +#endif -- cgit v1.2.3 From c58711656537134c4fbd2feacd244a269b311cf5 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 12 May 2017 18:21:23 +0200 Subject: Use constants for task C data --- src/credits.c | 68 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/credits.c b/src/credits.c index 68056c9ac..085cf986c 100644 --- a/src/credits.c +++ b/src/credits.c @@ -871,83 +871,83 @@ static void task_d_8144514(u8 taskIdD) void task_c_8144664(u8 taskIdC) { - switch (gTasks[taskIdC].data[0]) + switch (gTasks[taskIdC].data[TDC_0]) { case 0: - gUnknown_0203935A = Sin((gTasks[taskIdC].data[5] >> 1) & 0x7F, 12); - gTasks[taskIdC].data[5]++; + gUnknown_0203935A = Sin((gTasks[taskIdC].data[TDC_5] >> 1) & 0x7F, 12); + gTasks[taskIdC].data[TDC_5]++; break; case 1: if (gUnknown_0203935A != 0) { - gUnknown_0203935A = Sin((gTasks[taskIdC].data[5] >> 1) & 0x7F, 12); - gTasks[taskIdC].data[5]++; + gUnknown_0203935A = Sin((gTasks[taskIdC].data[TDC_5] >> 1) & 0x7F, 12); + gTasks[taskIdC].data[TDC_5]++; } else { - gSprites[gTasks[taskIdC].data[2]].data0 = 2; - gTasks[taskIdC].data[5] = 0; - gTasks[taskIdC].data[0]++; + gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 2; + gTasks[taskIdC].data[TDC_5] = 0; + gTasks[taskIdC].data[TDC_0]++; } break; case 2: - if (gTasks[taskIdC].data[5] < 64) + if (gTasks[taskIdC].data[TDC_5] < 64) { - gTasks[taskIdC].data[5]++; - gUnknown_0203935A = Sin(gTasks[taskIdC].data[5] & 0x7F, 20); + gTasks[taskIdC].data[TDC_5]++; + gUnknown_0203935A = Sin(gTasks[taskIdC].data[TDC_5] & 0x7F, 20); } else { - gTasks[taskIdC].data[0]++; + gTasks[taskIdC].data[TDC_0]++; } break; case 3: - gSprites[gTasks[taskIdC].data[2]].data0 = 3; - gSprites[gTasks[taskIdC].data[3]].data0 = 1; - gTasks[taskIdC].data[4] = 120; - gTasks[taskIdC].data[0]++; + gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 3; + gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 1; + gTasks[taskIdC].data[TDC_4] = 120; + gTasks[taskIdC].data[TDC_0]++; break; case 4: - if (gTasks[taskIdC].data[4] != 0) + if (gTasks[taskIdC].data[TDC_4] != 0) { - gTasks[taskIdC].data[4]--; + gTasks[taskIdC].data[TDC_4]--; } else { - gTasks[taskIdC].data[5] = 64; - gTasks[taskIdC].data[0]++; + gTasks[taskIdC].data[TDC_5] = 64; + gTasks[taskIdC].data[TDC_0]++; } break; case 5: - if (gTasks[taskIdC].data[5] > 0) + if (gTasks[taskIdC].data[TDC_5] > 0) { - gTasks[taskIdC].data[5]--; - gUnknown_0203935A = Sin(gTasks[taskIdC].data[5] & 0x7F, 20); + gTasks[taskIdC].data[TDC_5]--; + gUnknown_0203935A = Sin(gTasks[taskIdC].data[TDC_5] & 0x7F, 20); } else { - gSprites[gTasks[taskIdC].data[2]].data0 = 1; - gTasks[taskIdC].data[0]++; + gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 1; + gTasks[taskIdC].data[TDC_0]++; } break; case 6: - gTasks[taskIdC].data[0] = 50; + gTasks[taskIdC].data[TDC_0] = 50; break; case 10: - gSprites[gTasks[taskIdC].data[3]].data0 = 2; - gTasks[taskIdC].data[0] = 50; + gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 2; + gTasks[taskIdC].data[TDC_0] = 50; break; case 20: - gSprites[gTasks[taskIdC].data[2]].data0 = 4; - gTasks[taskIdC].data[0] = 50; + gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 4; + gTasks[taskIdC].data[TDC_0] = 50; break; case 30: - gSprites[gTasks[taskIdC].data[2]].data0 = 5; - gSprites[gTasks[taskIdC].data[3]].data0 = 3; - gTasks[taskIdC].data[0] = 50; + gSprites[gTasks[taskIdC].data[TDC_2]].data0 = 5; + gSprites[gTasks[taskIdC].data[TDC_3]].data0 = 3; + gTasks[taskIdC].data[TDC_0] = 50; break; case 50: - gTasks[taskIdC].data[0] = 0; + gTasks[taskIdC].data[TDC_0] = 0; break; } } -- cgit v1.2.3 From e093a13a4b0e72f9f150d98bf0df8dab981316c2 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 14 May 2017 18:34:49 +0200 Subject: Remove last NONMATCHINGs in credits.c --- src/credits.c | 638 ++++------------------------------------------------------ src/intro.c | 1 - 2 files changed, 44 insertions(+), 595 deletions(-) (limited to 'src') diff --git a/src/credits.c b/src/credits.c index 085cf986c..ca5553c2e 100644 --- a/src/credits.c +++ b/src/credits.c @@ -20,8 +20,6 @@ asm(".set OFFSET_REG_BLDALPHA, 0x52"); asm(".set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT"); asm(".set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA"); -u32 NationalPokedexNumToSpecies(u16 nationalNum); - struct MonCoords { u8 x, y; @@ -109,7 +107,7 @@ enum TDA_TASK_B_ID = 15, // Appears to be responsible for text - TDB_0 = 0, + TDB_0 = 0, TDB_TASK_A_ID = 1, TDB_CURRENT_PAGE = 2, TDB_3 = 3, @@ -234,12 +232,12 @@ static u8 sub_8144454(u8 page, u8 taskIdA); static void task_d_8144514(u8 taskIdD); static bool8 sub_8144ECC(u8 data, u8 taskIdA); static void sub_81450AC(u8 taskIdA); -void sub_8145128(u16, u16, u16); +static void sub_8145128(u16, u16, u16); static void sub_81452D0(u16 arg0, u16 palette); static void spritecb_player_8145378(struct Sprite *sprite); static void spritecb_rival_8145420(struct Sprite *sprite); -u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position); -void sub_81458DC(void); +static u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position); +static void sub_81458DC(void); static void vblank_8143948(void) { @@ -1210,165 +1208,40 @@ static void sub_81450AC(u8 taskIdA) gUnknown_0203935C = 1; } -#ifdef NONMATCHING -// Sets up the tilemap for 'misc/end_copyright.png' -void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { - u16 i; +static void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { u16 baseTile; - u16 offset0, offset1, offset2, offset3, offset4; + u16 i; LZ77UnCompVram(gCreditsCopyrightEnd_Gfx, (void *) (VRAM + arg0)); LoadPalette(gIntroCopyright_Pal, arg2, sizeof(gIntroCopyright_Pal)); baseTile = (arg2 / 16) << 12; - offset0 = baseTile + 1; for (i = 0; i < 32 * 32; i++) { ((u16 *) (VRAM + arg1))[i] = baseTile + 1; } - offset1 = offset0 + 1; - offset2 = offset1 + 21; - offset3 = offset2 + 20; - offset4 = offset3 + 23; - for (i = 0; i < 21; i++) { - ((u16 *) (VRAM + arg1))[7 * 32 + 4 + i] = offset1 + i; + ((u16 *) (VRAM + arg1))[7 * 32 + 4 + i] = i + 2 + baseTile; } for (i = 0; i < 20; i++) { - ((u16 *) (VRAM + arg1))[9 * 32 + 4 + i] = offset2 + i; + ((u16 *) (VRAM + arg1))[9 * 32 + 4 + i] = i + 23 + baseTile; } for (i = 0; i < 23; i++) { - ((u16 *) (VRAM + arg1))[11 * 32 + 4 + i] = offset3 + i; + ((u16 *) (VRAM + arg1))[11 * 32 + 4 + i] = i + 43 + baseTile; } for (i = 0; i < 12; i++) { - ((u16 *) (VRAM + arg1))[13 * 32 + 4 + i] = offset4 + i; + ((u16 *) (VRAM + arg1))[13 * 32 + 4 + i] = i + 66 + baseTile; } } -#else -__attribute__((naked)) -void sub_8145128(u16 arg0, u16 arg1, u16 arg2) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - adds r3, r0, 0\n\ - adds r4, r2, 0\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - lsls r1, 16\n\ - lsrs r7, r1, 16\n\ - lsls r4, 16\n\ - lsrs r5, r4, 16\n\ - ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx\n\ - movs r6, 0xC0\n\ - lsls r6, 19\n\ - adds r3, r6\n\ - adds r1, r3, 0\n\ - bl LZ77UnCompVram\n\ - ldr r0, _081451F0 @ =gIntroCopyright_Pal\n\ - adds r1, r5, 0\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ - lsrs r4, 20\n\ - lsls r4, 28\n\ - lsrs r4, 16\n\ - movs r2, 0\n\ - adds r1, r4, 0x1\n\ - ldr r3, _081451F4 @ =0x000003ff\n\ -_0814515E:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r6\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, r3\n\ - bls _0814515E\n\ - movs r2, 0\n\ - adds r0, r4, 0x2\n\ - adds r6, r4, 0\n\ - adds r6, 0x17\n\ - movs r1, 0x2B\n\ - adds r1, r4\n\ - mov r12, r1\n\ - adds r4, 0x42\n\ - ldr r5, _081451F8 @ =0x060001c8\n\ - adds r3, r0, 0\n\ -_08145184:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r5\n\ - adds r1, r2, r3\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x14\n\ - bls _08145184\n\ - movs r2, 0\n\ - ldr r5, _081451FC @ =0x06000248\n\ - adds r3, r6, 0\n\ -_0814519E:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r5\n\ - adds r1, r2, r3\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x13\n\ - bls _0814519E\n\ - movs r2, 0\n\ - ldr r5, _08145200 @ =0x060002c8\n\ - mov r3, r12\n\ -_081451B8:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r5\n\ - adds r1, r2, r3\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x16\n\ - bls _081451B8\n\ - movs r2, 0\n\ - ldr r3, _08145204 @ =0x06000348\n\ -_081451D0:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r3\n\ - adds r1, r2, r4\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0xB\n\ - bls _081451D0\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_081451EC: .4byte gCreditsCopyrightEnd_Gfx\n\ -_081451F0: .4byte gIntroCopyright_Pal\n\ -_081451F4: .4byte 0x000003ff\n\ -_081451F8: .4byte 0x060001c8\n\ -_081451FC: .4byte 0x06000248\n\ -_08145200: .4byte 0x060002c8\n\ -_08145204: .4byte 0x06000348\n\ - .syntax divided\n"); -} -#endif u16 sub_8145208(u8 arg0) { @@ -1621,33 +1494,14 @@ void spritecb_81454E0(struct Sprite *sprite) { } } -#ifdef NONMATCHING -/* -extern struct SpriteFrameImage *gUnknown_0840B69C[]; -extern const union AmimCmd *const gSpriteAnimTable_81E7C64[]; -extern struct SpriteTemplate gUnknown_0840B6B8; - -void sub_8143648(u16 paletteTag, u8 arg1) { - gUnknown_02024E8C = gUnknown_0840B6B8; - gUnknown_02024E8C.paletteTag = paletteTag; - gUnknown_02024E8C.images = gUnknown_0840B69C[arg1]; - gUnknown_02024E8C.anims = (const union AnimCmd *const *) gSpriteAnimTable_81E7C64; -} -*/ - -void sub_8143648(u16 paletteTag, u8 arg1); - -u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position) +static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position) { - u32 species; u32 personality; void *palette; u8 spriteId; u8 spriteId2; - // FIXME: For some reason r0 is copied to r6 before. - species = NationalPokedexNumToSpecies(nationalNum); - + species = NationalPokedexNumToSpecies(species); switch (species) { @@ -1693,172 +1547,6 @@ u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 position) return spriteId; } -#else -__attribute__((naked)) -u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 arg3) -{ - 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, 0x14\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r10, r1\n\ - lsls r2, 16\n\ - lsrs r2, 16\n\ - str r2, [sp, 0x10]\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - mov r9, r3\n\ - adds r0, r6, 0\n\ - bl NationalPokedexNumToSpecies\n\ - adds r6, r0, 0\n\ - cmp r6, 0xC9\n\ - beq _081456F8\n\ - movs r0, 0x9A\n\ - lsls r0, 1\n\ - cmp r6, r0\n\ - beq _081456EE\n\ - movs r7, 0\n\ - b _081456FC\n\ -_081456EE:\n\ - ldr r0, _081456F4 @ =gSaveBlock2\n\ - ldr r7, [r0, 0x20]\n\ - b _081456FC\n\ - .align 2, 0\n\ -_081456F4: .4byte gSaveBlock2\n\ -_081456F8:\n\ - ldr r0, _081457E8 @ =gSaveBlock2\n\ - ldr r7, [r0, 0x1C]\n\ -_081456FC:\n\ - lsls r0, r6, 3\n\ - ldr r1, _081457EC @ =gMonFrontPicTable\n\ - adds r0, r1\n\ - ldr r1, _081457F0 @ =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, _081457F4 @ =gUnknown_0840B5A0\n\ - mov r8, r4\n\ - mov r5, r9\n\ - lsls r4, r5, 2\n\ - add r4, r8\n\ - ldr r4, [r4]\n\ - str r4, [sp]\n\ - str r6, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r4, 0x1\n\ - str r4, [sp, 0xC]\n\ - bl LoadSpecialPokePic\n\ - ldr r2, _081457F8 @ =0x0000ffff\n\ - adds r0, r6, 0\n\ - movs r1, 0\n\ - bl species_and_otid_get_pal\n\ - lsls r5, 4\n\ - mov r8, r5\n\ - movs r1, 0x80\n\ - lsls r1, 1\n\ - add r1, r8\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - movs r2, 0x20\n\ - bl LoadCompressedPalette\n\ - mov r7, r9\n\ - lsls r6, r7, 24\n\ - lsrs r6, 24\n\ - mov r0, r9\n\ - adds r1, r6, 0\n\ - bl sub_8143648\n\ - ldr r0, _081457FC @ =gUnknown_02024E8C\n\ - mov r2, r10\n\ - lsls r1, r2, 16\n\ - asrs r1, 16\n\ - ldr r3, [sp, 0x10]\n\ - lsls r2, r3, 16\n\ - asrs r2, 16\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - adds r4, r0, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r5, _08145800 @ =gSprites\n\ - lsls r2, r4, 4\n\ - adds r2, r4\n\ - lsls r2, 2\n\ - adds r3, r2, r5\n\ - ldrb r1, [r3, 0x5]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - mov r7, r8\n\ - orrs r0, r7\n\ - movs r1, 0xD\n\ - negs r1, r1\n\ - ands r0, r1\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - strb r0, [r3, 0x5]\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - strh r0, [r3, 0x30]\n\ - movs r0, 0x3E\n\ - adds r0, r3\n\ - mov r8, r0\n\ - ldrb r0, [r0]\n\ - orrs r0, r1\n\ - mov r1, r8\n\ - strb r0, [r1]\n\ - adds r0, r5, 0\n\ - adds r0, 0x1C\n\ - adds r2, r0\n\ - ldr r0, _08145804 @ =spritecb_81454E0\n\ - str r0, [r2]\n\ - ldr r0, _08145808 @ =gSpriteTemplate_840CAEC\n\ - movs r2, 0x20\n\ - ldrsh r1, [r3, r2]\n\ - movs r7, 0x22\n\ - ldrsh r2, [r3, r7]\n\ - movs r3, 0x1\n\ - bl CreateSprite\n\ - adds r1, r0, 0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r5\n\ - strh r4, [r0, 0x2E]\n\ - adds r1, r6, 0\n\ - bl StartSpriteAnimIfDifferent\n\ - adds r0, r4, 0\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ -_081457E8: .4byte gSaveBlock2\n\ -_081457EC: .4byte gMonFrontPicTable\n\ -_081457F0: .4byte gMonFrontPicCoords\n\ -_081457F4: .4byte gUnknown_0840B5A0\n\ -_081457F8: .4byte 0x0000ffff\n\ -_081457FC: .4byte gUnknown_02024E8C\n\ -_08145800: .4byte gSprites\n\ -_08145804: .4byte spritecb_81454E0\n\ -_08145808: .4byte gSpriteTemplate_840CAEC\n\ - .syntax divided\n"); -} -#endif void spritecb_814580C(struct Sprite *sprite) { @@ -1876,317 +1564,79 @@ void spritecb_814580C(struct Sprite *sprite) sprite->pos1.y = gSprites[sprite->data0].pos1.y; } -#ifdef NONMATCHING -void sub_81458DC(void) { - u16 dexNum, seenTypesCount, count, i2; - +static void sub_81458DC(void) { struct Unk201C000 *unk201C000 = &ewram1c000; + u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); + u16 seenTypesCount; + u16 page; + u16 dexNum; + u16 j; - const u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); - - dexNum = 1; - seenTypesCount = 0; - for (; dexNum < 386; dexNum++) + for (dexNum = 1, seenTypesCount = 0; dexNum < 386; dexNum++) { if (sub_8090D90(dexNum, 1)) { unk201C000->unk90[seenTypesCount] = dexNum; - seenTypesCount += 1; + seenTypesCount++; } } - count = seenTypesCount; - while (count < 386) + for (dexNum = seenTypesCount; dexNum < 386; dexNum++) { - unk201C000->unk90[count] = 0; - count += 1; + unk201C000->unk90[dexNum] = 0; } unk201C000->unk394 = seenTypesCount; if (unk201C000->unk394 < POKEMON_TILE_COUNT) { - unk201C000->unk8E = unk201C000->unk394; + unk201C000->unk8E = seenTypesCount; } else { unk201C000->unk8E = POKEMON_TILE_COUNT; } - for (i2 = 0; i2 < POKEMON_TILE_COUNT;) + j = 0; + do { - const u16 r2 = Random() % unk201C000->unk394; - unk201C000->unk0[i2] = unk201C000->unk90[r2]; - i2 += 1; + page = Random() % unk201C000->unk394; + unk201C000->unk0[j] = unk201C000->unk90[page]; - unk201C000->unk90[r2] = 0; - unk201C000->unk394 -= 1; - - if (r2 != unk201C000->unk394) + j++; + unk201C000->unk90[page] = 0; + unk201C000->unk394--; + if (page != unk201C000->unk394) { - unk201C000->unk90[r2] = unk201C000->unk90[unk201C000->unk394]; + unk201C000->unk90[page] = unk201C000->unk90[unk201C000->unk394]; unk201C000->unk90[unk201C000->unk394] = 0; } - - if (unk201C000->unk394 == 0) - { - break; - } } + while (unk201C000->unk394 != 0 && j < POKEMON_TILE_COUNT); if (unk201C000->unk8E < POKEMON_TILE_COUNT) { - u16 i; - u16 page; - for (i = unk201C000->unk8E; i < POKEMON_TILE_COUNT; i++) + for (j = unk201C000->unk8E, page = 0; j < POKEMON_TILE_COUNT; j++) { - unk201C000->unk0[i] = unk201C000->unk0[page]; - page += 1; + unk201C000->unk0[j] = unk201C000->unk0[page]; + page++; if (page == unk201C000->unk8E) - { page = 0; - } } + unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; } else { - u16 starterIndex; - for (starterIndex = 0; starterIndex < POKEMON_TILE_COUNT; starterIndex++) - { - if (unk201C000->unk0[starterIndex] == starter) - { - break; - } - } - if (starterIndex < unk201C000->unk8E) + for (dexNum = 0; unk201C000->unk0[dexNum] != starter && dexNum < POKEMON_TILE_COUNT; dexNum++); + + if (dexNum < unk201C000->unk8E - 1) { - unk201C000->unk0[starterIndex] = unk201C000->unk0[POKEMON_TILE_COUNT - 1]; + unk201C000->unk0[dexNum] = unk201C000->unk0[POKEMON_TILE_COUNT - 1]; + unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; } + else + unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; } - - unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; unk201C000->unk8E = POKEMON_TILE_COUNT; } -#else -__attribute__((naked)) -void sub_81458DC(void) -{ - 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, 0x4\n\ - ldr r7, _0814597C @ =0x0201c000\n\ - ldr r0, _08145980 @ =0x00004023\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - bl GetStarterPokemon\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - bl SpeciesToNationalPokedexNum\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r10, r0\n\ - movs r4, 0x1\n\ - movs r5, 0\n\ - ldr r0, _08145984 @ =0x00000181\n\ - mov r8, r0\n\ -_0814590E:\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_8090D90\n\ - lsls r0, 24\n\ - adds r6, r7, 0\n\ - adds r6, 0x90\n\ - cmp r0, 0\n\ - beq _0814592C\n\ - lsls r0, r5, 1\n\ - adds r0, r6, r0\n\ - strh r4, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ -_0814592C:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, r8\n\ - bls _0814590E\n\ - adds r4, r5, 0\n\ - ldr r0, _08145984 @ =0x00000181\n\ - lsls r1, r4, 16\n\ - mov r9, r1\n\ - movs r2, 0x8E\n\ - adds r2, r7\n\ - mov r8, r2\n\ - adds r1, r7, 0\n\ - adds r1, 0x86\n\ - str r1, [sp]\n\ - cmp r4, r0\n\ - bhi _08145964\n\ - adds r1, r6, 0\n\ - movs r3, 0\n\ - adds r2, r0, 0\n\ -_08145954:\n\ - lsls r0, r4, 1\n\ - adds r0, r1, r0\n\ - strh r3, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, r2\n\ - bls _08145954\n\ -_08145964:\n\ - movs r2, 0xE5\n\ - lsls r2, 2\n\ - adds r0, r7, r2\n\ - strh r5, [r0]\n\ - mov r1, r9\n\ - lsrs r0, r1, 16\n\ - cmp r0, 0x43\n\ - bhi _08145988\n\ - mov r2, r8\n\ - strh r5, [r2]\n\ - b _0814598E\n\ - .align 2, 0\n\ -_0814597C: .4byte 0x0201c000\n\ -_08145980: .4byte 0x00004023\n\ -_08145984: .4byte 0x00000181\n\ -_08145988:\n\ - movs r0, 0x44\n\ - mov r1, r8\n\ - strh r0, [r1]\n\ -_0814598E:\n\ - movs r5, 0\n\ - movs r2, 0xE5\n\ - lsls r2, 2\n\ - adds r4, r7, r2\n\ - mov r9, r5\n\ - b _0814599E\n\ -_0814599A:\n\ - cmp r5, 0x43\n\ - bhi _081459EE\n\ -_0814599E:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - ldrh r1, [r4]\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - lsls r1, r5, 1\n\ - adds r1, r7, r1\n\ - lsls r0, r2, 1\n\ - adds r3, r6, r0\n\ - ldrh r0, [r3]\n\ - strh r0, [r1]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - mov r0, r9\n\ - strh r0, [r3]\n\ - ldrh r0, [r4]\n\ - subs r0, 0x1\n\ - strh r0, [r4]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r2, r0\n\ - beq _081459E8\n\ - ldrh r0, [r4]\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - ldrh r0, [r0]\n\ - strh r0, [r3]\n\ - ldrh r0, [r4]\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - mov r1, r9\n\ - strh r1, [r0]\n\ -_081459E8:\n\ - ldrh r0, [r4]\n\ - cmp r0, 0\n\ - bne _0814599A\n\ -_081459EE:\n\ - mov r2, r8\n\ - ldrh r0, [r2]\n\ - cmp r0, 0x43\n\ - bhi _08145A26\n\ - adds r5, r0, 0\n\ - movs r2, 0\n\ - cmp r5, 0x43\n\ - bhi _08145A5C\n\ - mov r3, r8\n\ -_08145A00:\n\ - lsls r1, r5, 1\n\ - adds r1, r7, r1\n\ - lsls r0, r2, 1\n\ - adds r0, r7, r0\n\ - ldrh r0, [r0]\n\ - strh r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - ldrh r0, [r3]\n\ - cmp r2, r0\n\ - bne _08145A1A\n\ - movs r2, 0\n\ -_08145A1A:\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, 0x43\n\ - bls _08145A00\n\ - b _08145A5C\n\ -_08145A26:\n\ - movs r4, 0\n\ - ldrh r0, [r7]\n\ - cmp r0, r10\n\ - beq _08145A42\n\ -_08145A2E:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - lsls r0, r4, 1\n\ - adds r0, r7, r0\n\ - ldrh r0, [r0]\n\ - cmp r0, r10\n\ - beq _08145A42\n\ - cmp r4, 0x43\n\ - bls _08145A2E\n\ -_08145A42:\n\ - mov r1, r8\n\ - ldrh r0, [r1]\n\ - subs r0, 0x1\n\ - cmp r4, r0\n\ - bge _08145A5C\n\ - lsls r0, r4, 1\n\ - adds r0, r7, r0\n\ - ldr r2, [sp]\n\ - ldrh r1, [r2]\n\ - strh r1, [r0]\n\ - mov r0, r10\n\ - strh r0, [r2]\n\ - b _08145A62\n\ -_08145A5C:\n\ - mov r2, r10\n\ - ldr r1, [sp]\n\ - strh r2, [r1]\n\ -_08145A62:\n\ - movs r0, 0x44\n\ - mov r1, r8\n\ - strh r0, [r1]\n\ - add sp, 0x4\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 diff --git a/src/intro.c b/src/intro.c index ea6edba3d..2a62892ba 100644 --- a/src/intro.c +++ b/src/intro.c @@ -19,7 +19,6 @@ #include "trig.h" extern void *species_and_otid_get_pal(/*TODO: arg types*/); -extern void sub_8143648(int, u8); extern void sub_8143680(int, u8); struct MonCoords -- cgit v1.2.3 From 7801f9cd2e1471cd33e33047f049bbdc6da6e785 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Wed, 17 May 2017 01:36:12 -0500 Subject: fix up party_menu.c and decompile some more functions --- src/party_menu.c | 457 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 244 insertions(+), 213 deletions(-) (limited to 'src') diff --git a/src/party_menu.c b/src/party_menu.c index d473eae6d..b38e89376 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -5,46 +5,99 @@ #include "sound.h" #include "string_util.h" #include "task.h" +#include "sprite.h" +#include "palette.h" +#include "event_data.h" +#include "main.h" #define DATA_COUNT (6) struct Unk201C000 { /*0x00*/ struct Pokemon *pokemon; - /*0x04*/ u8 var04; - /*0x05*/ u8 var05; - /*0x06*/ u16 var06; - u8 pad_08[10]; - /*0x12*/ u16 var12; + /*0x04*/ u8 unk4; + /*0x05*/ u8 unk5; + /*0x06*/ u16 unk6; + /*0x08*/ u8 pad_08[4]; + /*0x0C*/ s32 var0C; + /*0x10*/ TaskFunc unk10; }; -struct Unk201B260 +struct Unk201B000 { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - u8 pad_02[2]; - /*0x04*/ s16 var04[DATA_COUNT * 2]; - u8 pad_1C[2]; - /*0x1E*/ u16 var1E; - /*0x20*/ u16 var20; + u8 filler0[0x260]; + u8 unk260; + u8 unk261; + u8 filler262[2]; + s16 unk264[DATA_COUNT * 2]; + u8 filler27C[2]; + s16 unk27E; + s16 unk280; + u16 unk282; }; -extern struct Unk201B260 unk_201B260; -extern struct Unk201C000 unk_201C000; +struct UnknownStruct5 +{ + u8 unk0; + u8 unk1; + u16 *unk4; +}; + +extern u8 ewram[]; +#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) +#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000)) + extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F6; +extern u8 gUnknown_0202E8FA; +extern u8 gLastFieldPokeMenuOpened; -extern u8 gUnknown_083769A8[][12]; +//extern const u16 gUnknown_083769A8[][6]; +//extern const u8 gUnknown_083769A8[][12]; +extern const u8 gUnknown_083769A8[]; extern u8 gUnknown_08376D1C[DATA_COUNT]; extern u8 *gUnknown_08376D04[DATA_COUNT]; +extern void (*const gUnknown_08376B54[])(u8); +extern const struct UnknownStruct5 gUnknown_08376BB4[][6]; extern u8 gOtherText_TallPlusAndRightArrow[]; +extern u8 gOtherText_WontHaveAnyEffect[]; +extern const u8 gMoveNames[][13]; +extern u8 *const gItemEffectTable[]; + +extern bool8 IsDoubleBattle(void); +extern void AddBagItem(); +extern void RemoveBagItem(); +extern void SetUpBattlePokemonMenu(u8); +extern void sub_808B0C0(u8); -void task_pc_turn_off(u8 *u8, int i); +void task_pc_turn_off(); static void sub_806E884(u8 taskId); void sub_806F8AC(u8 taskId); +void sub_806FB0C(u8 taskId); void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8); -u8 ExecuteTableBasedItemEffect__(u8 u8, u16 u16, int i); +u8 ExecuteTableBasedItemEffect__(u8, u16, u8); void sub_80701DC(u8 taskId); +void DoRecoverPP(u8); +void sub_806D538(); +void sub_806D5A4(void); +void sub_806E8D0(); +void GetMedicineItemEffectMessage(); + +/* +void sub_806AEDC(void) +{ + const struct UnknownStruct5 *r5; + s32 i; + + AnimateSprites(); + BuildOamBuffer(); + r5 = gUnknown_08376BB4[gUnknown_0202E8FA]; + for (i = 0; i < 6; i++) + sub_800142C(r5[i].unk0 * 8, r5[i].unk1 * 8, r5[i].unk4, 0, (i << 5) | 0x200); + RunTasks(); + UpdatePaletteFade(); +} +*/ u8 sub_806E834(u8 *message, u8 arg1) { @@ -80,208 +133,194 @@ static void sub_806E884(u8 taskId) asm(".section .text_b"); -#ifdef NONMATCHING void sub_8070088(u8 taskId) { - u8 dummyTaskId; - struct Task *task2; + u8 taskId2; gTasks[taskId].func = TaskDummy; - - if (GetMonData(&gPlayerParty[unk_201C000.var04], MON_DATA_SPECIES) == 0) + if (GetMonData(&gPlayerParty[ewram1C000.unk5], MON_DATA_SPECIES) == 0) { gTasks[taskId].func = sub_80701DC; - return; } + else + { + s16 *taskData; + + taskId2 = CreateTask(TaskDummy, 5); + taskData = gTasks[taskId2].data; + ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5]; + taskData[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP); + taskData[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP); + if (ExecuteTableBasedItemEffect__(ewram1C000.unk5, ewram1C000.unk6, 0)) + { + DestroyTask(taskId2); + gTasks[taskId].func = sub_80701DC; + } + else + { + gUnknown_0202E8F4 = 1; + MenuZeroFillWindowRect(3, 14, 26, 19); + PlaySE(SE_KAIFUKU); + PartyMenuUpdateLevelOrStatus(ewram1C000.pokemon, ewram1C000.unk5); + task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 9); + ewram1B000.unk261 = 2; + taskData[12] = GetMonData(ewram1C000.pokemon, MON_DATA_HP) - taskData[11]; + taskData[14] = 1; + ewram1B000.unk27E = 1; + ewram1B000.unk280 = 1; + ewram1B000.unk282 = taskData[11]; + ewram1C000.var0C = -32768; + gTasks[taskId2].func = sub_806F8AC; + } + } +} - dummyTaskId = CreateTask(TaskDummy, 5); - task2 = &gTasks[dummyTaskId]; +void sub_80701DC(u8 taskId) +{ + if (ewram1B000.unk27E == 1) + { + AddBagItem(ewram1C000.unk6, 1); + if (GetMonData(&gPlayerParty[ewram1C000.unk5], MON_DATA_SPECIES) != 0) + { + task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 3); + ewram1B000.unk261 = 2; + } + ewram1B000.unk27E = 0; + } + ewram1C000.unk5++; + if (ewram1C000.unk5 == 6) + { + gUnknown_0202E8F4 = 0; + if (ewram1B000.unk280 == 0) + { + gTasks[taskId].func = TaskDummy; + sub_806E834(gOtherText_WontHaveAnyEffect, 1); + CreateTask(sub_806FB0C, 8); + } + else + { + RemoveBagItem(ewram1C000.unk6, 1); + gTasks[taskId].func = ewram1C000.unk10; + } + gLastFieldPokeMenuOpened = 0; + } + else + { + sub_8070088(taskId); + } +} - task2->data[10] = GetMonData(unk_201C000.pokemon, MON_DATA_MAX_HP); - task2->data[11] = GetMonData(unk_201C000.pokemon, MON_DATA_HP); +void CreateItemUseMoveMenu(u8 partyMonIndex) +{ + u8 r6; + u8 i; - if (ExecuteTableBasedItemEffect__(unk_201C000.var05, unk_201C000.var06, 0)) + r6 = 0; + MenuDrawTextWindow(19, 10, 29, 19); + for (i = 0; i < 4; i++) { - DestroyTask(dummyTaskId); - gTasks[taskId].func = sub_80701DC; - return; + u16 move = GetMonData(&gPlayerParty[partyMonIndex], MON_DATA_MOVE1 + i); + + MenuPrint(gMoveNames[move], 20, i * 2 + 11); + if (move != 0) + r6++; } + InitMenu(0, 20, 11, r6, 0, 9); +} - gUnknown_0202E8F4 = 1; - MenuZeroFillWindowRect(3, 14, 26, 19); - PlaySE(SE_KAIFUKU); - PartyMenuUpdateLevelOrStatus(unk_201C000.pokemon, unk_201C000.var05); +void Task_HandleItemUseMoveMenuInput(u8 taskId) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + MoveMenuCursor(-1); + } + else if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + MoveMenuCursor(1); + } + else if (gMain.newKeys & A_BUTTON) + { + gUnknown_08376B54[0](taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_08376B54[1](taskId); + } +} - task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle()][unk_201C000.var05], 9); - unk_201B260.var01 = 2; // u8 +void DoPPRecoveryItemEffect(u8 taskId, u16 b, TaskFunc c) +{ + u8 *itemEffect; + u8 taskId2; - task2->data[12] = GetMonData(unk_201C000.pokemon, MON_DATA_HP) - task2->data[11]; - task2->data[14] = 1; - unk_201B260.var1E = 1; // u16 - unk_201B260.var20 = 1; // u16 + if (b == 0xAF) + itemEffect = gSaveBlock1.enigmaBerry.itemEffect; + else + itemEffect = gItemEffectTable[b - 13]; + gTasks[taskId].func = TaskDummy; + taskId2 = CreateTask(TaskDummy, 5); + sub_806E8D0(taskId, b, c); + if (!(itemEffect[4] & 0x10)) + { + gTasks[taskId2].data[11] = 0; + DoRecoverPP(taskId2); + } + else + { + PlaySE(SE_SELECT); + sub_806D538(10, 3); + CreateItemUseMoveMenu(ewram1C000.unk5); + gTasks[taskId2].func = Task_HandleItemUseMoveMenuInput; + gMain.newKeys = 0; + } +} - unk_201C000.var12 = -0x8000; - task2->func = sub_806F8AC; +void ItemUseMoveMenu_HandleMoveSelection(u8 taskId) +{ + sub_8072DEC(); + MenuZeroFillWindowRect(19, 10, 29, 19); + sub_806D5A4(); + gTasks[taskId].data[11] = GetMenuCursorPos(); + DoRecoverPP(taskId); } -#else -__attribute__((naked)) -void sub_8070088(void) + +void ItemUseMoveMenu_HandleCancel(u8 taskId) { - 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, 0x4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r1, _08070120 @ =gTasks\n\ - mov r10, r1\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - mov r2, r10\n\ - adds r7, r1, r2\n\ - ldr r5, _08070124 @ =TaskDummy\n\ - str r5, [r7]\n\ - ldr r4, _08070128 @ =0x0201c000\n\ - ldrb r0, [r4, 0x5]\n\ - movs r1, 0x64\n\ - mov r9, r1\n\ - mov r2, r9\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - ldr r1, _0807012C @ =gPlayerParty\n\ - mov r8, r1\n\ - add r0, r8\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _08070118\n\ - adds r0, r5, 0\n\ - movs r1, 0x5\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - str r0, [sp]\n\ - mov r0, r10\n\ - adds r0, 0x8\n\ - ldr r2, [sp]\n\ - adds r6, r2, r0\n\ - ldrb r0, [r4, 0x5]\n\ - mov r1, r9\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - add r0, r8\n\ - str r0, [r4]\n\ - movs r1, 0x3A\n\ - bl GetMonData\n\ - strh r0, [r6, 0x14]\n\ - ldr r0, [r4]\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - strh r0, [r6, 0x16]\n\ - ldrb r0, [r4, 0x5]\n\ - ldrh r1, [r4, 0x6]\n\ - movs r2, 0\n\ - bl ExecuteTableBasedItemEffect__\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08070134\n\ - adds r0, r5, 0\n\ - bl DestroyTask\n\ -_08070118:\n\ - ldr r0, _08070130 @ =sub_80701DC\n\ - str r0, [r7]\n\ - b _080701B0\n\ - .align 2, 0\n\ -_08070120: .4byte gTasks\n\ -_08070124: .4byte TaskDummy\n\ -_08070128: .4byte 0x0201c000\n\ -_0807012C: .4byte gPlayerParty\n\ -_08070130: .4byte sub_80701DC\n\ -_08070134:\n\ - ldr r1, _080701C0 @ =gUnknown_0202E8F4\n\ - movs r0, 0x1\n\ - strb r0, [r1]\n\ - movs r0, 0x3\n\ - movs r1, 0xE\n\ - movs r2, 0x1A\n\ - movs r3, 0x13\n\ - bl MenuZeroFillWindowRect\n\ - movs r0, 0x1\n\ - bl PlaySE\n\ - ldr r0, [r4]\n\ - ldrb r1, [r4, 0x5]\n\ - bl PartyMenuUpdateLevelOrStatus\n\ - bl IsDoubleBattle\n\ - adds r1, r0, 0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldrb r1, [r4, 0x5]\n\ - lsls r1, 1\n\ - adds r0, r1\n\ - ldr r1, _080701C4 @ =gUnknown_083769A8\n\ - adds r0, r1\n\ - movs r1, 0x9\n\ - bl task_pc_turn_off\n\ - ldr r2, _080701C8 @ =0xfffff261\n\ - adds r1, r4, r2\n\ - movs r0, 0x2\n\ - strb r0, [r1]\n\ - ldr r0, [r4]\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - ldrh r1, [r6, 0x16]\n\ - subs r0, r1\n\ - strh r0, [r6, 0x18]\n\ - movs r0, 0x1\n\ - strh r0, [r6, 0x1C]\n\ - ldr r1, _080701CC @ =0xfffff27e\n\ - adds r0, r4, r1\n\ - movs r1, 0x1\n\ - strh r1, [r0]\n\ - ldr r2, _080701D0 @ =0xfffff280\n\ - adds r0, r4, r2\n\ - strh r1, [r0]\n\ - ldrh r1, [r6, 0x16]\n\ - adds r2, 0x2\n\ - adds r0, r4, r2\n\ - strh r1, [r0]\n\ - ldr r0, _080701D4 @ =0xffff8000\n\ - str r0, [r4, 0xC]\n\ - ldr r1, [sp]\n\ - add r1, r10\n\ - ldr r0, _080701D8 @ =sub_806F8AC\n\ - str r0, [r1]\n\ -_080701B0:\n\ - add sp, 0x4\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\ - .align 2, 0\n\ -_080701C0: .4byte gUnknown_0202E8F4\n\ -_080701C4: .4byte gUnknown_083769A8\n\ -_080701C8: .4byte 0xfffff261\n\ -_080701CC: .4byte 0xfffff27e\n\ -_080701D0: .4byte 0xfffff280\n\ -_080701D4: .4byte 0xffff8000\n\ -_080701D8: .4byte sub_806F8AC\n\ - .syntax divided\n"); + sub_8072DEC(); + MenuZeroFillWindowRect(19, 10, 29, 19); + if (gMain.inBattle) + gTasks[ewram1C000.unk4].func = SetUpBattlePokemonMenu; + else + gTasks[ewram1C000.unk4].func = sub_808B0C0; + sub_806D538(3, 0); + DestroyTask(taskId); } -#endif +void DoRecoverPP(u8 taskId) +{ + u16 r5 = 0; + + if (ExecuteTableBasedItemEffect__(ewram1C000.unk5, ewram1C000.unk6, gTasks[taskId].data[11])) + { + gUnknown_0202E8F4 = r5; + PlaySE(SE_SELECT); + sub_806E834(gOtherText_WontHaveAnyEffect, 1); + } + else + { + gUnknown_0202E8F4 = 1; + PlaySE(SE_KAIFUKU); + RemoveBagItem(ewram1C000.unk6, 1); + r5 = GetMonData(ewram1C000.pokemon, MON_DATA_MOVE1 + gTasks[taskId].data[11]); + StringCopy(gStringVar1, gMoveNames[r5]); + GetMedicineItemEffectMessage(ewram1C000.unk6); + sub_806E834(gStringVar4, 1); + } + gTasks[taskId].func = sub_806FB0C; +} asm(".section .text_c"); @@ -296,35 +335,27 @@ void sub_8070848(u8 taskId) u8 x; u8 y; u32 stat; - struct Pokemon **pokemon; - pokemon = &unk_201C000.pokemon; - asm("" ::: "r0"); - stat = GetMonData(*pokemon, gUnknown_08376D1C[i]); + stat = GetMonData(ewram1C000.pokemon, gUnknown_08376D1C[i]); - unk_201B260.var04[i + DATA_COUNT] = stat; - unk_201B260.var04[i] = stat - unk_201B260.var04[i]; + ewram1B000.unk264[i + DATA_COUNT] = stat; + ewram1B000.unk264[i] = stat - ewram1B000.unk264[i]; x = (i / 3) * 9 + 11; y = ((i % 3) << 1) + 1; MenuPrint_PixelCoords(gUnknown_08376D04[i], (x + 1) * 8, y * 8, 1); - if (i == 2) - { MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 0); - } else - { MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 1); - } - gStringVar1[0] = 0xFC; + gStringVar1[0] = EXT_CTRL_CODE_BEGIN; gStringVar1[1] = 0x14; gStringVar1[2] = 0x06; - ConvertIntToDecimalStringN(gStringVar1 + 3, unk_201B260.var04[i], 1, 2); + ConvertIntToDecimalStringN(gStringVar1 + 3, ewram1B000.unk264[i], 1, 2); MenuPrint_PixelCoords(gStringVar1, (x + 6) * 8 + 12, y * 8, 0); } -- cgit v1.2.3 From 14c5c79f3e3f903e3e7b34b5c0c9bb3b90e7ab75 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Wed, 17 May 2017 17:40:04 -0500 Subject: fill holes in party_menu.c and add battle_interface.h header --- src/battle_interface.c | 32 +- src/menu.c | 2 +- src/party_menu.c | 1182 ++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 1161 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/battle_interface.c b/src/battle_interface.c index 9938c4b54..ba3cba894 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -8,6 +8,7 @@ #include "songs.h" #include "battle.h" #include "palette.h" +#include "battle_interface.h" struct UnknownStruct5 { @@ -35,15 +36,6 @@ struct UnknownStruct7 u8 filler0[0x180]; }; -struct UnknownStruct9 -{ - s32 unk0; - u32 unk4; - u32 unk8; - u32 unkC_0:5; - u32 unk10; -}; - extern u8 ewram[]; #define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520)) #define ewram16088 (*(u8 *) (ewram + 0x16088)) @@ -109,9 +101,8 @@ extern void load_gfxc_health_bar(); static void sub_8043D5C(struct Sprite *); static const void *sub_8043CDC(u8); -void sub_8044210(u8, s16, u8); +static void sub_8044210(u8, s16, u8); static void draw_status_ailment_maybe(u8); -void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c); extern void sub_8045180(struct Sprite *); static void sub_8045110(struct Sprite *); static void sub_8045048(struct Sprite *); @@ -119,12 +110,11 @@ static void sub_8044F70(u8 taskId); static void sub_8044E74(u8 taskId); static void sub_8044ECC(u8 taskId); static u8 sub_80457E8(u8, u8); -s32 sub_8045C78(u8, u8, u8, u8); static int sub_8045F58(s32, s32, int, int *, u8, u16); static u8 GetScaledExpFraction(int, int, int, u8); static void sub_8045D58(u8, u8); static u8 sub_804602C(int, int, int, int *, u8 *, u8); -static void sub_8046128(struct UnknownStruct9 *a, int *b, void *c); +static void sub_8046128(struct BattleInterfaceStruct1 *a, int *b, void *c); static int do_nothing(s16 unused1, s16 unused2, int unused3) { @@ -937,7 +927,7 @@ _0804420C: .4byte 0x04000008\n\ } #endif -void sub_8044210(u8 a, s16 b, u8 c) +static void sub_8044210(u8 a, s16 b, u8 c) { u8 str[0x14]; u8 *ptr; @@ -1377,15 +1367,9 @@ void sub_804454C(void) } } -struct UnknownStruct8 -{ - u16 unk0; - u32 unk4; -}; - // This function almost matches except for just two instructions around 0x08044B52 that are swapped. #ifdef NONMATCHING -u8 sub_8044804(u8 a, const struct UnknownStruct8 *b, u8 c, u8 d) +u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) { u8 r7; s16 x; @@ -1594,7 +1578,7 @@ u8 sub_8044804(u8 a, const struct UnknownStruct8 *b, u8 c, u8 d) } #else __attribute__((naked)) -u8 sub_8044804(u8 a, const struct UnknownStruct8 *b, u8 c, u8 d) +u8 sub_8044804(u8 a, const struct BattleInterfaceStruct2 *b, u8 c, u8 d) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -3005,7 +2989,7 @@ static u8 sub_804602C(int a, int b, int c, int *d, u8 *e, u8 f) return r3; } -s16 sub_80460C8(struct UnknownStruct9 *a, int *b, void *c, int d) +s16 sub_80460C8(struct BattleInterfaceStruct1 *a, int *b, void *c, int d) { u16 r7; s16 r1; @@ -3020,7 +3004,7 @@ s16 sub_80460C8(struct UnknownStruct9 *a, int *b, void *c, int d) return r7; } -static void sub_8046128(struct UnknownStruct9 *a, int *b, void *c) +static void sub_8046128(struct BattleInterfaceStruct1 *a, int *b, void *c) { u8 sp8[6]; u16 sp10[6]; diff --git a/src/menu.c b/src/menu.c index ba98ff057..3759d22c9 100644 --- a/src/menu.c +++ b/src/menu.c @@ -598,7 +598,7 @@ s8 ProcessMenuInputNoWrap_(void) return ProcessMenuInputNoWrap(); } -u8 MenuPrint_PixelCoords(u8 *text, u8 left, u16 top, u8 a4) +u8 MenuPrint_PixelCoords(const u8 *text, u8 left, u16 top, u8 a4) { return sub_8004D04(gMenuWindowPtr, text, gMenuTextTileOffset, left, top, a4); } diff --git a/src/party_menu.c b/src/party_menu.c index b38e89376..8eb181f46 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "menu.h" #include "pokemon.h" #include "songs.h" @@ -9,18 +10,17 @@ #include "palette.h" #include "event_data.h" #include "main.h" +#include "item.h" +#include "battle_interface.h" +#include "species.h" #define DATA_COUNT (6) -struct Unk201C000 +struct Unk2001000 { - /*0x00*/ struct Pokemon *pokemon; - /*0x04*/ u8 unk4; - /*0x05*/ u8 unk5; - /*0x06*/ u16 unk6; - /*0x08*/ u8 pad_08[4]; - /*0x0C*/ s32 var0C; - /*0x10*/ TaskFunc unk10; + u8 unk0; + u8 unk1; + u8 unk2; }; struct Unk201B000 @@ -33,7 +33,26 @@ struct Unk201B000 u8 filler27C[2]; s16 unk27E; s16 unk280; - u16 unk282; + s16 unk282; +}; + +struct Unk201C000 +{ + /*0x00*/ struct Pokemon *pokemon; + /*0x04*/ u8 unk4; + /*0x05*/ u8 unk5; + /*0x06*/ u16 unk6; + /*0x08*/ u16 unk8; + /*0x0A*/ u8 pad_0A[2]; + /*0x0C*/ s32 unkC; + /*0x10*/ TaskFunc unk10; + /*0x14*/ TaskFunc unk14; +}; + +struct Unk201F000 +{ + u8 filler0[0xE00]; + u8 unkE00[3]; // not sure if this is an array or struct, or how big it is }; struct UnknownStruct5 @@ -44,44 +63,143 @@ struct UnknownStruct5 }; extern u8 ewram[]; +#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x01000)) #define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) #define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000)) +#define ewram1F000 (*(struct Unk201F000 *)(ewram + 0x1F000)) extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F6; +extern u16 gUnknown_0202E8F8; extern u8 gUnknown_0202E8FA; extern u8 gLastFieldPokeMenuOpened; +extern u8 gPlayerPartyCount; +extern u16 gScriptItemId; +extern s32 gBattleMoveDamage; //extern const u16 gUnknown_083769A8[][6]; //extern const u8 gUnknown_083769A8[][12]; +extern void *const gUnknown_08376858[][6]; extern const u8 gUnknown_083769A8[]; -extern u8 gUnknown_08376D1C[DATA_COUNT]; -extern u8 *gUnknown_08376D04[DATA_COUNT]; +extern const u8 gUnknown_08376D1C[DATA_COUNT]; +extern const u16 gUnknown_08376504[]; extern void (*const gUnknown_08376B54[])(u8); +extern const u8 *const gUnknown_08376D04[DATA_COUNT]; extern const struct UnknownStruct5 gUnknown_08376BB4[][6]; -extern u8 gOtherText_TallPlusAndRightArrow[]; -extern u8 gOtherText_WontHaveAnyEffect[]; +extern const u8 gOtherText_TallPlusAndRightArrow[]; +extern const u8 gOtherText_WontHaveAnyEffect[]; +extern const u8 gOtherText_ElevatedTo[]; +extern const u8 gOtherText_MailMustBeRemoved[]; +extern const u8 gOtherText_AlreadyHolding[]; +extern const u8 gOtherText_TakenAndReplaced[]; +extern const u8 gOtherText_BagFullCannotRemoveItem[]; +extern const u8 gOtherText_WasGivenToHold[]; +extern const u8 gOtherText_PokeHoldingItemCantMail[]; +extern const u8 gOtherText_MailTransferredMailbox[]; +extern const u8 gOtherText_NotHoldingAnything[]; +extern const u8 gOtherText_ReceivedTheThingFrom[]; +extern const u8 gOtherText_SendRemovedMailPrompt[]; +extern const u8 gOtherText_MailTaken[]; +extern const u8 gOtherText_MailWasSent[]; +extern const u8 gOtherText_MailboxIsFull[]; +extern const u8 gOtherText_MailRemovedMessageLost[]; +extern const u8 gOtherText_WantsToLearn[]; +extern const u8 gOtherText_NotCompatible[]; +extern const u8 gOtherText_AlreadyKnows[]; +extern const u8 gOtherText_LearnedMove[]; +extern const u8 gOtherText_WhichMoveToForget2[]; +extern const u8 gOtherText_ForgetMove123_2[]; +extern const u8 gOtherText_StopTryingTo[]; +extern const u8 gOtherText_DidNotLearnMove2[]; +extern const u8 gOtherText_RegainedHealth[]; +extern const u8 gOtherText_HPRestoredBy[]; +extern const u8 gOtherText_CuredPoisoning[]; +extern const u8 gOtherText_WokeUp[]; +extern const u8 gOtherText_BurnHealed[]; +extern const u8 gOtherText_ThawedOut[]; +extern const u8 gOtherText_CuredParalysis[]; +extern const u8 gOtherText_SnapConfusion[]; +extern const u8 gOtherText_GotOverLove[]; +extern const u8 gOtherText_BecameHealthy[]; +extern const u8 gOtherText_Hp2[]; +extern const u8 gOtherText_Attack[]; +extern const u8 gOtherText_Defense[]; +extern const u8 gOtherText_Speed[]; +extern const u8 gOtherText_SpAtk2[]; +extern const u8 gOtherText_SpDef2[]; +extern const u8 gOtherText_WasRaised[]; +extern const u8 gOtherText_PPIncreased[]; +extern const u8 gOtherText_PPRestored[]; extern const u8 gMoveNames[][13]; -extern u8 *const gItemEffectTable[]; +extern const u8 *const gItemEffectTable[]; extern bool8 IsDoubleBattle(void); -extern void AddBagItem(); -extern void RemoveBagItem(); extern void SetUpBattlePokemonMenu(u8); extern void sub_808B0C0(u8); +extern u8 GiveMailToMon(struct Pokemon *, u16); +extern bool8 ItemIsMail(u16); +extern void ClearMailStruct(struct MailStruct *); +extern u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *); +extern void TakeMailFromMon(struct Pokemon *); +extern u8 TakeMailFromMon2(struct Pokemon *); +extern u32 CanMonLearnTMHM(struct Pokemon *, u8); +extern void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32); +extern void sub_808B564(); +extern u8 sub_809FA30(void); +extern void sub_808B508(u8); +extern void sub_8032638(); +extern u8 sub_8094C20(); +extern bool8 ExecuteTableBasedItemEffect_(); +extern u8 GetMonStatusAndPokerus(); +u8 sub_806CA38(u8); void task_pc_turn_off(); static void sub_806E884(u8 taskId); void sub_806F8AC(u8 taskId); void sub_806FB0C(u8 taskId); void PartyMenuUpdateLevelOrStatus(struct Pokemon *, u8); -u8 ExecuteTableBasedItemEffect__(u8, u16, u8); +bool8 ExecuteTableBasedItemEffect__(u8, u16, u8); void sub_80701DC(u8 taskId); void DoRecoverPP(u8); +void Task_RareCandy1(u8); +void Task_RareCandy2(u8); +void Task_RareCandy3(u8); void sub_806D538(); void sub_806D5A4(void); -void sub_806E8D0(); -void GetMedicineItemEffectMessage(); +void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); +void GetMedicineItemEffectMessage(u16); +void sub_8070A20(); +void sub_8070848(u8 taskId); +void sub_8070968(); +void party_menu_link_mon_held_item_object(u8); +void Task_ConfirmGiveHeldItem(u8); +void DisplayGiveHeldItemMessage(u8, u16, u8); +void SetHeldItemIconVisibility(); +void DisplayTakeHeldItemMessage(u8, u16, u8); +void Task_ConfirmTakeHeldMail(u8); +void Task_TeamMonTMMove(u8); +void Task_TeamMonTMMove2(u8); +void Task_TeamMonTMMove3(u8); +void Task_TeamMonTMMove4(u8); +void sub_806F358(u8); +void sub_806F390(u8); +void sub_806F44C(u8); +void TMMoveUpdateMoveSlot(u8); +void StopTryingToTeachMove_806F614(u8); +void StopTryingToTeachMove_806F67C(u8); +void StopTryingToTeachMove_806F6B4(u8); +void sub_806FB44(u8); +void sub_8070C54(); +void SetMonIconAnim(); +u8 GetMonIconSpriteId_maybe(); +void PartyMenuDoPrintHP(u8, int, u16, u16); +void PartyMenuClearLevelStatusTilemap(); +void PartyMenuPrintMonLevelOrStatus(); +u8 GetItemEffectType(); +bool8 IsBlueYellowRedFlute(u16); +void TryPrintPartyMenuMonNickname(); +void sub_8070088(u8); + /* void sub_806AEDC(void) @@ -99,7 +217,7 @@ void sub_806AEDC(void) } */ -u8 sub_806E834(u8 *message, u8 arg1) +u8 sub_806E834(const u8 *message, u8 arg1) { u8 taskId; @@ -116,22 +234,953 @@ u8 sub_806E834(u8 *message, u8 arg1) static void sub_806E884(u8 taskId) { - if (MenuUpdateWindowText() == 0) + if (MenuUpdateWindowText()) { - return; + gUnknown_0202E8F6 = 0; + if (gTasks[taskId].data[0] == 0) + MenuZeroFillWindowRect(3, 14, 26, 19); + DestroyTask(taskId); } +} + +void sub_806E8D0(u8 taskId, u16 b, TaskFunc c) +{ + ewram1C000.unk10 = c; + ewram1C000.unk4 = taskId; + ewram1C000.unk5 = sub_806CA38(taskId); + ewram1C000.unk6 = b; + ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5]; +} - gUnknown_0202E8F6 = 0; +bool8 PartyMenuUpdateMonHeldItem(struct Pokemon *pkmn, u16 item) +{ + u8 itemData[2]; - if (gTasks[taskId].data[0] == 0) + if (ItemIsMail(item) == TRUE) { - MenuZeroFillWindowRect(3, 14, 26, 19); + if (GiveMailToMon(pkmn, item) == 0xFF) + return TRUE; + gUnknown_0202E8F4 = 2; + } + else + { + gUnknown_0202E8F4 = 1; } - DestroyTask(taskId); + itemData[0] = item; + itemData[1] = item >> 8; + SetMonData(pkmn, MON_DATA_HELD_ITEM, itemData); + return FALSE; +} + +void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c) +{ + u16 currentItem; + + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, newItem, c); + currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM); + gUnknown_0202E8F4 = 0; + gUnknown_0202E8F8 = 0; + if (currentItem != 0) + { + if (ItemIsMail(currentItem) == TRUE) + { + sub_806E834(gOtherText_MailMustBeRemoved, 1); + CreateTask(party_menu_link_mon_held_item_object, 5); + } + else + { + GetMonNickname(ewram1C000.pokemon, gStringVar1); + CopyItemName(currentItem, gStringVar2); + StringExpandPlaceholders(gStringVar4, gOtherText_AlreadyHolding); + sub_806E834(gStringVar4, 1); + CreateTask(Task_ConfirmGiveHeldItem, 5); + if (ItemIsMail(newItem) == TRUE) + gUnknown_0202E8F8 = currentItem; + } + } + else + { + PartyMenuUpdateMonHeldItem(ewram1C000.pokemon, newItem); + RemoveBagItem(newItem, 1); + if (ItemIsMail(newItem)) + { + gTasks[taskId].func = c; + } + else + { + DisplayGiveHeldItemMessage(ewram1C000.unk5, newItem, 1); + CreateTask(party_menu_link_mon_held_item_object, 5); + } + } +} + +void party_menu_link_mon_held_item_object(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + SetHeldItemIconVisibility(ewram1C000.unk4, ewram1C000.unk5); + gTasks[ewram1C000.unk4].func = ewram1C000.unk10; + DestroyTask(taskId); + } +} + +void PartyMenuTryGiveMonHeldItem_806EACC(u8 taskId) +{ + s8 selection = ProcessMenuInputNoWrap_(); + + if (selection == 0) + { + u16 currentItem; + + MenuZeroFillWindowRect(23, 8, 29, 13); + currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM); + RemoveBagItem(ewram1C000.unk6, 1); + if (AddBagItem(currentItem, 1) == TRUE) + { + PartyMenuUpdateMonHeldItem(ewram1C000.pokemon, ewram1C000.unk6); + if (ItemIsMail(ewram1C000.unk6)) + { + DisplayTakeHeldItemMessage(ewram1C000.unk5, currentItem, 1); + } + else + { + CopyItemName(ewram1C000.unk6, gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_TakenAndReplaced); + sub_806E834(gStringVar4, 1); + } + } + else + { + sub_806E834(gOtherText_BagFullCannotRemoveItem, 0); + AddBagItem(ewram1C000.unk6, 1); + } + } + else + { + if (selection != 1 && selection != -1) + return; + if (selection == -1) + PlaySE(SE_SELECT); + MenuZeroFillWindowRect(23, 8, 29, 13); + } + gTasks[taskId].func = party_menu_link_mon_held_item_object; +} + +void Task_ConfirmGiveHeldItem(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + DisplayYesNoMenu(23, 8, 1); + gTasks[taskId].func = PartyMenuTryGiveMonHeldItem_806EACC; + } +} + +void DisplayGiveHeldItemMessage(u8 a, u16 b, u8 c) +{ + GetMonNickname(&gPlayerParty[a], gStringVar1); + CopyItemName(b, gStringVar2); + StringExpandPlaceholders(gStringVar4, gOtherText_WasGivenToHold); + sub_806E834(gStringVar4, c); +} + + +// Not sure about this one for now. +/* +void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func) +{ + u16 currentItem; + struct MailStruct *r4; + + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, 0, func); + currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM); + gUnknown_0202E8F4 = 0; + r4 = &gSaveBlock1.mail[ewram1F000.unkE00[0] + ewram1F000.unkE00[2]]; + if (currentItem != 0) + { + sub_806E834(gOtherText_PokeHoldingItemCantMail, 1); + CreateTask(party_menu_link_mon_held_item_object, 5); + } + else + { + GiveMailToMon2(ewram1C000.pokemon, r4); + ClearMailStruct(r4); + sub_806E834(gOtherText_MailTransferredMailbox, 1); + CreateTask(party_menu_link_mon_held_item_object, 5); + } +} +*/ +__attribute__((naked)) +void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func) +{ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + adds r2, r1, 0\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r3, _0806ECA0 @ =gTasks\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r1, r3\n\ + ldr r3, _0806ECA4 @ =TaskDummy\n\ + str r3, [r1]\n\ + movs r1, 0\n\ + bl sub_806E8D0\n\ + ldr r5, _0806ECA8 @ =0x0201c000\n\ + ldr r0, [r5]\n\ + movs r1, 0xC\n\ + bl GetMonData\n\ + lsls r0, 16\n\ + ldr r2, _0806ECAC @ =gUnknown_0202E8F4\n\ + movs r1, 0\n\ + strb r1, [r2]\n\ + movs r1, 0xF8\n\ + lsls r1, 6\n\ + adds r2, r5, r1\n\ + ldrb r1, [r2]\n\ + adds r1, 0x6\n\ + ldrb r2, [r2, 0x2]\n\ + adds r1, r2\n\ + lsls r2, r1, 3\n\ + adds r2, r1\n\ + lsls r2, 2\n\ + ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C\n\ + adds r4, r2, r1\n\ + cmp r0, 0\n\ + beq _0806ECBC\n\ + ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail\n\ + movs r1, 0x1\n\ + bl sub_806E834\n\ + ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object\n\ + movs r1, 0x5\n\ + bl CreateTask\n\ + b _0806ECDA\n\ + .align 2, 0\n\ +_0806ECA0: .4byte gTasks\n\ +_0806ECA4: .4byte TaskDummy\n\ +_0806ECA8: .4byte 0x0201c000\n\ +_0806ECAC: .4byte gUnknown_0202E8F4\n\ +_0806ECB0: .4byte gSaveBlock1 + 0x2B4C\n\ +_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail\n\ +_0806ECB8: .4byte party_menu_link_mon_held_item_object\n\ +_0806ECBC:\n\ + ldr r0, [r5]\n\ + adds r1, r4, 0\n\ + bl GiveMailToMon2\n\ + adds r0, r4, 0\n\ + bl ClearMailStruct\n\ + ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox\n\ + movs r1, 0x1\n\ + bl sub_806E834\n\ + ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object\n\ + movs r1, 0x5\n\ + bl CreateTask\n\ +_0806ECDA:\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0806ECE0: .4byte gOtherText_MailTransferredMailbox\n\ +_0806ECE4: .4byte party_menu_link_mon_held_item_object\n\ + .syntax divided\n"); +} + +void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func) +{ + u16 currentItem; + + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, 0, func); + currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM); + if (currentItem == 0) + { + StringExpandPlaceholders(gStringVar4, gOtherText_NotHoldingAnything); + sub_806E834(gStringVar4, 0); + CreateTask(party_menu_link_mon_held_item_object, 5); + } + else + { + u8 itemData[2]; + + itemData[0] = 0; + itemData[1] = 0; + if (AddBagItem(currentItem, 1) == TRUE) + { + if (ItemIsMail(currentItem) == TRUE) + TakeMailFromMon(ewram1C000.pokemon); + DisplayTakeHeldItemMessage(ewram1C000.unk5, currentItem, 0); + SetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM, itemData); + } + else + { + sub_806E834(gOtherText_BagFullCannotRemoveItem, 0); + } + CreateTask(party_menu_link_mon_held_item_object, 5); + } +} + +void DisplayTakeHeldItemMessage(u8 a, u16 b, u8 c) +{ + GetMonNickname(&gPlayerParty[a], gStringVar1); + CopyItemName(b, gStringVar2); + StringExpandPlaceholders(gStringVar4, gOtherText_ReceivedTheThingFrom); + sub_806E834(gStringVar4, c); +} + +void DoTakeMail(u8 taskId, TaskFunc func) +{ + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, 0, func); + ewram1C000.unk6 = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM); + sub_806E834(gOtherText_SendRemovedMailPrompt, 1); + CreateTask(Task_ConfirmTakeHeldMail, 5); +} + +void Task_LoseMailMessage(u8 taskId) +{ + s8 selection = ProcessMenuInputNoWrap_(); + + if (selection == 0) + { + if (AddBagItem(ewram1C000.unk6, 1) == TRUE) + { + TakeMailFromMon(ewram1C000.pokemon); + sub_806E834(gOtherText_MailTaken, 0); + } + else + { + sub_806E834(gOtherText_BagFullCannotRemoveItem, 0); + } + MenuZeroFillWindowRect(23, 8, 29, 13); + gTasks[taskId].func = party_menu_link_mon_held_item_object; + } + else + { + if (selection != 1 && selection != -1) + return; + if (selection == -1) + PlaySE(SE_SELECT); + MenuZeroFillWindowRect(23, 8, 29, 13); + MenuZeroFillWindowRect(0, 14, 29, 19); + gTasks[taskId].func = party_menu_link_mon_held_item_object; + } +} + +void Task_ConfirmLoseMailMessage(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + DisplayYesNoMenu(23, 8, 1); + gTasks[taskId].func = Task_LoseMailMessage; + } +} + +void Task_TakeHeldMail(u8 taskId) +{ + s8 selection = ProcessMenuInputNoWrap_(); + + if (selection == 0) + { + MenuZeroFillWindowRect(23, 8, 29, 13); + if (TakeMailFromMon2(ewram1C000.pokemon) != 0xFF) + sub_806E834(gOtherText_MailWasSent, 0); + else + sub_806E834(gOtherText_MailboxIsFull, 0); + gTasks[taskId].func = party_menu_link_mon_held_item_object; + } + else + { + if (selection != 1 && selection != -1) + return; + if (selection == -1) + PlaySE(SE_SELECT); + MenuZeroFillWindowRect(23, 8, 29, 13); + sub_806E834(gOtherText_MailRemovedMessageLost, 1); + gTasks[taskId].func = Task_ConfirmLoseMailMessage; + } +} + +void Task_ConfirmTakeHeldMail(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + DisplayYesNoMenu(23, 8, 1); + gTasks[taskId].func = Task_TakeHeldMail; + } +} + +u16 ItemIdToBattleMoveId(u16 item) +{ + u16 moveId = item - 289; + + return gUnknown_08376504[moveId]; +} + +bool8 pokemon_has_move(struct Pokemon *pkmn, u16 move) +{ + u8 i; + + for (i = 0; i < 4; i++) + { + if (GetMonData(pkmn, MON_DATA_MOVE1 + i) == move) + return TRUE; + } + return FALSE; +} + +void TeachMonTMMove(u8 taskId, u16 move, TaskFunc func) +{ + PlaySE(SE_SELECT); + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, move, func); + CreateTask(Task_TeamMonTMMove, 5); +} + +void Task_TeamMonTMMove(u8 taskId) +{ + GetMonNickname(ewram1C000.pokemon, gStringVar1); + ewram1C000.unk8 = ItemIdToBattleMoveId(ewram1C000.unk6); + StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]); + ewram1B000.unk282 = 0; + if (pokemon_has_move(ewram1C000.pokemon, ewram1C000.unk8)) + { + StringExpandPlaceholders(gStringVar4, gOtherText_AlreadyKnows); + sub_806E834(gStringVar4, 1); + gTasks[taskId].func = party_menu_link_mon_held_item_object; + } + else + { + if (!CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33)) + { + StringExpandPlaceholders(gStringVar4, gOtherText_NotCompatible); + sub_806E834(gStringVar4, 1); + gTasks[taskId].func = party_menu_link_mon_held_item_object; + } + else + { + if (GiveMoveToMon(ewram1C000.pokemon, ewram1C000.unk8) != 0xFFFF) + { + Task_TeamMonTMMove2(taskId); + } + else + { + StringExpandPlaceholders(gStringVar4, gOtherText_WantsToLearn); + sub_806E834(gStringVar4, 1); + gTasks[taskId].func = sub_806F358; + } + } + } +} + +void Task_TeamMonTMMove2(u8 taskId) +{ + StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]); + StringExpandPlaceholders(gStringVar4, gOtherText_LearnedMove); + sub_806E834(gStringVar4, 1); + AdjustFriendship(ewram1C000.pokemon, 4); + if (ewram1B000.unk282 == 0 && ewram1C000.unk6 <= 0x152) + RemoveBagItem(ewram1C000.unk6, 1); + gTasks[taskId].func = Task_TeamMonTMMove3; +} + +void Task_TeamMonTMMove3(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + PlayFanfare(BGM_FANFA1); + gTasks[taskId].func = Task_TeamMonTMMove4; + } +} + +void Task_TeamMonTMMove4(u8 taskId) +{ + if (IsFanfareTaskInactive()) + { + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + SetHeldItemIconVisibility(ewram1C000.unk4, ewram1C000.unk5); + if (ewram1B000.unk282 == 1) + { + sub_8070C54(taskId); + } + else + { + gTasks[ewram1C000.unk4].func = ewram1C000.unk10; + DestroyTask(taskId); + } + } + } +} + +void sub_806F2FC(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + SetHeldItemIconVisibility(ewram1C000.unk4, ewram1C000.unk5); + if (ewram1B000.unk282 == 1) + { + sub_8070C54(taskId); + } + else + { + gTasks[ewram1C000.unk4].func = ewram1C000.unk10; + DestroyTask(taskId); + } + } } -asm(".section .text_b"); +void sub_806F358(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + DisplayYesNoMenu(23, 8, 1); + gTasks[taskId].func = sub_806F390; + } +} + +void sub_806F390(u8 taskId) +{ + s8 selection = ProcessMenuInputNoWrap_(); + + if (selection == 0) + { + MenuZeroFillWindowRect(23, 8, 29, 13); + sub_806E834(gOtherText_WhichMoveToForget2, 1); + gTasks[taskId].func = sub_806F44C; + } + else + { + if (selection != 1 && selection != -1) + return; + if (selection == -1) + PlaySE(SE_SELECT); + StopTryingToTeachMove_806F614(taskId); + } +} + +void sub_806F3FC(u8 taskId) +{ + if (!gPaletteFade.active) + { + sub_809D9F0(gPlayerParty, ewram1C000.unk5, gPlayerPartyCount - 1, sub_808B564, ewram1C000.unk8); + DestroyTask(taskId); + } +} + +void sub_806F44C(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = sub_806F3FC; + } +} + +void TaughtMove(u8 taskId) +{ + if (!gPaletteFade.active) + { + u8 moveIndex; + u16 r4; + + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, gScriptItemId, sub_808B508); + moveIndex = sub_809FA30(); + r4 = GetMonData(ewram1C000.pokemon, MON_DATA_MOVE1 + moveIndex); + GetMonNickname(ewram1C000.pokemon, gStringVar1); + StringCopy(gStringVar2, gMoveNames[r4]); + StringExpandPlaceholders(gStringVar4, gOtherText_ForgetMove123_2); + sub_806E834(gStringVar4, 1); + CreateTask(TMMoveUpdateMoveSlot, 5); + } +} + +void TMMoveUpdateMoveSlot(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + RemoveMonPPBonus(ewram1C000.pokemon, sub_809FA30()); + SetMonMoveSlot(ewram1C000.pokemon, ewram1C000.unk8, sub_809FA30()); + Task_TeamMonTMMove2(taskId); + } +} + +void StopTryingToTeachMove_806F588(u8 taskId) +{ + if (!gPaletteFade.active) + { + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, gScriptItemId, sub_808B508); + StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]); + StringExpandPlaceholders(gStringVar4, gOtherText_StopTryingTo); + sub_806E834(gStringVar4, 1); + CreateTask(StopTryingToTeachMove_806F67C, 5); + } +} + +void StopTryingToTeachMove_806F614(u8 taskId) +{ + MenuZeroFillWindowRect(23, 8, 29, 13); + StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]); + StringExpandPlaceholders(gStringVar4, gOtherText_StopTryingTo); + sub_806E834(gStringVar4, 1); + gTasks[taskId].func = StopTryingToTeachMove_806F67C; +} + +void StopTryingToTeachMove_806F67C(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + DisplayYesNoMenu(23, 8, 1); + gTasks[taskId].func = StopTryingToTeachMove_806F6B4; + } +} + +void StopTryingToTeachMove_806F6B4(u8 taskId) +{ + s8 selection = ProcessMenuInputNoWrap_(); + + if (selection == 0) + { + MenuZeroFillWindowRect(23, 8, 29, 13); + GetMonNickname(ewram1C000.pokemon, gStringVar1); + StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]); + StringExpandPlaceholders(gStringVar4, gOtherText_DidNotLearnMove2); + sub_806E834(gStringVar4, 1); + gTasks[taskId].func = sub_806F2FC; + } + else + { + if (selection != 1 && selection != -1) + return; + if (selection == -1) + PlaySE(SE_SELECT); + MenuZeroFillWindowRect(23, 8, 29, 13); + GetMonNickname(ewram1C000.pokemon, gStringVar1); + StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]); + StringExpandPlaceholders(gStringVar4, gOtherText_WantsToLearn); + sub_806E834(gStringVar4, 1); + gTasks[taskId].func = sub_806F358; + } +} + +bool8 IsHMMove(u16 move) +{ + u8 i; + + for (i = 0; i < 8; i++) + { + if (gUnknown_08376504[50 + i] == move) + return TRUE; + } + return FALSE; +} + +s16 sub_806F7E8(u8 taskId, struct BattleInterfaceStruct1 *b, s8 c) +{ + s16 *taskData; + u8 hpBarLevel; + void *vramPtr; + + taskData = gTasks[taskId].data; + + b->unk0 = taskData[10]; + b->unk4 = taskData[11]; + b->unk8 = taskData[12] * c; + b->unk10 = 0x100; + hpBarLevel = GetHPBarLevel(ewram1B000.unk282, b->unk0); + if (hpBarLevel > 2) + b->unkC_0 = 4; + if (hpBarLevel == 2) + b->unkC_0 = 5; + if (hpBarLevel < 2) + b->unkC_0 = 6; + vramPtr = gUnknown_08376858[IsDoubleBattle()][ewram1C000.unk5]; + return sub_80460C8(b, &ewram1C000.unkC, vramPtr, 0); +} + +void sub_806F8AC(u8 taskId) +{ + struct BattleInterfaceStruct1 sp0; + u16 sp14; + + ewram1B000.unk282 = sub_806F7E8(taskId, &sp0, -1); + if (ewram1B000.unk282 == -1) + { + ewram1C000.unkC = 0; + if (-sp0.unk8 + sp0.unk4 > sp0.unk0) + sp14 = sp0.unk0 - sp0.unk4; + else + sp14 = -sp0.unk8; + gBattleMoveDamage = -sp14; + GetMonNickname(ewram1C000.pokemon, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, sp14, 0, 3); + if (gTasks[taskId].data[14] == 0) + StringExpandPlaceholders(gStringVar4, gOtherText_HPRestoredBy); + else + StringExpandPlaceholders(gStringVar4, gOtherText_RegainedHealth); + SetMonIconAnim(GetMonIconSpriteId_maybe(ewram1C000.unk4, ewram1C000.unk5), ewram1C000.pokemon); + task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 7); + ewram1B000.unk261 = 2; + sub_806E834(gStringVar4, 1); + sp14 += sp0.unk4; + SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&sp14); + RemoveBagItem(ewram1C000.unk6, 1); + sub_8032638(); + gTasks[taskId].func = sub_806FB44; + } + else + { + PartyMenuDoPrintHP(ewram1C000.unk5, IsDoubleBattle(), ewram1B000.unk282, sp0.unk0); + } +} + +void sub_806FA18(u8 taskId) +{ + struct BattleInterfaceStruct1 sp0; + + ewram1B000.unk282 = sub_806F7E8(taskId, &sp0, 1); + if (ewram1B000.unk282 == -1) + { + PlaySE(SE_KAIFUKU); + ewram1C000.unkC = 0; + gTasks[taskId].data[11] -= gTasks[taskId].data[12]; + SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&gTasks[taskId].data[11]); + SetMonIconAnim(GetMonIconSpriteId_maybe(ewram1C000.unk4, ewram01000.unk1), ewram1C000.pokemon); + ewram1C000.unk5 = gSprites[ewram01000.unk2].data0; + ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5]; + gTasks[taskId].data[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP); + gTasks[taskId].data[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP); + ewram1C000.unkC = -32768; + ewram1C000.unk14 = ewram1C000.unk10; + gTasks[taskId].func = sub_806F8AC; + ewram1B000.unk282 = gTasks[taskId].data[11]; + } + else + { + PartyMenuDoPrintHP(ewram1C000.unk5, IsDoubleBattle(), ewram1B000.unk282, sp0.unk0); + } +} + +void sub_806FB0C(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + gTasks[ewram1C000.unk4].func = ewram1C000.unk10; + DestroyTask(taskId); + } +} + +void sub_806FB44(u8 taskId) +{ + if (gUnknown_0202E8F6 == 0) + { + gTasks[ewram1C000.unk4].func = ewram1C000.unk14; + DestroyTask(taskId); + } +} + +bool8 IsHPRecoveryItem(u16 item) +{ + const u8 *itemEffect; + + if (item == 0xAF) + itemEffect = gSaveBlock1.enigmaBerry.itemEffect; + else + itemEffect = gItemEffectTable[item - 13]; + + if (itemEffect[4] & 4) + return TRUE; + else + return FALSE; +} + +void PartyMenuUpdateLevelOrStatus(struct Pokemon *pkmn, u8 b) +{ + PartyMenuClearLevelStatusTilemap(b); + PartyMenuPrintMonLevelOrStatus(b, pkmn); +} + +void GetMedicineItemEffectMessage(u16 item) +{ + switch (GetItemEffectType(item)) + { + case 3: + StringExpandPlaceholders(gStringVar4, gOtherText_CuredPoisoning); + break; + case 4: + StringExpandPlaceholders(gStringVar4, gOtherText_WokeUp); + break; + case 5: + StringExpandPlaceholders(gStringVar4, gOtherText_BurnHealed); + break; + case 6: + StringExpandPlaceholders(gStringVar4, gOtherText_ThawedOut); + break; + case 7: + StringExpandPlaceholders(gStringVar4, gOtherText_CuredParalysis); + break; + case 8: + StringExpandPlaceholders(gStringVar4, gOtherText_SnapConfusion); + break; + case 9: + StringExpandPlaceholders(gStringVar4, gOtherText_GotOverLove); + break; + case 11: + StringExpandPlaceholders(gStringVar4, gOtherText_BecameHealthy); + break; + case 13: + StringCopy(gStringVar2, gOtherText_Hp2); + StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised); + break; + case 12: + StringCopy(gStringVar2, gOtherText_Attack); + StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised); + break; + case 17: + StringCopy(gStringVar2, gOtherText_Defense); + StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised); + break; + case 16: + StringCopy(gStringVar2, gOtherText_Speed); + StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised); + break; + case 14: + StringCopy(gStringVar2, gOtherText_SpAtk2); + StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised); + break; + case 15: + StringCopy(gStringVar2, gOtherText_SpDef2); + StringExpandPlaceholders(gStringVar4, gOtherText_WasRaised); + break; + case 19: + case 20: + StringExpandPlaceholders(gStringVar4, gOtherText_PPIncreased); + break; + case 21: + StringExpandPlaceholders(gStringVar4, gOtherText_PPRestored); + break; + default: + StringExpandPlaceholders(gStringVar4, gOtherText_WontHaveAnyEffect); + break; + } +} + +bool8 IsMedicineIneffective(struct Pokemon *pkmn, u16 item) +{ + if (GetItemEffectType(item) == 13 + && GetMonData(pkmn, MON_DATA_SPECIES) == SPECIES_SHEDINJA) + return TRUE; + else + return FALSE; +} + +bool8 ExecuteTableBasedItemEffect__(u8 a, u16 b, u8 c) +{ + if (gMain.inBattle) + return ExecuteTableBasedItemEffect_(&gPlayerParty[a], b, sub_8094C20(a), c); + else + return ExecuteTableBasedItemEffect_(&gPlayerParty[a], b, a, c); +} + +void UseMedicine(u8 taskId, u16 item, TaskFunc func) +{ + u8 r7; + bool8 r9 = FALSE; + bool8 r0; + + gTasks[taskId].func = TaskDummy; + r7 = CreateTask(TaskDummy, 5); + sub_806E8D0(taskId, item, func); + if (!IsMedicineIneffective(ewram1C000.pokemon, item)) + { + r9 = IsHPRecoveryItem(item); + if (r9 == TRUE) + { + gTasks[r7].data[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP); + gTasks[r7].data[11] = GetMonData(ewram1C000.pokemon, MON_DATA_HP); + if (gTasks[r7].data[10] == gTasks[r7].data[11]) + { + r9 = FALSE; + gTasks[r7].data[10] = 0; + gTasks[r7].data[11] = 0; + } + } + r0 = ExecuteTableBasedItemEffect__(ewram1C000.unk5, item, 0); + } + else + { + r0 = TRUE; + } + + if (r0) + { + gUnknown_0202E8F4 = 0; + PlaySE(SE_SELECT); + sub_806E834(gOtherText_WontHaveAnyEffect, 1); + gTasks[r7].func = sub_806FB0C; + } + else + { + u8 statusAndPkrs; + + gUnknown_0202E8F4 = 1; + if (!IsBlueYellowRedFlute(item)) + PlaySE(SE_KAIFUKU); + else + PlaySE(SE_BIDORO); + statusAndPkrs = GetMonStatusAndPokerus(ewram1C000.pokemon); + if (statusAndPkrs == 6 || statusAndPkrs == 0) + PartyMenuUpdateLevelOrStatus(ewram1C000.pokemon, ewram1C000.unk5); + if (r9 == TRUE) + { + gTasks[r7].data[12] = GetMonData(ewram1C000.pokemon, MON_DATA_HP) - gTasks[r7].data[11]; + ewram1C000.unkC = -32768; + if (gTasks[r7].data[11] == 0) + gTasks[r7].data[14] = 1; + else + gTasks[r7].data[14] = 0; + ewram1C000.unk14 = ewram1C000.unk10; + gTasks[r7].func = sub_806F8AC; + ewram1B000.unk282 = gTasks[r7].data[11]; + } + else + { + GetMonNickname(ewram1C000.pokemon, gStringVar1); + if (!IsBlueYellowRedFlute(item)) + RemoveBagItem(item, 1); + GetMedicineItemEffectMessage(item); + TryPrintPartyMenuMonNickname(ewram1C000.unk5, ewram1C000.pokemon); + sub_806E834(gStringVar4, 1); + gTasks[r7].func = sub_806FB0C; + } + } +} + +bool8 IsBlueYellowRedFlute(u16 item) +{ + if (item == 0x27 + || item == 0x29 + || item == 0x28) + return TRUE; + else + return FALSE; +} + +void sub_8070048(u8 taskId, u16 item, TaskFunc func) +{ + ewram1C000.unk10 = func; + ewram1C000.unk4 = taskId; + ewram1C000.unk6 = item; + ewram1C000.unk5 = 0; + ewram1C000.unk14 = sub_80701DC; + ewram1B000.unk27E = 0; + ewram1B000.unk280 = 0; + sub_8070088(taskId); +} void sub_8070088(u8 taskId) { @@ -169,7 +1218,7 @@ void sub_8070088(u8 taskId) ewram1B000.unk27E = 1; ewram1B000.unk280 = 1; ewram1B000.unk282 = taskData[11]; - ewram1C000.var0C = -32768; + ewram1C000.unkC = -32768; gTasks[taskId2].func = sub_806F8AC; } } @@ -253,7 +1302,7 @@ void Task_HandleItemUseMoveMenuInput(u8 taskId) void DoPPRecoveryItemEffect(u8 taskId, u16 b, TaskFunc c) { - u8 *itemEffect; + const u8 *itemEffect; u8 taskId2; if (b == 0xAF) @@ -322,7 +1371,80 @@ void DoRecoverPP(u8 taskId) gTasks[taskId].func = sub_806FB0C; } -asm(".section .text_c"); +void DoPPUpItemEffect(u8 taskId, u16 b, TaskFunc c) +{ + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, b, c); + PlaySE(SE_SELECT); + sub_806D538(11, 3); + CreateItemUseMoveMenu(ewram1C000.unk5); + CreateTask(Task_HandleItemUseMoveMenuInput, 5); + gMain.newKeys = 0; +} + +void DoRareCandyItemEffect(u8 taskId, u16 b, TaskFunc c) +{ + u8 i; + bool8 r0; + + gTasks[taskId].func = TaskDummy; + sub_806E8D0(taskId, b, c); + + if (GetMonData(ewram1C000.pokemon, MON_DATA_LEVEL) != 100) + { + for (i = 0; i < 6; i++) + ewram1B000.unk264[i] = GetMonData(ewram1C000.pokemon, gUnknown_08376D1C[i]); + r0 = ExecuteTableBasedItemEffect__(ewram1C000.unk5, b, 0); + } + else + r0 = TRUE; + + if (r0) + { + gUnknown_0202E8F4 = 0; + PlaySE(SE_SELECT); + sub_806E834(gOtherText_WontHaveAnyEffect, 1); + CreateTask(sub_806FB0C, 5); + } + else + { + u8 level; + + gUnknown_0202E8F4 = 1; + PlayFanfareByFanfareNum(0); + sub_8070A20(ewram1C000.unk5, ewram1C000.pokemon); + RemoveBagItem(b, 1); + GetMonNickname(ewram1C000.pokemon, gStringVar1); + level = GetMonData(ewram1C000.pokemon, MON_DATA_LEVEL); + ConvertIntToDecimalStringN(gStringVar2, level, 0, 3); + StringExpandPlaceholders(gStringVar4, gOtherText_ElevatedTo); + sub_806E834(gStringVar4, 1); + CreateTask(Task_RareCandy1, 5); + } +} + +void Task_RareCandy1(u8 taskId) +{ + if (WaitFanfare(0) && gUnknown_0202E8F6 == 0) + { + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_8070848(taskId); + gTasks[taskId].func = Task_RareCandy2; + } + } +} + +void Task_RareCandy2(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_8070968(taskId); + gTasks[taskId].func = Task_RareCandy3; + } +} void sub_8070848(u8 taskId) { -- cgit v1.2.3 From e6d8705d3152947c609339641cb0b792a36bdfdd Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Wed, 17 May 2017 17:49:13 -0500 Subject: fix build --- src/battle_party_menu.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index 820d16465..690ef99be 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -40,7 +40,6 @@ extern TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, con extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int); extern void sub_806E7D0(u8, const struct PartyPopupMenu *); extern u8 *sub_8040D08(); -extern void sub_806E834(); extern u8 sub_8094C20(); extern void sub_8040B8C(void); extern u8 pokemon_order_func(u8); -- cgit v1.2.3 From aa2559d403a6bb4ea7978018709cfaede25552c1 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sat, 7 Jan 2017 20:08:40 +0100 Subject: First matching daycare_count_pokemon --- src/daycare.c | 72 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 1729efb2a..2d4782ea1 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -2,30 +2,66 @@ #include "pokemon.h" #include "string_util.h" -u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) -{ - s8 nickname[POKEMON_NAME_LENGTH * 2]; +u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest){ + s8 nickname[POKEMON_NAME_LENGTH * 2]; - GetMonData(mon, MON_DATA_NICKNAME, nickname); - return StringCopy10(dest, nickname); + GetMonData(mon, MON_DATA_NICKNAME, nickname); + return StringCopy10(dest, nickname); } -u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest) -{ - s8 nickname[POKEMON_NAME_LENGTH * 2]; +u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest){ + s8 nickname[POKEMON_NAME_LENGTH * 2]; - GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); - return StringCopy10(dest, nickname); + GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); + return StringCopy10(dest, nickname); } -u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) -{ - u8 i, count; - count = 0; +u8 daycare_count_pokemon(void *mon){ + u32 loop_counter; + u32 r5; - for (i = 0; i <= 1; i++) - if (GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) - count++; + r5 = 0; + loop_counter = 0; - return count; + while(loop_counter <= 1){ + if(GetBoxMonData(mon + loop_counter * 80, MON_DATA_SPECIES) != 0){ + r5 = ((r5 + 1) << 24) >> 24; + } + + loop_counter = ((loop_counter + 1) << 24) >> 24; + } + + return r5; } + +/*__attribute__((naked)) +void daycare_count_pokemon(){ + asm(".syntax unified\n\ + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + movs r4, 0 +_080412F8: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r6, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08041310 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_08041310: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _080412F8 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .syntax divided\n"); +}*/ -- cgit v1.2.3 From 135bbb721e0b7e34ad19d818e097add64693ab15 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sat, 7 Jan 2017 20:38:50 +0100 Subject: Update the code style and tidy up daycare_count_pokemon --- src/daycare.c | 58 ++++++++++++---------------------------------------------- 1 file changed, 12 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 2d4782ea1..23f0305d8 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -2,66 +2,32 @@ #include "pokemon.h" #include "string_util.h" -u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest){ +u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) +{ s8 nickname[POKEMON_NAME_LENGTH * 2]; GetMonData(mon, MON_DATA_NICKNAME, nickname); return StringCopy10(dest, nickname); } -u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest){ +u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest) +{ s8 nickname[POKEMON_NAME_LENGTH * 2]; GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); return StringCopy10(dest, nickname); } -u8 daycare_count_pokemon(void *mon){ - u32 loop_counter; - u32 r5; +u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) +{ + u8 i, count; + count = 0; - r5 = 0; - loop_counter = 0; - - while(loop_counter <= 1){ - if(GetBoxMonData(mon + loop_counter * 80, MON_DATA_SPECIES) != 0){ - r5 = ((r5 + 1) << 24) >> 24; + for(i = 0;i <= 1;i++) { + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { + count++; } - - loop_counter = ((loop_counter + 1) << 24) >> 24; } - return r5; + return count; } - -/*__attribute__((naked)) -void daycare_count_pokemon(){ - asm(".syntax unified\n\ - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_080412F8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08041310 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08041310: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _080412F8 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .syntax divided\n"); -}*/ -- cgit v1.2.3 From 4a9cb7aa4de9571f79c46e0df1733b26849c0904 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sat, 7 Jan 2017 23:08:51 +0100 Subject: Decompile daycare_empty_slot and unify the function prototype of daycare_count_pokemon. Presumably identify the daycare data in the save structure --- src/daycare.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 23f0305d8..864d86aa8 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1,6 +1,7 @@ #include "global.h" #include "pokemon.h" #include "string_util.h" +#include "asm.h" u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) { @@ -31,3 +32,77 @@ u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) return count; } + +__attribute__((naked)) +void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer){ + 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\ + mov r9, r0\n\ + mov r10, r1\n\ + movs r7, 0\n\ + movs r5, 0\n\ + mov r6, r10\n\ + adds r6, 0x74\n\ + movs r0, 0x1\n\ + mov r8, r0\n\ +_0804133E:\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 4\n\ + mov r1, r9\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetBoxMonData\n\ + cmp r0, 0\n\ + beq _0804136E\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + adds r0, r4, 0\n\ + movs r1, 0xC\n\ + bl GetBoxMonData\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + bne _0804136E\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + b _08041374\n\ +_0804136E:\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + mov r1, r8\n\ +_08041374:\n\ + strh r1, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x1\n\ + bls _0804133E\n\ + mov r0, r10\n\ + str r7, [r0, 0x70]\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"); +} + +s8 daycare_empty_slot(struct BoxPokemon * daycare_data){ + u8 i; + + for(i = 0;i <= 1;i++){ + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ + return i; + } + } + + return -1; +} -- cgit v1.2.3 From 8252c797673ed04e64afafc59ebbc6a75f4764b9 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sat, 21 Jan 2017 16:40:54 +0100 Subject: Non-matching sub_804151C --- src/daycare.c | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 222 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 864d86aa8..9bc51a025 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -3,6 +3,8 @@ #include "string_util.h" #include "asm.h" +extern u8 gUnknown_03005CE0; + u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) { s8 nickname[POKEMON_NAME_LENGTH * 2]; @@ -25,16 +27,17 @@ u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) count = 0; for(i = 0;i <= 1;i++) { - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { - count++; - } + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { + count++; + } } return count; } __attribute__((naked)) -void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer){ +void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer) +{ asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -95,14 +98,225 @@ _08041374:\n\ .syntax divided\n"); } -s8 daycare_empty_slot(struct BoxPokemon * daycare_data){ +s8 daycare_empty_slot(struct BoxPokemon * daycare_data) +{ u8 i; for(i = 0;i <= 1;i++){ - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ - return i; - } + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ + return i; + } } return -1; } + +/*void sub_80413C8(struct Pokemon * mon, struct BoxPokemon * daycare_data){ // unfinished + s8 empty_slot; + + empty_slot = daycare_empty_slot(daycare_data); + if(sub_80A2B94(mon) != 0){ // if the mon holds a mail? + u8 empty_slot_times_56 = empty_slot * 56; + u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36; + StringCopy(something2, gSaveBlock2); + PadNameString(something2, 0xFC); + something2 += 8; + pokemon_get_nick(mon, something2); + u8 pokerus = GetMonData(mon, MON_DATA_64); + something1 += (u8 * daycare_data) +}*/ + +__attribute__((naked)) +void sub_80413C8() +{ + // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped: + // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC + // the ldm/stm section probably copies some struct, but I'm not sure how the code would look + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + adds r7, r0, 0\n\ + mov r8, r1\n\ + mov r0, r8\n\ + bl daycare_empty_slot\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + mov r9, r4\n\ + adds r0, r7, 0\n\ + bl sub_80A2B94\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0804144A\n\ + lsls r0, r4, 24\n\ + asrs r0, 24\n\ + lsls r4, r0, 3\n\ + subs r4, r0\n\ + lsls r4, 3\n\ + adds r5, r4, 0\n\ + adds r5, 0xA0\n\ + add r5, r8\n\ + adds r6, r5, 0\n\ + adds r6, 0x24\n\ + ldr r1, _08041490 @ =gSaveBlock2\n\ + adds r0, r6, 0\n\ + bl StringCopy\n\ + adds r0, r6, 0\n\ + movs r1, 0xFC\n\ + bl PadNameString\n\ + adds r6, 0x8\n\ + adds r0, r7, 0\n\ + adds r1, r6, 0\n\ + bl pokemon_get_nick\n\ + adds r0, r7, 0\n\ + movs r1, 0x40\n\ + bl GetMonData\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + add r4, r8\n\ + ldr r2, _08041494 @ =gSaveBlock1\n\ + lsls r1, r0, 3\n\ + adds r1, r0\n\ + lsls r1, 2\n\ + adds r1, r2\n\ + adds r4, 0xA0\n\ + ldr r0, _08041498 @ =0x00002b4c\n\ + adds r1, r0\n\ + ldm r1!, {r0,r2,r3}\n\ + stm r4!, {r0,r2,r3}\n\ + ldm r1!, {r0,r2,r3}\n\ + stm r4!, {r0,r2,r3}\n\ + ldm r1!, {r0,r2,r3}\n\ + stm r4!, {r0,r2,r3}\n\ + adds r0, r7, 0\n\ + bl sub_80A2DF8\n\ +_0804144A:\n\ + mov r2, r9\n\ + lsls r4, r2, 24\n\ + asrs r4, 24\n\ + lsls r5, r4, 2\n\ + adds r4, r5, r4\n\ + lsls r4, 4\n\ + add r4, r8\n\ + adds r0, r4, 0\n\ + adds r1, r7, 0\n\ + movs r2, 0x50\n\ + bl memcpy\n\ + adds r0, r4, 0\n\ + bl pokemon_restore_pp\n\ + movs r0, 0x88\n\ + lsls r0, 1\n\ + add r0, r8\n\ + adds r0, r5\n\ + movs r1, 0\n\ + str r1, [r0]\n\ + adds r0, r7, 0\n\ + bl ZeroMonData\n\ + bl party_compaction\n\ + bl CalculatePlayerPartyCount\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08041490: .4byte gSaveBlock2\n\ +_08041494: .4byte gSaveBlock1\n\ +_08041498: .4byte 0x00002b4c\n\ + .syntax divided\n"); +} + +void daycare_send() +{ + sub_80413C8(gPlayerParty + gUnknown_03005CE0, gSaveBlock1.filler_2F9C); +} + +void sub_80417F4(u8 *); + +void sub_80414C0(struct BoxPokemon * daycare_data) +{ + u32 second_species; + if((GetBoxMonData(daycare_data + 1, MON_DATA_SPECIES) != 0) && ((second_species = GetBoxMonData(daycare_data, MON_DATA_SPECIES)) == 0)){ + memcpy(daycare_data, daycare_data + 1, 80); + ZeroBoxMonData(daycare_data + 1); + memcpy(daycare_data + 2, (u8 *) (daycare_data + 1) + 0x88, 0x38); + *((u32 *)(daycare_data) + 68) = *((u32 *)(daycare_data) + 69); + *((u32 *)(daycare_data) + 69) = second_species; + sub_80417F4((u8 *) (daycare_data + 1) + 0x88); + } +} + +u8 TryIncrementMonLevel(struct Pokemon *); +extern u16 word_2024E82; + +void sub_804151C(struct Pokemon * mon) +{ + u32 i; + u8 r6; + u16 temp; + u16 minus1; + i = 0; + minus1 = 0xffff; + + while(i <= 100){ + if(TryIncrementMonLevel(mon) == 0) goto end; + r6 = 1; + i++; + while((temp = sub_803B7C8(mon, r6)) != 0){ + r6 = 0; + if(temp == minus1){ + DeleteFirstMoveAndGiveMoveToMon(mon, word_2024E82); + } + } + } + end: + + CalculateMonStats(mon); +} + +#ifdef NEVERDEFINED +sub_804151C: @ 804151C + push {r4-r7,lr} + adds r4, r0, 0 + movs r5, 0 + ldr r7, _08041538 @ =0x0000ffff +_08041524: <-----------------------------------+ + adds r0, r4, 0 | + bl TryIncrementMonLevel | + lsls r0, 24 | + cmp r0, 0 | + beq _08041560 break ----------------+ | + movs r6, 0x1 | | + adds r5, 0x1 | | + b _0804154C --------+ | | + .align 2, 0 | | | +_08041538: .4byte 0x0000ffff | | | +_0804153C: <-----------------------+---+---+ | + movs r6, 0 | | | | + cmp r0, r7 | | | | + bne _0804154C --------------------------->| | | | + ldr r0, _0804156C @ =word_2024E82 | | | | + ldrh r1, [r0] | | | | + adds r0, r4, 0 | | | | + bl DeleteFirstMoveAndGiveMoveToMon | | | | +_0804154C: <-------+ | | | + adds r0, r4, 0 | | | + adds r1, r6, 0 | | | + bl sub_803B7C8 | | | + lsls r0, 16 | | | + lsrs r0, 16 | | | + cmp r0, 0 | | | + bne _0804153C --------------------------------+---+ | + cmp r5, 0x63 | | + ble _08041524 --------------------------------+-------+ +_08041560: <-----------+ + adds r0, r4, 0 + bl CalculateMonStats + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804156C: .4byte word_2024E82 +#endif -- cgit v1.2.3 From 8e8e4334ce637e98bcc8348be3d73c19a747ec70 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sat, 11 Feb 2017 08:26:13 +0100 Subject: Matching sub_804151C --- src/daycare.c | 73 +++++++++++------------------------------------------------ 1 file changed, 13 insertions(+), 60 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 9bc51a025..e1ce7fb77 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -27,9 +27,9 @@ u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) count = 0; for(i = 0;i <= 1;i++) { - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { - count++; - } + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { + count++; + } } return count; @@ -103,9 +103,9 @@ s8 daycare_empty_slot(struct BoxPokemon * daycare_data) u8 i; for(i = 0;i <= 1;i++){ - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ - return i; - } + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ + return i; + } } return -1; @@ -131,7 +131,7 @@ void sub_80413C8() { // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped: // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC - // the ldm/stm section probably copies some struct, but I'm not sure how the code would look + // the ldm/stm section probably copies some struct, but I'm not sure how the code would look asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r9\n\ @@ -253,70 +253,23 @@ extern u16 word_2024E82; void sub_804151C(struct Pokemon * mon) { - u32 i; + s32 i; u8 r6; u16 temp; - u16 minus1; - i = 0; - minus1 = 0xffff; - while(i <= 100){ - if(TryIncrementMonLevel(mon) == 0) goto end; + for(i = 0; i < 100; i++){ + if(TryIncrementMonLevel(mon) == FALSE) goto end; + r6 = 1; - i++; while((temp = sub_803B7C8(mon, r6)) != 0){ r6 = 0; - if(temp == minus1){ + if(temp == 0xffff){ DeleteFirstMoveAndGiveMoveToMon(mon, word_2024E82); } } } + end: CalculateMonStats(mon); } - -#ifdef NEVERDEFINED -sub_804151C: @ 804151C - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r7, _08041538 @ =0x0000ffff -_08041524: <-----------------------------------+ - adds r0, r4, 0 | - bl TryIncrementMonLevel | - lsls r0, 24 | - cmp r0, 0 | - beq _08041560 break ----------------+ | - movs r6, 0x1 | | - adds r5, 0x1 | | - b _0804154C --------+ | | - .align 2, 0 | | | -_08041538: .4byte 0x0000ffff | | | -_0804153C: <-----------------------+---+---+ | - movs r6, 0 | | | | - cmp r0, r7 | | | | - bne _0804154C --------------------------->| | | | - ldr r0, _0804156C @ =word_2024E82 | | | | - ldrh r1, [r0] | | | | - adds r0, r4, 0 | | | | - bl DeleteFirstMoveAndGiveMoveToMon | | | | -_0804154C: <-------+ | | | - adds r0, r4, 0 | | | - adds r1, r6, 0 | | | - bl sub_803B7C8 | | | - lsls r0, 16 | | | - lsrs r0, 16 | | | - cmp r0, 0 | | | - bne _0804153C --------------------------------+---+ | - cmp r5, 0x63 | | - ble _08041524 --------------------------------+-------+ -_08041560: <-----------+ - adds r0, r4, 0 - bl CalculateMonStats - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804156C: .4byte word_2024E82 -#endif -- cgit v1.2.3 From b60ad4ccba10b7c570b633edcdb74c64055a0aa4 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sun, 14 May 2017 17:50:01 +0200 Subject: Make it build with all the label changes --- src/daycare.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index e1ce7fb77..ca480329b 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -3,7 +3,7 @@ #include "string_util.h" #include "asm.h" -extern u8 gUnknown_03005CE0; +extern u8 gLastFieldPokeMenuOpened; u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) { @@ -115,7 +115,7 @@ s8 daycare_empty_slot(struct BoxPokemon * daycare_data) s8 empty_slot; empty_slot = daycare_empty_slot(daycare_data); - if(sub_80A2B94(mon) != 0){ // if the mon holds a mail? + if(MonHasMail(mon) != 0){ // if the mon holds a mail? u8 empty_slot_times_56 = empty_slot * 56; u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36; StringCopy(something2, gSaveBlock2); @@ -145,7 +145,7 @@ void sub_80413C8() lsrs r4, r0, 24\n\ mov r9, r4\n\ adds r0, r7, 0\n\ - bl sub_80A2B94\n\ + bl MonHasMail\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _0804144A\n\ @@ -190,7 +190,7 @@ void sub_80413C8() ldm r1!, {r0,r2,r3}\n\ stm r4!, {r0,r2,r3}\n\ adds r0, r7, 0\n\ - bl sub_80A2DF8\n\ + bl TakeMailFromMon\n\ _0804144A:\n\ mov r2, r9\n\ lsls r4, r2, 24\n\ @@ -204,7 +204,7 @@ _0804144A:\n\ movs r2, 0x50\n\ bl memcpy\n\ adds r0, r4, 0\n\ - bl pokemon_restore_pp\n\ + bl BoxMonRestorePP\n\ movs r0, 0x88\n\ lsls r0, 1\n\ add r0, r8\n\ @@ -230,7 +230,7 @@ _08041498: .4byte 0x00002b4c\n\ void daycare_send() { - sub_80413C8(gPlayerParty + gUnknown_03005CE0, gSaveBlock1.filler_2F9C); + sub_80413C8(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.filler_2F9C); } void sub_80417F4(u8 *); -- cgit v1.2.3 From 6563ec9bada46058c095be12ff1719a525a6f799 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sun, 14 May 2017 18:35:47 +0200 Subject: Name gSaveBlock1.daycareData, decompile sub_8041648 --- src/daycare.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++--- src/mori_debug_menu.c | 4 +- src/record_mixing.c | 2 +- 3 files changed, 116 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index ca480329b..3d8de4ef6 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -118,7 +118,7 @@ s8 daycare_empty_slot(struct BoxPokemon * daycare_data) if(MonHasMail(mon) != 0){ // if the mon holds a mail? u8 empty_slot_times_56 = empty_slot * 56; u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36; - StringCopy(something2, gSaveBlock2); + StringCopy(something2, gSaveBlock2.playerName); PadNameString(something2, 0xFC); something2 += 8; pokemon_get_nick(mon, something2); @@ -230,7 +230,7 @@ _08041498: .4byte 0x00002b4c\n\ void daycare_send() { - sub_80413C8(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.filler_2F9C); + sub_80413C8(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.daycareData); } void sub_80417F4(u8 *); @@ -238,9 +238,9 @@ void sub_80417F4(u8 *); void sub_80414C0(struct BoxPokemon * daycare_data) { u32 second_species; - if((GetBoxMonData(daycare_data + 1, MON_DATA_SPECIES) != 0) && ((second_species = GetBoxMonData(daycare_data, MON_DATA_SPECIES)) == 0)){ - memcpy(daycare_data, daycare_data + 1, 80); - ZeroBoxMonData(daycare_data + 1); + if((GetBoxMonData(&daycare_data[1], MON_DATA_SPECIES) != 0) && ((second_species = GetBoxMonData(&daycare_data[0], MON_DATA_SPECIES)) == 0)){ + daycare_data[0] = daycare_data[1]; + ZeroBoxMonData(&daycare_data[1]); memcpy(daycare_data + 2, (u8 *) (daycare_data + 1) + 0x88, 0x38); *((u32 *)(daycare_data) + 68) = *((u32 *)(daycare_data) + 69); *((u32 *)(daycare_data) + 69) = second_species; @@ -273,3 +273,111 @@ void sub_804151C(struct Pokemon * mon) CalculateMonStats(mon); } + +__attribute__((naked)) +u16 sub_8041570(struct BoxPokemon * daycare_data, u8 a2){ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + sub sp, 0x68\n\ + adds r5, r0, 0\n\ + lsls r1, 24\n\ + lsrs r4, r1, 24\n\ + lsls r7, r4, 2\n\ + adds r0, r7, r4\n\ + lsls r0, 4\n\ + adds r6, r5, r0\n\ + ldr r1, _08041640 @ =gStringVar1\n\ + adds r0, r6, 0\n\ + bl pokemon_get_nick_\n\ + adds r0, r6, 0\n\ + movs r1, 0xB\n\ + bl GetBoxMonData\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + adds r0, r6, 0\n\ + mov r1, sp\n\ + bl sub_803B4B4\n\ + mov r0, sp\n\ + movs r1, 0x38\n\ + bl GetMonData\n\ + cmp r0, 0x64\n\ + beq _080415D8\n\ + mov r0, sp\n\ + movs r1, 0x19\n\ + bl GetMonData\n\ + movs r2, 0x88\n\ + lsls r2, 1\n\ + adds r1, r5, r2\n\ + adds r1, r7\n\ + ldr r1, [r1]\n\ + adds r0, r1\n\ + str r0, [sp, 0x64]\n\ + add r2, sp, 0x64\n\ + mov r0, sp\n\ + movs r1, 0x19\n\ + bl SetMonData\n\ + mov r0, sp\n\ + bl sub_804151C\n\ +_080415D8:\n\ + ldr r0, _08041644 @ =gPlayerParty\n\ + movs r1, 0xFA\n\ + lsls r1, 1\n\ + adds r1, r0\n\ + mov r8, r1\n\ + mov r0, r8\n\ + mov r1, sp\n\ + movs r2, 0x64\n\ + bl memcpy\n\ + lsls r0, r4, 3\n\ + subs r0, r4\n\ + lsls r1, r0, 3\n\ + adds r0, r5, r1\n\ + adds r0, 0xC0\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + beq _08041610\n\ + adds r4, r1, 0\n\ + adds r4, 0xA0\n\ + adds r4, r5, r4\n\ + mov r0, r8\n\ + adds r1, r4, 0\n\ + bl GiveMailToMon2\n\ + adds r0, r4, 0\n\ + bl sub_80417F4\n\ +_08041610:\n\ + bl party_compaction\n\ + adds r0, r6, 0\n\ + bl ZeroBoxMonData\n\ + movs r2, 0x88\n\ + lsls r2, 1\n\ + adds r0, r5, r2\n\ + adds r0, r7\n\ + movs r1, 0\n\ + str r1, [r0]\n\ + adds r0, r5, 0\n\ + bl sub_80414C0\n\ + bl CalculatePlayerPartyCount\n\ + mov r0, r9\n\ + add sp, 0x68\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ +_08041640: .4byte gStringVar1\n\ +_08041644: .4byte gPlayerParty\n\ + .syntax divided"); +} + +extern u8 gSpecialVar_0x8004; + +u16 sub_8041648() +{ + return sub_8041570(gSaveBlock1.daycareData, gSpecialVar_0x8004); +} diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c index 9f586dcb9..ab0e00c8a 100644 --- a/src/mori_debug_menu.c +++ b/src/mori_debug_menu.c @@ -65,7 +65,7 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr) s8 MoriDebugMenu_Egg(void) { - if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() ) + if ( daycare_count_pokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() ) sub_8041940(); CloseMenu(); @@ -74,7 +74,7 @@ s8 MoriDebugMenu_Egg(void) s8 MoriDebugMenu_MaleEgg(void) { - if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() ) + if ( daycare_count_pokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() ) sub_8041950(); CloseMenu(); diff --git a/src/record_mixing.c b/src/record_mixing.c index ddf9a5376..5f2077432 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -66,7 +66,7 @@ void sub_80B92AC(void) memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, 0x28); memcpy(gUnknown_02038738, gSaveBlock1.filler_303C, 0x38); memcpy(gUnknown_02038738 + 0x38, gSaveBlock1.filler_3074, 0x38); - sub_8041324(gSaveBlock1.filler_2F9C, gUnknown_02038738); + sub_8041324(gSaveBlock1.daycareData, gUnknown_02038738); memcpy(unk_2018000.filler10AC, gUnknown_083D0280, 0x78); memcpy(unk_2018000.filler1124, gUnknown_083D0284, 0xA4); -- cgit v1.2.3 From da925adb54af5423be679c15168147fad5d385ec Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sun, 14 May 2017 18:45:44 +0200 Subject: sub_8041664 --- src/daycare.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 3d8de4ef6..0d80bc54a 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -381,3 +381,10 @@ u16 sub_8041648() { return sub_8041570(gSaveBlock1.daycareData, gSpecialVar_0x8004); } + +u8 sub_8041664(struct BoxPokemon * mon, u32 steps){ + struct BoxPokemon temp = *mon; + u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps; + SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp); + return GetLevelFromBoxMonExp(&temp); +} -- cgit v1.2.3 From 2774cb1bae07fe079c7faf53f697ea78ac8e76d4 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Mon, 15 May 2017 14:53:28 +0200 Subject: Name some functions --- src/daycare.c | 40 ++++++++++++++++++---------------------- src/mori_debug_menu.c | 4 ++-- 2 files changed, 20 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index 0d80bc54a..cf7a5cd5f 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -5,7 +5,7 @@ extern u8 gLastFieldPokeMenuOpened; -u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) +u8 *GetMonNick(struct Pokemon *mon, u8 *dest) { s8 nickname[POKEMON_NAME_LENGTH * 2]; @@ -13,7 +13,7 @@ u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) return StringCopy10(dest, nickname); } -u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest) +u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest) { s8 nickname[POKEMON_NAME_LENGTH * 2]; @@ -21,16 +21,14 @@ u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest) return StringCopy10(dest, nickname); } -u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) +u8 Daycare_CountPokemon(struct BoxPokemon *daycare_data) { u8 i, count; count = 0; - for(i = 0;i <= 1;i++) { - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { + for(i = 0;i <= 1;i++) + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) count++; - } - } return count; } @@ -98,36 +96,34 @@ _08041374:\n\ .syntax divided\n"); } -s8 daycare_empty_slot(struct BoxPokemon * daycare_data) +s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data) { u8 i; - for(i = 0;i <= 1;i++){ - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ + for(i = 0;i <= 1;i++) + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0) return i; - } - } return -1; } -/*void sub_80413C8(struct Pokemon * mon, struct BoxPokemon * daycare_data){ // unfinished +/*void Daycare_SendPokemon(struct Pokemon * mon, struct BoxPokemon * daycare_data){ // unfinished s8 empty_slot; - empty_slot = daycare_empty_slot(daycare_data); + empty_slot = Daycare_FindEmptySpot(daycare_data); if(MonHasMail(mon) != 0){ // if the mon holds a mail? u8 empty_slot_times_56 = empty_slot * 56; u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36; StringCopy(something2, gSaveBlock2.playerName); PadNameString(something2, 0xFC); something2 += 8; - pokemon_get_nick(mon, something2); + GetMonNick(mon, something2); u8 pokerus = GetMonData(mon, MON_DATA_64); something1 += (u8 * daycare_data) }*/ __attribute__((naked)) -void sub_80413C8() +void Daycare_SendPokemon() { // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped: // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC @@ -140,7 +136,7 @@ void sub_80413C8() adds r7, r0, 0\n\ mov r8, r1\n\ mov r0, r8\n\ - bl daycare_empty_slot\n\ + bl Daycare_FindEmptySpot\n\ lsls r0, 24\n\ lsrs r4, r0, 24\n\ mov r9, r4\n\ @@ -168,7 +164,7 @@ void sub_80413C8() adds r6, 0x8\n\ adds r0, r7, 0\n\ adds r1, r6, 0\n\ - bl pokemon_get_nick\n\ + bl GetMonNick\n\ adds r0, r7, 0\n\ movs r1, 0x40\n\ bl GetMonData\n\ @@ -228,9 +224,9 @@ _08041498: .4byte 0x00002b4c\n\ .syntax divided\n"); } -void daycare_send() +void Daycare_SendPokemon_Special() { - sub_80413C8(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.daycareData); + Daycare_SendPokemon(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.daycareData); } void sub_80417F4(u8 *); @@ -291,7 +287,7 @@ u16 sub_8041570(struct BoxPokemon * daycare_data, u8 a2){ adds r6, r5, r0\n\ ldr r1, _08041640 @ =gStringVar1\n\ adds r0, r6, 0\n\ - bl pokemon_get_nick_\n\ + bl GetBoxMonNick\n\ adds r0, r6, 0\n\ movs r1, 0xB\n\ bl GetBoxMonData\n\ @@ -382,7 +378,7 @@ u16 sub_8041648() return sub_8041570(gSaveBlock1.daycareData, gSpecialVar_0x8004); } -u8 sub_8041664(struct BoxPokemon * mon, u32 steps){ +u8 Daycare_GetLevelAfterSteps(struct BoxPokemon * mon, u32 steps){ struct BoxPokemon temp = *mon; u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps; SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp); diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c index ab0e00c8a..fd0ad773b 100644 --- a/src/mori_debug_menu.c +++ b/src/mori_debug_menu.c @@ -65,7 +65,7 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr) s8 MoriDebugMenu_Egg(void) { - if ( daycare_count_pokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() ) + if ( Daycare_CountPokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() ) sub_8041940(); CloseMenu(); @@ -74,7 +74,7 @@ s8 MoriDebugMenu_Egg(void) s8 MoriDebugMenu_MaleEgg(void) { - if ( daycare_count_pokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() ) + if ( Daycare_CountPokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() ) sub_8041950(); CloseMenu(); -- cgit v1.2.3 From d0549706007b1a24ffd75ba40594e70dda3ee123 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Mon, 15 May 2017 16:19:18 +0200 Subject: Rename PlaySE to PlaySoundEffect - wide code is good code, daycare.c renames, match sub_80B92AC in record_mixing --- src/battle_anim.c | 14 ++--- src/battle_interface.c | 8 +-- src/battle_party_menu.c | 16 ++--- src/berry_tag_screen.c | 4 +- src/bike.c | 2 +- src/braille_puzzles.c | 8 +-- src/cable_club.c | 4 +- src/clear_save_data_menu.c | 4 +- src/daycare.c | 2 + src/field_control_avatar.c | 8 +-- src/field_player_avatar.c | 20 +++--- src/field_special_scene.c | 8 +-- src/fldeff_cut.c | 4 +- src/fldeff_softboiled.c | 2 +- src/fldeff_sweetscent.c | 2 +- src/intro.c | 2 +- src/item_use.c | 8 +-- src/link.c | 4 +- src/main_menu.c | 18 +++--- src/menu.c | 24 ++++---- src/mystery_event_menu.c | 18 +++--- src/naming_screen.c | 10 +-- src/party_menu.c | 4 +- src/player_pc.c | 36 +++++------ src/pokedex.c | 78 ++++++++++++------------ src/record_mixing.c | 124 +++----------------------------------- src/rom4.c | 8 +-- src/rom6.c | 2 +- src/scrcmd.c | 4 +- src/script_menu.c | 6 +- src/script_pokemon_util_80F99CC.c | 8 +-- src/shop.c | 8 +-- src/sound.c | 8 +-- src/start_menu.c | 12 ++-- src/starter_choose.c | 2 +- src/text.c | 12 ++-- src/trainer_card.c | 2 +- src/wallclock.c | 4 +- 38 files changed, 203 insertions(+), 305 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index bdb34365f..8ca66f745 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -673,7 +673,7 @@ static void ScriptCmd_end(void) static void ScriptCmd_playse(void) { gBattleAnimScriptPtr++; - PlaySE(SCRIPT_READ_16(gBattleAnimScriptPtr)); + PlaySoundEffect(SCRIPT_READ_16(gBattleAnimScriptPtr)); gBattleAnimScriptPtr += 2; } @@ -1715,7 +1715,7 @@ static void ScriptCmd_panse_19(void) gBattleAnimScriptPtr++; r4 = SCRIPT_READ_16(gBattleAnimScriptPtr); r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2); - PlaySE12WithPanning(r4, sub_8076F98(r0)); + PlaySoundEffect12WithPanning(r4, sub_8076F98(r0)); gBattleAnimScriptPtr += 3; } @@ -1755,7 +1755,7 @@ static void ScriptCmd_panse_1B(void) gTasks[taskId].data[2] = r4; gTasks[taskId].data[3] = r7; gTasks[taskId].data[4] = panning; - PlaySE12WithPanning(songNum, panning); + PlaySoundEffect12WithPanning(songNum, panning); gAnimSoundTaskCount++; gBattleAnimScriptPtr += 6; } @@ -1917,7 +1917,7 @@ static void ScriptCmd_panse_26(void) gTasks[taskId].data[2] = r6; gTasks[taskId].data[3] = r10; gTasks[taskId].data[4] = r4; - PlaySE12WithPanning(r8, r4); + PlaySoundEffect12WithPanning(r8, r4); gAnimSoundTaskCount++; gBattleAnimScriptPtr += 6; } @@ -1949,7 +1949,7 @@ static void ScriptCmd_panse_27(void) gTasks[taskId].data[2] = r4_2; gTasks[taskId].data[3] = r7; gTasks[taskId].data[4] = r6; - PlaySE12WithPanning(r9, r6); + PlaySoundEffect12WithPanning(r9, r6); gAnimSoundTaskCount++; gBattleAnimScriptPtr += 6; } @@ -1996,7 +1996,7 @@ static void sub_80774FC(u8 taskId) r1 = gTasks[taskId].data[1]; gTasks[taskId].data[3]--; r4 = gTasks[taskId].data[3]; - PlaySE12WithPanning(r0, r1); + PlaySoundEffect12WithPanning(r0, r1); if (r4 == 0) { DestroyTask(taskId); @@ -2034,7 +2034,7 @@ static void sub_80775CC(u8 taskId) gTasks[taskId].data[2]--; if (r0 <= 0) { - PlaySE12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[1]); + PlaySoundEffect12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[1]); DestroyTask(taskId); gAnimSoundTaskCount--; } diff --git a/src/battle_interface.c b/src/battle_interface.c index 9938c4b54..827ed4ffc 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1589,7 +1589,7 @@ u8 sub_8044804(u8 a, const struct UnknownStruct8 *b, u8 c, u8 d) for (i = 0; i < 6; i++) gTasks[taskId].data[3 + i] = sp[i]; gTasks[taskId].data[10] = d; - PlaySE12WithPanning(SE_TB_START, 0); + PlaySoundEffect12WithPanning(SE_TB_START, 0); return taskId; } #else @@ -2169,7 +2169,7 @@ _08044C62:\n\ strh r6, [r0, 0x1C]\n\ movs r0, 0x72\n\ movs r1, 0\n\ - bl PlaySE12WithPanning\n\ + bl PlaySoundEffect12WithPanning\n\ adds r0, r4, 0\n\ add sp, 0x28\n\ pop {r3-r5}\n\ @@ -2356,9 +2356,9 @@ void sub_804507C(struct Sprite *sprite) if (r3 != 0) pan = -64; if (sprite->data7 != 0) - PlaySE2WithPanning(SE_TB_KARA, pan); + PlaySoundEffect2WithPanning(SE_TB_KARA, pan); else - PlaySE1WithPanning(SE_TB_KON, pan); + PlaySoundEffect1WithPanning(SE_TB_KON, pan); sprite->callback = SpriteCallbackDummy; } } diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index 820d16465..4ee55f0e2 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -230,7 +230,7 @@ void SetUpBattlePokemonMenu(u8 a) if (gUnknown_02038473 == 3) { if (GetMonData(&gPlayerParty[sub_806CA38(a)], MON_DATA_IS_EGG)) - PlaySE(SE_HAZURE); + PlaySoundEffect(SE_HAZURE); else { sub_806D5A4(); @@ -239,7 +239,7 @@ void SetUpBattlePokemonMenu(u8 a) } else { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); GetMonNickname(&gPlayerParty[sub_806CA38(a)], gStringVar1); sub_8095050(a, sub_806CA38(a)); SetTaskFuncWithFollowupFunc(a, Task_HandlePopupMenuInput, SetUpBattlePokemonMenu); @@ -247,10 +247,10 @@ void SetUpBattlePokemonMenu(u8 a) break; case 2: if (gUnknown_02038473 == 1) - PlaySE(SE_HAZURE); + PlaySoundEffect(SE_HAZURE); else { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); if (gUnknown_02038473 == 3) { gUnknown_0202E8F4 = 0; @@ -336,19 +336,19 @@ static void Task_HandlePopupMenuInput(u8 taskId) { if (gMain.newAndRepeatedKeys & DPAD_UP) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor(-1); return; } if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor(1); return; } if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); func = PartyMenuGetPopupMenuFunc(gTasks[taskId].data[4], sBattlePartyPopupMenus, sBattlePartyMenuActions, @@ -358,7 +358,7 @@ static void Task_HandlePopupMenuInput(u8 taskId) } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); Task_BattlePartyMenuCancel(taskId); return; } diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 511b88c5a..94f9c5941 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -245,7 +245,7 @@ static void sub_814640C(u8 taskId) static void sub_8146440(u8 taskId) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = sub_814640C; } @@ -379,7 +379,7 @@ _08146718:\n\ bgt _0814678C\n\ _08146728:\n\ movs r0, 0x5\n\ - bl PlaySE\n\ + bl PlaySoundEffect\n\ mov r2, r8\n\ ldrb r3, [r2, 0x1]\n\ ldrb r4, [r4, 0xC]\n\ diff --git a/src/bike.c b/src/bike.c index d7175b5e0..0c154de9c 100644 --- a/src/bike.c +++ b/src/bike.c @@ -617,7 +617,7 @@ static void AcroBikeTransition_80E5920(u8 direction) } } playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; - PlaySE(SE_JITE_PYOKO); + PlaySoundEffect(SE_JITE_PYOKO); playerMapObj->mapobj_bit_9 = 1; PlayerSetAnimId(sub_80608A4(direction), 2); } diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 220e8420c..7c6a22547 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -46,7 +46,7 @@ void DoBrailleDigEffect(void) MapGridSetMetatileIdAt(17, 9, 563); MapGridSetMetatileIdAt(18, 9, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySoundEffect(SE_BAN); FlagSet(SYS_BRAILLE_DIG); ScriptContext2_Disable(); } @@ -88,7 +88,7 @@ void DoBrailleStrengthEffect(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySoundEffect(SE_BAN); FlagSet(SYS_BRAILLE_STRENGTH); ScriptContext2_Disable(); } @@ -134,7 +134,7 @@ void UseFlyAncientTomb_Finish(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySE(SE_BAN); + PlaySoundEffect(SE_BAN); FlagSet(SYS_BRAILLE_FLY); ScriptContext2_Disable(); } @@ -159,7 +159,7 @@ void Task_BrailleWait(u8 taskId) if (BrailleWait_CheckButtonPress() != FALSE) { MenuZeroFillScreen(); - PlaySE(5); + PlaySoundEffect(5); data[0] = 2; } else diff --git a/src/cable_club.c b/src/cable_club.c index 45fb347f3..1f2c6376a 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -89,7 +89,7 @@ static void sub_80830E4(u8 taskId) { if (gMain.heldKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); sub_8007F4C(); gTasks[(u32) taskId].func = sub_8083188; } @@ -153,7 +153,7 @@ _08083158:\n\ cmp r0, 0\n\ beq _08083178\n\ movs r0, 0x5\n\ - bl PlaySE\n\ + bl PlaySoundEffect\n\ bl sub_8007F4C\n\ ldr r0, _08083180 @ =gTasks\n\ lsls r1, r6, 2\n\ diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c index 21cd643ef..301e169ce 100644 --- a/src/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c @@ -59,13 +59,13 @@ static void Task_ProcessMenuInput(u8 taskId) switch (ProcessMenuInputNoWrap_()) { case 0: - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); sub_8071F40(gSystemText_ClearingData); gTasks[taskId].func = Task_ClearSaveData; break; case -1: case 1: - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); DestroyTask(taskId); SetMainCallback2(CB2_SoftReset); break; diff --git a/src/daycare.c b/src/daycare.c index cf7a5cd5f..b1bafa6f4 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -33,6 +33,7 @@ u8 Daycare_CountPokemon(struct BoxPokemon *daycare_data) return count; } +#ifndef ASDF __attribute__((naked)) void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer) { @@ -95,6 +96,7 @@ _08041374:\n\ bx r0\n\ .syntax divided\n"); } +#endif s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data) { diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index c5f2c08e7..e51ae24b6 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -214,7 +214,7 @@ int sub_8068024(struct FieldInput *input) return TRUE; if (input->pressedStartButton) { - PlaySE(SE_WIN_OPEN); + PlaySoundEffect(SE_WIN_OPEN); sub_8071310(); return TRUE; } @@ -261,7 +261,7 @@ static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) && script != gUnknown_0815F36C && script != gUnknown_0815F43A && script != gUnknown_081A0009) - PlaySE(5); + PlaySoundEffect(5); ScriptContext1_SetupScript(script); return TRUE; @@ -828,7 +828,7 @@ int dive_warp(struct MapPosition *position, u16 b) { walkrun_find_lowest_active_bit_in_bitfield(); sp13E_warp_to_last_warp(); - PlaySE(SE_W291); + PlaySoundEffect(SE_W291); return TRUE; } } @@ -838,7 +838,7 @@ int dive_warp(struct MapPosition *position, u16 b) { walkrun_find_lowest_active_bit_in_bitfield(); sp13E_warp_to_last_warp(); - PlaySE(SE_W291); + PlaySoundEffect(SE_W291); return TRUE; } } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6a0fe1dce..c0a71fcf4 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -871,7 +871,7 @@ void PlayerTurnInPlace(u8 direction) void PlayerJumpLedge(u8 direction) { - PlaySE(SE_DANSA); + PlaySoundEffect(SE_DANSA); PlayerSetAnimId(GetJumpLedgeAnimId(direction), 8); } @@ -902,31 +902,31 @@ void sub_8059534(u8 a) void sub_805954C(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySoundEffect(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060A5C(a), 1); } void sub_8059570(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySoundEffect(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060A88(a), 2); } void sub_8059594(u8 a) { - PlaySE(SE_JITE_PYOKO); + PlaySoundEffect(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060AB4(a), 8); } void sub_80595B8(u8 direction) { - PlaySE(SE_JITE_PYOKO); + PlaySoundEffect(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060878(direction), 1); } void sub_80595DC(u8 direction) { - PlaySE(SE_WALL_HIT); + PlaySoundEffect(SE_WALL_HIT); PlayerSetAnimId(sub_8060AE0(direction), 2); } @@ -959,7 +959,7 @@ static void PlayCollisionSoundIfNotFacingWarp(u8 a) if (MetatileBehavior_IsWarpDoor(MapGridGetMetatileBehaviorAt(x, y))) return; } - PlaySE(SE_WALL_HIT); + PlaySoundEffect(SE_WALL_HIT); } } @@ -1292,7 +1292,7 @@ u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c) gUnknown_0202FF84[2] = c->elevation; gUnknown_0202FF84[3] = gSprites[c->spriteId].oam.priority; FieldEffectStart(10); - PlaySE(SE_W070); + PlaySoundEffect(SE_W070); task->data[0]++; } return 0; @@ -1334,7 +1334,7 @@ u8 sub_805A000(struct Task *task, struct MapObject *mapObject) gPlayerAvatar.unk6 = 1; if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) { - PlaySE(SE_DANSA); + PlaySoundEffect(SE_DANSA); FieldObjectSetSpecialAnim(mapObject, sub_806084C(mapObject->mapobj_unk_18)); task->data[1]++; if (task->data[1] > 1) @@ -1370,7 +1370,7 @@ u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject) task->data[1] = mapObject->placeholder18; gPlayerAvatar.unk6 = 1; ScriptContext2_Enable(); - PlaySE(SE_TK_WARPIN); + PlaySoundEffect(SE_TK_WARPIN); return 1; } diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 59280b743..6282ea813 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -157,7 +157,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1] = 0; // reset the timer. data[2] = CreateTask(Task_Truck1, 0xA); data[0] = 1; // run the next case. - PlaySE(SE_TRACK_MOVE); + PlaySoundEffect(SE_TRACK_MOVE); } break; case 1: @@ -177,7 +177,7 @@ void Task_HandleTruckSequence(u8 taskId) DestroyTask(data[2]); data[3] = CreateTask(Task_Truck2, 0xA); data[0] = 3; - PlaySE(SE_TRACK_STOP); + PlaySoundEffect(SE_TRACK_STOP); } break; case 3: @@ -192,7 +192,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1]++; if (data[1] == 90) { - PlaySE(SE_TRACK_HAIK); + PlaySoundEffect(SE_TRACK_HAIK); data[1] = 0; data[0] = 5; } @@ -205,7 +205,7 @@ void Task_HandleTruckSequence(u8 taskId) MapGridSetMetatileIdAt(11, 9, 528); MapGridSetMetatileIdAt(11, 10, 536); DrawWholeMapView(); - PlaySE(SE_TRACK_DOOR); + PlaySoundEffect(SE_TRACK_DOOR); DestroyTask(taskId); ScriptContext2_Disable(); } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 77c8752d1..39e438620 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -122,7 +122,7 @@ bool8 FldEff_CutGrass(void) u8 tileBehavior; u8 i, j; // not in for loop? - for(i = 0, PlaySE(SE_W015), PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); i < 3; i++) + for(i = 0, PlaySoundEffect(SE_W015), PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); i < 3; i++) { y = i - 1 + gUnknown_0203923C.y; for(j = 0; j < 3; j++) @@ -294,7 +294,7 @@ void sub_80A2AB8(void) void sub_80A2B00(void) { - PlaySE(0x80); + PlaySoundEffect(0x80); FieldEffectActiveListRemove(2); EnableBothScriptContexts(); } diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index d0ee712af..f5372b53b 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -122,7 +122,7 @@ static void sub_8133D50(u8 taskId) { return; } - PlaySE(SE_KAIFUKU); + PlaySoundEffect(SE_KAIFUKU); EWRAM_1C000.unk5 = gSprites[EWRAM_1000.unk1].data0; diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 4e8214b07..8d23a41cb 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -49,7 +49,7 @@ static void sub_812C01C(void) { u8 taskId; - PlaySE(0xEC); + PlaySoundEffect(0xEC); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, 0x1F); taskId = CreateTask(sub_812C084, 0); gTasks[taskId].data[0] = 0; diff --git a/src/intro.c b/src/intro.c index ea6edba3d..00c9894cf 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1419,7 +1419,7 @@ static void Task_IntroPokemonBattle(u8 taskId) gSprites[spriteId].invisible = 1; } if (gIntroFrameCounter == 800) - PlaySE(SE_OP_BASYU); + PlaySoundEffect(SE_OP_BASYU); if (gIntroFrameCounter == 850) BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, 0xFFFF); if (gIntroFrameCounter == 946) diff --git a/src/item_use.c b/src/item_use.c index 4047ade5c..5d0282844 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -362,7 +362,7 @@ void RunItemfinderResults(u8 taskId) } return; } - PlaySE(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder. + PlaySoundEffect(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder. data[4]++; } data[3] = (data[3] + 1) & 0x1F; @@ -943,7 +943,7 @@ void ItemUseOutOfBattle_TMHM(u8 taskId) void sub_80C9EE4(u8 taskId) { - PlaySE(2); + PlaySoundEffect(2); gTasks[taskId].func = sub_80C9F10; } @@ -1002,7 +1002,7 @@ void sub_80CA098(u8 taskId) { if(++gTasks[taskId].data[15] > 7) { - PlaySE(0x75); + PlaySoundEffect(0x75); DisplayItemMessageOnField(taskId, gStringVar4, CleanUpItemMenuMessage, 1); } } @@ -1095,7 +1095,7 @@ void sub_80CA2BC(u8 taskId) { if(++gTasks[taskId].data[15] > 7) { - PlaySE(1); + PlaySoundEffect(1); RemoveBagItem(gScriptItemId, 1); DisplayItemMessageOnField(taskId, sub_803F378(gScriptItemId), sub_80CA294, 1); } diff --git a/src/link.c b/src/link.c index 224c0ae1c..d06e71c03 100644 --- a/src/link.c +++ b/src/link.c @@ -1262,10 +1262,10 @@ static void CB2_PrintErrorMessage(void) break; case 30: case 60: - PlaySE(SE_BOO); + PlaySoundEffect(SE_BOO); break; case 90: - PlaySE(SE_BOO); + PlaySoundEffect(SE_BOO); break; } diff --git a/src/main_menu.c b/src/main_menu.c index 50fefc471..c1e43e1a8 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -446,13 +446,13 @@ bool8 MainMenuProcessKeyInput(u8 taskId) { if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0x0000); gTasks[taskId].func = Task_MainMenuPressedA; } else if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0xFFFF); REG_WIN0H = WIN_RANGE(0, 240); REG_WIN0V = WIN_RANGE(0, 160); @@ -966,14 +966,14 @@ static void Task_NewGameSpeech16(u8 taskId) { case MALE: sub_8072DEC(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); gSaveBlock2.playerGender = MALE; MenuZeroFillWindowRect(2, 4, 8, 9); gTasks[taskId].func = Task_NewGameSpeech19; break; case FEMALE: sub_8072DEC(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); gSaveBlock2.playerGender = FEMALE; MenuZeroFillWindowRect(2, 4, 8, 9); gTasks[taskId].func = Task_NewGameSpeech19; @@ -1069,19 +1069,19 @@ static void Task_NewGameSpeech21(u8 taskId) case 3: case 4: sub_8072DEC(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillWindowRect(2, 1, 22, 12); SetPresetPlayerName(selection); gTasks[taskId].func = Task_NewGameSpeech23; break; case 0: //NEW NAME - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = Task_NewGameSpeech22; break; case -1: //B button sub_8072DEC(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillWindowRect(2, 1, 22, 12); gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu break; @@ -1122,7 +1122,7 @@ static void Task_NewGameSpeech25(u8 taskId) switch (ProcessMenuInputNoWrap_()) { case 0: //YES - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillWindowRect(2, 1, 8, 7); gSprites[gTasks[taskId].data[TD_TRAINER_SPRITE_ID]].oam.objMode = ST_OAM_OBJ_BLEND; StartSpriteFadeOut(taskId, 2); @@ -1131,7 +1131,7 @@ static void Task_NewGameSpeech25(u8 taskId) break; case -1: //B button case 1: //NO - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillWindowRect(2, 1, 8, 7); gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu break; diff --git a/src/menu.c b/src/menu.c index ba98ff057..84093b9b7 100644 --- a/src/menu.c +++ b/src/menu.c @@ -52,7 +52,7 @@ const struct MenuAction gMenuYesNoItems[] = void CloseMenu(void) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillScreen(); sub_8064E2C(); ScriptContext2_Disable(); @@ -270,7 +270,7 @@ s8 ProcessMenuInput(void) { if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); if (gMenu.menu_field_7) sub_8072DEC(); return gMenu.cursorPos; @@ -285,13 +285,13 @@ s8 ProcessMenuInput(void) if (gMain.newKeys & DPAD_UP) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor(-1); return -2; } else if (gMain.newKeys & DPAD_DOWN) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor(1); return -2; } @@ -305,7 +305,7 @@ s8 ProcessMenuInputNoWrap(void) if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); if (gMenu.menu_field_7) sub_8072DEC(); return gMenu.cursorPos; @@ -321,13 +321,13 @@ s8 ProcessMenuInputNoWrap(void) if (gMain.newKeys & DPAD_UP) { if (cursorPos != MoveMenuCursorNoWrap(-1)) - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); return -2; } else if (gMain.newKeys & DPAD_DOWN) { if (cursorPos != MoveMenuCursorNoWrap(1)) - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); return -2; } @@ -520,7 +520,7 @@ s8 sub_80727CC(void) { if (gMenu.menu_field_7) sub_8072DEC(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); return GetMenuCursorPos(); } @@ -533,25 +533,25 @@ s8 sub_80727CC(void) if (gMain.newKeys & DPAD_UP) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor4(-gMenu.width); return -2; } else if (gMain.newKeys & DPAD_DOWN) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor4(gMenu.width); return -2; } else if (gMain.newKeys & DPAD_LEFT) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor4(-1); return -2; } else if (gMain.newKeys & DPAD_RIGHT) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MoveMenuCursor4(1); return -2; } diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 97deb348c..c257e7573 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -113,13 +113,13 @@ static void CB2_MysteryEventMenu(void) case 3: if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4) { - PlaySE(SE_PIN); + PlaySoundEffect(SE_PIN); sub_8072044(gSystemText_LoadEventPressA); gMain.state++; } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); CloseLink(); gMain.state = 15; } @@ -139,7 +139,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); sub_8007F4C(); MenuDrawTextWindow(6, 5, 23, 8); MenuPrint(gSystemText_LoadingEvent, 7, 6); @@ -147,7 +147,7 @@ static void CB2_MysteryEventMenu(void) } else if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); CloseLink(); gMain.state = 15; } @@ -185,7 +185,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); CloseLink(); gMain.state = 15; break; @@ -199,7 +199,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); sub_8007F4C(); MenuDrawTextWindow(6, 5, 23, 8); MenuPrint(gSystemText_LoadingEvent, 7, 6); @@ -207,7 +207,7 @@ static void CB2_MysteryEventMenu(void) } else if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); CloseLink(); gMain.state = 15; } @@ -264,7 +264,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & B_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); CloseLink(); gMain.state = 15; break; @@ -313,7 +313,7 @@ static void CB2_MysteryEventMenu(void) case 14: if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); gMain.state++; } break; diff --git a/src/naming_screen.c b/src/naming_screen.c index b14c690e2..531d12bdd 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -453,7 +453,7 @@ static bool8 MainState_StartPageSwap(struct Task *task) StartPageSwapAnim(); sub_80B6888(1); sub_80B6460(0, 0, 1); - PlaySE(SE_WIN_OPEN); + PlaySoundEffect(SE_WIN_OPEN); namingScreenData.state = MAIN_STATE_WAIT_PAGE_SWAP; return FALSE; } @@ -607,7 +607,7 @@ static bool8 KeyboardKeyHandler_OK(u8 event) sub_80B6460(2, 1, 0); if (event == KBEVENT_PRESSED_A) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); namingScreenData.state = MAIN_STATE_6; return TRUE; } @@ -1370,7 +1370,7 @@ static void DeleteTextCharacter(void) var2 = GetKeyRoleAtCursorPos(); if (var2 == 0 || var2 == 2) sub_80B6460(1, 0, 1); - PlaySE(SE_BOWA); + PlaySoundEffect(SE_BOWA); } static bool8 sub_80B7004(void) @@ -1391,7 +1391,7 @@ static bool8 sub_80B7004(void) else AddTextCharacter(ch); sub_80B7960(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); if (r4) { if (GetPreviousTextCaretPosition() == namingScreenData.template->maxChars - 1) @@ -1422,7 +1422,7 @@ static void sub_80B7090(void) // DoInput? sub_80B72A4(r4, r5); } sub_80B7960(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } static bool8 sub_80B7104(void) diff --git a/src/party_menu.c b/src/party_menu.c index d473eae6d..aebfd3307 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -109,7 +109,7 @@ void sub_8070088(u8 taskId) gUnknown_0202E8F4 = 1; MenuZeroFillWindowRect(3, 14, 26, 19); - PlaySE(SE_KAIFUKU); + PlaySoundEffect(SE_KAIFUKU); PartyMenuUpdateLevelOrStatus(unk_201C000.pokemon, unk_201C000.var05); task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle()][unk_201C000.var05], 9); @@ -214,7 +214,7 @@ _08070134:\n\ movs r3, 0x13\n\ bl MenuZeroFillWindowRect\n\ movs r0, 0x1\n\ - bl PlaySE\n\ + bl PlaySoundEffect\n\ ldr r0, [r4]\n\ ldrb r1, [r4, 0x5]\n\ bl PartyMenuUpdateLevelOrStatus\n\ diff --git a/src/player_pc.c b/src/player_pc.c index f0f0709b1..a31ce0803 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -129,24 +129,24 @@ void PlayerPCProcessMenuInput(u8 taskId) { if (gMain.newAndRepeatedKeys & 0x40) { - PlaySE(5); + PlaySoundEffect(5); MoveMenuCursor(-1); } else if (gMain.newAndRepeatedKeys & 0x80) { - PlaySE(5); + PlaySoundEffect(5); MoveMenuCursor(1); } else if (gMain.newKeys & 0x1) { sub_8072DEC(); - PlaySE(5); + PlaySoundEffect(5); gUnknown_08406298[gUnknown_02039314[GetMenuCursorPos()]].func(taskId); } else if (gMain.newKeys & 0x2) { sub_8072DEC(); - PlaySE(5); + PlaySoundEffect(5); gUnknown_08406298[gUnknown_030007B4[gUnknown_02039314 - 1]].func(taskId); } } @@ -222,25 +222,25 @@ void ItemStorageMenuProcessInput(u8 var) { if (gMain.newAndRepeatedKeys & 0x40) { - PlaySE(5); + PlaySoundEffect(5); MoveMenuCursor(-1); ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]); } else if (gMain.newAndRepeatedKeys & 0x80) { - PlaySE(5); + PlaySoundEffect(5); MoveMenuCursor(1); ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]); } else if (gMain.newKeys & 0x1) { - PlaySE(5); + PlaySoundEffect(5); gUnknown_084062C0[GetMenuCursorPos()].func(var); } else if (gMain.newKeys & 0x2) { sub_8072DEC(); - PlaySE(5); + PlaySoundEffect(5); gUnknown_084062C0[3].func(var); } } @@ -353,7 +353,7 @@ void sub_813A280(u8 taskId) { if(data[0]) { - PlaySE(5); + PlaySoundEffect(5); data[0] = MoveMenuCursor(-1); var = data[1] + data[0]; if (!data[9]) @@ -372,7 +372,7 @@ void sub_813A280(u8 taskId) { if (!data[1]) return; - PlaySE(5); + PlaySoundEffect(5); data[1]--; sub_813AE0C(taskId); // probably further down @@ -384,7 +384,7 @@ void sub_813A280(u8 taskId) { if(data[0] != data[4] - 1) { - PlaySE(5); + PlaySoundEffect(5); data[0] = MoveMenuCursor(1); var = data[1] + data[0]; @@ -398,7 +398,7 @@ void sub_813A280(u8 taskId) } else if(data[1] + data[0] != data[2]) { - PlaySE(5); + PlaySoundEffect(5); data[1]++; sub_813AE0C(taskId); @@ -412,7 +412,7 @@ void sub_813A280(u8 taskId) { if (data[0] + data[1] != data[2]) { - PlaySE(5); + PlaySoundEffect(5); data[9] = 1; data[8] = data[1] + data[0]; sub_813AD58(0xFFF7); @@ -422,14 +422,14 @@ void sub_813A280(u8 taskId) } else // _0813A3E8 { - PlaySE(5); // merging? + PlaySoundEffect(5); // merging? sub_813AA30(taskId, 0); sub_813AE0C(taskId); } } else if(gMain.newKeys & A_BUTTON) { - PlaySE(5); + PlaySoundEffect(5); if(!data[9]) { if(data[1] + data[0] != data[2]) @@ -449,7 +449,7 @@ void sub_813A280(u8 taskId) } else if(gMain.newKeys & B_BUTTON) { - PlaySE(5); + PlaySoundEffect(5); if(!data[9]) { sub_8072DEC(); @@ -554,7 +554,7 @@ void HandleQuantityRolling(u8 taskId) } else if(gMain.newKeys & A_BUTTON) // confirm quantity. { - PlaySE(5); + PlaySoundEffect(5); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); if(!data[6]) @@ -564,7 +564,7 @@ void HandleQuantityRolling(u8 taskId) } else if(gMain.newKeys & B_BUTTON) // cancel quantity. { - PlaySE(5); + PlaySoundEffect(5); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); sub_80F98DC(0); sub_80F98DC(1); diff --git a/src/pokedex.c b/src/pokedex.c index 5ea1f9938..688cae9e9 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -361,7 +361,7 @@ void Task_PokedexMainScreen(u8 taskId) 0, 0, 0x10, 0); gSprites[gPokedexView->unk626].callback = sub_808EDB8; gTasks[taskId].func = sub_808CA64; - PlaySE(SE_PIN); + PlaySoundEffect(SE_PIN); } else if (gMain.newKeys & START_BUTTON) { @@ -370,11 +370,11 @@ void Task_PokedexMainScreen(u8 taskId) gPokedexView->menuIsOpen = 1; gPokedexView->menuCursorPos = 0; gTasks[taskId].func = Task_PokedexMainScreenMenu; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else if (gMain.newKeys & SELECT_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].data[0] = sub_8091E3C(); gPokedexView->unk64F = 0; @@ -383,13 +383,13 @@ void Task_PokedexMainScreen(u8 taskId) gPokedexView->unk614 = gPokedexView->dexMode; gPokedexView->unk618 = gPokedexView->dexOrder; gTasks[taskId].func = sub_808CB8C; - PlaySE(SE_PC_LOGON); + PlaySoundEffect(SE_PC_LOGON); } else if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ClosePokedex; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); } else { @@ -444,7 +444,7 @@ void Task_PokedexMainScreenMenu(u8 taskId) case 3: //CLOSE POKEDEX BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ClosePokedex; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); break; } } @@ -454,17 +454,17 @@ void Task_PokedexMainScreenMenu(u8 taskId) { gPokedexView->menuIsOpen = 0; gTasks[taskId].func = Task_PokedexMainScreen; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_UP) && gPokedexView->menuCursorPos != 0) { gPokedexView->menuCursorPos--; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && gPokedexView->menuCursorPos <= 2) { gPokedexView->menuCursorPos++; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } } } @@ -562,7 +562,7 @@ void Task_PokedexResultsScreen(u8 taskId) gSprites[gPokedexView->unk626].callback = sub_808EDB8; BeginNormalPaletteFade(~a, 0, 0, 0x10, 0); gTasks[taskId].func = sub_808D118; - PlaySE(SE_PIN); + PlaySoundEffect(SE_PIN); } else if (gMain.newKeys & START_BUTTON) { @@ -570,7 +570,7 @@ void Task_PokedexResultsScreen(u8 taskId) gPokedexView->menuIsOpen = 1; gPokedexView->menuCursorPos = 0; gTasks[taskId].func = Task_PokedexResultsScreenMenu; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else if (gMain.newKeys & SELECT_BUTTON) { @@ -578,13 +578,13 @@ void Task_PokedexResultsScreen(u8 taskId) gTasks[taskId].data[0] = sub_8091E3C(); gPokedexView->unk64F = 0; gTasks[taskId].func = sub_808CB8C; - PlaySE(SE_PC_LOGON); + PlaySoundEffect(SE_PC_LOGON); } else if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_PokedexResultsScreenReturnToMainScreen; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); } else { @@ -635,12 +635,12 @@ void Task_PokedexResultsScreenMenu(u8 taskId) case 3: //BACK TO POKEDEX BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_PokedexResultsScreenReturnToMainScreen; - PlaySE(SE_TRACK_DOOR); + PlaySoundEffect(SE_TRACK_DOOR); break; case 4: //CLOSE POKEDEX BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_PokedexResultsScreenExitPokedex; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); break; } } @@ -650,17 +650,17 @@ void Task_PokedexResultsScreenMenu(u8 taskId) { gPokedexView->menuIsOpen = 0; gTasks[taskId].func = Task_PokedexResultsScreen; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_UP) && gPokedexView->menuCursorPos) { gPokedexView->menuCursorPos--; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && gPokedexView->menuCursorPos <= 3) { gPokedexView->menuCursorPos++; - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } } } @@ -1371,7 +1371,7 @@ u16 sub_808E48C(u16 a, u16 b) gPokedexView->unk62C += (a - r6) * 16; sub_808E82C(); sub_808E0CC(a, 0xE); - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); goto _0808E5A2; } //_0808E53C @@ -1387,7 +1387,7 @@ u16 sub_808E48C(u16 a, u16 b) gPokedexView->unk62C += (a - r6) * 16; sub_808E82C(); sub_808E0CC(a, 0xE); - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); goto _0808E5A2; _0808E5A2: @@ -1402,7 +1402,7 @@ u16 sub_808E48C(u16 a, u16 b) sub_808E398(2, a); //goto _0808E60E sub_808DBE8(2, a, b); - PlaySE(SE_Z_SCROLL); + PlaySoundEffect(SE_Z_SCROLL); } //_0808E5E4 else @@ -1412,7 +1412,7 @@ u16 sub_808E48C(u16 a, u16 b) sub_808E398(1, a); //_0808E60E sub_808DBE8(1, a, b); - PlaySE(SE_Z_SCROLL); + PlaySoundEffect(SE_Z_SCROLL); } //_0808E60E goto _0808E5A2; @@ -1511,7 +1511,7 @@ _0808E4E0:\n\ movs r1, 0xE\n\ bl sub_808E0CC\n\ movs r0, 0x6D\n\ - bl PlaySE\n\ + bl PlaySoundEffect\n\ b _0808E5A2\n\ .align 2, 0\n\ _0808E52C: .4byte gMain\n\ @@ -1566,7 +1566,7 @@ _0808E55A:\n\ movs r1, 0xE\n\ bl sub_808E0CC\n\ movs r0, 0x6D\n\ - bl PlaySE\n\ + bl PlaySoundEffect\n\ _0808E5A2:\n\ mov r0, r10\n\ cmp r0, 0\n\ @@ -1623,7 +1623,7 @@ _0808E60E:\n\ adds r2, r4, 0\n\ bl sub_808DBE8\n\ movs r0, 0x6C\n\ - bl PlaySE\n\ + bl PlaySoundEffect\n\ b _0808E5A2\n\ .align 2, 0\n\ _0808E620: .4byte gPokedexView\n\ @@ -2335,13 +2335,13 @@ void Task_PageScreenProcessInput(u8 taskId) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = sub_808F888; - PlaySE(SE_Z_SCROLL); + PlaySoundEffect(SE_Z_SCROLL); } else if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ClosePageScreen; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); } else if (gMain.newKeys & A_BUTTON) { @@ -2353,21 +2353,21 @@ void Task_PageScreenProcessInput(u8 taskId) case AREA_SCREEN: BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gTasks[taskId].func = Task_InitAreaScreenMultistep; - PlaySE(SE_PIN); + PlaySoundEffect(SE_PIN); break; case CRY_SCREEN: BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gTasks[taskId].func = Task_InitCryScreenMultistep; - PlaySE(SE_PIN); + PlaySoundEffect(SE_PIN); break; case SIZE_SCREEN: if (!gUnknown_0202FFBC->owned) - PlaySE(SE_HAZURE); + PlaySoundEffect(SE_HAZURE); else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gTasks[taskId].func = Task_InitSizeScreenMultistep; - PlaySE(SE_PIN); + PlaySoundEffect(SE_PIN); } break; } @@ -2378,7 +2378,7 @@ void Task_PageScreenProcessInput(u8 taskId) { gPokedexView->selectedScreen--; sub_8090584(gPokedexView->selectedScreen, 0xD); - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); } else if (((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) @@ -2386,7 +2386,7 @@ void Task_PageScreenProcessInput(u8 taskId) { gPokedexView->selectedScreen++; sub_8090584(gPokedexView->selectedScreen, 0xD); - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); } } @@ -2581,7 +2581,7 @@ void Task_CryScreenProcessInput(u8 taskId) m4aMPlayContinue(&gMPlay_BGM); gPokedexView->unk64F = 1; gTasks[taskId].func = sub_808FFBC; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); } else if ((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) @@ -2590,20 +2590,20 @@ void Task_CryScreenProcessInput(u8 taskId) m4aMPlayContinue(&gMPlay_BGM); gPokedexView->unk64F = 2; gTasks[taskId].func = sub_808FFBC; - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); } else if ((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { if (!gUnknown_0202FFBC->owned) - PlaySE(SE_HAZURE); + PlaySoundEffect(SE_HAZURE); else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); m4aMPlayContinue(&gMPlay_BGM); gPokedexView->unk64F = 3; gTasks[taskId].func = sub_808FFBC; - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); } } } @@ -2737,7 +2737,7 @@ void Task_SizeScreenProcessInput(u8 taskId) BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gPokedexView->unk64F = 1; gTasks[taskId].func = sub_8090498; - PlaySE(SE_PC_OFF); + PlaySoundEffect(SE_PC_OFF); } //_08090430 else if ((gMain.newKeys & DPAD_LEFT) @@ -2746,7 +2746,7 @@ void Task_SizeScreenProcessInput(u8 taskId) BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gPokedexView->unk64F = 2; gTasks[taskId].func = sub_8090498; - PlaySE(SE_Z_PAGE); + PlaySoundEffect(SE_Z_PAGE); } } diff --git a/src/record_mixing.c b/src/record_mixing.c index 5f2077432..d1a386dc7 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -23,7 +23,7 @@ extern u8 gUnknown_083D0288[2]; extern u8 gUnknown_083D028A[2][3]; extern u8 gUnknown_083D0290[9][4]; -extern u8 gUnknown_02038738[]; //Don't know what type this points to +extern struct RecordMixing_UnknownStruct gUnknown_02038738[2]; //Don't know what type this points to extern u16 gSpecialVar_0x8005; extern u32 gUnknown_03005D2C; extern u8 gUnknown_03000718; @@ -53,7 +53,9 @@ struct PlayerRecords { extern struct PlayerRecords unk_2008000; extern struct PlayerRecords unk_2018000; -#ifdef NONMATCHING +extern void sub_80BC300(); +extern void sub_80C045C(); + void sub_80B92AC(void) { sub_80BC300(); @@ -64,8 +66,8 @@ void sub_80B92AC(void) memcpy(unk_2018000.filler1004, gUnknown_083D0274, 0x40); memcpy(unk_2018000.filler1044, gUnknown_083D0278, 0x40); memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, 0x28); - memcpy(gUnknown_02038738, gSaveBlock1.filler_303C, 0x38); - memcpy(gUnknown_02038738 + 0x38, gSaveBlock1.filler_3074, 0x38); + gUnknown_02038738[0] = gSaveBlock1.filler_303C[0]; + gUnknown_02038738[1] = gSaveBlock1.filler_303C[1]; sub_8041324(gSaveBlock1.daycareData, gUnknown_02038738); memcpy(unk_2018000.filler10AC, gUnknown_083D0280, 0x78); memcpy(unk_2018000.filler1124, gUnknown_083D0284, 0xA4); @@ -73,112 +75,6 @@ void sub_80B92AC(void) if (GetMultiplayerId() == 0) unk_2018000.filler11C8[0] = sub_8126338(); } -#else -__attribute__((naked)) -void sub_80B92AC(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - bl sub_80BC300\n\ - bl sub_80C045C\n\ - ldr r6, _080B9364 @ =0x02018000\n\ - ldr r0, _080B9368 @ =recordMixingSecretBases\n\ - ldr r1, [r0]\n\ - movs r2, 0xC8\n\ - lsls r2, 4\n\ - adds r0, r6, 0\n\ - bl memcpy\n\ - movs r1, 0xC8\n\ - lsls r1, 4\n\ - adds r0, r6, r1\n\ - ldr r1, _080B936C @ =recordMixingTvShows\n\ - ldr r1, [r1]\n\ - movs r2, 0xE1\n\ - lsls r2, 2\n\ - bl memcpy\n\ - ldr r2, _080B9370 @ =0x00001004\n\ - adds r0, r6, r2\n\ - ldr r1, _080B9374 @ =gUnknown_083D0274\n\ - ldr r1, [r1]\n\ - movs r2, 0x40\n\ - bl memcpy\n\ - ldr r1, _080B9378 @ =0x00001044\n\ - adds r0, r6, r1\n\ - ldr r1, _080B937C @ =gUnknown_083D0278\n\ - ldr r1, [r1]\n\ - movs r2, 0x40\n\ - bl memcpy\n\ - ldr r2, _080B9380 @ =0x00001084\n\ - adds r0, r6, r2\n\ - ldr r1, _080B9384 @ =recordMixingEasyChatPairs\n\ - ldr r1, [r1]\n\ - movs r2, 0x28\n\ - bl memcpy\n\ - ldr r5, _080B9388 @ =gUnknown_02038738\n\ - ldr r4, _080B938C @ =gSaveBlock1\n\ - ldr r0, _080B9390 @ =0x0000303c\n\ - adds r1, r4, r0\n\ - adds r0, r5, 0\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldr r2, _080B9394 @ =0x00003074\n\ - adds r1, r4, r2\n\ - adds r0, r5, 0\n\ - adds r0, 0x38\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldr r0, _080B9398 @ =0x00002f9c\n\ - adds r4, r0\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - bl sub_8041324\n\ - ldr r1, _080B939C @ =0x000010ac\n\ - adds r0, r6, r1\n\ - ldr r1, _080B93A0 @ =gUnknown_083D0280\n\ - ldr r1, [r1]\n\ - movs r2, 0x78\n\ - bl memcpy\n\ - ldr r2, _080B93A4 @ =0x00001124\n\ - adds r0, r6, r2\n\ - ldr r1, _080B93A8 @ =gUnknown_083D0284\n\ - ldr r1, [r1]\n\ - movs r2, 0xA4\n\ - bl memcpy\n\ - bl GetMultiplayerId\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080B935C\n\ - bl sub_8126338\n\ - ldr r2, _080B93AC @ =0x000011c8\n\ - adds r1, r6, r2\n\ - strh r0, [r1]\n\ -_080B935C:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080B9364: .4byte 0x02018000\n\ -_080B9368: .4byte recordMixingSecretBases\n\ -_080B936C: .4byte recordMixingTvShows\n\ -_080B9370: .4byte 0x00001004\n\ -_080B9374: .4byte gUnknown_083D0274\n\ -_080B9378: .4byte 0x00001044\n\ -_080B937C: .4byte gUnknown_083D0278\n\ -_080B9380: .4byte 0x00001084\n\ -_080B9384: .4byte recordMixingEasyChatPairs\n\ -_080B9388: .4byte gUnknown_02038738\n\ -_080B938C: .4byte gSaveBlock1\n\ -_080B9390: .4byte 0x0000303c\n\ -_080B9394: .4byte 0x00003074\n\ -_080B9398: .4byte 0x00002f9c\n\ -_080B939C: .4byte 0x000010ac\n\ -_080B93A0: .4byte gUnknown_083D0280\n\ -_080B93A4: .4byte 0x00001124\n\ -_080B93A8: .4byte gUnknown_083D0284\n\ -_080B93AC: .4byte 0x000011c8\n\ - .syntax divided\n"); -} -#endif #undef NONMATCHING @@ -200,7 +96,7 @@ void sub_80B9450(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 50) { - PlaySE(SE_W213); + PlaySoundEffect(SE_W213); gTasks[taskId].data[0] = 0; } } @@ -235,7 +131,7 @@ void sub_80B9484(u8 taskId) case 2: taskData[10] = CreateTask(sub_80BA00C, 10); taskData[TD_STATE] = 3; - PlaySE(SE_W226); + PlaySoundEffect(SE_W226); break; case 3: if (!gTasks[taskData[10]].isActive) @@ -294,14 +190,14 @@ void sub_80B95F0(u8 taskId) { if (players == sub_800820C()) { - PlaySE(0x15); + PlaySoundEffect(0x15); task->data[TD_STATE] = 201; task->data[12] = 0; } } else { - PlaySE(0x16); + PlaySoundEffect(0x16); task->data[TD_STATE] = 301; } break; diff --git a/src/rom4.c b/src/rom4.c index 79ac6d769..9ed08aa7f 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -2203,28 +2203,28 @@ void sub_80557E8(void) void sub_80557F4(void) { - PlaySE(SE_WIN_OPEN); + PlaySoundEffect(SE_WIN_OPEN); sub_8071310(); ScriptContext2_Enable(); } void sub_8055808(u8 *script) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); ScriptContext1_SetupScript(script); ScriptContext2_Enable(); } void sub_8055824(void) { - PlaySE(SE_WIN_OPEN); + PlaySoundEffect(SE_WIN_OPEN); ScriptContext1_SetupScript(TradeRoom_PromptToCancelLink); ScriptContext2_Enable(); } void sub_8055840(u8 *script) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); ScriptContext1_SetupScript(script); ScriptContext2_Enable(); } diff --git a/src/rom6.c b/src/rom6.c index a2b52c9aa..a8c489e70 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -150,7 +150,7 @@ int FldEff_RockSmash(void) static void sub_810B58C(void) { - PlaySE(SE_W088); + PlaySoundEffect(SE_W088); FieldEffectActiveListRemove(0x25); EnableBothScriptContexts(); } diff --git a/src/scrcmd.c b/src/scrcmd.c index 136181bd3..fa3467d22 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -807,7 +807,7 @@ bool8 ScrCmd_countpokemon(struct ScriptContext *ctx) bool8 ScrCmd_playsfx(struct ScriptContext *ctx) { - PlaySE(ScriptReadHalfword(ctx)); + PlaySoundEffect(ScriptReadHalfword(ctx)); return FALSE; } @@ -1787,7 +1787,7 @@ bool8 ScrCmd_setdooropened(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); x += 7; y += 7; - PlaySE(sub_8058790(x, y)); + PlaySoundEffect(sub_8058790(x, y)); FieldAnimateDoorOpen(x, y); return FALSE; } diff --git a/src/script_menu.c b/src/script_menu.c index eba438397..38f7f0af5 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -672,7 +672,7 @@ void sub_80B52B4(u8 taskId) { if (!gTasks[taskId].data[4]) { - PlaySE(5); + PlaySoundEffect(5); gScriptResult = 127; } else @@ -770,7 +770,7 @@ void task_yes_no_maybe(u8 taskId) return; case -1: case 1: - PlaySE(5); + PlaySoundEffect(5); gScriptResult = 0; break; case 0: @@ -835,7 +835,7 @@ void sub_80B5684(u8 taskId) { if (!gTasks[taskId].data[4]) { - PlaySE(5); + PlaySoundEffect(5); gScriptResult = 127; } else diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index ce62f2abb..2efc0e2c6 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -169,13 +169,13 @@ void sub_80F9C6C(u8 var) switch(sub_806BD80(var)) { case 1: - PlaySE(5); + PlaySoundEffect(5); gUnknown_02038694 = sub_806CA38(var); gSpecialVar_0x8004 = gUnknown_02038694; sub_8123138(var); break; case 2: - PlaySE(5); + PlaySoundEffect(5); gUnknown_02038694 = 0xFF; gSpecialVar_0x8004 = 0xFF; sub_8123138(var); @@ -268,13 +268,13 @@ void sub_80F9E64(u8 var) switch(sub_806BD80(var)) { case 1: - PlaySE(5); + PlaySoundEffect(5); gSpecialVar_0x8004 = sub_806CA38(var); gSpecialVar_0x8005 = sub_8040574(&gPlayerParty[gSpecialVar_0x8004]); sub_8123138(var); break; case 2: - PlaySE(5); + PlaySoundEffect(5); gSpecialVar_0x8004 = 0xFF; sub_8123138(var); } diff --git a/src/shop.c b/src/shop.c index 780dff02a..27aa5b335 100644 --- a/src/shop.c +++ b/src/shop.c @@ -106,7 +106,7 @@ void sub_80B2E38(u8 var) { if(gUnknown_03000708.unk9) { - PlaySE(0x5); + PlaySoundEffect(0x5); gUnknown_03000708.unk9 = MoveMenuCursor(-1); } } @@ -114,13 +114,13 @@ void sub_80B2E38(u8 var) { if(gUnknown_03000708.unk9 != gUnknown_03000708.unkA) { - PlaySE(0x5); + PlaySoundEffect(0x5); gUnknown_03000708.unk9 = MoveMenuCursor(1); } } else if (gMain.newKeys & 1) { - PlaySE(0x5); + PlaySoundEffect(0x5); if(!gUnknown_03000708.unkC) { gUnknown_083CC6D0[gUnknown_083CC6E8[gUnknown_03000708.unk9]].func(local); @@ -132,7 +132,7 @@ void sub_80B2E38(u8 var) } else if(gMain.newKeys & 2) { - PlaySE(0x5); + PlaySoundEffect(0x5); HandleShopMenuQuit(local); } } diff --git a/src/sound.c b/src/sound.c index ed69ca01d..897b13ddf 100644 --- a/src/sound.c +++ b/src/sound.c @@ -521,12 +521,12 @@ void PlayBGM(u16 songNum) m4aSongNumStart(songNum); } -void PlaySE(u16 songNum) +void PlaySoundEffect(u16 songNum) { m4aSongNumStart(songNum); } -void PlaySE12WithPanning(u16 songNum, s8 pan) +void PlaySoundEffect12WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlay_SE1); @@ -535,14 +535,14 @@ void PlaySE12WithPanning(u16 songNum, s8 pan) m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); } -void PlaySE1WithPanning(u16 songNum, s8 pan) +void PlaySoundEffect1WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlay_SE1); m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); } -void PlaySE2WithPanning(u16 songNum, s8 pan) +void PlaySoundEffect2WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlay_SE2); diff --git a/src/start_menu.c b/src/start_menu.c index 37d361c0b..4c3a0b6e1 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -315,17 +315,17 @@ static u8 StartMenu_InputProcessCallback(void) { if (gMain.newKeys & DPAD_UP) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); sStartMenuCursorPos = MoveMenuCursor(-1); } if (gMain.newKeys & DPAD_DOWN) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); sStartMenuCursorPos = MoveMenuCursor(1); } if (gMain.newKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); if (sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func == StartMenu_PokedexCallback) { if (GetNationalPokedexCount(0) == 0) @@ -566,7 +566,7 @@ static bool8 SaveDialogCheckForTimeoutOrKeypress(void) saveDialogTimer--; if (gMain.heldKeys & A_BUTTON) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); return TRUE; } else if (saveDialogTimer == 0) @@ -702,7 +702,7 @@ static u8 SaveDialogCB_SaveSuccess(void) { if (MenuUpdateWindowText()) { - PlaySE(SE_SAVE); + PlaySoundEffect(SE_SAVE); saveDialogCallback = SaveDialogCB_ReturnSuccess; } return SAVE_IN_PROGRESS; @@ -723,7 +723,7 @@ static u8 SaveDialogCB_SaveError(void) { if (MenuUpdateWindowText()) { - PlaySE(SE_BOO); + PlaySoundEffect(SE_BOO); saveDialogCallback = SaveDialogCB_ReturnError; } return SAVE_IN_PROGRESS; diff --git a/src/starter_choose.c b/src/starter_choose.c index 6ef410d21..e133c6212 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -455,7 +455,7 @@ static void Task_StarterChoose5(u8 taskId) break; case 1: // NO case -1: // B button - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); spriteId = gTasks[taskId].tPkmnSpriteId; diff --git a/src/text.c b/src/text.c index 7be72833a..ee5089c4d 100644 --- a/src/text.c +++ b/src/text.c @@ -136,7 +136,7 @@ static u8 ExtCtrlCode_Escape(struct Window *); static u8 ExtCtrlCode_Nop2(struct Window *); static u8 ExtCtrlCode_SetCursorY(struct Window *); static u8 ExtCtrlCode_ClearWindowTextLines(struct Window *); -static u8 ExtCtrlCode_PlaySE(struct Window *); +static u8 ExtCtrlCode_PlaySoundEffect(struct Window *); static u8 ExtCtrlCode_Skip(struct Window *); static u8 ExtCtrlCode_SetCursorX(struct Window *); static u8 ExtCtrlCode_SkipTo(struct Window *); @@ -380,7 +380,7 @@ static const ExtCtrlCodeFunc sExtCtrlCodeFuncs[] = ExtCtrlCode_Nop2, ExtCtrlCode_SetCursorY, ExtCtrlCode_ClearWindowTextLines, - ExtCtrlCode_PlaySE, + ExtCtrlCode_PlaySoundEffect, ExtCtrlCode_Skip, ExtCtrlCode_SetCursorX, ExtCtrlCode_SkipTo, @@ -2197,11 +2197,11 @@ static u8 ExtCtrlCode_ClearWindowTextLines(struct Window *win) return 2; } -static u8 ExtCtrlCode_PlaySE(struct Window *win) +static u8 ExtCtrlCode_PlaySoundEffect(struct Window *win) { u16 loByte = win->text[win->textIndex++]; u16 hiByte = win->text[win->textIndex++] << 8; - PlaySE(loByte | hiByte); + PlaySoundEffect(loByte | hiByte); return 2; } @@ -2377,7 +2377,7 @@ static u8 UpdateWindowText(struct Window *win) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); } else { @@ -3187,7 +3187,7 @@ static u8 WaitWithDownArrow(struct Window *win) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); TryEraseDownArrow(win); } else diff --git a/src/trainer_card.c b/src/trainer_card.c index e6ed79c15..945d469e3 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -662,7 +662,7 @@ bool8 sub_80938CC(struct Task *task) bool8 sub_8093918(struct Task *task) { sub_8093A28(); - PlaySE(SE_CARD); + PlaySoundEffect(SE_CARD); ewram0.var_0 += 1; diff --git a/src/wallclock.c b/src/wallclock.c index 0f3665c65..f8c3fdeea 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -429,13 +429,13 @@ static void Task_SetClock4(u8 taskId) switch (ProcessMenuInputNoWrap_()) { case 0: //YES - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); gTasks[taskId].func = Task_SetClock5; //Move on return; case -1: //B button case 1: //NO sub_8072DEC(); - PlaySE(SE_SELECT); + PlaySoundEffect(SE_SELECT); MenuZeroFillWindowRect(23, 8, 29, 13); MenuZeroFillWindowRect(2, 16, 27, 19); gTasks[taskId].func = Task_SetClock2; //Go back and let player adjust clock -- cgit v1.2.3 From a240212df98595f9ce95dabd833846e58468a8ea Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Mon, 15 May 2017 16:57:54 +0200 Subject: More record_mixing maintenance --- src/record_mixing.c | 74 ++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 40 deletions(-) (limited to 'src') diff --git a/src/record_mixing.c b/src/record_mixing.c index d1a386dc7..f8c684161 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -36,7 +36,7 @@ extern bool8 gReceivedRemoteLinkPlayers; void sub_80B929C(void) { - sub_8083A84(sub_80B9484); + sub_8083A84(Task_RecordMixing_Main); } struct PlayerRecords { @@ -53,10 +53,10 @@ struct PlayerRecords { extern struct PlayerRecords unk_2008000; extern struct PlayerRecords unk_2018000; -extern void sub_80BC300(); -extern void sub_80C045C(); +void sub_80BC300(); +void sub_80C045C(); -void sub_80B92AC(void) +void RecordMixing_PrepareExchangePacket(void) { sub_80BC300(); sub_80C045C(); @@ -76,9 +76,7 @@ void sub_80B92AC(void) unk_2018000.filler11C8[0] = sub_8126338(); } -#undef NONMATCHING - -void sub_80B93B0(u32 a) +void RecordMixing_ReceiveExchangePacket(u32 a) { sub_80BD674(unk_2008000.secretBases, sizeof(struct PlayerRecords), a); sub_80BFD44((u8 *)unk_2008000.tvShows, sizeof(struct PlayerRecords), a); @@ -91,7 +89,7 @@ void sub_80B93B0(u32 a) sub_80B9F3C(unk_2008000.filler11C8, a); } -void sub_80B9450(u8 taskId) +void Task_RecordMixing_SoundEffect(u8 taskId) { gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 50) @@ -102,24 +100,23 @@ void sub_80B9450(u8 taskId) } #define TD_STATE 0 - -void sub_80B9484(u8 taskId) +void Task_RecordMixing_Main(u8 taskId) { s16 *taskData = gTasks[taskId].data; switch (taskData[TD_STATE]) { - case 0: + case 0: // init sub_8007270(gSpecialVar_0x8005); VarSet(0x4000, 1); gUnknown_03000718 = 0; - sub_80B92AC(); + RecordMixing_PrepareExchangePacket(); CreateRecordMixingSprite(); taskData[TD_STATE] = 1; taskData[10] = CreateTask(sub_80B95F0, 0x50); - taskData[15] = CreateTask(sub_80B9450, 0x51); + taskData[15] = CreateTask(Task_RecordMixing_SoundEffect, 0x51); break; - case 1: + case 1: // wait for sub_80B95F0 if (!gTasks[taskData[10]].isActive) { taskData[TD_STATE] = 2; @@ -133,7 +130,7 @@ void sub_80B9484(u8 taskId) taskData[TD_STATE] = 3; PlaySoundEffect(SE_W226); break; - case 3: + case 3: // wait for sub_80BA00C if (!gTasks[taskData[10]].isActive) { taskData[TD_STATE] = 4; @@ -143,7 +140,7 @@ void sub_80B9484(u8 taskId) taskData[8] = 0; } break; - case 4: + case 4: // wait 60 frames taskData[8]++; if (taskData[8] > 60) taskData[TD_STATE] = 5; @@ -171,10 +168,10 @@ void sub_80B95F0(u8 taskId) MenuDisplayMessageBox(); MenuPrint(gOtherText_MixingRecordsWithFriend, 2, 15); task->data[8] = 0x708; - task->data[TD_STATE] = 0x190; + task->data[TD_STATE] = 400; ClearLinkCallback_2(); break; - case 100: + case 100: // wait 20 frames task->data[12]++; if (task->data[12] > 20) { @@ -216,7 +213,7 @@ void sub_80B95F0(u8 taskId) if (sub_800820C() == GetLinkPlayerCount_2()) task->data[TD_STATE] = 1; break; - case 400: + case 400: // wait 20 frames task->data[12]++; if (task->data[12] > 20) { @@ -224,7 +221,7 @@ void sub_80B95F0(u8 taskId) task->data[12] = 0; } break; - case 1: + case 1: // wait for handshake if (gReceivedRemoteLinkPlayers) { ConvertIntToDecimalStringN(gStringVar1, GetMultiplayerId_(), 2, 2); @@ -238,16 +235,16 @@ void sub_80B95F0(u8 taskId) task->data[6] = GetLinkPlayerCount_2(); task->data[TD_STATE] = 0; task->data[5] = GetMultiplayerId_(); - task->func = sub_80B97DC; + task->func = Task_RecordMixing_SendPacket; StorePtrInTaskData(&unk_2018000, &task->data[2]); - subTaskId = CreateTask(Task_CopyRecvBuffer, 0x50); + subTaskId = CreateTask(Task_RecordMixing_CopyReceiveBuffer, 0x50); task->data[10] = subTaskId; gTasks[subTaskId].data[0] = taskId; //StorePtrInTaskData((void*)0x2008000, &gTasks[subTaskId].data[5]); StorePtrInTaskData((u8 *)&unk_2018000 - 0x10000, &gTasks[subTaskId].data[5]); break; } - case 5: + case 5: // wait 60 frames task->data[10]++; if (task->data[10] > 60) { @@ -258,9 +255,10 @@ void sub_80B95F0(u8 taskId) } } -void sub_80B97DC(u8 taskId) +void Task_RecordMixing_SendPacket(u8 taskId) { struct Task *task = &gTasks[taskId]; + // does this send the data 24 times? switch (task->data[TD_STATE]) { @@ -288,15 +286,15 @@ void sub_80B97DC(u8 taskId) break; case 4: if (!gTasks[task->data[10]].isActive) - task->func = sub_80B9A1C; + task->func = Task_RecordMixing_SendPacket_SwitchToReceive; } } -void Task_CopyRecvBuffer(u8 taskId) +void Task_RecordMixing_CopyReceiveBuffer(u8 taskId) { struct Task *task = &gTasks[taskId]; s32 recvStatus = GetBlockReceivedStatus(); - u32 sp8 = 0; + u8 handledPlayers = 0; if (recvStatus == sub_8008198()) { @@ -304,32 +302,27 @@ void Task_CopyRecvBuffer(u8 taskId) for (player = 0; player < GetLinkPlayerCount(); player++) { - //_080B98D4 - u8 *ptr; void *src; u8 *dst; if ((recvStatus >> player) & 1) { - ptr = LoadPtrFromTaskData(&task->data[5]); - dst = ptr + task->data[player + 1] * BUFFER_CHUNK_SIZE + player * sizeof(struct PlayerRecords); + dst = LoadPtrFromTaskData(&task->data[5]) + task->data[player + 1] * BUFFER_CHUNK_SIZE + player * sizeof(struct PlayerRecords); src = GetPlayerRecvBuffer(player); - if ((u32)(task->data[player + 1] + 1) * BUFFER_CHUNK_SIZE > sizeof(struct PlayerRecords)) + if ((task->data[player + 1] + 1) * BUFFER_CHUNK_SIZE > sizeof(struct PlayerRecords)) memcpy(dst, src, sizeof(struct PlayerRecords) - task->data[player + 1] * BUFFER_CHUNK_SIZE); else memcpy(dst, src, BUFFER_CHUNK_SIZE); - //_080B993C ResetBlockReceivedFlag(player); task->data[player + 1]++; if ((u16)task->data[player + 1] == 0x18) - sp8 = (u8)(sp8 + 1); + handledPlayers++; } } - //line 828 gTasks[task->data[0]].data[0]++; } //_080B998A - if (sp8 == GetLinkPlayerCount()) + if (handledPlayers == GetLinkPlayerCount()) DestroyTask(taskId); } @@ -341,18 +334,18 @@ void sub_80B99B4(u8 taskId) DestroyTask(taskId); } -void sub_80B99E8(u8 taskId) +void Task_RecordMixing_ReceivePacket(u8 taskId) { struct Task *task = &gTasks[taskId]; task->func = sub_80B99B4; if (gUnknown_03000718 == 1) - sub_80B93B0(task->data[5]); + RecordMixing_ReceiveExchangePacket(task->data[5]); } -void sub_80B9A1C(u8 taskId) +void Task_RecordMixing_SendPacket_SwitchToReceive(u8 taskId) { - gTasks[taskId].func = sub_80B99E8; + gTasks[taskId].func = Task_RecordMixing_ReceivePacket; gUnknown_03000718 = 1; } @@ -433,6 +426,7 @@ u8 sub_80B9BBC(u16 *a) return a[16]; } +#undef NONMATCHING #ifdef NONMATCHING void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d) -- cgit v1.2.3 From 5847cceee4656ca5ffd08eb57d90e2cccdaaea60 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sun, 21 May 2017 14:28:59 +0200 Subject: Fix tabs - it's 4 spaces --- src/daycare.c | 598 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 299 insertions(+), 299 deletions(-) (limited to 'src') diff --git a/src/daycare.c b/src/daycare.c index b1bafa6f4..92be45cfa 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -7,243 +7,243 @@ extern u8 gLastFieldPokeMenuOpened; u8 *GetMonNick(struct Pokemon *mon, u8 *dest) { - s8 nickname[POKEMON_NAME_LENGTH * 2]; + s8 nickname[POKEMON_NAME_LENGTH * 2]; - GetMonData(mon, MON_DATA_NICKNAME, nickname); - return StringCopy10(dest, nickname); + GetMonData(mon, MON_DATA_NICKNAME, nickname); + return StringCopy10(dest, nickname); } u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest) { - s8 nickname[POKEMON_NAME_LENGTH * 2]; + s8 nickname[POKEMON_NAME_LENGTH * 2]; - GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); - return StringCopy10(dest, nickname); + GetBoxMonData(mon, MON_DATA_NICKNAME, nickname); + return StringCopy10(dest, nickname); } u8 Daycare_CountPokemon(struct BoxPokemon *daycare_data) { - u8 i, count; - count = 0; + u8 i, count; + count = 0; - for(i = 0;i <= 1;i++) - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) - count++; + for(i = 0;i <= 1;i++) + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) + count++; - return count; + return count; } #ifndef ASDF __attribute__((naked)) void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer) { - 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\ - mov r9, r0\n\ - mov r10, r1\n\ - movs r7, 0\n\ - movs r5, 0\n\ - mov r6, r10\n\ - adds r6, 0x74\n\ - movs r0, 0x1\n\ - mov r8, r0\n\ + 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\ + mov r9, r0\n\ + mov r10, r1\n\ + movs r7, 0\n\ + movs r5, 0\n\ + mov r6, r10\n\ + adds r6, 0x74\n\ + movs r0, 0x1\n\ + mov r8, r0\n\ _0804133E:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 4\n\ - mov r1, r9\n\ - adds r4, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xB\n\ - bl GetBoxMonData\n\ - cmp r0, 0\n\ - beq _0804136E\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - adds r0, r4, 0\n\ - movs r1, 0xC\n\ - bl GetBoxMonData\n\ - adds r1, r0, 0\n\ - cmp r1, 0\n\ - bne _0804136E\n\ - lsls r0, r5, 1\n\ - adds r0, r6, r0\n\ - b _08041374\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 4\n\ + mov r1, r9\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetBoxMonData\n\ + cmp r0, 0\n\ + beq _0804136E\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + adds r0, r4, 0\n\ + movs r1, 0xC\n\ + bl GetBoxMonData\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + bne _0804136E\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + b _08041374\n\ _0804136E:\n\ - lsls r0, r5, 1\n\ - adds r0, r6, r0\n\ - mov r1, r8\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + mov r1, r8\n\ _08041374:\n\ - strh r1, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x1\n\ - bls _0804133E\n\ - mov r0, r10\n\ - str r7, [r0, 0x70]\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"); + strh r1, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x1\n\ + bls _0804133E\n\ + mov r0, r10\n\ + str r7, [r0, 0x70]\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 s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data) { - u8 i; + u8 i; - for(i = 0;i <= 1;i++) - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0) - return i; + for(i = 0;i <= 1;i++) + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0) + return i; - return -1; + return -1; } /*void Daycare_SendPokemon(struct Pokemon * mon, struct BoxPokemon * daycare_data){ // unfinished - s8 empty_slot; + s8 empty_slot; - empty_slot = Daycare_FindEmptySpot(daycare_data); - if(MonHasMail(mon) != 0){ // if the mon holds a mail? - u8 empty_slot_times_56 = empty_slot * 56; - u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36; - StringCopy(something2, gSaveBlock2.playerName); - PadNameString(something2, 0xFC); - something2 += 8; - GetMonNick(mon, something2); - u8 pokerus = GetMonData(mon, MON_DATA_64); - something1 += (u8 * daycare_data) + empty_slot = Daycare_FindEmptySpot(daycare_data); + if(MonHasMail(mon) != 0){ // if the mon holds a mail? + u8 empty_slot_times_56 = empty_slot * 56; + u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36; + StringCopy(something2, gSaveBlock2.playerName); + PadNameString(something2, 0xFC); + something2 += 8; + GetMonNick(mon, something2); + u8 pokerus = GetMonData(mon, MON_DATA_64); + something1 += (u8 * daycare_data) }*/ __attribute__((naked)) void Daycare_SendPokemon() { - // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped: - // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC - // the ldm/stm section probably copies some struct, but I'm not sure how the code would look - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - adds r7, r0, 0\n\ - mov r8, r1\n\ - mov r0, r8\n\ - bl Daycare_FindEmptySpot\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - mov r9, r4\n\ - adds r0, r7, 0\n\ - bl MonHasMail\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0804144A\n\ - lsls r0, r4, 24\n\ - asrs r0, 24\n\ - lsls r4, r0, 3\n\ - subs r4, r0\n\ - lsls r4, 3\n\ - adds r5, r4, 0\n\ - adds r5, 0xA0\n\ - add r5, r8\n\ - adds r6, r5, 0\n\ - adds r6, 0x24\n\ - ldr r1, _08041490 @ =gSaveBlock2\n\ - adds r0, r6, 0\n\ - bl StringCopy\n\ - adds r0, r6, 0\n\ - movs r1, 0xFC\n\ - bl PadNameString\n\ - adds r6, 0x8\n\ - adds r0, r7, 0\n\ - adds r1, r6, 0\n\ - bl GetMonNick\n\ - adds r0, r7, 0\n\ - movs r1, 0x40\n\ - bl GetMonData\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - add r4, r8\n\ - ldr r2, _08041494 @ =gSaveBlock1\n\ - lsls r1, r0, 3\n\ - adds r1, r0\n\ - lsls r1, 2\n\ - adds r1, r2\n\ - adds r4, 0xA0\n\ - ldr r0, _08041498 @ =0x00002b4c\n\ - adds r1, r0\n\ - ldm r1!, {r0,r2,r3}\n\ - stm r4!, {r0,r2,r3}\n\ - ldm r1!, {r0,r2,r3}\n\ - stm r4!, {r0,r2,r3}\n\ - ldm r1!, {r0,r2,r3}\n\ - stm r4!, {r0,r2,r3}\n\ - adds r0, r7, 0\n\ - bl TakeMailFromMon\n\ + // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped: + // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC + // the ldm/stm section probably copies some struct, but I'm not sure how the code would look + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + adds r7, r0, 0\n\ + mov r8, r1\n\ + mov r0, r8\n\ + bl Daycare_FindEmptySpot\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + mov r9, r4\n\ + adds r0, r7, 0\n\ + bl MonHasMail\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0804144A\n\ + lsls r0, r4, 24\n\ + asrs r0, 24\n\ + lsls r4, r0, 3\n\ + subs r4, r0\n\ + lsls r4, 3\n\ + adds r5, r4, 0\n\ + adds r5, 0xA0\n\ + add r5, r8\n\ + adds r6, r5, 0\n\ + adds r6, 0x24\n\ + ldr r1, _08041490 @ =gSaveBlock2\n\ + adds r0, r6, 0\n\ + bl StringCopy\n\ + adds r0, r6, 0\n\ + movs r1, 0xFC\n\ + bl PadNameString\n\ + adds r6, 0x8\n\ + adds r0, r7, 0\n\ + adds r1, r6, 0\n\ + bl GetMonNick\n\ + adds r0, r7, 0\n\ + movs r1, 0x40\n\ + bl GetMonData\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + add r4, r8\n\ + ldr r2, _08041494 @ =gSaveBlock1\n\ + lsls r1, r0, 3\n\ + adds r1, r0\n\ + lsls r1, 2\n\ + adds r1, r2\n\ + adds r4, 0xA0\n\ + ldr r0, _08041498 @ =0x00002b4c\n\ + adds r1, r0\n\ + ldm r1!, {r0,r2,r3}\n\ + stm r4!, {r0,r2,r3}\n\ + ldm r1!, {r0,r2,r3}\n\ + stm r4!, {r0,r2,r3}\n\ + ldm r1!, {r0,r2,r3}\n\ + stm r4!, {r0,r2,r3}\n\ + adds r0, r7, 0\n\ + bl TakeMailFromMon\n\ _0804144A:\n\ - mov r2, r9\n\ - lsls r4, r2, 24\n\ - asrs r4, 24\n\ - lsls r5, r4, 2\n\ - adds r4, r5, r4\n\ - lsls r4, 4\n\ - add r4, r8\n\ - adds r0, r4, 0\n\ - adds r1, r7, 0\n\ - movs r2, 0x50\n\ - bl memcpy\n\ - adds r0, r4, 0\n\ - bl BoxMonRestorePP\n\ - movs r0, 0x88\n\ - lsls r0, 1\n\ - add r0, r8\n\ - adds r0, r5\n\ - movs r1, 0\n\ - str r1, [r0]\n\ - adds r0, r7, 0\n\ - bl ZeroMonData\n\ - bl party_compaction\n\ - bl CalculatePlayerPartyCount\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + mov r2, r9\n\ + lsls r4, r2, 24\n\ + asrs r4, 24\n\ + lsls r5, r4, 2\n\ + adds r4, r5, r4\n\ + lsls r4, 4\n\ + add r4, r8\n\ + adds r0, r4, 0\n\ + adds r1, r7, 0\n\ + movs r2, 0x50\n\ + bl memcpy\n\ + adds r0, r4, 0\n\ + bl BoxMonRestorePP\n\ + movs r0, 0x88\n\ + lsls r0, 1\n\ + add r0, r8\n\ + adds r0, r5\n\ + movs r1, 0\n\ + str r1, [r0]\n\ + adds r0, r7, 0\n\ + bl ZeroMonData\n\ + bl party_compaction\n\ + bl CalculatePlayerPartyCount\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08041490: .4byte gSaveBlock2\n\ _08041494: .4byte gSaveBlock1\n\ _08041498: .4byte 0x00002b4c\n\ - .syntax divided\n"); + .syntax divided\n"); } void Daycare_SendPokemon_Special() { - Daycare_SendPokemon(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.daycareData); + Daycare_SendPokemon(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.daycareData); } void sub_80417F4(u8 *); void sub_80414C0(struct BoxPokemon * daycare_data) { - u32 second_species; - if((GetBoxMonData(&daycare_data[1], MON_DATA_SPECIES) != 0) && ((second_species = GetBoxMonData(&daycare_data[0], MON_DATA_SPECIES)) == 0)){ - daycare_data[0] = daycare_data[1]; - ZeroBoxMonData(&daycare_data[1]); - memcpy(daycare_data + 2, (u8 *) (daycare_data + 1) + 0x88, 0x38); - *((u32 *)(daycare_data) + 68) = *((u32 *)(daycare_data) + 69); - *((u32 *)(daycare_data) + 69) = second_species; - sub_80417F4((u8 *) (daycare_data + 1) + 0x88); - } + u32 second_species; + if((GetBoxMonData(&daycare_data[1], MON_DATA_SPECIES) != 0) && ((second_species = GetBoxMonData(&daycare_data[0], MON_DATA_SPECIES)) == 0)){ + daycare_data[0] = daycare_data[1]; + ZeroBoxMonData(&daycare_data[1]); + memcpy(daycare_data + 2, (u8 *) (daycare_data + 1) + 0x88, 0x38); + *((u32 *)(daycare_data) + 68) = *((u32 *)(daycare_data) + 69); + *((u32 *)(daycare_data) + 69) = second_species; + sub_80417F4((u8 *) (daycare_data + 1) + 0x88); + } } u8 TryIncrementMonLevel(struct Pokemon *); @@ -251,138 +251,138 @@ extern u16 word_2024E82; void sub_804151C(struct Pokemon * mon) { - s32 i; - u8 r6; - u16 temp; + s32 i; + u8 r6; + u16 temp; - for(i = 0; i < 100; i++){ - if(TryIncrementMonLevel(mon) == FALSE) goto end; + for(i = 0; i < 100; i++){ + if(TryIncrementMonLevel(mon) == FALSE) goto end; - r6 = 1; - while((temp = sub_803B7C8(mon, r6)) != 0){ - r6 = 0; - if(temp == 0xffff){ - DeleteFirstMoveAndGiveMoveToMon(mon, word_2024E82); - } - } - } + r6 = 1; + while((temp = sub_803B7C8(mon, r6)) != 0){ + r6 = 0; + if(temp == 0xffff){ + DeleteFirstMoveAndGiveMoveToMon(mon, word_2024E82); + } + } + } - end: + end: - CalculateMonStats(mon); + CalculateMonStats(mon); } __attribute__((naked)) u16 sub_8041570(struct BoxPokemon * daycare_data, u8 a2){ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - sub sp, 0x68\n\ - adds r5, r0, 0\n\ - lsls r1, 24\n\ - lsrs r4, r1, 24\n\ - lsls r7, r4, 2\n\ - adds r0, r7, r4\n\ - lsls r0, 4\n\ - adds r6, r5, r0\n\ - ldr r1, _08041640 @ =gStringVar1\n\ - adds r0, r6, 0\n\ - bl GetBoxMonNick\n\ - adds r0, r6, 0\n\ - movs r1, 0xB\n\ - bl GetBoxMonData\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - adds r0, r6, 0\n\ - mov r1, sp\n\ - bl sub_803B4B4\n\ - mov r0, sp\n\ - movs r1, 0x38\n\ - bl GetMonData\n\ - cmp r0, 0x64\n\ - beq _080415D8\n\ - mov r0, sp\n\ - movs r1, 0x19\n\ - bl GetMonData\n\ - movs r2, 0x88\n\ - lsls r2, 1\n\ - adds r1, r5, r2\n\ - adds r1, r7\n\ - ldr r1, [r1]\n\ - adds r0, r1\n\ - str r0, [sp, 0x64]\n\ - add r2, sp, 0x64\n\ - mov r0, sp\n\ - movs r1, 0x19\n\ - bl SetMonData\n\ - mov r0, sp\n\ - bl sub_804151C\n\ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + sub sp, 0x68\n\ + adds r5, r0, 0\n\ + lsls r1, 24\n\ + lsrs r4, r1, 24\n\ + lsls r7, r4, 2\n\ + adds r0, r7, r4\n\ + lsls r0, 4\n\ + adds r6, r5, r0\n\ + ldr r1, _08041640 @ =gStringVar1\n\ + adds r0, r6, 0\n\ + bl GetBoxMonNick\n\ + adds r0, r6, 0\n\ + movs r1, 0xB\n\ + bl GetBoxMonData\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + adds r0, r6, 0\n\ + mov r1, sp\n\ + bl sub_803B4B4\n\ + mov r0, sp\n\ + movs r1, 0x38\n\ + bl GetMonData\n\ + cmp r0, 0x64\n\ + beq _080415D8\n\ + mov r0, sp\n\ + movs r1, 0x19\n\ + bl GetMonData\n\ + movs r2, 0x88\n\ + lsls r2, 1\n\ + adds r1, r5, r2\n\ + adds r1, r7\n\ + ldr r1, [r1]\n\ + adds r0, r1\n\ + str r0, [sp, 0x64]\n\ + add r2, sp, 0x64\n\ + mov r0, sp\n\ + movs r1, 0x19\n\ + bl SetMonData\n\ + mov r0, sp\n\ + bl sub_804151C\n\ _080415D8:\n\ - ldr r0, _08041644 @ =gPlayerParty\n\ - movs r1, 0xFA\n\ - lsls r1, 1\n\ - adds r1, r0\n\ - mov r8, r1\n\ - mov r0, r8\n\ - mov r1, sp\n\ - movs r2, 0x64\n\ - bl memcpy\n\ - lsls r0, r4, 3\n\ - subs r0, r4\n\ - lsls r1, r0, 3\n\ - adds r0, r5, r1\n\ - adds r0, 0xC0\n\ - ldrh r0, [r0]\n\ - cmp r0, 0\n\ - beq _08041610\n\ - adds r4, r1, 0\n\ - adds r4, 0xA0\n\ - adds r4, r5, r4\n\ - mov r0, r8\n\ - adds r1, r4, 0\n\ - bl GiveMailToMon2\n\ - adds r0, r4, 0\n\ - bl sub_80417F4\n\ + ldr r0, _08041644 @ =gPlayerParty\n\ + movs r1, 0xFA\n\ + lsls r1, 1\n\ + adds r1, r0\n\ + mov r8, r1\n\ + mov r0, r8\n\ + mov r1, sp\n\ + movs r2, 0x64\n\ + bl memcpy\n\ + lsls r0, r4, 3\n\ + subs r0, r4\n\ + lsls r1, r0, 3\n\ + adds r0, r5, r1\n\ + adds r0, 0xC0\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + beq _08041610\n\ + adds r4, r1, 0\n\ + adds r4, 0xA0\n\ + adds r4, r5, r4\n\ + mov r0, r8\n\ + adds r1, r4, 0\n\ + bl GiveMailToMon2\n\ + adds r0, r4, 0\n\ + bl sub_80417F4\n\ _08041610:\n\ - bl party_compaction\n\ - adds r0, r6, 0\n\ - bl ZeroBoxMonData\n\ - movs r2, 0x88\n\ - lsls r2, 1\n\ - adds r0, r5, r2\n\ - adds r0, r7\n\ - movs r1, 0\n\ - str r1, [r0]\n\ - adds r0, r5, 0\n\ - bl sub_80414C0\n\ - bl CalculatePlayerPartyCount\n\ - mov r0, r9\n\ - add sp, 0x68\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + bl party_compaction\n\ + adds r0, r6, 0\n\ + bl ZeroBoxMonData\n\ + movs r2, 0x88\n\ + lsls r2, 1\n\ + adds r0, r5, r2\n\ + adds r0, r7\n\ + movs r1, 0\n\ + str r1, [r0]\n\ + adds r0, r5, 0\n\ + bl sub_80414C0\n\ + bl CalculatePlayerPartyCount\n\ + mov r0, r9\n\ + add sp, 0x68\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _08041640: .4byte gStringVar1\n\ _08041644: .4byte gPlayerParty\n\ - .syntax divided"); + .syntax divided"); } extern u8 gSpecialVar_0x8004; u16 sub_8041648() { - return sub_8041570(gSaveBlock1.daycareData, gSpecialVar_0x8004); + return sub_8041570(gSaveBlock1.daycareData, gSpecialVar_0x8004); } u8 Daycare_GetLevelAfterSteps(struct BoxPokemon * mon, u32 steps){ - struct BoxPokemon temp = *mon; - u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps; - SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp); - return GetLevelFromBoxMonExp(&temp); + struct BoxPokemon temp = *mon; + u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps; + SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp); + return GetLevelFromBoxMonExp(&temp); } -- cgit v1.2.3 From 619da0f339c4d529de919d0b73b747fa16127d37 Mon Sep 17 00:00:00 2001 From: NieDzejkob Date: Sun, 21 May 2017 19:46:04 +0200 Subject: PlaySE renaming after rebase --- src/battle_anim.c | 14 +++---- src/battle_interface.c | 8 ++-- src/battle_party_menu.c | 16 ++++---- src/berry_tag_screen.c | 4 +- src/bike.c | 2 +- src/braille_puzzles.c | 8 ++-- src/cable_club.c | 4 +- src/clear_save_data_menu.c | 4 +- src/field_control_avatar.c | 8 ++-- src/field_player_avatar.c | 20 +++++----- src/field_special_scene.c | 8 ++-- src/fldeff_cut.c | 4 +- src/fldeff_softboiled.c | 2 +- src/fldeff_sweetscent.c | 2 +- src/intro.c | 2 +- src/item_use.c | 8 ++-- src/link.c | 4 +- src/main_menu.c | 18 ++++----- src/menu.c | 24 ++++++------ src/mystery_event_menu.c | 18 ++++----- src/naming_screen.c | 10 ++--- src/party_menu.c | 4 +- src/player_pc.c | 36 +++++++++--------- src/pokedex.c | 78 +++++++++++++++++++-------------------- src/record_mixing.c | 8 ++-- src/rom4.c | 8 ++-- src/rom6.c | 2 +- src/scrcmd.c | 4 +- src/script_menu.c | 6 +-- src/script_pokemon_util_80F99CC.c | 8 ++-- src/shop.c | 8 ++-- src/sound.c | 8 ++-- src/start_menu.c | 12 +++--- src/starter_choose.c | 2 +- src/text.c | 12 +++--- src/trainer_card.c | 2 +- src/wallclock.c | 4 +- 37 files changed, 195 insertions(+), 195 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index 8ca66f745..bdb34365f 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -673,7 +673,7 @@ static void ScriptCmd_end(void) static void ScriptCmd_playse(void) { gBattleAnimScriptPtr++; - PlaySoundEffect(SCRIPT_READ_16(gBattleAnimScriptPtr)); + PlaySE(SCRIPT_READ_16(gBattleAnimScriptPtr)); gBattleAnimScriptPtr += 2; } @@ -1715,7 +1715,7 @@ static void ScriptCmd_panse_19(void) gBattleAnimScriptPtr++; r4 = SCRIPT_READ_16(gBattleAnimScriptPtr); r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2); - PlaySoundEffect12WithPanning(r4, sub_8076F98(r0)); + PlaySE12WithPanning(r4, sub_8076F98(r0)); gBattleAnimScriptPtr += 3; } @@ -1755,7 +1755,7 @@ static void ScriptCmd_panse_1B(void) gTasks[taskId].data[2] = r4; gTasks[taskId].data[3] = r7; gTasks[taskId].data[4] = panning; - PlaySoundEffect12WithPanning(songNum, panning); + PlaySE12WithPanning(songNum, panning); gAnimSoundTaskCount++; gBattleAnimScriptPtr += 6; } @@ -1917,7 +1917,7 @@ static void ScriptCmd_panse_26(void) gTasks[taskId].data[2] = r6; gTasks[taskId].data[3] = r10; gTasks[taskId].data[4] = r4; - PlaySoundEffect12WithPanning(r8, r4); + PlaySE12WithPanning(r8, r4); gAnimSoundTaskCount++; gBattleAnimScriptPtr += 6; } @@ -1949,7 +1949,7 @@ static void ScriptCmd_panse_27(void) gTasks[taskId].data[2] = r4_2; gTasks[taskId].data[3] = r7; gTasks[taskId].data[4] = r6; - PlaySoundEffect12WithPanning(r9, r6); + PlaySE12WithPanning(r9, r6); gAnimSoundTaskCount++; gBattleAnimScriptPtr += 6; } @@ -1996,7 +1996,7 @@ static void sub_80774FC(u8 taskId) r1 = gTasks[taskId].data[1]; gTasks[taskId].data[3]--; r4 = gTasks[taskId].data[3]; - PlaySoundEffect12WithPanning(r0, r1); + PlaySE12WithPanning(r0, r1); if (r4 == 0) { DestroyTask(taskId); @@ -2034,7 +2034,7 @@ static void sub_80775CC(u8 taskId) gTasks[taskId].data[2]--; if (r0 <= 0) { - PlaySoundEffect12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[1]); + PlaySE12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[1]); DestroyTask(taskId); gAnimSoundTaskCount--; } diff --git a/src/battle_interface.c b/src/battle_interface.c index 827ed4ffc..9938c4b54 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1589,7 +1589,7 @@ u8 sub_8044804(u8 a, const struct UnknownStruct8 *b, u8 c, u8 d) for (i = 0; i < 6; i++) gTasks[taskId].data[3 + i] = sp[i]; gTasks[taskId].data[10] = d; - PlaySoundEffect12WithPanning(SE_TB_START, 0); + PlaySE12WithPanning(SE_TB_START, 0); return taskId; } #else @@ -2169,7 +2169,7 @@ _08044C62:\n\ strh r6, [r0, 0x1C]\n\ movs r0, 0x72\n\ movs r1, 0\n\ - bl PlaySoundEffect12WithPanning\n\ + bl PlaySE12WithPanning\n\ adds r0, r4, 0\n\ add sp, 0x28\n\ pop {r3-r5}\n\ @@ -2356,9 +2356,9 @@ void sub_804507C(struct Sprite *sprite) if (r3 != 0) pan = -64; if (sprite->data7 != 0) - PlaySoundEffect2WithPanning(SE_TB_KARA, pan); + PlaySE2WithPanning(SE_TB_KARA, pan); else - PlaySoundEffect1WithPanning(SE_TB_KON, pan); + PlaySE1WithPanning(SE_TB_KON, pan); sprite->callback = SpriteCallbackDummy; } } diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index 4ee55f0e2..820d16465 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -230,7 +230,7 @@ void SetUpBattlePokemonMenu(u8 a) if (gUnknown_02038473 == 3) { if (GetMonData(&gPlayerParty[sub_806CA38(a)], MON_DATA_IS_EGG)) - PlaySoundEffect(SE_HAZURE); + PlaySE(SE_HAZURE); else { sub_806D5A4(); @@ -239,7 +239,7 @@ void SetUpBattlePokemonMenu(u8 a) } else { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); GetMonNickname(&gPlayerParty[sub_806CA38(a)], gStringVar1); sub_8095050(a, sub_806CA38(a)); SetTaskFuncWithFollowupFunc(a, Task_HandlePopupMenuInput, SetUpBattlePokemonMenu); @@ -247,10 +247,10 @@ void SetUpBattlePokemonMenu(u8 a) break; case 2: if (gUnknown_02038473 == 1) - PlaySoundEffect(SE_HAZURE); + PlaySE(SE_HAZURE); else { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); if (gUnknown_02038473 == 3) { gUnknown_0202E8F4 = 0; @@ -336,19 +336,19 @@ static void Task_HandlePopupMenuInput(u8 taskId) { if (gMain.newAndRepeatedKeys & DPAD_UP) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor(-1); return; } if (gMain.newAndRepeatedKeys & DPAD_DOWN) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor(1); return; } if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); func = PartyMenuGetPopupMenuFunc(gTasks[taskId].data[4], sBattlePartyPopupMenus, sBattlePartyMenuActions, @@ -358,7 +358,7 @@ static void Task_HandlePopupMenuInput(u8 taskId) } if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); Task_BattlePartyMenuCancel(taskId); return; } diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 94f9c5941..511b88c5a 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -245,7 +245,7 @@ static void sub_814640C(u8 taskId) static void sub_8146440(u8 taskId) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = sub_814640C; } @@ -379,7 +379,7 @@ _08146718:\n\ bgt _0814678C\n\ _08146728:\n\ movs r0, 0x5\n\ - bl PlaySoundEffect\n\ + bl PlaySE\n\ mov r2, r8\n\ ldrb r3, [r2, 0x1]\n\ ldrb r4, [r4, 0xC]\n\ diff --git a/src/bike.c b/src/bike.c index 0c154de9c..d7175b5e0 100644 --- a/src/bike.c +++ b/src/bike.c @@ -617,7 +617,7 @@ static void AcroBikeTransition_80E5920(u8 direction) } } playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; - PlaySoundEffect(SE_JITE_PYOKO); + PlaySE(SE_JITE_PYOKO); playerMapObj->mapobj_bit_9 = 1; PlayerSetAnimId(sub_80608A4(direction), 2); } diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 7c6a22547..220e8420c 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -46,7 +46,7 @@ void DoBrailleDigEffect(void) MapGridSetMetatileIdAt(17, 9, 563); MapGridSetMetatileIdAt(18, 9, 3636); DrawWholeMapView(); - PlaySoundEffect(SE_BAN); + PlaySE(SE_BAN); FlagSet(SYS_BRAILLE_DIG); ScriptContext2_Disable(); } @@ -88,7 +88,7 @@ void DoBrailleStrengthEffect(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySoundEffect(SE_BAN); + PlaySE(SE_BAN); FlagSet(SYS_BRAILLE_STRENGTH); ScriptContext2_Disable(); } @@ -134,7 +134,7 @@ void UseFlyAncientTomb_Finish(void) MapGridSetMetatileIdAt(15, 27, 563); MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); - PlaySoundEffect(SE_BAN); + PlaySE(SE_BAN); FlagSet(SYS_BRAILLE_FLY); ScriptContext2_Disable(); } @@ -159,7 +159,7 @@ void Task_BrailleWait(u8 taskId) if (BrailleWait_CheckButtonPress() != FALSE) { MenuZeroFillScreen(); - PlaySoundEffect(5); + PlaySE(5); data[0] = 2; } else diff --git a/src/cable_club.c b/src/cable_club.c index 1f2c6376a..45fb347f3 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -89,7 +89,7 @@ static void sub_80830E4(u8 taskId) { if (gMain.heldKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); sub_8007F4C(); gTasks[(u32) taskId].func = sub_8083188; } @@ -153,7 +153,7 @@ _08083158:\n\ cmp r0, 0\n\ beq _08083178\n\ movs r0, 0x5\n\ - bl PlaySoundEffect\n\ + bl PlaySE\n\ bl sub_8007F4C\n\ ldr r0, _08083180 @ =gTasks\n\ lsls r1, r6, 2\n\ diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c index 301e169ce..21cd643ef 100644 --- a/src/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c @@ -59,13 +59,13 @@ static void Task_ProcessMenuInput(u8 taskId) switch (ProcessMenuInputNoWrap_()) { case 0: - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); sub_8071F40(gSystemText_ClearingData); gTasks[taskId].func = Task_ClearSaveData; break; case -1: case 1: - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); DestroyTask(taskId); SetMainCallback2(CB2_SoftReset); break; diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index e51ae24b6..c5f2c08e7 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -214,7 +214,7 @@ int sub_8068024(struct FieldInput *input) return TRUE; if (input->pressedStartButton) { - PlaySoundEffect(SE_WIN_OPEN); + PlaySE(SE_WIN_OPEN); sub_8071310(); return TRUE; } @@ -261,7 +261,7 @@ static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) && script != gUnknown_0815F36C && script != gUnknown_0815F43A && script != gUnknown_081A0009) - PlaySoundEffect(5); + PlaySE(5); ScriptContext1_SetupScript(script); return TRUE; @@ -828,7 +828,7 @@ int dive_warp(struct MapPosition *position, u16 b) { walkrun_find_lowest_active_bit_in_bitfield(); sp13E_warp_to_last_warp(); - PlaySoundEffect(SE_W291); + PlaySE(SE_W291); return TRUE; } } @@ -838,7 +838,7 @@ int dive_warp(struct MapPosition *position, u16 b) { walkrun_find_lowest_active_bit_in_bitfield(); sp13E_warp_to_last_warp(); - PlaySoundEffect(SE_W291); + PlaySE(SE_W291); return TRUE; } } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index c0a71fcf4..6a0fe1dce 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -871,7 +871,7 @@ void PlayerTurnInPlace(u8 direction) void PlayerJumpLedge(u8 direction) { - PlaySoundEffect(SE_DANSA); + PlaySE(SE_DANSA); PlayerSetAnimId(GetJumpLedgeAnimId(direction), 8); } @@ -902,31 +902,31 @@ void sub_8059534(u8 a) void sub_805954C(u8 a) { - PlaySoundEffect(SE_JITE_PYOKO); + PlaySE(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060A5C(a), 1); } void sub_8059570(u8 a) { - PlaySoundEffect(SE_JITE_PYOKO); + PlaySE(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060A88(a), 2); } void sub_8059594(u8 a) { - PlaySoundEffect(SE_JITE_PYOKO); + PlaySE(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060AB4(a), 8); } void sub_80595B8(u8 direction) { - PlaySoundEffect(SE_JITE_PYOKO); + PlaySE(SE_JITE_PYOKO); PlayerSetAnimId(sub_8060878(direction), 1); } void sub_80595DC(u8 direction) { - PlaySoundEffect(SE_WALL_HIT); + PlaySE(SE_WALL_HIT); PlayerSetAnimId(sub_8060AE0(direction), 2); } @@ -959,7 +959,7 @@ static void PlayCollisionSoundIfNotFacingWarp(u8 a) if (MetatileBehavior_IsWarpDoor(MapGridGetMetatileBehaviorAt(x, y))) return; } - PlaySoundEffect(SE_WALL_HIT); + PlaySE(SE_WALL_HIT); } } @@ -1292,7 +1292,7 @@ u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c) gUnknown_0202FF84[2] = c->elevation; gUnknown_0202FF84[3] = gSprites[c->spriteId].oam.priority; FieldEffectStart(10); - PlaySoundEffect(SE_W070); + PlaySE(SE_W070); task->data[0]++; } return 0; @@ -1334,7 +1334,7 @@ u8 sub_805A000(struct Task *task, struct MapObject *mapObject) gPlayerAvatar.unk6 = 1; if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) { - PlaySoundEffect(SE_DANSA); + PlaySE(SE_DANSA); FieldObjectSetSpecialAnim(mapObject, sub_806084C(mapObject->mapobj_unk_18)); task->data[1]++; if (task->data[1] > 1) @@ -1370,7 +1370,7 @@ u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject) task->data[1] = mapObject->placeholder18; gPlayerAvatar.unk6 = 1; ScriptContext2_Enable(); - PlaySoundEffect(SE_TK_WARPIN); + PlaySE(SE_TK_WARPIN); return 1; } diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 6282ea813..59280b743 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -157,7 +157,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1] = 0; // reset the timer. data[2] = CreateTask(Task_Truck1, 0xA); data[0] = 1; // run the next case. - PlaySoundEffect(SE_TRACK_MOVE); + PlaySE(SE_TRACK_MOVE); } break; case 1: @@ -177,7 +177,7 @@ void Task_HandleTruckSequence(u8 taskId) DestroyTask(data[2]); data[3] = CreateTask(Task_Truck2, 0xA); data[0] = 3; - PlaySoundEffect(SE_TRACK_STOP); + PlaySE(SE_TRACK_STOP); } break; case 3: @@ -192,7 +192,7 @@ void Task_HandleTruckSequence(u8 taskId) data[1]++; if (data[1] == 90) { - PlaySoundEffect(SE_TRACK_HAIK); + PlaySE(SE_TRACK_HAIK); data[1] = 0; data[0] = 5; } @@ -205,7 +205,7 @@ void Task_HandleTruckSequence(u8 taskId) MapGridSetMetatileIdAt(11, 9, 528); MapGridSetMetatileIdAt(11, 10, 536); DrawWholeMapView(); - PlaySoundEffect(SE_TRACK_DOOR); + PlaySE(SE_TRACK_DOOR); DestroyTask(taskId); ScriptContext2_Disable(); } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 39e438620..77c8752d1 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -122,7 +122,7 @@ bool8 FldEff_CutGrass(void) u8 tileBehavior; u8 i, j; // not in for loop? - for(i = 0, PlaySoundEffect(SE_W015), PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); i < 3; i++) + for(i = 0, PlaySE(SE_W015), PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); i < 3; i++) { y = i - 1 + gUnknown_0203923C.y; for(j = 0; j < 3; j++) @@ -294,7 +294,7 @@ void sub_80A2AB8(void) void sub_80A2B00(void) { - PlaySoundEffect(0x80); + PlaySE(0x80); FieldEffectActiveListRemove(2); EnableBothScriptContexts(); } diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index f5372b53b..d0ee712af 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -122,7 +122,7 @@ static void sub_8133D50(u8 taskId) { return; } - PlaySoundEffect(SE_KAIFUKU); + PlaySE(SE_KAIFUKU); EWRAM_1C000.unk5 = gSprites[EWRAM_1000.unk1].data0; diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 8d23a41cb..4e8214b07 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -49,7 +49,7 @@ static void sub_812C01C(void) { u8 taskId; - PlaySoundEffect(0xEC); + PlaySE(0xEC); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, 0x1F); taskId = CreateTask(sub_812C084, 0); gTasks[taskId].data[0] = 0; diff --git a/src/intro.c b/src/intro.c index 00c9894cf..ea6edba3d 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1419,7 +1419,7 @@ static void Task_IntroPokemonBattle(u8 taskId) gSprites[spriteId].invisible = 1; } if (gIntroFrameCounter == 800) - PlaySoundEffect(SE_OP_BASYU); + PlaySE(SE_OP_BASYU); if (gIntroFrameCounter == 850) BeginNormalPaletteFade(0xFFFFFFFF, 4, 0, 0x10, 0xFFFF); if (gIntroFrameCounter == 946) diff --git a/src/item_use.c b/src/item_use.c index 5d0282844..4047ade5c 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -362,7 +362,7 @@ void RunItemfinderResults(u8 taskId) } return; } - PlaySoundEffect(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder. + PlaySE(SE_DAUGI); // play the itemfinder jingle 4 times before executing the itemfinder. data[4]++; } data[3] = (data[3] + 1) & 0x1F; @@ -943,7 +943,7 @@ void ItemUseOutOfBattle_TMHM(u8 taskId) void sub_80C9EE4(u8 taskId) { - PlaySoundEffect(2); + PlaySE(2); gTasks[taskId].func = sub_80C9F10; } @@ -1002,7 +1002,7 @@ void sub_80CA098(u8 taskId) { if(++gTasks[taskId].data[15] > 7) { - PlaySoundEffect(0x75); + PlaySE(0x75); DisplayItemMessageOnField(taskId, gStringVar4, CleanUpItemMenuMessage, 1); } } @@ -1095,7 +1095,7 @@ void sub_80CA2BC(u8 taskId) { if(++gTasks[taskId].data[15] > 7) { - PlaySoundEffect(1); + PlaySE(1); RemoveBagItem(gScriptItemId, 1); DisplayItemMessageOnField(taskId, sub_803F378(gScriptItemId), sub_80CA294, 1); } diff --git a/src/link.c b/src/link.c index d06e71c03..224c0ae1c 100644 --- a/src/link.c +++ b/src/link.c @@ -1262,10 +1262,10 @@ static void CB2_PrintErrorMessage(void) break; case 30: case 60: - PlaySoundEffect(SE_BOO); + PlaySE(SE_BOO); break; case 90: - PlaySoundEffect(SE_BOO); + PlaySE(SE_BOO); break; } diff --git a/src/main_menu.c b/src/main_menu.c index c1e43e1a8..50fefc471 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -446,13 +446,13 @@ bool8 MainMenuProcessKeyInput(u8 taskId) { if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0x0000); gTasks[taskId].func = Task_MainMenuPressedA; } else if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0xFFFF); REG_WIN0H = WIN_RANGE(0, 240); REG_WIN0V = WIN_RANGE(0, 160); @@ -966,14 +966,14 @@ static void Task_NewGameSpeech16(u8 taskId) { case MALE: sub_8072DEC(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); gSaveBlock2.playerGender = MALE; MenuZeroFillWindowRect(2, 4, 8, 9); gTasks[taskId].func = Task_NewGameSpeech19; break; case FEMALE: sub_8072DEC(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); gSaveBlock2.playerGender = FEMALE; MenuZeroFillWindowRect(2, 4, 8, 9); gTasks[taskId].func = Task_NewGameSpeech19; @@ -1069,19 +1069,19 @@ static void Task_NewGameSpeech21(u8 taskId) case 3: case 4: sub_8072DEC(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(2, 1, 22, 12); SetPresetPlayerName(selection); gTasks[taskId].func = Task_NewGameSpeech23; break; case 0: //NEW NAME - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = Task_NewGameSpeech22; break; case -1: //B button sub_8072DEC(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(2, 1, 22, 12); gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu break; @@ -1122,7 +1122,7 @@ static void Task_NewGameSpeech25(u8 taskId) switch (ProcessMenuInputNoWrap_()) { case 0: //YES - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(2, 1, 8, 7); gSprites[gTasks[taskId].data[TD_TRAINER_SPRITE_ID]].oam.objMode = ST_OAM_OBJ_BLEND; StartSpriteFadeOut(taskId, 2); @@ -1131,7 +1131,7 @@ static void Task_NewGameSpeech25(u8 taskId) break; case -1: //B button case 1: //NO - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(2, 1, 8, 7); gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu break; diff --git a/src/menu.c b/src/menu.c index 84093b9b7..ba98ff057 100644 --- a/src/menu.c +++ b/src/menu.c @@ -52,7 +52,7 @@ const struct MenuAction gMenuYesNoItems[] = void CloseMenu(void) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillScreen(); sub_8064E2C(); ScriptContext2_Disable(); @@ -270,7 +270,7 @@ s8 ProcessMenuInput(void) { if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); if (gMenu.menu_field_7) sub_8072DEC(); return gMenu.cursorPos; @@ -285,13 +285,13 @@ s8 ProcessMenuInput(void) if (gMain.newKeys & DPAD_UP) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor(-1); return -2; } else if (gMain.newKeys & DPAD_DOWN) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor(1); return -2; } @@ -305,7 +305,7 @@ s8 ProcessMenuInputNoWrap(void) if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); if (gMenu.menu_field_7) sub_8072DEC(); return gMenu.cursorPos; @@ -321,13 +321,13 @@ s8 ProcessMenuInputNoWrap(void) if (gMain.newKeys & DPAD_UP) { if (cursorPos != MoveMenuCursorNoWrap(-1)) - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); return -2; } else if (gMain.newKeys & DPAD_DOWN) { if (cursorPos != MoveMenuCursorNoWrap(1)) - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); return -2; } @@ -520,7 +520,7 @@ s8 sub_80727CC(void) { if (gMenu.menu_field_7) sub_8072DEC(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); return GetMenuCursorPos(); } @@ -533,25 +533,25 @@ s8 sub_80727CC(void) if (gMain.newKeys & DPAD_UP) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor4(-gMenu.width); return -2; } else if (gMain.newKeys & DPAD_DOWN) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor4(gMenu.width); return -2; } else if (gMain.newKeys & DPAD_LEFT) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor4(-1); return -2; } else if (gMain.newKeys & DPAD_RIGHT) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MoveMenuCursor4(1); return -2; } diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index c257e7573..97deb348c 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -113,13 +113,13 @@ static void CB2_MysteryEventMenu(void) case 3: if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4) { - PlaySoundEffect(SE_PIN); + PlaySE(SE_PIN); sub_8072044(gSystemText_LoadEventPressA); gMain.state++; } if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); CloseLink(); gMain.state = 15; } @@ -139,7 +139,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); sub_8007F4C(); MenuDrawTextWindow(6, 5, 23, 8); MenuPrint(gSystemText_LoadingEvent, 7, 6); @@ -147,7 +147,7 @@ static void CB2_MysteryEventMenu(void) } else if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); CloseLink(); gMain.state = 15; } @@ -185,7 +185,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); CloseLink(); gMain.state = 15; break; @@ -199,7 +199,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); sub_8007F4C(); MenuDrawTextWindow(6, 5, 23, 8); MenuPrint(gSystemText_LoadingEvent, 7, 6); @@ -207,7 +207,7 @@ static void CB2_MysteryEventMenu(void) } else if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); CloseLink(); gMain.state = 15; } @@ -264,7 +264,7 @@ static void CB2_MysteryEventMenu(void) } if (gMain.newKeys & B_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); CloseLink(); gMain.state = 15; break; @@ -313,7 +313,7 @@ static void CB2_MysteryEventMenu(void) case 14: if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); gMain.state++; } break; diff --git a/src/naming_screen.c b/src/naming_screen.c index 531d12bdd..b14c690e2 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -453,7 +453,7 @@ static bool8 MainState_StartPageSwap(struct Task *task) StartPageSwapAnim(); sub_80B6888(1); sub_80B6460(0, 0, 1); - PlaySoundEffect(SE_WIN_OPEN); + PlaySE(SE_WIN_OPEN); namingScreenData.state = MAIN_STATE_WAIT_PAGE_SWAP; return FALSE; } @@ -607,7 +607,7 @@ static bool8 KeyboardKeyHandler_OK(u8 event) sub_80B6460(2, 1, 0); if (event == KBEVENT_PRESSED_A) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); namingScreenData.state = MAIN_STATE_6; return TRUE; } @@ -1370,7 +1370,7 @@ static void DeleteTextCharacter(void) var2 = GetKeyRoleAtCursorPos(); if (var2 == 0 || var2 == 2) sub_80B6460(1, 0, 1); - PlaySoundEffect(SE_BOWA); + PlaySE(SE_BOWA); } static bool8 sub_80B7004(void) @@ -1391,7 +1391,7 @@ static bool8 sub_80B7004(void) else AddTextCharacter(ch); sub_80B7960(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); if (r4) { if (GetPreviousTextCaretPosition() == namingScreenData.template->maxChars - 1) @@ -1422,7 +1422,7 @@ static void sub_80B7090(void) // DoInput? sub_80B72A4(r4, r5); } sub_80B7960(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } static bool8 sub_80B7104(void) diff --git a/src/party_menu.c b/src/party_menu.c index aebfd3307..d473eae6d 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -109,7 +109,7 @@ void sub_8070088(u8 taskId) gUnknown_0202E8F4 = 1; MenuZeroFillWindowRect(3, 14, 26, 19); - PlaySoundEffect(SE_KAIFUKU); + PlaySE(SE_KAIFUKU); PartyMenuUpdateLevelOrStatus(unk_201C000.pokemon, unk_201C000.var05); task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle()][unk_201C000.var05], 9); @@ -214,7 +214,7 @@ _08070134:\n\ movs r3, 0x13\n\ bl MenuZeroFillWindowRect\n\ movs r0, 0x1\n\ - bl PlaySoundEffect\n\ + bl PlaySE\n\ ldr r0, [r4]\n\ ldrb r1, [r4, 0x5]\n\ bl PartyMenuUpdateLevelOrStatus\n\ diff --git a/src/player_pc.c b/src/player_pc.c index a31ce0803..f0f0709b1 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -129,24 +129,24 @@ void PlayerPCProcessMenuInput(u8 taskId) { if (gMain.newAndRepeatedKeys & 0x40) { - PlaySoundEffect(5); + PlaySE(5); MoveMenuCursor(-1); } else if (gMain.newAndRepeatedKeys & 0x80) { - PlaySoundEffect(5); + PlaySE(5); MoveMenuCursor(1); } else if (gMain.newKeys & 0x1) { sub_8072DEC(); - PlaySoundEffect(5); + PlaySE(5); gUnknown_08406298[gUnknown_02039314[GetMenuCursorPos()]].func(taskId); } else if (gMain.newKeys & 0x2) { sub_8072DEC(); - PlaySoundEffect(5); + PlaySE(5); gUnknown_08406298[gUnknown_030007B4[gUnknown_02039314 - 1]].func(taskId); } } @@ -222,25 +222,25 @@ void ItemStorageMenuProcessInput(u8 var) { if (gMain.newAndRepeatedKeys & 0x40) { - PlaySoundEffect(5); + PlaySE(5); MoveMenuCursor(-1); ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]); } else if (gMain.newAndRepeatedKeys & 0x80) { - PlaySoundEffect(5); + PlaySE(5); MoveMenuCursor(1); ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]); } else if (gMain.newKeys & 0x1) { - PlaySoundEffect(5); + PlaySE(5); gUnknown_084062C0[GetMenuCursorPos()].func(var); } else if (gMain.newKeys & 0x2) { sub_8072DEC(); - PlaySoundEffect(5); + PlaySE(5); gUnknown_084062C0[3].func(var); } } @@ -353,7 +353,7 @@ void sub_813A280(u8 taskId) { if(data[0]) { - PlaySoundEffect(5); + PlaySE(5); data[0] = MoveMenuCursor(-1); var = data[1] + data[0]; if (!data[9]) @@ -372,7 +372,7 @@ void sub_813A280(u8 taskId) { if (!data[1]) return; - PlaySoundEffect(5); + PlaySE(5); data[1]--; sub_813AE0C(taskId); // probably further down @@ -384,7 +384,7 @@ void sub_813A280(u8 taskId) { if(data[0] != data[4] - 1) { - PlaySoundEffect(5); + PlaySE(5); data[0] = MoveMenuCursor(1); var = data[1] + data[0]; @@ -398,7 +398,7 @@ void sub_813A280(u8 taskId) } else if(data[1] + data[0] != data[2]) { - PlaySoundEffect(5); + PlaySE(5); data[1]++; sub_813AE0C(taskId); @@ -412,7 +412,7 @@ void sub_813A280(u8 taskId) { if (data[0] + data[1] != data[2]) { - PlaySoundEffect(5); + PlaySE(5); data[9] = 1; data[8] = data[1] + data[0]; sub_813AD58(0xFFF7); @@ -422,14 +422,14 @@ void sub_813A280(u8 taskId) } else // _0813A3E8 { - PlaySoundEffect(5); // merging? + PlaySE(5); // merging? sub_813AA30(taskId, 0); sub_813AE0C(taskId); } } else if(gMain.newKeys & A_BUTTON) { - PlaySoundEffect(5); + PlaySE(5); if(!data[9]) { if(data[1] + data[0] != data[2]) @@ -449,7 +449,7 @@ void sub_813A280(u8 taskId) } else if(gMain.newKeys & B_BUTTON) { - PlaySoundEffect(5); + PlaySE(5); if(!data[9]) { sub_8072DEC(); @@ -554,7 +554,7 @@ void HandleQuantityRolling(u8 taskId) } else if(gMain.newKeys & A_BUTTON) // confirm quantity. { - PlaySoundEffect(5); + PlaySE(5); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); if(!data[6]) @@ -564,7 +564,7 @@ void HandleQuantityRolling(u8 taskId) } else if(gMain.newKeys & B_BUTTON) // cancel quantity. { - PlaySoundEffect(5); + PlaySE(5); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); sub_80F98DC(0); sub_80F98DC(1); diff --git a/src/pokedex.c b/src/pokedex.c index 688cae9e9..5ea1f9938 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -361,7 +361,7 @@ void Task_PokedexMainScreen(u8 taskId) 0, 0, 0x10, 0); gSprites[gPokedexView->unk626].callback = sub_808EDB8; gTasks[taskId].func = sub_808CA64; - PlaySoundEffect(SE_PIN); + PlaySE(SE_PIN); } else if (gMain.newKeys & START_BUTTON) { @@ -370,11 +370,11 @@ void Task_PokedexMainScreen(u8 taskId) gPokedexView->menuIsOpen = 1; gPokedexView->menuCursorPos = 0; gTasks[taskId].func = Task_PokedexMainScreenMenu; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else if (gMain.newKeys & SELECT_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].data[0] = sub_8091E3C(); gPokedexView->unk64F = 0; @@ -383,13 +383,13 @@ void Task_PokedexMainScreen(u8 taskId) gPokedexView->unk614 = gPokedexView->dexMode; gPokedexView->unk618 = gPokedexView->dexOrder; gTasks[taskId].func = sub_808CB8C; - PlaySoundEffect(SE_PC_LOGON); + PlaySE(SE_PC_LOGON); } else if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ClosePokedex; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); } else { @@ -444,7 +444,7 @@ void Task_PokedexMainScreenMenu(u8 taskId) case 3: //CLOSE POKEDEX BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ClosePokedex; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); break; } } @@ -454,17 +454,17 @@ void Task_PokedexMainScreenMenu(u8 taskId) { gPokedexView->menuIsOpen = 0; gTasks[taskId].func = Task_PokedexMainScreen; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_UP) && gPokedexView->menuCursorPos != 0) { gPokedexView->menuCursorPos--; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && gPokedexView->menuCursorPos <= 2) { gPokedexView->menuCursorPos++; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } } } @@ -562,7 +562,7 @@ void Task_PokedexResultsScreen(u8 taskId) gSprites[gPokedexView->unk626].callback = sub_808EDB8; BeginNormalPaletteFade(~a, 0, 0, 0x10, 0); gTasks[taskId].func = sub_808D118; - PlaySoundEffect(SE_PIN); + PlaySE(SE_PIN); } else if (gMain.newKeys & START_BUTTON) { @@ -570,7 +570,7 @@ void Task_PokedexResultsScreen(u8 taskId) gPokedexView->menuIsOpen = 1; gPokedexView->menuCursorPos = 0; gTasks[taskId].func = Task_PokedexResultsScreenMenu; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else if (gMain.newKeys & SELECT_BUTTON) { @@ -578,13 +578,13 @@ void Task_PokedexResultsScreen(u8 taskId) gTasks[taskId].data[0] = sub_8091E3C(); gPokedexView->unk64F = 0; gTasks[taskId].func = sub_808CB8C; - PlaySoundEffect(SE_PC_LOGON); + PlaySE(SE_PC_LOGON); } else if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_PokedexResultsScreenReturnToMainScreen; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); } else { @@ -635,12 +635,12 @@ void Task_PokedexResultsScreenMenu(u8 taskId) case 3: //BACK TO POKEDEX BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_PokedexResultsScreenReturnToMainScreen; - PlaySoundEffect(SE_TRACK_DOOR); + PlaySE(SE_TRACK_DOOR); break; case 4: //CLOSE POKEDEX BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_PokedexResultsScreenExitPokedex; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); break; } } @@ -650,17 +650,17 @@ void Task_PokedexResultsScreenMenu(u8 taskId) { gPokedexView->menuIsOpen = 0; gTasks[taskId].func = Task_PokedexResultsScreen; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_UP) && gPokedexView->menuCursorPos) { gPokedexView->menuCursorPos--; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else if ((gMain.newAndRepeatedKeys & DPAD_DOWN) && gPokedexView->menuCursorPos <= 3) { gPokedexView->menuCursorPos++; - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } } } @@ -1371,7 +1371,7 @@ u16 sub_808E48C(u16 a, u16 b) gPokedexView->unk62C += (a - r6) * 16; sub_808E82C(); sub_808E0CC(a, 0xE); - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); goto _0808E5A2; } //_0808E53C @@ -1387,7 +1387,7 @@ u16 sub_808E48C(u16 a, u16 b) gPokedexView->unk62C += (a - r6) * 16; sub_808E82C(); sub_808E0CC(a, 0xE); - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); goto _0808E5A2; _0808E5A2: @@ -1402,7 +1402,7 @@ u16 sub_808E48C(u16 a, u16 b) sub_808E398(2, a); //goto _0808E60E sub_808DBE8(2, a, b); - PlaySoundEffect(SE_Z_SCROLL); + PlaySE(SE_Z_SCROLL); } //_0808E5E4 else @@ -1412,7 +1412,7 @@ u16 sub_808E48C(u16 a, u16 b) sub_808E398(1, a); //_0808E60E sub_808DBE8(1, a, b); - PlaySoundEffect(SE_Z_SCROLL); + PlaySE(SE_Z_SCROLL); } //_0808E60E goto _0808E5A2; @@ -1511,7 +1511,7 @@ _0808E4E0:\n\ movs r1, 0xE\n\ bl sub_808E0CC\n\ movs r0, 0x6D\n\ - bl PlaySoundEffect\n\ + bl PlaySE\n\ b _0808E5A2\n\ .align 2, 0\n\ _0808E52C: .4byte gMain\n\ @@ -1566,7 +1566,7 @@ _0808E55A:\n\ movs r1, 0xE\n\ bl sub_808E0CC\n\ movs r0, 0x6D\n\ - bl PlaySoundEffect\n\ + bl PlaySE\n\ _0808E5A2:\n\ mov r0, r10\n\ cmp r0, 0\n\ @@ -1623,7 +1623,7 @@ _0808E60E:\n\ adds r2, r4, 0\n\ bl sub_808DBE8\n\ movs r0, 0x6C\n\ - bl PlaySoundEffect\n\ + bl PlaySE\n\ b _0808E5A2\n\ .align 2, 0\n\ _0808E620: .4byte gPokedexView\n\ @@ -2335,13 +2335,13 @@ void Task_PageScreenProcessInput(u8 taskId) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = sub_808F888; - PlaySoundEffect(SE_Z_SCROLL); + PlaySE(SE_Z_SCROLL); } else if (gMain.newKeys & B_BUTTON) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); gTasks[taskId].func = Task_ClosePageScreen; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); } else if (gMain.newKeys & A_BUTTON) { @@ -2353,21 +2353,21 @@ void Task_PageScreenProcessInput(u8 taskId) case AREA_SCREEN: BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gTasks[taskId].func = Task_InitAreaScreenMultistep; - PlaySoundEffect(SE_PIN); + PlaySE(SE_PIN); break; case CRY_SCREEN: BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gTasks[taskId].func = Task_InitCryScreenMultistep; - PlaySoundEffect(SE_PIN); + PlaySE(SE_PIN); break; case SIZE_SCREEN: if (!gUnknown_0202FFBC->owned) - PlaySoundEffect(SE_HAZURE); + PlaySE(SE_HAZURE); else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gTasks[taskId].func = Task_InitSizeScreenMultistep; - PlaySoundEffect(SE_PIN); + PlaySE(SE_PIN); } break; } @@ -2378,7 +2378,7 @@ void Task_PageScreenProcessInput(u8 taskId) { gPokedexView->selectedScreen--; sub_8090584(gPokedexView->selectedScreen, 0xD); - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); } else if (((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) @@ -2386,7 +2386,7 @@ void Task_PageScreenProcessInput(u8 taskId) { gPokedexView->selectedScreen++; sub_8090584(gPokedexView->selectedScreen, 0xD); - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); } } @@ -2581,7 +2581,7 @@ void Task_CryScreenProcessInput(u8 taskId) m4aMPlayContinue(&gMPlay_BGM); gPokedexView->unk64F = 1; gTasks[taskId].func = sub_808FFBC; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); } else if ((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) @@ -2590,20 +2590,20 @@ void Task_CryScreenProcessInput(u8 taskId) m4aMPlayContinue(&gMPlay_BGM); gPokedexView->unk64F = 2; gTasks[taskId].func = sub_808FFBC; - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); } else if ((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { if (!gUnknown_0202FFBC->owned) - PlaySoundEffect(SE_HAZURE); + PlaySE(SE_HAZURE); else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); m4aMPlayContinue(&gMPlay_BGM); gPokedexView->unk64F = 3; gTasks[taskId].func = sub_808FFBC; - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); } } } @@ -2737,7 +2737,7 @@ void Task_SizeScreenProcessInput(u8 taskId) BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gPokedexView->unk64F = 1; gTasks[taskId].func = sub_8090498; - PlaySoundEffect(SE_PC_OFF); + PlaySE(SE_PC_OFF); } //_08090430 else if ((gMain.newKeys & DPAD_LEFT) @@ -2746,7 +2746,7 @@ void Task_SizeScreenProcessInput(u8 taskId) BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); gPokedexView->unk64F = 2; gTasks[taskId].func = sub_8090498; - PlaySoundEffect(SE_Z_PAGE); + PlaySE(SE_Z_PAGE); } } diff --git a/src/record_mixing.c b/src/record_mixing.c index f8c684161..58722010f 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -94,7 +94,7 @@ void Task_RecordMixing_SoundEffect(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 50) { - PlaySoundEffect(SE_W213); + PlaySE(SE_W213); gTasks[taskId].data[0] = 0; } } @@ -128,7 +128,7 @@ void Task_RecordMixing_Main(u8 taskId) case 2: taskData[10] = CreateTask(sub_80BA00C, 10); taskData[TD_STATE] = 3; - PlaySoundEffect(SE_W226); + PlaySE(SE_W226); break; case 3: // wait for sub_80BA00C if (!gTasks[taskData[10]].isActive) @@ -187,14 +187,14 @@ void sub_80B95F0(u8 taskId) { if (players == sub_800820C()) { - PlaySoundEffect(0x15); + PlaySE(0x15); task->data[TD_STATE] = 201; task->data[12] = 0; } } else { - PlaySoundEffect(0x16); + PlaySE(0x16); task->data[TD_STATE] = 301; } break; diff --git a/src/rom4.c b/src/rom4.c index 9ed08aa7f..79ac6d769 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -2203,28 +2203,28 @@ void sub_80557E8(void) void sub_80557F4(void) { - PlaySoundEffect(SE_WIN_OPEN); + PlaySE(SE_WIN_OPEN); sub_8071310(); ScriptContext2_Enable(); } void sub_8055808(u8 *script) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); ScriptContext1_SetupScript(script); ScriptContext2_Enable(); } void sub_8055824(void) { - PlaySoundEffect(SE_WIN_OPEN); + PlaySE(SE_WIN_OPEN); ScriptContext1_SetupScript(TradeRoom_PromptToCancelLink); ScriptContext2_Enable(); } void sub_8055840(u8 *script) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); ScriptContext1_SetupScript(script); ScriptContext2_Enable(); } diff --git a/src/rom6.c b/src/rom6.c index a8c489e70..a2b52c9aa 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -150,7 +150,7 @@ int FldEff_RockSmash(void) static void sub_810B58C(void) { - PlaySoundEffect(SE_W088); + PlaySE(SE_W088); FieldEffectActiveListRemove(0x25); EnableBothScriptContexts(); } diff --git a/src/scrcmd.c b/src/scrcmd.c index fa3467d22..136181bd3 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -807,7 +807,7 @@ bool8 ScrCmd_countpokemon(struct ScriptContext *ctx) bool8 ScrCmd_playsfx(struct ScriptContext *ctx) { - PlaySoundEffect(ScriptReadHalfword(ctx)); + PlaySE(ScriptReadHalfword(ctx)); return FALSE; } @@ -1787,7 +1787,7 @@ bool8 ScrCmd_setdooropened(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); x += 7; y += 7; - PlaySoundEffect(sub_8058790(x, y)); + PlaySE(sub_8058790(x, y)); FieldAnimateDoorOpen(x, y); return FALSE; } diff --git a/src/script_menu.c b/src/script_menu.c index 38f7f0af5..eba438397 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -672,7 +672,7 @@ void sub_80B52B4(u8 taskId) { if (!gTasks[taskId].data[4]) { - PlaySoundEffect(5); + PlaySE(5); gScriptResult = 127; } else @@ -770,7 +770,7 @@ void task_yes_no_maybe(u8 taskId) return; case -1: case 1: - PlaySoundEffect(5); + PlaySE(5); gScriptResult = 0; break; case 0: @@ -835,7 +835,7 @@ void sub_80B5684(u8 taskId) { if (!gTasks[taskId].data[4]) { - PlaySoundEffect(5); + PlaySE(5); gScriptResult = 127; } else diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index 2efc0e2c6..ce62f2abb 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -169,13 +169,13 @@ void sub_80F9C6C(u8 var) switch(sub_806BD80(var)) { case 1: - PlaySoundEffect(5); + PlaySE(5); gUnknown_02038694 = sub_806CA38(var); gSpecialVar_0x8004 = gUnknown_02038694; sub_8123138(var); break; case 2: - PlaySoundEffect(5); + PlaySE(5); gUnknown_02038694 = 0xFF; gSpecialVar_0x8004 = 0xFF; sub_8123138(var); @@ -268,13 +268,13 @@ void sub_80F9E64(u8 var) switch(sub_806BD80(var)) { case 1: - PlaySoundEffect(5); + PlaySE(5); gSpecialVar_0x8004 = sub_806CA38(var); gSpecialVar_0x8005 = sub_8040574(&gPlayerParty[gSpecialVar_0x8004]); sub_8123138(var); break; case 2: - PlaySoundEffect(5); + PlaySE(5); gSpecialVar_0x8004 = 0xFF; sub_8123138(var); } diff --git a/src/shop.c b/src/shop.c index 27aa5b335..780dff02a 100644 --- a/src/shop.c +++ b/src/shop.c @@ -106,7 +106,7 @@ void sub_80B2E38(u8 var) { if(gUnknown_03000708.unk9) { - PlaySoundEffect(0x5); + PlaySE(0x5); gUnknown_03000708.unk9 = MoveMenuCursor(-1); } } @@ -114,13 +114,13 @@ void sub_80B2E38(u8 var) { if(gUnknown_03000708.unk9 != gUnknown_03000708.unkA) { - PlaySoundEffect(0x5); + PlaySE(0x5); gUnknown_03000708.unk9 = MoveMenuCursor(1); } } else if (gMain.newKeys & 1) { - PlaySoundEffect(0x5); + PlaySE(0x5); if(!gUnknown_03000708.unkC) { gUnknown_083CC6D0[gUnknown_083CC6E8[gUnknown_03000708.unk9]].func(local); @@ -132,7 +132,7 @@ void sub_80B2E38(u8 var) } else if(gMain.newKeys & 2) { - PlaySoundEffect(0x5); + PlaySE(0x5); HandleShopMenuQuit(local); } } diff --git a/src/sound.c b/src/sound.c index 897b13ddf..ed69ca01d 100644 --- a/src/sound.c +++ b/src/sound.c @@ -521,12 +521,12 @@ void PlayBGM(u16 songNum) m4aSongNumStart(songNum); } -void PlaySoundEffect(u16 songNum) +void PlaySE(u16 songNum) { m4aSongNumStart(songNum); } -void PlaySoundEffect12WithPanning(u16 songNum, s8 pan) +void PlaySE12WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlay_SE1); @@ -535,14 +535,14 @@ void PlaySoundEffect12WithPanning(u16 songNum, s8 pan) m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, pan); } -void PlaySoundEffect1WithPanning(u16 songNum, s8 pan) +void PlaySE1WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlay_SE1); m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, pan); } -void PlaySoundEffect2WithPanning(u16 songNum, s8 pan) +void PlaySE2WithPanning(u16 songNum, s8 pan) { m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlay_SE2); diff --git a/src/start_menu.c b/src/start_menu.c index 4c3a0b6e1..37d361c0b 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -315,17 +315,17 @@ static u8 StartMenu_InputProcessCallback(void) { if (gMain.newKeys & DPAD_UP) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); sStartMenuCursorPos = MoveMenuCursor(-1); } if (gMain.newKeys & DPAD_DOWN) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); sStartMenuCursorPos = MoveMenuCursor(1); } if (gMain.newKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); if (sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func == StartMenu_PokedexCallback) { if (GetNationalPokedexCount(0) == 0) @@ -566,7 +566,7 @@ static bool8 SaveDialogCheckForTimeoutOrKeypress(void) saveDialogTimer--; if (gMain.heldKeys & A_BUTTON) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); return TRUE; } else if (saveDialogTimer == 0) @@ -702,7 +702,7 @@ static u8 SaveDialogCB_SaveSuccess(void) { if (MenuUpdateWindowText()) { - PlaySoundEffect(SE_SAVE); + PlaySE(SE_SAVE); saveDialogCallback = SaveDialogCB_ReturnSuccess; } return SAVE_IN_PROGRESS; @@ -723,7 +723,7 @@ static u8 SaveDialogCB_SaveError(void) { if (MenuUpdateWindowText()) { - PlaySoundEffect(SE_BOO); + PlaySE(SE_BOO); saveDialogCallback = SaveDialogCB_ReturnError; } return SAVE_IN_PROGRESS; diff --git a/src/starter_choose.c b/src/starter_choose.c index e133c6212..6ef410d21 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -455,7 +455,7 @@ static void Task_StarterChoose5(u8 taskId) break; case 1: // NO case -1: // B button - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); spriteId = gTasks[taskId].tPkmnSpriteId; diff --git a/src/text.c b/src/text.c index ee5089c4d..7be72833a 100644 --- a/src/text.c +++ b/src/text.c @@ -136,7 +136,7 @@ static u8 ExtCtrlCode_Escape(struct Window *); static u8 ExtCtrlCode_Nop2(struct Window *); static u8 ExtCtrlCode_SetCursorY(struct Window *); static u8 ExtCtrlCode_ClearWindowTextLines(struct Window *); -static u8 ExtCtrlCode_PlaySoundEffect(struct Window *); +static u8 ExtCtrlCode_PlaySE(struct Window *); static u8 ExtCtrlCode_Skip(struct Window *); static u8 ExtCtrlCode_SetCursorX(struct Window *); static u8 ExtCtrlCode_SkipTo(struct Window *); @@ -380,7 +380,7 @@ static const ExtCtrlCodeFunc sExtCtrlCodeFuncs[] = ExtCtrlCode_Nop2, ExtCtrlCode_SetCursorY, ExtCtrlCode_ClearWindowTextLines, - ExtCtrlCode_PlaySoundEffect, + ExtCtrlCode_PlaySE, ExtCtrlCode_Skip, ExtCtrlCode_SetCursorX, ExtCtrlCode_SkipTo, @@ -2197,11 +2197,11 @@ static u8 ExtCtrlCode_ClearWindowTextLines(struct Window *win) return 2; } -static u8 ExtCtrlCode_PlaySoundEffect(struct Window *win) +static u8 ExtCtrlCode_PlaySE(struct Window *win) { u16 loByte = win->text[win->textIndex++]; u16 hiByte = win->text[win->textIndex++] << 8; - PlaySoundEffect(loByte | hiByte); + PlaySE(loByte | hiByte); return 2; } @@ -2377,7 +2377,7 @@ static u8 UpdateWindowText(struct Window *win) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); } else { @@ -3187,7 +3187,7 @@ static u8 WaitWithDownArrow(struct Window *win) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); TryEraseDownArrow(win); } else diff --git a/src/trainer_card.c b/src/trainer_card.c index 945d469e3..e6ed79c15 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -662,7 +662,7 @@ bool8 sub_80938CC(struct Task *task) bool8 sub_8093918(struct Task *task) { sub_8093A28(); - PlaySoundEffect(SE_CARD); + PlaySE(SE_CARD); ewram0.var_0 += 1; diff --git a/src/wallclock.c b/src/wallclock.c index f8c3fdeea..0f3665c65 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -429,13 +429,13 @@ static void Task_SetClock4(u8 taskId) switch (ProcessMenuInputNoWrap_()) { case 0: //YES - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); gTasks[taskId].func = Task_SetClock5; //Move on return; case -1: //B button case 1: //NO sub_8072DEC(); - PlaySoundEffect(SE_SELECT); + PlaySE(SE_SELECT); MenuZeroFillWindowRect(23, 8, 29, 13); MenuZeroFillWindowRect(2, 16, 27, 19); gTasks[taskId].func = Task_SetClock2; //Go back and let player adjust clock -- cgit v1.2.3 From 67dd78ddc1989009efc68994fcdb11f688fc7092 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 13 May 2017 03:00:49 +0200 Subject: Decompile more of easy_chat --- src/easy_chat.c | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 228 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index ee1e37b9b..86719a2ae 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -5,27 +5,252 @@ #include "field_message_box.h" #include "pokedex.h" #include "rng.h" +#include "string_util.h" +#include "strings.h" #include "text.h" +u8 sub_80EB37C(u16); u8 sub_80EB8C0(void); u8 sub_80EB868(u8); u16 sub_80EAE88(u8); void sub_80EB890(u8); u16 sub_80EB784(u16 group); u8 sub_80EAD7C(u8 group); -u8 sub_80EB680(u16 *, u16, u16, u16); +static bool8 sub_80EB680(u16 *, u16, u16, u16); static u16 sub_80EB9D8(void); static u16 sub_80EB960(void); u16 sub_80EB72C(u16); +extern const u8 gSpeciesNames[][11]; +extern u8 gMoveNames[][13]; extern void *gEasyChatGroupWords[]; extern const u8 gEasyChatGroupSizes[]; extern u16 gSpecialVar_0x8004; +extern const u8 gOtherText_ThreeQuestions[]; + +#ifdef NONMATCHING +u8 *sub_80EB3FC(u8 *dst, u16 word) { + int group, wordIndex; + u8 *src; + u16 i; + + + if (sub_80EB37C(word)) + { + return StringCopy(dst, gOtherText_ThreeQuestions); + } + + if (word != 0xFFFF) + { + group = word >> 9; + wordIndex = word & 0x1FF; + switch (group) + { + case EC_GROUP_POKEMON: // 0 + case EC_GROUP_POKEMON_2: // 21 + dst = StringCopy(dst, gSpeciesNames[wordIndex]); + break; + + case EC_GROUP_MOVE_1: // 18 + case EC_GROUP_MOVE_2: // 19 + dst = StringCopy(dst, gMoveNames[wordIndex]); + break; + + default: + src = gEasyChatGroupWords[group]; + + i = wordIndex - 1; + while (i != 0xFFFF) + { + while (*src++ != EOS) + { + } + i--; + } + dst = StringCopy(dst, src); + break; + } + } + + dst[0] = EOS; + return dst; +} +#endif + +u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) { + u16 i; + u16 n; + + const u16 i1 = arg2 - 1; + + for (i = 0; i < arg3; i++) + { + u16 word; + + for (n = 0; n < i1; n++) + { + dst = sub_80EB3FC(dst, words[0]); + + if (words[0] != 0xFFFF) + { + dst[0] = CHAR_SPACE; + dst++; + } + + words++; + } + + word = words[0]; + words++; + dst = sub_80EB3FC(dst, word); + + dst[0] = 0xFE; + dst++; + } + + dst--; + dst[0] = EOS; + + return dst; +} + +u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) { + u16 i; + u16 n; + + const u16 i1 = arg2 - 1; + + for (i = 0; i < arg3; i++) + { + u16 word; + + for (n = 0; n < i1; n++) + { + dst = sub_80EB3FC(dst, words[0]); + + if (words[0] != 0xFFFF) + { + dst[0] = CHAR_SPACE; + dst++; + } + + words++; + } + + word = words[0]; + words++; + dst = sub_80EB3FC(dst, word); + + // Only difference with ConvertEasyChatWordsToString + dst[0] = (i == 0) ? 0xFE : 0xFA; + dst++; + } + + dst--; + dst[0] = EOS; + + return dst; +} + + +u16 unref_sub_80EB5E0(u16 arg0) { + u8 *chars; + u16 i; + u16 strlen; + int group, word; + + + if (arg0 == 0xFFFF) + { + return 0; + } + + group = arg0 >> 9; + word = arg0 & 0x1FF; + switch (group) + { + case EC_GROUP_POKEMON: // 0 + case EC_GROUP_POKEMON_2: // 21 + chars = (u8 *) gSpeciesNames[word]; + break; + + case EC_GROUP_MOVE_1: // 18 + case EC_GROUP_MOVE_2: // 19 + chars = gMoveNames[word]; + break; + + default: + chars = gEasyChatGroupWords[group]; + + i = word - 1; + while (i != 0xFFFF) + { + while (*chars++ != EOS) + { + } + i--; + } + break; + } + + strlen = 0; + while (*chars != EOS) + { + chars++; + strlen += 1; + } + + return strlen; +} + +static bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3) { + return FALSE; +} + +void unref_sub_80EB684(u8 arg0, u16 arg1) { + u16 *ptr; + u16 c; + + // FIXME: find actual tv shows used + switch (arg0) + { + case 5: + c = 6; + ptr = (u16*)((void *)&gSaveBlock1.tvShows.shows[arg1] + 0x04); + break; + case 7: + c = 2; + ptr = (u16*)((void *)&gSaveBlock1.tvShows.shows[arg1] + 0x1C); + break; + case 8: + c = 1; + ptr = (u16*)((void *)&gSaveBlock1.tvShows.shows[arg1] + 0x02); + break; + + default: + return; + } + + c -= 1; + while (c != 0xFFFF) + { + *ptr = -1; + ptr++; + c -= 1; + } +} + void sub_80EB6FC(u16 *arg0, u16 arg1) { - for (arg1--; arg1!=0xffff; arg1--) - *(arg0++) = 0xffff; + u16 i; + + for (i = arg1 - 1; i != 0xFFFF; i--) + { + *arg0 = 0xFFFF; + arg0++; + } + } u16 sub_80EB72C(u16 group) { -- cgit v1.2.3 From 4f9110a54cd4ac21d3493b2cb60b42ee848863d6 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 14:40:21 -0400 Subject: Create and propagate field map object callback declaration macro --- src/field_map_obj.c | 284 ++++++++++++++++------------------------------------ 1 file changed, 85 insertions(+), 199 deletions(-) (limited to 'src') diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 475620c28..2c949c191 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -12,6 +12,30 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; +#define fieldmap_object_cb(setup, callback, table) \ +extern u8 (*const table[])(struct MapObject *, struct Sprite *);\ +u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data0], sprite, callback);\ +}\ +u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return table[sprite->data1](mapObject, sprite);\ +} + +#define fieldmap_object_null_cb(setup, callback) \ +u8 callback(struct MapObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + meta_step(&gMapObjects[sprite->data0], sprite, callback);\ +}\ +u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + + extern void strange_npc_table_clear(void); extern void ClearPlayerAvatarInfo(void); extern void npc_load_two_palettes__no_record(u16, u8); @@ -1505,33 +1529,8 @@ u16 npc_paltag_by_palslot(u8 a) return 0x11FF; } -u8 sub_805C8A8(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805C884(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805C8A8); -} - -u8 sub_805C8A8(struct MapObject *mapObject, struct Sprite *sprite) -{ - return 0; -} - -u8 sub_805C8D0(struct MapObject *, struct Sprite *); - -void sub_805C8AC(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805C8D0); -} - -extern u8 (*const gUnknown_08375224[])(); - -u8 sub_805C8D0(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_08375224[sprite->data1](mapObject, sprite); -} - -void npc_reset(struct MapObject *mapObject, struct Sprite *sprite); +fieldmap_object_null_cb(sub_805C884, sub_805C8A8); +fieldmap_object_cb(sub_805C8AC, sub_805C8D0, gUnknown_08375224); u8 sub_805C8F0(struct MapObject *mapObject, struct Sprite *sprite) { @@ -1849,17 +1848,7 @@ u8 sub_805CD60(struct MapObject *mapObject, u8 a1) return gUnknown_08375244[a1](x, y, x2, y2); } -u8 sub_805CE0C(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805CDE8(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805CE0C); -} - -u8 sub_805CE0C(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_08375270[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805CDE8, sub_805CE0c, gUnknown_08375270); u8 sub_805CE2C(struct MapObject *mapObject, struct Sprite *sprite) { @@ -1911,17 +1900,7 @@ u8 sub_805CEE0(struct MapObject *mapObject, struct Sprite *sprite) return 1; } -u8 sub_805CF4C(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805CF28(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805CF4C); -} - -u8 sub_805CF4C(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_08375284[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805CF28, sub_805CF4C, gUnknown_08375284); u8 sub_805CF6C(struct MapObject *mapObject, struct Sprite *sprite) { @@ -1991,17 +1970,7 @@ u8 sub_805D084(struct MapObject *mapObject, struct Sprite *sprite) return 0; } -u8 sub_805D0D0(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D0AC(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805D0D0); -} - -u8 sub_805D0D0(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_083752A4[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D0AC, sub_805D0D0, gUnknown_083752A4); u8 sub_805D0F0(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2071,17 +2040,7 @@ u8 sub_805D208(struct MapObject *mapObject, struct Sprite *sprite) return 0; } -u8 sub_805D254(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D230(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805D254); -} - -u8 sub_805D254(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_083752C4[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D230, sub_805D254, gUnknown_083752C4); u8 sub_805D274(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2108,6 +2067,7 @@ u8 sub_805D2C0(struct MapObject *mapObject, struct Sprite *sprite) } u8 sub_805D314(struct MapObject *mapObject, struct Sprite *sprite); +extern u8 (*const gUnknown_083752D0[])(struct MapObject *mapObject, struct Sprite *sprite); void FieldObjectCB_BerryTree(struct Sprite *sprite) { @@ -2215,17 +2175,7 @@ u8 sub_805D4A8(struct MapObject *mapObject, struct Sprite *sprite) return 0; } -u8 sub_805D518(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D4F4(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805D518); -} - -u8 sub_805D518(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_083752E4[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D4F4, sub_805D518, gUnknown_083752E4); u8 sub_805D538(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2277,18 +2227,7 @@ u8 sub_805D5EC(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805D658(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D634(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805D658); -} - -u8 sub_805D658(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_083752F8[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D634, sub_805D658, gUnknown_083752F8); u8 sub_805D678(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2340,18 +2279,7 @@ u8 sub_805D72C(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805D798(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D774(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805D798); -} - -u8 sub_805D798(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_0837530C[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D774, sub_805D798, gUnknown_0837530C); u8 sub_805D7B8(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2403,18 +2331,7 @@ u8 sub_805D86C(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805D8D8(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D8B4(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805D8D8); -} - -u8 sub_805D8D8(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_08375324[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D8B4, sub_805D8D8, gUnknown_08375324); u8 sub_805D8F8(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2466,18 +2383,7 @@ u8 sub_805D9AC(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805DA18(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805D9F4(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805DA18); -} - -u8 sub_805DA18(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_0837533C[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805D9F4, sub_805DA18, gUnknown_0837533C); u8 sub_805DA38(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2529,18 +2435,7 @@ u8 sub_805DAEC(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805DB58(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805DB34(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805DB58); -} - -u8 sub_805DB58(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_08375354[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805DB34, sub_805DB58, gUnknown_08375354); u8 sub_805DB78(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2592,18 +2487,7 @@ u8 sub_805DC2C(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805DC98(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805DC74(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805DC98); -} - -u8 sub_805DC98(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_0837536C[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805DC74, sub_805DC98, gUnknown_0837536C); u8 sub_805DCB8(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2655,17 +2539,7 @@ u8 sub_805DD6C(struct MapObject *mapObject, struct Sprite *sprite) return 1; } -u8 sub_805DDD8(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805DDB4(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805DDD8); -} - -u8 sub_805DDD8(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_08375384[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805DDB4, sub_805DDD8, gUnknown_08375384); u8 sub_805DDF8(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2717,17 +2591,7 @@ u8 sub_805DEAC(struct MapObject *mapObject, struct Sprite *sprite) return 1; } -u8 sub_805DF18(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805DEF4(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805DF18); -} - -u8 sub_805DF18(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_0837539C[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805DEF4, sub_805DF18, gUnknown_0837539C); u8 sub_805DF38(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2779,18 +2643,7 @@ u8 sub_805DFEC(struct MapObject *mapObject, struct Sprite *sprite) return 1; } - -u8 sub_805E058(struct MapObject *mapObject, struct Sprite *sprite); - -void sub_805E034(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_805E058); -} - -u8 sub_805E058(struct MapObject *mapObject, struct Sprite *sprite) -{ - return gUnknown_083753B4[sprite->data1](mapObject, sprite); -} +fieldmap_object_cb(sub_805E034, sub_805E058, gUnknown_083753B4); u8 sub_805E078(struct MapObject *mapObject, struct Sprite *sprite) { @@ -2842,20 +2695,53 @@ u8 sub_805E12C(struct MapObject *mapObject, struct Sprite *sprite) return 1; } +fieldmap_object_cb(sub_805E174, sub_805E198, gUnknown_083753CC); + +u8 sub_805E1B8(struct MapObject *mapObject, struct Sprite *sprite) +{ + npc_reset(mapObject, sprite); + FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); + sprite->data1 = 1; + return 1; +} -u8 sub_805E198(struct MapObject *mapObject, struct Sprite *sprite); +u8 sub_805E1E4(struct MapObject *mapObject, struct Sprite *sprite) +{ + if (FieldObjectExecRegularAnim(mapObject, sprite)) + { + sub_8064820(sprite, 0x30); + sprite->data1 = 2; + } + return 0; +} -void sub_805E174(struct Sprite *sprite) +u8 sub_805E208(struct MapObject *mapObject, struct Sprite *sprite) { - meta_step(&gMapObjects[sprite->data0], sprite, sub_805E198); + if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) + { + sprite->data1 = 3; + } + return 0; } -u8 sub_805E198(struct MapObject *mapObject, struct Sprite *sprite) +u8 sub_805E234(struct MapObject *mapObject, struct Sprite *sprite) { - return gUnknown_083753CC[sprite->data1](mapObject, sprite); + u8 direction; + u8 directions[5]; + memcpy(directions, gUnknown_083753DC, 5); + direction = sub_805CD60(mapObject, 0); + if (direction == 0) + { + direction = directions[mapObject->mapobj_unk_18]; + } + FieldObjectSetDirection(mapObject, direction); + sprite->data1 = 0; + return 1; } -u8 sub_805E1B8(struct MapObject *mapObject, struct Sprite *sprite) +fieldmap_object_cb(sub_805E278, sub_803E29C, gUnknown_083753E4); + +u8 sub_805E2BC(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); @@ -2863,7 +2749,7 @@ u8 sub_805E1B8(struct MapObject *mapObject, struct Sprite *sprite) return 1; } -u8 sub_805E1E4(struct MapObject *mapObject, struct Sprite *sprite) +u8 sub_805E2E8(struct MapObject *mapObject, struct Sprite *sprite) { if (FieldObjectExecRegularAnim(mapObject, sprite)) { @@ -2873,7 +2759,7 @@ u8 sub_805E1E4(struct MapObject *mapObject, struct Sprite *sprite) return 0; } -u8 sub_805E208(struct MapObject *mapObject, struct Sprite *sprite) +u8 sub_805E30C(struct MapObject *mapObject, struct Sprite *sprite) { if (sub_8064824(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { @@ -2882,11 +2768,11 @@ u8 sub_805E208(struct MapObject *mapObject, struct Sprite *sprite) return 0; } -u8 sub_805E234(struct MapObject *mapObject, struct Sprite *sprite) +u8 sub_805E338(struct MapObject *mapObject, struct Sprite *sprite) { u8 direction; u8 directions[5]; - memcpy(directions, gUnknown_083753DC, 5); + memcpy(directions, gUnknown_083753F4, 5); direction = sub_805CD60(mapObject, 0); if (direction == 0) { @@ -2897,7 +2783,7 @@ u8 sub_805E234(struct MapObject *mapObject, struct Sprite *sprite) return 1; } -void sub_805E278(struct Sprite *sprite); + void sub_805E37C(struct Sprite *sprite); void sub_805E5DC(struct Sprite *sprite); void sub_805E668(struct Sprite *sprite); -- cgit v1.2.3 From 1751ad0b6723c6deb4ec4d7f5d949278c76c8e66 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 14:46:28 -0400 Subject: Fix building. Again. --- src/field_map_obj.c | 23 ----------------------- src/field_player_avatar.c | 12 +----------- 2 files changed, 1 insertion(+), 34 deletions(-) (limited to 'src') diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 2c949c191..b75f16d54 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -12,29 +12,6 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36]; -#define fieldmap_object_cb(setup, callback, table) \ -extern u8 (*const table[])(struct MapObject *, struct Sprite *);\ -u8 callback(struct MapObject *, struct Sprite *);\ -void setup(struct Sprite *sprite)\ -{\ - meta_step(&gMapObjects[sprite->data0], sprite, callback);\ -}\ -u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ -{\ - return table[sprite->data1](mapObject, sprite);\ -} - -#define fieldmap_object_null_cb(setup, callback) \ -u8 callback(struct MapObject *, struct Sprite *);\ -void setup(struct Sprite *sprite)\ -{\ - meta_step(&gMapObjects[sprite->data0], sprite, callback);\ -}\ -u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ -{\ - return 0;\ -} - extern void strange_npc_table_clear(void); extern void ClearPlayerAvatarInfo(void); diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 71ff40435..13c1cd277 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -27,7 +27,6 @@ extern u8 gOtherText_ItGotAway[]; extern u32 gUnknown_0202FF84[]; //Functions -static u8 sub_80587D8(void); static bool8 sub_8058854(struct MapObject *, u8); static void npc_clear_strange_bits(struct MapObject *a); static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c); @@ -246,16 +245,7 @@ static u8 (*const gUnknown_0830FC98[])(struct Task *, struct MapObject *) = sub_805A1B8, }; - -void sub_80587B4(struct Sprite *sprite) -{ - meta_step(&gMapObjects[sprite->data0], sprite, sub_80587D8); -} - -static u8 sub_80587D8(void) -{ - return 0; -} +fieldmap_object_null_cb(sub_80587B4, sub_80587D8); void player_step(u8 direction, u16 newKeys, u16 heldKeys) { -- cgit v1.2.3 From 9d851873cd284af172581c413f0bab4a2f695c8e Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 17:21:17 -0400 Subject: Another chunk of library-like functions --- src/field_map_obj.c | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/field_map_obj.c b/src/field_map_obj.c index b75f16d54..7c332c505 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -1,10 +1,12 @@ #include "global.h" #include "field_map_obj.h" +#include "fieldmap.h" #include "asm.h" #include "berry.h" #include "event_data.h" #include "field_player_avatar.h" #include "field_effect.h" +#include "field_ground_effect.h" #include "palette.h" #include "rom4.h" #include "rng.h" @@ -20,14 +22,14 @@ extern void npc_load_two_palettes__and_record(u16, u8); extern void sub_8060388(s16, s16, s16 *, s16 *); extern void sub_80634D0(); extern void pal_patch_for_npc(u16, u16); -extern void sub_80603CC(); +extern void sub_80603CC(s16, s16, s16 *, s16 *); extern void CameraObjectReset1(void); void sub_805AAB0(void); u8 GetFieldObjectIdByLocalId(u8); u8 GetFieldObjectIdByLocalIdAndMapInternal(u8, u8, u8); u8 GetAvailableFieldObjectSlot(u16, u8, u8, u8 *); -void FieldObjectHandleDynamicGraphicsId(); +void FieldObjectHandleDynamicGraphicsId(struct MapObject *); void RemoveFieldObjectInternal(struct MapObject *); u16 GetFieldObjectFlagIdByFieldObjectId(u8); void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, struct SubspriteTable **subspriteTables); @@ -2897,3 +2899,102 @@ u8 get_run_image_anim_num(u8 direction) { return gUnknown_08375672[direction]; } + +void sub_805FE28(struct MapObject *mapObject, struct Sprite *sprite, u8 animNum) +{ + if (!mapObject->mapobj_bit_12) + { + sprite->animNum = animNum; + if (sprite->animCmdIndex == 1) + { + sprite->animCmdIndex = 2; + } else if (sprite->animCmdIndex == 3) + { + sprite->animCmdIndex = 0; + } + SeekSpriteAnim(sprite, sprite->animCmdIndex); + } +} + +void sub_805FE64(struct MapObject *mapObject, struct Sprite *sprite, u8 animNum) +{ + u8 animCmdIndex; + if (!mapObject->mapobj_bit_12) + { + sprite->animNum = animNum; + animCmdIndex = 3; + if (sprite->animCmdIndex < 2) + { + animCmdIndex = 1; + } + SeekSpriteAnim(sprite, animCmdIndex); + } +} + +u8 sub_805FE90(s16 a0, s16 a1, s16 a2, s16 a3) +{ + if (a0 > a2) + { + return DIR_WEST; + } else if (a0 < a2) + { + return DIR_EAST; + } else if (a1 > a3) + { + return DIR_NORTH; + } else + { + return DIR_SOUTH; + } +} + +void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern) +{ + mapObject->animPattern = animPattern; + mapObject->mapobj_unk_21 = 0; + mapObject->animId = 0; + gSprites[mapObject->spriteId].callback = gUnknown_0836DA88[animPattern]; + gSprites[mapObject->spriteId].data1 = 0; +} + +u8 npc_running_behaviour_by_direction(u8 direction) +{ + return gUnknown_0837567B[direction]; +} + +u8 sub_805FF20(struct MapObject *mapObject, u8 direction) +{ + s16 x; + s16 y; + x = mapObject->coords2.x; + y = mapObject->coords2.y; + MoveCoords(direction, &x, &y); + return npc_block_way(mapObject, x, y, direction); +} + +bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *mapObject, s16 x, s16 y); + +u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u8 direction) +{ + if (IsCoordOutsideFieldObjectMovementRect(mapObject, x, y)) + { + return 1; + } + if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction)) + { + return 2; + } + if (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction)) + { + return 2; + } + if (IsZCoordMismatchAt(mapObject->mapobj_unk_0B_0, x, y)) + { + return 3; + } + if (CheckForCollisionBetweenFieldObjects(mapObject, x, y)) + { + return 4; + } + return 0; +} -- cgit v1.2.3 From 70b04997a09a45552a257623867acc1a8be6141e Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 22 May 2017 19:31:47 -0400 Subject: IsCoordOutsideFieldObjectMovementRect and others --- src/field_map_obj.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 7c332c505..755de7611 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -2972,19 +2972,20 @@ u8 sub_805FF20(struct MapObject *mapObject, u8 direction) return npc_block_way(mapObject, x, y, direction); } -bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *mapObject, s16 x, s16 y); +bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject2 *mapObject, s16 x, s16 y); +bool8 CheckForCollisionBetweenFieldObjects(struct MapObject *mapObject, s16 x, s16 y); +bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction); u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u8 direction) { - if (IsCoordOutsideFieldObjectMovementRect(mapObject, x, y)) + if (IsCoordOutsideFieldObjectMovementRect((struct MapObject2 *)mapObject, x, y)) { return 1; } if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction)) { return 2; - } - if (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction)) + } else if (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction)) { return 2; } @@ -2998,3 +2999,51 @@ u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u8 direction) } return 0; } + +u8 sub_8060024(struct MapObject *mapObject, s16 x, s16 y, u8 direction) +{ + u8 flags; + flags = 0; + if (IsCoordOutsideFieldObjectMovementRect((struct MapObject2 *)mapObject, x, y)) + { + flags |= 1; + } + if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction) || (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction))) + { + flags |= 2; + } + if (IsZCoordMismatchAt(mapObject->mapobj_unk_0B_0, x, y)) + { + flags |= 4; + } + if (CheckForCollisionBetweenFieldObjects(mapObject, x, y)) + { + flags |= 8; + } + return flags; +} + +bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject2 *mapObject, s16 x, s16 y) +{ + s16 minv; + s16 maxv; + if (mapObject->mapobj_unk_19 != 0) + { + minv = mapObject->coords1.x - (mapObject->mapobj_unk_19); + maxv = mapObject->coords1.x + (mapObject->mapobj_unk_19); + if (minv > x || maxv < x) + { + return 1; + } + } + if (mapObject->mapobj_unk_19b != 0) + { + minv = mapObject->coords1.y - (mapObject->mapobj_unk_19b); + maxv = mapObject->coords1.y + (mapObject->mapobj_unk_19b); + if (minv > y || maxv < y) + { + return 1; + } + } + return 0; +} -- cgit v1.2.3