mirror of
https://github.com/pret/pokeheartgold.git
synced 2025-02-11 15:55:22 +00:00
overlay 17: Match ov17_02202A84
Co-authored-by: Adrienn Tindall <33725376+adrienntindall@users.noreply.github.com>
This commit is contained in:
parent
228ba8c91b
commit
11490df32b
@ -1012,115 +1012,47 @@ int ov17_02202A50(UnkData_ov17 *a0) {
|
|||||||
return r0;
|
return r0;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern const u8 ov17_02203EA8;
|
extern const UnkStruct_0200D2B4 ov17_02203EA8;
|
||||||
extern sub_0200D2B4();
|
|
||||||
extern void sub_020249D4(Sprite*, u32);
|
|
||||||
|
|
||||||
asm void ov17_02202A84(UnkData_ov17 *a0, u32 index) {
|
void ov17_02202A84(UnkData_ov17 *a0, int index) {
|
||||||
push {r3, r4, r5, r6, r7, lr}
|
UnkData_ov17_sub *sub = &a0->unk20[index];
|
||||||
sub sp, #0x28
|
if (sub->unkC != 0 && sub->soilSpriteMaybe != NULL) {
|
||||||
add r6, r1, #0
|
Sprite_Delete(sub->soilSpriteMaybe);
|
||||||
add r5, r0, #0
|
}
|
||||||
mov r0, #0x14
|
|
||||||
add r7, r6, #0
|
if (sub->growthStage == 0) {
|
||||||
mul r7, r0
|
sub->soilSpriteMaybe = NULL;
|
||||||
add r0, r5, #0
|
Sprite_SetAnimCtrlCurrentFrame(a0->unk164[index + 3], 2);
|
||||||
add r0, #0x20
|
return;
|
||||||
add r4, r0, r7
|
}
|
||||||
ldrb r0, [r4, #0xc]
|
|
||||||
cmp r0, #0
|
UnkStruct_0200D2B4 sp40;
|
||||||
beq _02202AA8
|
MI_CpuCopy8(&ov17_02203EA8, &sp40, sizeof(UnkStruct_0200D2B4));
|
||||||
ldr r0, [r4, #0x10]
|
sp40.x = (index + 1) * 27;
|
||||||
cmp r0, #0
|
switch (sub->growthStage) {
|
||||||
beq _02202AA8
|
case 1:
|
||||||
bl Sprite_Delete
|
sp40.animSeqNo = 5;
|
||||||
_02202AA8:
|
break;
|
||||||
ldrb r0, [r4, #1]
|
case 2:
|
||||||
cmp r0, #0
|
sp40.animSeqNo = 6;
|
||||||
bne _02202AC8
|
break;
|
||||||
mov r0, #0
|
default: {
|
||||||
str r0, [r4, #0x10]
|
sp40.unk_00 = index + 1;
|
||||||
add r0, r6, #3
|
sp40.animSeqNo = sub->growthStage - 3;
|
||||||
lsl r0, r0, #2
|
break;
|
||||||
add r1, r5, r0
|
}
|
||||||
mov r0, #0x59
|
}
|
||||||
lsl r0, r0, #2
|
|
||||||
ldr r0, [r1, r0]
|
sub->soilSpriteMaybe = SpriteRenderer_CreateSprite(a0->spriteRenderer, a0->spriteGfxHandler1, &sp40);
|
||||||
mov r1, #2
|
Set2dSpriteVisibleFlag(sub->soilSpriteMaybe, TRUE);
|
||||||
bl sub_020249D4
|
if (sub->growthStage == 1) {
|
||||||
add sp, #0x28
|
Set2dSpriteAnimActiveFlag(sub->soilSpriteMaybe, FALSE);
|
||||||
pop {r3, r4, r5, r6, r7, pc}
|
Sprite_SetAnimCtrlCurrentFrame(sub->soilSpriteMaybe, a0->unk20[index].soilStateMaybe);
|
||||||
_02202AC8:
|
} else {
|
||||||
ldr r0, [pc, #0x88] // _02202B54 ; =ov17_02203EA8
|
Set2dSpriteAnimActiveFlag(sub->soilSpriteMaybe, TRUE);
|
||||||
add r1, sp, #0
|
}
|
||||||
mov r2, #0x28
|
|
||||||
bl MI_CpuCopy8
|
Sprite_SetAnimCtrlCurrentFrame(a0->unk164[index + 3], a0->unk20[index].soilStateMaybe);
|
||||||
add r0, r6, #1
|
|
||||||
mov r1, #0x1b
|
|
||||||
add r2, r0, #0
|
|
||||||
mul r2, r1
|
|
||||||
add r1, sp, #0
|
|
||||||
strh r2, [r1, #4]
|
|
||||||
ldrb r2, [r4, #1]
|
|
||||||
cmp r2, #1
|
|
||||||
beq _02202AEA
|
|
||||||
cmp r2, #2
|
|
||||||
beq _02202AF0
|
|
||||||
b _02202AF6
|
|
||||||
_02202AEA:
|
|
||||||
mov r0, #5
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
b _02202AFE
|
|
||||||
_02202AF0:
|
|
||||||
mov r0, #6
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
b _02202AFE
|
|
||||||
_02202AF6:
|
|
||||||
str r0, [sp]
|
|
||||||
ldrb r0, [r4, #1]
|
|
||||||
sub r0, r0, #3
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
_02202AFE:
|
|
||||||
mov r1, #0x13
|
|
||||||
lsl r1, r1, #4
|
|
||||||
ldr r0, [r5, r1]
|
|
||||||
add r1, r1, #4
|
|
||||||
ldr r1, [r5, r1]
|
|
||||||
add r2, sp, #0
|
|
||||||
bl sub_0200D2B4
|
|
||||||
str r0, [r4, #0x10]
|
|
||||||
mov r1, #1
|
|
||||||
bl Set2dSpriteVisibleFlag
|
|
||||||
ldrb r0, [r4, #1]
|
|
||||||
cmp r0, #1
|
|
||||||
ldr r0, [r4, #0x10]
|
|
||||||
bne _02202B32
|
|
||||||
mov r1, #0
|
|
||||||
bl Set2dSpriteAnimActiveFlag
|
|
||||||
add r1, r5, r7
|
|
||||||
add r1, #0x2a
|
|
||||||
ldrb r1, [r1]
|
|
||||||
ldr r0, [r4, #0x10]
|
|
||||||
bl sub_020249D4
|
|
||||||
b _02202B38
|
|
||||||
_02202B32:
|
|
||||||
mov r1, #1
|
|
||||||
bl Set2dSpriteAnimActiveFlag
|
|
||||||
_02202B38:
|
|
||||||
add r0, r6, #3
|
|
||||||
lsl r0, r0, #2
|
|
||||||
add r1, r5, r0
|
|
||||||
mov r0, #0x59
|
|
||||||
lsl r0, r0, #2
|
|
||||||
ldr r0, [r1, r0]
|
|
||||||
add r1, r5, r7
|
|
||||||
add r1, #0x2a
|
|
||||||
ldrb r1, [r1]
|
|
||||||
bl sub_020249D4
|
|
||||||
add sp, #0x28
|
|
||||||
pop {r3, r4, r5, r6, r7, pc}
|
|
||||||
nop
|
|
||||||
_02202B54: DCD ov17_02203EA8
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ov17_02202B58(UnkData_ov17 *a0, u8 index) {
|
void ov17_02202B58(UnkData_ov17 *a0, u8 index) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user