mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-19 12:08:34 +01:00
updated branch with fix
This commit is contained in:
parent
ee277bff16
commit
3d16b884b9
@ -99,6 +99,8 @@ s8 sub_81C08F8(s8 a);
|
|||||||
void sub_81C4204(u8 a, u8 b);
|
void sub_81C4204(u8 a, u8 b);
|
||||||
void sub_81C20F0(u8 taskId);
|
void sub_81C20F0(u8 taskId);
|
||||||
u8 sub_81C0A50(struct Pokemon* mon);
|
u8 sub_81C0A50(struct Pokemon* mon);
|
||||||
|
void sub_81C49E0();
|
||||||
|
void sub_81C0E24();
|
||||||
|
|
||||||
u8 sub_81BFB10();
|
u8 sub_81BFB10();
|
||||||
u8 sub_81B1250();
|
u8 sub_81B1250();
|
||||||
@ -702,298 +704,73 @@ void sub_81C0604(u8 taskId, s8 a)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
|
||||||
void sub_81C0704(u8 taskId)
|
void sub_81C0704(u8 taskId)
|
||||||
{
|
{
|
||||||
s16 *data = gTasks[taskId].data;
|
s16 *data = gTasks[taskId].data;
|
||||||
|
|
||||||
switch (data[0])
|
switch (data[0])
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
StopCryAndClearCrySongs();
|
StopCryAndClearCrySongs();
|
||||||
data[0]++;
|
break;
|
||||||
break;
|
case 1:
|
||||||
case 1:
|
sub_81C4898();
|
||||||
sub_81C4898();
|
DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3]);
|
||||||
DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3]);
|
break;
|
||||||
data[0]++;
|
case 2:
|
||||||
break;
|
DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D4]);
|
||||||
case 2:
|
break;
|
||||||
DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D4]);
|
case 3:
|
||||||
data[0]++;
|
sub_81C0098(&gUnknown_0203CF1C->currentPoke);
|
||||||
break;
|
gUnknown_0203CF1C->unk40F0 = 0;
|
||||||
case 3:
|
break;
|
||||||
sub_81C0098(&gUnknown_0203CF1C->currentPoke);
|
case 4:
|
||||||
gUnknown_0203CF1C->unk40F0 = 0;
|
if (sub_81C00F0(&gUnknown_0203CF1C->currentPoke) == 0)
|
||||||
data[0]++;
|
return;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 5:
|
||||||
if (sub_81C00F0(&gUnknown_0203CF1C->currentPoke))
|
sub_81C49E0(&gUnknown_0203CF1C->currentPoke);
|
||||||
data[0]++;
|
break;
|
||||||
break;
|
case 6:
|
||||||
case 5:
|
sub_81C4A08(&gUnknown_0203CF1C->currentPoke);
|
||||||
sub_81C49E0(&gUnknown_0203CF1C->currentPoke);
|
break;
|
||||||
data[0]++;
|
case 7:
|
||||||
break;
|
if (gUnknown_0203CF1C->summary.unk7)
|
||||||
case 6:
|
sub_81C2074(10, -2);
|
||||||
sub_81C4A08(&gUnknown_0203CF1C->currentPoke);
|
sub_81C2228(&gUnknown_0203CF1C->currentPoke);
|
||||||
data[0]++;
|
data[1] = 0;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 8:
|
||||||
if (gUnknown_0203CF1C->summary.unk7)
|
gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentPoke, &data[1]);
|
||||||
sub_81C2074(10, -2);
|
if (gUnknown_0203CF1C->unk40D3 == 0xFF)
|
||||||
sub_81C2228(&gUnknown_0203CF1C->currentPoke);
|
return;
|
||||||
data[1] = 0;
|
gSprites[gUnknown_0203CF1C->unk40D3].data2 = 1;
|
||||||
data[0]++;
|
sub_81C0E24();
|
||||||
break;
|
data[1] = 0;
|
||||||
case 8:
|
break;
|
||||||
gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentPoke, &data[1]);
|
case 9:
|
||||||
if (gUnknown_0203CF1C->unk40D3 != 0xFF)
|
sub_81C4280();
|
||||||
{
|
break;
|
||||||
gSprites[gUnknown_0203CF1C->unk40D3].data2 = 1;
|
case 10:
|
||||||
sub_81C0E24();
|
sub_81C25E8();
|
||||||
data[1] = 0;
|
break;
|
||||||
data[0]++;
|
case 11:
|
||||||
}
|
sub_81C2D9C(gUnknown_0203CF1C->unk40C0);
|
||||||
break;
|
sub_81C2524();
|
||||||
case 9:
|
break;
|
||||||
sub_81C4280();
|
case 12:
|
||||||
data[0]++;
|
gSprites[gUnknown_0203CF1C->unk40D3].data2 = 0;
|
||||||
break;
|
break;
|
||||||
case 10:
|
default:
|
||||||
sub_81C25E8();
|
if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0)
|
||||||
data[0]++;
|
{
|
||||||
break;
|
data[0] = 0;
|
||||||
case 11:
|
gTasks[taskId].func = sub_81C0510;
|
||||||
sub_81C2D9C(gUnknown_0203CF1C->unk40C0);
|
}
|
||||||
sub_81C2524();
|
return;
|
||||||
data[0]++;
|
|
||||||
break;
|
|
||||||
case 12:
|
|
||||||
gSprites[gUnknown_0203CF1C->unk40D3].data2 = 0;
|
|
||||||
data[0]++;
|
|
||||||
break;
|
|
||||||
case 13:
|
|
||||||
if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0)
|
|
||||||
{
|
|
||||||
TaskFunc *func;
|
|
||||||
data[0] = 0;
|
|
||||||
func = &gTasks[taskId].func;
|
|
||||||
*func = sub_81C0510;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
data[0]++;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
__attribute__((naked))
|
|
||||||
void sub_81C0704(u8 taskId)
|
|
||||||
{
|
|
||||||
asm(".syntax unified\n\
|
|
||||||
push {r4-r6,lr}\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r0, 24\n\
|
|
||||||
lsls r1, r0, 2\n\
|
|
||||||
adds r1, r0\n\
|
|
||||||
lsls r4, r1, 3\n\
|
|
||||||
ldr r6, =gTasks + 0x8\n\
|
|
||||||
adds r5, r4, r6\n\
|
|
||||||
movs r1, 0\n\
|
|
||||||
ldrsh r0, [r5, r1]\n\
|
|
||||||
cmp r0, 0xC\n\
|
|
||||||
bls _081C071E\n\
|
|
||||||
b _081C08BC\n\
|
|
||||||
_081C071E:\n\
|
|
||||||
lsls r0, 2\n\
|
|
||||||
ldr r1, =_081C0730\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
mov pc, r0\n\
|
|
||||||
.pool\n\
|
|
||||||
.align 2, 0\n\
|
|
||||||
_081C0730:\n\
|
|
||||||
.4byte _081C0764\n\
|
|
||||||
.4byte _081C076A\n\
|
|
||||||
.4byte _081C0780\n\
|
|
||||||
.4byte _081C07A8\n\
|
|
||||||
.4byte _081C07C8\n\
|
|
||||||
.4byte _081C07E0\n\
|
|
||||||
.4byte _081C07F0\n\
|
|
||||||
.4byte _081C0800\n\
|
|
||||||
.4byte _081C0828\n\
|
|
||||||
.4byte _081C086C\n\
|
|
||||||
.4byte _081C0872\n\
|
|
||||||
.4byte _081C0878\n\
|
|
||||||
.4byte _081C0894\n\
|
|
||||||
_081C0764:\n\
|
|
||||||
bl StopCryAndClearCrySongs\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
_081C076A:\n\
|
|
||||||
bl sub_81C4898\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
ldr r1, =0x000040d3\n\
|
|
||||||
b _081C0786\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C0780:\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
ldr r1, =0x000040d4\n\
|
|
||||||
_081C0786:\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
ldrb r1, [r0]\n\
|
|
||||||
lsls r0, r1, 4\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
lsls r0, 2\n\
|
|
||||||
ldr r1, =gSprites\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
bl DestroySpriteAndFreeResources\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C07A8:\n\
|
|
||||||
ldr r4, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r4]\n\
|
|
||||||
adds r0, 0xC\n\
|
|
||||||
bl sub_81C0098\n\
|
|
||||||
ldr r0, [r4]\n\
|
|
||||||
ldr r1, =0x000040f0\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
movs r1, 0\n\
|
|
||||||
strh r1, [r0]\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C07C8:\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
adds r0, 0xC\n\
|
|
||||||
bl sub_81C00F0\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bne _081C07DA\n\
|
|
||||||
b _081C08F2\n\
|
|
||||||
_081C07DA:\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C07E0:\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
adds r0, 0xC\n\
|
|
||||||
bl sub_81C49E0\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C07F0:\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
adds r0, 0xC\n\
|
|
||||||
bl sub_81C4A08\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C0800:\n\
|
|
||||||
ldr r4, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r4]\n\
|
|
||||||
adds r0, 0x77\n\
|
|
||||||
ldrb r0, [r0]\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
beq _081C0816\n\
|
|
||||||
movs r1, 0x2\n\
|
|
||||||
negs r1, r1\n\
|
|
||||||
movs r0, 0xA\n\
|
|
||||||
bl sub_81C2074\n\
|
|
||||||
_081C0816:\n\
|
|
||||||
ldr r0, [r4]\n\
|
|
||||||
adds r0, 0xC\n\
|
|
||||||
bl sub_81C2228\n\
|
|
||||||
movs r0, 0\n\
|
|
||||||
strh r0, [r5, 0x2]\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C0828:\n\
|
|
||||||
ldr r4, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r4]\n\
|
|
||||||
adds r0, 0xC\n\
|
|
||||||
adds r1, r5, 0x2\n\
|
|
||||||
bl sub_81C45F4\n\
|
|
||||||
ldr r1, [r4]\n\
|
|
||||||
ldr r2, =0x000040d3\n\
|
|
||||||
adds r1, r2\n\
|
|
||||||
strb r0, [r1]\n\
|
|
||||||
ldr r0, [r4]\n\
|
|
||||||
adds r1, r0, r2\n\
|
|
||||||
ldrb r0, [r1]\n\
|
|
||||||
cmp r0, 0xFF\n\
|
|
||||||
beq _081C08F2\n\
|
|
||||||
ldr r2, =gSprites\n\
|
|
||||||
adds r1, r0, 0\n\
|
|
||||||
lsls r0, r1, 4\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
lsls r0, 2\n\
|
|
||||||
adds r0, r2\n\
|
|
||||||
movs r1, 0x1\n\
|
|
||||||
strh r1, [r0, 0x32]\n\
|
|
||||||
bl sub_81C0E24\n\
|
|
||||||
movs r0, 0\n\
|
|
||||||
strh r0, [r5, 0x2]\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C086C:\n\
|
|
||||||
bl sub_81C4280\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
_081C0872:\n\
|
|
||||||
bl sub_81C25E8\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
_081C0878:\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
ldr r1, =0x000040c0\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
ldrb r0, [r0]\n\
|
|
||||||
bl sub_81C2D9C\n\
|
|
||||||
bl sub_81C2524\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C0894:\n\
|
|
||||||
ldr r2, =gSprites\n\
|
|
||||||
ldr r0, =gUnknown_0203CF1C\n\
|
|
||||||
ldr r0, [r0]\n\
|
|
||||||
ldr r1, =0x000040d3\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
ldrb r1, [r0]\n\
|
|
||||||
lsls r0, r1, 4\n\
|
|
||||||
adds r0, r1\n\
|
|
||||||
lsls r0, 2\n\
|
|
||||||
adds r0, r2\n\
|
|
||||||
movs r1, 0\n\
|
|
||||||
strh r1, [r0, 0x32]\n\
|
|
||||||
b _081C08EC\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C08BC:\n\
|
|
||||||
bl sub_81221EC\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bne _081C08F2\n\
|
|
||||||
ldr r0, =sub_81C20F0\n\
|
|
||||||
bl FuncIsActiveTask\n\
|
|
||||||
lsls r0, 24\n\
|
|
||||||
lsrs r0, 24\n\
|
|
||||||
cmp r0, 0\n\
|
|
||||||
bne _081C08F2\n\
|
|
||||||
strh r0, [r5]\n\
|
|
||||||
adds r0, r6, 0\n\
|
|
||||||
subs r0, 0x8\n\
|
|
||||||
adds r0, r4, r0\n\
|
|
||||||
ldr r1, =sub_81C0510\n\
|
|
||||||
str r1, [r0]\n\
|
|
||||||
b _081C08F2\n\
|
|
||||||
.pool\n\
|
|
||||||
_081C08EC:\n\
|
|
||||||
ldrh r0, [r5]\n\
|
|
||||||
adds r0, 0x1\n\
|
|
||||||
strh r0, [r5]\n\
|
|
||||||
_081C08F2:\n\
|
|
||||||
pop {r4-r6}\n\
|
|
||||||
pop {r0}\n\
|
|
||||||
bx r0\n\
|
|
||||||
.syntax divided\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
s8 sub_81C08F8(s8 a)
|
s8 sub_81C08F8(s8 a)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user