Matching the unmatched and another function

This commit is contained in:
KDSKardabox
2018-02-15 17:12:02 +05:30
parent 44c1ea16b9
commit 301664db2f
5 changed files with 56 additions and 82 deletions

View File

@@ -7,13 +7,14 @@
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
void sub_816166C(u8 taskId);
void sub_81617B8(u8 taskId);
void sub_81616C0(u8 taskId);
void sub_81B1F18(u8 taskId, u8 pokemonIdx, s8 a, s16 hp, TaskFunc func);
void sub_8161724(u8 taskId);
bool8 SetUpFieldMove_SoftBoiled(void)
{
@@ -66,52 +67,18 @@ void sub_81615A8(u8 taskId)
sub_81B1F18(taskId, unk9, -1, GetMonData(&gPlayerParty[unk9], MON_DATA_MAX_HP)/5, sub_816166C);
}
#ifdef NONMATCHING
void sub_816166C(u8 taskId)
{
PlaySE(SE_KAIFUKU);
sub_81B1F18(taskId, gUnknown_0203CEC8.unkA, 1, GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_MAX_HP)/5, sub_81616C0);
}
#else
__attribute__((naked))
void sub_816166C(u8 taskId)
void sub_81616C0(u8 taskId)
{
asm(".syntax unified\n\
push {r4,r5,lr}\n\
sub sp, 0x4\n\
adds r4, r0, 0\n\
lsls r4, 24\n\
lsrs r4, 24\n\
movs r0, 0x1\n\
bl PlaySE\n\
ldr r5, =gUnknown_0203CEC8\n\
movs r1, 0x9\n\
ldrsb r1, [r5, r1]\n\
movs r0, 0x64\n\
muls r0, r1\n\
ldr r1, =gPlayerParty\n\
adds r0, r1\n\
movs r1, 0x3A\n\
bl GetMonData\n\
movs r1, 0x5\n\
bl __udivsi3\n\
adds r3, r0, 0\n\
lsls r3, 16\n\
asrs r3, 16\n\
ldrb r1, [r5, 0xA]\n\
ldr r0, =sub_81616C0\n\
str r0, [sp]\n\
adds r0, r4, 0\n\
movs r2, 0x1\n\
bl sub_81B1F18\n\
add sp, 0x4\n\
pop {r4,r5}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
.syntax divided\n");
GetMonNickname(&gPlayerParty[gUnknown_0203CEC8.unkA], gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_PkmnHPRestoredByVar2);
sub_81B1B5C(gStringVar4, 0);
schedule_bg_copy_tilemap_to_vram(2);
gTasks[taskId].func = sub_8161724;
}
#endif