summaryrefslogtreecommitdiff
path: root/src/battle_interface.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-07-06 11:26:14 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-07-06 11:26:14 -0400
commit7109f880c9150dbdcd4e8581b7f065ec06dff022 (patch)
tree2c8130a4d4805e5ddc80dd91fa9c31e7e6d1b3c3 /src/battle_interface.c
parentbc3638cc35302beb2e2a8e0f2506ec19ef039b99 (diff)
Match sub_8044338
Diffstat (limited to 'src/battle_interface.c')
-rw-r--r--src/battle_interface.c350
1 files changed, 45 insertions, 305 deletions
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 045e9e3fe..bf7429a67 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -930,336 +930,76 @@ void sub_80440EC(u8 a, s16 b, u8 c)
}
}
-#ifdef NONMATCHING
void sub_8044338(u8 a, struct Pokemon *pkmn)
{
- u8 str[0x14];
- u8 *r6;
- s32 r8;
- u8 nature; // = GetNature(pkmn);
- s32 r7;
- u8 i;
- u8 r5;
+ u8 text[20];
+ s32 j, spriteTileNum;
+ u8 *barFontGfx;
+ u8 i, var, nature, healthBarSpriteId;
// TODO: make this a local variable
- memcpy(str, gUnknown_0820A864, sizeof(str));
- r6 = &eBattleInterfaceGfxBuffer[0x520 + GetBattlerPosition(gSprites[a].data[6]) * 0x180];
- r8 = 5;
+ memcpy(text, gUnknown_0820A864, sizeof(text));
+ barFontGfx = &eBattleInterfaceGfxBuffer[0x520 + GetBattlerPosition(gSprites[a].data[6]) * 0x180];
+ var = 5;
nature = GetNature(pkmn);
- StringCopy(str + 6, gNatureNames[nature]);
- sub_80034D4(r6, str);
- r7 = 6;
- for (i = 0; i < (u32)r8; i++, r7++) //_080443AA
+ StringCopy(text + 6, gNatureNames[nature]);
+ sub_80034D4(barFontGfx, text);
+
+ for (j = 6, i = 0; i < var; i++, j++) //_080443AA
{
- u8 val;
+ u8 elementId;
- if ((u8)(str[r7] - 0x37) <= 0x13 || (u8)(str[r7] + 0x79) <= 0x13)
- val = 0x2C;
+ if ((text[j] >= 0x37 && text[j] <= 0x4A) || (text[j] >= 0x87 && text[j] <= 0x9A))
+ elementId = 0x2C;
//_080443DC
- else if ((u8)(str[r7] - 0x4B) <= 4 || (u8)(str[r7] + 0x65) <= 4)
- val = 0x2D;
+ else if ((text[j] >= 0x4B && text[j] <= 0x4F) || (text[j] >= 0x9B && text[j] <= 0x9F))
+ elementId = 0x2D;
else
- val = 0x2B;
+ elementId = 0x2B;
- CpuCopy32(sub_8043CDC(val), r6 + i * 64, 32);
+ CpuCopy32(sub_8043CDC(elementId), barFontGfx + i * 64, 32);
}
- //r7 = 1;
+ //j = 1;
//sp18 = a * 16;
- for (r7 = 1; r7 < r8 + 1; r7++)
+ for (j = 1; j < var + 1; j++)
{
- int foo;
-
- foo = gSprites[a].oam.tileNum + MACRO1(r7);
- CpuCopy32(r6, (u8 *)(VRAM + 0x10000) + foo * 32, 32);
- r6 += 32;
+ spriteTileNum = (gSprites[a].oam.tileNum + MACRO1(j)) * 32;
+ CpuCopy32(barFontGfx, (u8 *)(OBJ_VRAM0) + spriteTileNum, 32);
+ barFontGfx += 32;
- foo = gSprites[a].oam.tileNum + 8 + MACRO1(r7);
- CpuCopy32(r6, (u8 *)(VRAM + 0x10000) + foo * 32, 32);
- r6 += 32;
+ spriteTileNum = (8 + gSprites[a].oam.tileNum + MACRO1(j)) * 32;
+ CpuCopy32(barFontGfx, (u8 *)(OBJ_VRAM0) + spriteTileNum, 32);
+ barFontGfx += 32;
}
//_08044486
- r5 = gSprites[a].data[5];
- ConvertIntToDecimalStringN(str + 6, gBattleStruct->safariCatchFactor, 1, 2);
- ConvertIntToDecimalStringN(str + 9, gBattleStruct->safariFleeRate, 1, 2);
- str[5] = 0;
- str[8] = 0xBA;
- sub_80034D4(eBattleInterfaceGfxBuffer, str);
+ healthBarSpriteId = gSprites[a].data[5];
+ ConvertIntToDecimalStringN(text + 6, gBattleStruct->safariCatchFactor, 1, 2);
+ ConvertIntToDecimalStringN(text + 9, gBattleStruct->safariFleeRate, 1, 2);
+ text[5] = CHAR_SPACE;
+ text[8] = CHAR_SLASH;
+ sub_80034D4(eBattleInterfaceGfxBuffer, text);
- for (r7 = 0; r7 < 5; r7++)
+ j = healthBarSpriteId; // Needed to match for some reason
+ for (j = 0; j < 5; j++)
{
- if (r7 <= 1)
+ if (j <= 1)
{
- int foo = (gSprites[r5].oam.tileNum + 2 + r7);
- CpuCopy32(&eBattleInterfaceGfxBuffer[i * 64 + 32], (u8 *)(VRAM + 0x10000) + foo * 32, 32);
+ CpuCopy32(
+ &eBattleInterfaceGfxBuffer[j * 64 + 32],
+ (u8 *)(OBJ_VRAM0) + (gSprites[healthBarSpriteId].oam.tileNum + 2 + j) * 32,
+ 32
+ );
}
else
{
- int foo = (r7 + gSprites[r5].oam.tileNum);
- CpuCopy32(&eBattleInterfaceGfxBuffer[i * 64 + 32], (u8 *)(VRAM + 0x100C0) + foo * 32, 32);
+ CpuCopy32(
+ &eBattleInterfaceGfxBuffer[j * 64 + 32],
+ (u8 *)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthBarSpriteId].oam.tileNum) * 32,
+ 32
+ );
}
}
}
-#else
-NAKED
-void sub_8044338(u8 a, struct Pokemon *pkmn)
-{
- 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, 0x20\n\
- adds r4, r1, 0\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0x14]\n\
- ldr r1, _080443CC @ =gUnknown_0820A864\n\
- mov r0, sp\n\
- movs r2, 0x14\n\
- bl memcpy\n\
- ldr r1, _080443D0 @ =gSprites\n\
- ldr r2, [sp, 0x14]\n\
- lsls r0, r2, 4\n\
- adds r0, r2\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrh r0, [r0, 0x3A]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- bl GetBattlerPosition\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r1, r0, 1\n\
- adds r1, r0\n\
- lsls r1, 7\n\
- ldr r3, _080443D4 @ =gSharedMem + 0x520\n\
- adds r6, r1, r3\n\
- movs r0, 0x5\n\
- mov r8, r0\n\
- adds r0, r4, 0\n\
- bl GetNature\n\
- lsls r0, 24\n\
- mov r4, sp\n\
- adds r4, 0x6\n\
- ldr r1, _080443D8 @ =gNatureNames\n\
- lsrs r0, 22\n\
- adds r0, r1\n\
- ldr r1, [r0]\n\
- adds r0, r4, 0\n\
- bl StringCopy\n\
- adds r0, r6, 0\n\
- mov r1, sp\n\
- bl sub_80034D4\n\
- movs r7, 0x6\n\
- movs r5, 0\n\
- mov r1, sp\n\
- adds r1, 0x9\n\
- str r1, [sp, 0x1C]\n\
-_080443AA:\n\
- mov r2, sp\n\
- adds r0, r2, r7\n\
- ldrb r1, [r0]\n\
- adds r0, r1, 0\n\
- subs r0, 0x37\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x13\n\
- bls _080443C8\n\
- adds r0, r1, 0\n\
- adds r0, 0x79\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x13\n\
- bhi _080443DC\n\
-_080443C8:\n\
- movs r0, 0x2C\n\
- b _080443FA\n\
- .align 2, 0\n\
-_080443CC: .4byte gUnknown_0820A864\n\
-_080443D0: .4byte gSprites\n\
-_080443D4: .4byte gSharedMem + 0x520\n\
-_080443D8: .4byte gNatureNames\n\
-_080443DC:\n\
- adds r0, r1, 0\n\
- subs r0, 0x4B\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x4\n\
- bls _080443F4\n\
- adds r0, r1, 0\n\
- adds r0, 0x65\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x4\n\
- bhi _080443F8\n\
-_080443F4:\n\
- movs r0, 0x2D\n\
- b _080443FA\n\
-_080443F8:\n\
- movs r0, 0x2B\n\
-_080443FA:\n\
- bl sub_8043CDC\n\
- lsls r1, r5, 6\n\
- adds r1, r6, r1\n\
- ldr r2, _080444F8 @ =REG_BG0CNT\n\
- bl CpuSet\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- adds r7, 0x1\n\
- cmp r5, r8\n\
- bcc _080443AA\n\
- movs r7, 0x1\n\
- ldr r3, [sp, 0x14]\n\
- lsls r3, 4\n\
- str r3, [sp, 0x18]\n\
- movs r0, 0x1\n\
- add r0, r8\n\
- mov r9, r0\n\
- cmp r7, r9\n\
- bge _08044486\n\
- ldr r1, _080444FC @ =gSprites\n\
- ldr r2, _080444F8 @ =REG_BG0CNT\n\
- mov r10, r2\n\
- ldr r2, [sp, 0x14]\n\
- adds r0, r3, r2\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- mov r8, r0\n\
-_08044436:\n\
- mov r3, r8\n\
- ldrh r0, [r3, 0x4]\n\
- lsls r0, 22\n\
- lsrs r0, 22\n\
- adds r5, r7, 0\n\
- cmp r7, 0\n\
- bge _08044446\n\
- adds r5, r7, 0x7\n\
-_08044446:\n\
- asrs r5, 3\n\
- lsls r4, r5, 3\n\
- subs r4, r7, r4\n\
- adds r0, r4\n\
- lsls r5, 6\n\
- adds r0, r5\n\
- lsls r0, 5\n\
- ldr r2, _08044500 @ =(VRAM + 0x10000)\n\
- adds r1, r0, r2\n\
- adds r0, r6, 0\n\
- mov r2, r10\n\
- bl CpuSet\n\
- adds r6, 0x20\n\
- mov r3, r8\n\
- ldrh r0, [r3, 0x4]\n\
- lsls r0, 22\n\
- lsrs r0, 22\n\
- adds r4, 0x8\n\
- adds r0, r4\n\
- adds r0, r5\n\
- lsls r0, 5\n\
- ldr r2, _08044500 @ =(VRAM + 0x10000)\n\
- adds r1, r0, r2\n\
- adds r0, r6, 0\n\
- mov r2, r10\n\
- bl CpuSet\n\
- adds r6, 0x20\n\
- adds r7, 0x1\n\
- cmp r7, r9\n\
- blt _08044436\n\
-_08044486:\n\
- ldr r6, _080444FC @ =gSprites\n\
- ldr r3, [sp, 0x18]\n\
- ldr r1, [sp, 0x14]\n\
- adds r0, r3, r1\n\
- lsls r0, 2\n\
- adds r0, r6\n\
- ldrh r5, [r0, 0x38]\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- ldr r4, _08044504 @ =gSharedMem\n\
- ldr r2, _08044508 @ =0x00016089\n\
- adds r0, r4, r2\n\
- ldrb r1, [r0]\n\
- mov r0, sp\n\
- adds r0, 0x6\n\
- movs r2, 0x1\n\
- movs r3, 0x2\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r3, _0804450C @ =0x00016088\n\
- adds r4, r3\n\
- ldrb r1, [r4]\n\
- ldr r0, [sp, 0x1C]\n\
- movs r2, 0x1\n\
- movs r3, 0x2\n\
- bl ConvertIntToDecimalStringN\n\
- mov r1, sp\n\
- movs r0, 0\n\
- strb r0, [r1, 0x5]\n\
- movs r0, 0xBA\n\
- strb r0, [r1, 0x8]\n\
- movs r0, 0x80\n\
- lsls r0, 18\n\
- bl sub_80034D4\n\
- movs r7, 0\n\
- lsls r0, r5, 4\n\
- adds r0, r5\n\
- lsls r0, 2\n\
- adds r5, r0, r6\n\
- ldr r4, _08044510 @ =gSharedMem + 0x20\n\
-_080444DA:\n\
- cmp r7, 0x1\n\
- bgt _08044514\n\
- ldrh r1, [r5, 0x4]\n\
- lsls r1, 22\n\
- lsrs r1, 22\n\
- adds r0, r7, 0x2\n\
- adds r1, r0\n\
- lsls r1, 5\n\
- ldr r0, _08044500 @ =(VRAM + 0x10000)\n\
- adds r1, r0\n\
- adds r0, r4, 0\n\
- ldr r2, _080444F8 @ =REG_BG0CNT\n\
- bl CpuSet\n\
- b _0804452A\n\
- .align 2, 0\n\
-_080444F8: .4byte 0x04000008\n\
-_080444FC: .4byte gSprites\n\
-_08044500: .4byte 0x06010000\n\
-_08044504: .4byte gSharedMem\n\
-_08044508: .4byte 0x00016089\n\
-_0804450C: .4byte 0x00016088\n\
-_08044510: .4byte gSharedMem + 0x20\n\
-_08044514:\n\
- ldrh r1, [r5, 0x4]\n\
- lsls r1, 22\n\
- lsrs r1, 22\n\
- adds r1, r7, r1\n\
- lsls r1, 5\n\
- ldr r2, _08044544 @ =0x060100c0\n\
- adds r1, r2\n\
- adds r0, r4, 0\n\
- ldr r2, _08044548 @ =REG_BG0CNT\n\
- bl CpuSet\n\
-_0804452A:\n\
- adds r4, 0x40\n\
- adds r7, 0x1\n\
- cmp r7, 0x4\n\
- ble _080444DA\n\
- add sp, 0x20\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\
-_08044544: .4byte 0x060100c0\n\
-_08044548: .4byte 0x04000008\n\
- .syntax divided\n");
-}
-#endif
extern u8 gUnknown_020297ED;