mirror of
https://github.com/pret/pmd-red.git
synced 2025-02-17 12:01:08 +00:00
sub_8060890
This commit is contained in:
parent
589e9e647b
commit
d8ea0b77d3
@ -7,155 +7,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
thumb_func_start sub_8060800
|
||||
sub_8060800:
|
||||
push {r4-r7,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r1, 0
|
||||
ldr r0, _0806083C
|
||||
ldr r2, [r0]
|
||||
mov r12, r0
|
||||
ldr r6, _08060840
|
||||
cmp r1, r2
|
||||
bge _08060828
|
||||
adds r3, r6, 0
|
||||
_08060816:
|
||||
movs r7, 0
|
||||
ldrsh r0, [r3, r7]
|
||||
cmp r0, 0x1
|
||||
bgt _08060820
|
||||
adds r1, 0x1
|
||||
_08060820:
|
||||
adds r3, 0x2
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bne _08060816
|
||||
_08060828:
|
||||
lsls r0, r4, 1
|
||||
adds r0, r6
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r0, 0x1
|
||||
bgt _08060844
|
||||
adds r3, r4, 0
|
||||
adds r2, r1, 0
|
||||
movs r1, 0
|
||||
b _0806084C
|
||||
.align 2, 0
|
||||
_0806083C: .4byte gUnknown_202F258
|
||||
_08060840: .4byte gUnknown_202F248
|
||||
_08060844:
|
||||
subs r3, r4, r1
|
||||
mov r7, r12
|
||||
ldr r0, [r7]
|
||||
subs r2, r0, r1
|
||||
_0806084C:
|
||||
cmp r5, 0
|
||||
beq _08060858
|
||||
movs r0, 0
|
||||
strb r2, [r5]
|
||||
strb r3, [r5, 0x1]
|
||||
strb r0, [r5, 0x3]
|
||||
_08060858:
|
||||
adds r0, r1, 0
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8060800
|
||||
|
||||
thumb_func_start sub_8060860
|
||||
sub_8060860:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, _08060880
|
||||
movs r2, 0x1A
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r0, 0x1
|
||||
ble _0806087C
|
||||
ldr r0, _08060884
|
||||
lsls r1, 1
|
||||
adds r1, r0
|
||||
movs r2, 0
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0x1
|
||||
ble _08060888
|
||||
_0806087C:
|
||||
movs r0, 0
|
||||
b _0806088A
|
||||
.align 2, 0
|
||||
_08060880: .4byte gUnknown_202EE10
|
||||
_08060884: .4byte gUnknown_202F248
|
||||
_08060888:
|
||||
movs r0, 0x1
|
||||
_0806088A:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8060860
|
||||
|
||||
thumb_func_start sub_8060890
|
||||
sub_8060890:
|
||||
push {r4,lr}
|
||||
adds r3, r0, 0
|
||||
ldr r1, _080608B4
|
||||
ldr r2, _080608B8
|
||||
movs r4, 0x1E
|
||||
ldrsh r0, [r2, r4]
|
||||
lsls r0, 1
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0x1
|
||||
beq _080608D0
|
||||
cmp r0, 0x1
|
||||
bgt _080608BC
|
||||
cmp r0, 0
|
||||
beq _080608C2
|
||||
b _080608E8
|
||||
.align 2, 0
|
||||
_080608B4: .4byte gUnknown_202F248
|
||||
_080608B8: .4byte gUnknown_202EE10
|
||||
_080608BC:
|
||||
cmp r0, 0x2
|
||||
beq _080608DC
|
||||
b _080608E8
|
||||
_080608C2:
|
||||
ldr r1, _080608CC
|
||||
ldrb r0, [r2, 0x18]
|
||||
adds r0, 0x1
|
||||
b _080608EC
|
||||
.align 2, 0
|
||||
_080608CC: .4byte gUnknown_202F238
|
||||
_080608D0:
|
||||
ldr r1, _080608D8
|
||||
ldrb r0, [r2, 0x18]
|
||||
adds r0, 0xB
|
||||
b _080608EC
|
||||
.align 2, 0
|
||||
_080608D8: .4byte gUnknown_202F238
|
||||
_080608DC:
|
||||
ldr r1, _080608E4
|
||||
movs r0, 0x80
|
||||
b _080608EC
|
||||
.align 2, 0
|
||||
_080608E4: .4byte gUnknown_202F238
|
||||
_080608E8:
|
||||
ldr r1, _080608FC
|
||||
subs r0, 0x74
|
||||
_080608EC:
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r1, 0x4]
|
||||
ldrh r0, [r3, 0x2]
|
||||
strh r0, [r1, 0x6]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080608FC: .4byte gUnknown_202F238
|
||||
thumb_func_end sub_8060890
|
||||
|
||||
thumb_func_start sub_8060900
|
||||
sub_8060900:
|
||||
push {r4-r7,lr}
|
||||
|
@ -3384,7 +3384,7 @@ typedef struct UnkTextStruct3 {
|
||||
} UnkTextStruct3;
|
||||
|
||||
extern void sub_803ECB4(UnkTextStruct3 *a0, u8 a1);
|
||||
void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3 *a4, u8 *a5);
|
||||
void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3 *a4, UnkTextStruct2_sub2 *a5);
|
||||
|
||||
// Inline needed to (fake?)match.
|
||||
static inline void sub_805FC30_SetUpTxtStruct(UnkTextStruct3 *src)
|
||||
@ -3473,11 +3473,10 @@ s32 sub_8060D64(s16 *a0, bool8 a1, bool8 a2, bool8 a3, Entity *a4);
|
||||
void sub_8060890(Position *a0);
|
||||
bool8 sub_8060860(s32 a0);
|
||||
void sub_8060900(Entity *a0);
|
||||
s32 sub_8060800(u8 *a0, s32 a1);
|
||||
s32 sub_8060800(UnkTextStruct2_sub2 *a0, s32 a1);
|
||||
void sub_8060CE8(ActionContainer *a0);
|
||||
extern Entity *DrawFieldGiveItemMenu(u8 *a0, s32 a1);
|
||||
|
||||
// TODO: Fix casts to (void*) once more functions are decompiled.
|
||||
bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
|
||||
{
|
||||
s32 i, i_r6;
|
||||
@ -3489,7 +3488,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
|
||||
u8 var_2C = 0;
|
||||
u8 var_28 = 0;
|
||||
EntityInfo *a0Info = a0->info;
|
||||
u32 var_3C;
|
||||
UnkTextStruct2_sub2 var_3C;
|
||||
|
||||
UnkTextStruct3 var_FC =
|
||||
{
|
||||
@ -3502,7 +3501,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
|
||||
.unkC = 0x12,
|
||||
.unkE = 0x10,
|
||||
.unk10 = 0x10,
|
||||
.unk14 = (void*)(&var_3C),
|
||||
.unk14 = &var_3C,
|
||||
},
|
||||
{.unk4 = 3}, {.unk4 = 3}, {.unk4 = 3},
|
||||
},
|
||||
@ -3556,7 +3555,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
|
||||
}
|
||||
}
|
||||
}
|
||||
CreateFieldItemMenu(r8, a0, var_2C, var_30, &var_FC, (void*)&var_3C);
|
||||
CreateFieldItemMenu(r8, a0, var_2C, var_30, &var_FC, &var_3C);
|
||||
|
||||
id = gUnknown_202F248[gUnknown_202EE10.unk1E];
|
||||
if (id >= MAX_TEAM_MEMBERS) {
|
||||
@ -3683,7 +3682,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
|
||||
}
|
||||
|
||||
sub_8060900(a0);
|
||||
sub_8060800((void*)&var_3C, gUnknown_202EE10.unk1E);
|
||||
sub_8060800(&var_3C, gUnknown_202EE10.unk1E);
|
||||
sub_805FC30(&var_FC, 0x16);
|
||||
while (1) {
|
||||
AddMenuCursorSprite(&gUnknown_202EE10);
|
||||
@ -3753,7 +3752,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1)
|
||||
extern const struct UnkTextStruct2 gUnknown_8106B6C;
|
||||
extern const struct unkStruct_8090F58 gUnknown_8106B60;
|
||||
|
||||
void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3 *a4, u8 *a5)
|
||||
void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3 *a4, UnkTextStruct2_sub2 *a5)
|
||||
{
|
||||
s32 i, x, y;
|
||||
s32 r10;
|
||||
@ -3779,7 +3778,7 @@ void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3
|
||||
case 1:
|
||||
a4->a0[0].unk10 = 0x10;
|
||||
a4->a0[0].unkE = 0x10;
|
||||
a5[2] = 0xC;
|
||||
a5->f2 = 0xC;
|
||||
gUnknown_202EE10.unk6 = 0x10;
|
||||
gUnknown_202EE10.unk1C = 0xA;
|
||||
gDungeon->unk181e8.unk18212 = 1;
|
||||
@ -3787,7 +3786,7 @@ void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3
|
||||
case 2:
|
||||
a4->a0[0].unk10 = 4;
|
||||
a4->a0[0].unkE = 4;
|
||||
a5[2] = 6;
|
||||
a5->f2 = 6;
|
||||
gUnknown_202EE10.unk6 = 0x12;
|
||||
gUnknown_202EE10.unk1C = 1;
|
||||
break;
|
||||
@ -3795,7 +3794,7 @@ void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3
|
||||
default:
|
||||
a4->a0[0].unk10 = 4;
|
||||
a4->a0[0].unkE = 4;
|
||||
a5[2] = 0xC;
|
||||
a5->f2 = 0xC;
|
||||
gUnknown_202EE10.unk6 = 0x12;
|
||||
gUnknown_202EE10.unk1C = 1;
|
||||
break;
|
||||
@ -3911,15 +3910,7 @@ void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
struct TstStruct {
|
||||
u8 f0;
|
||||
u8 f1;
|
||||
u8 f2;
|
||||
u8 f3;
|
||||
};
|
||||
|
||||
s32 sub_8060800(struct TstStruct *a0, s32 a1)
|
||||
s32 sub_8060800(UnkTextStruct2_sub2 *a0, s32 a1)
|
||||
{
|
||||
s32 i, r1, r2, r3;
|
||||
|
||||
@ -3948,4 +3939,41 @@ s32 sub_8060800(struct TstStruct *a0, s32 a1)
|
||||
|
||||
return r1;
|
||||
}
|
||||
*/
|
||||
|
||||
bool8 sub_8060860(s32 a0)
|
||||
{
|
||||
if (gUnknown_202EE10.unk1A <= 1 || gUnknown_202F248[a0] > 1)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8060890(Position *a0)
|
||||
{
|
||||
s32 var = gUnknown_202F248[gUnknown_202EE10.unk1E];
|
||||
switch (var)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_202F238.actionUseIndex = gUnknown_202EE10.menuIndex + 1;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_202F238.actionUseIndex = gUnknown_202EE10.menuIndex + 11;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_202F238.actionUseIndex = 128;
|
||||
break;
|
||||
default:
|
||||
gUnknown_202F238.actionUseIndex = var - 116;
|
||||
break;
|
||||
}
|
||||
|
||||
gUnknown_202F238.lastItemThrowPosition.x = a0->x;
|
||||
gUnknown_202F238.lastItemThrowPosition.y = a0->y;
|
||||
}
|
||||
/*
|
||||
void sub_8060900(Entity *a0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user