mirror of https://github.com/zeldaret/tmc.git
Match sub_080A5F48
This commit is contained in:
parent
ca8869391e
commit
2bdde94eda
|
@ -1,94 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0x1f
|
||||
bhi _080A5F5C
|
||||
cmp r4, #0x1c
|
||||
blo _080A5F5C
|
||||
ldr r0, _080A5F9C @ =gSave
|
||||
adds r0, r0, r4
|
||||
adds r0, #0x9a
|
||||
ldrb r4, [r0]
|
||||
_080A5F5C:
|
||||
lsls r0, r1, #5
|
||||
ldr r1, _080A5FA0 @ =0x06010000
|
||||
adds r5, r0, r1
|
||||
ldr r1, _080A5FA4 @ =gSpriteAnimations_322
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r0]
|
||||
ldr r3, _080A5FA8 @ =gMoreSpritePtrs
|
||||
lsls r1, r1, #2
|
||||
ldr r0, [r3, #4]
|
||||
adds r0, r0, r1
|
||||
ldr r2, _080A5FAC @ =0x040000D4
|
||||
ldrh r1, [r0, #2]
|
||||
lsls r1, r1, #5
|
||||
ldr r0, [r3, #8]
|
||||
adds r0, r0, r1
|
||||
str r0, [r2]
|
||||
str r5, [r2, #4]
|
||||
ldr r0, _080A5FB0 @ =0x84000040
|
||||
str r0, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r4, #7
|
||||
blo _080A5FBE
|
||||
cmp r4, #8
|
||||
bhi _080A5FB4
|
||||
ldr r0, _080A5F9C @ =gSave
|
||||
adds r0, #0xac
|
||||
b _080A5FBC
|
||||
.align 2, 0
|
||||
_080A5F9C: .4byte gSave
|
||||
_080A5FA0: .4byte 0x06010000
|
||||
_080A5FA4: .4byte gSpriteAnimations_322
|
||||
_080A5FA8: .4byte gMoreSpritePtrs
|
||||
_080A5FAC: .4byte 0x040000D4
|
||||
_080A5FB0: .4byte 0x84000040
|
||||
_080A5FB4:
|
||||
cmp r4, #0xa
|
||||
bhi _080A5FBE
|
||||
ldr r0, _080A5FF8 @ =gSave
|
||||
adds r0, #0xad
|
||||
_080A5FBC:
|
||||
ldrb r0, [r0]
|
||||
_080A5FBE:
|
||||
cmp r0, #0
|
||||
blt _080A5FF6
|
||||
movs r1, #0xa
|
||||
bl Div
|
||||
adds r4, r1, #0
|
||||
cmp r0, #9
|
||||
ble _080A5FD0
|
||||
movs r0, #9
|
||||
_080A5FD0:
|
||||
ldr r1, _080A5FFC @ =0x040000D4
|
||||
lsls r0, r0, #5
|
||||
ldr r2, _080A6000 @ =gUnk_085C4620
|
||||
adds r0, r0, r2
|
||||
str r0, [r1]
|
||||
str r5, [r1, #4]
|
||||
ldr r3, _080A6004 @ =0x84000008
|
||||
str r3, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa
|
||||
lsls r0, r0, #5
|
||||
adds r0, r0, r2
|
||||
str r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x20
|
||||
str r0, [r1, #4]
|
||||
str r3, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
_080A5FF6:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A5FF8: .4byte gSave
|
||||
_080A5FFC: .4byte 0x040000D4
|
||||
_080A6000: .4byte gUnk_085C4620
|
||||
_080A6004: .4byte 0x84000008
|
||||
.syntax divided
|
|
@ -27,6 +27,9 @@ extern u16 gUnk_02017830[];
|
|||
extern u8 gUnk_080C9C6C[];
|
||||
extern u8 gUnk_020350F0[];
|
||||
extern u8 gUnk_08128C00[];
|
||||
extern Frame* gSpriteAnimations_322[];
|
||||
extern u32 gUnk_085C4620[];
|
||||
extern u16* gMoreSpritePtrs[];
|
||||
|
||||
void sub_080A5CFC(u32, void*, u32);
|
||||
void sub_080A6FB4(u32, u32);
|
||||
|
@ -452,7 +455,49 @@ bool32 sub_080A5F24(void) {
|
|||
return result;
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/subtask2/sub_080A5F48.inc", void sub_080A5F48(u32 param_1, u32 param_2))
|
||||
void sub_080A5F48(u32 param_1, u32 param_2) {
|
||||
extern u32 gSprite_082E68F4[];
|
||||
u32 ammoCount;
|
||||
u32 tensDigit;
|
||||
u8* puVar2;
|
||||
u32 temp1;
|
||||
u16* temp2;
|
||||
u32 temp3;
|
||||
register u32 rem asm("r1");
|
||||
|
||||
switch (param_1) {
|
||||
case 0x1c ... 0x1f:
|
||||
param_1 = (u32)gSave.saved_status.field_0x24[param_1 - 6];
|
||||
break;
|
||||
}
|
||||
|
||||
temp1 = param_2 * 0x20 + 0x6010000;
|
||||
temp3 = gSpriteAnimations_322[param_1]->index;
|
||||
temp2 = &gMoreSpritePtrs[1][temp3 * 2];
|
||||
DmaSet(3, &gMoreSpritePtrs[2][temp2[1] * 0x10], temp1, 0x84000040);
|
||||
ammoCount = -1;
|
||||
|
||||
switch (param_1) {
|
||||
case 7:
|
||||
case 8:
|
||||
ammoCount = gSave.stats.bombCount;
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
ammoCount = gSave.stats.arrowCount;
|
||||
break;
|
||||
}
|
||||
|
||||
if (-1 < (int)ammoCount) {
|
||||
tensDigit = Div(ammoCount, 10);
|
||||
param_1 = rem;
|
||||
if ((int)tensDigit >= 10) {
|
||||
tensDigit = 9;
|
||||
}
|
||||
DmaSet(3, gUnk_085C4620 + tensDigit * 0x8, temp1, 0x84000008);
|
||||
DmaSet(3, gUnk_085C4620 + (param_1 + 10) * 0x8, temp1 + 0x20, 0x84000008);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080A6008(void) {
|
||||
gUnk_08128D58[gMenu.menuType]();
|
||||
|
|
Loading…
Reference in New Issue