overlay 17: Match ov17_02202A84

Co-authored-by: Adrienn Tindall <33725376+adrienntindall@users.noreply.github.com>
This commit is contained in:
tgsm 2023-10-03 10:08:05 -05:00
parent 228ba8c91b
commit 11490df32b

View File

@ -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) {