mirror of https://github.com/zeldaret/tmc.git
Match sub_08088328
This commit is contained in:
parent
052bead796
commit
ae3ae650f1
|
|
@ -1,257 +0,0 @@
|
|||
.syntax unified
|
||||
.ifdef EU
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
movs r4, #0x7f
|
||||
_08087CC6:
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
ands r5, r4
|
||||
cmp r5, #0x63
|
||||
bhi _08087CC6
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
bl ModShells
|
||||
bl Random
|
||||
movs r1, #0x7f
|
||||
ands r1, r0
|
||||
adds r4, r1, #1
|
||||
adds r7, r4, #0
|
||||
adds r0, r6, #0
|
||||
bl sub_08088424
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
cmp r5, r0
|
||||
bhs _08087D34EU
|
||||
movs r5, #0
|
||||
movs r0, #0x7e
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08087D02EU:
|
||||
cmp r5, #0
|
||||
bne _08087D72
|
||||
cmp r4, #0x88
|
||||
bls _08087D0C
|
||||
movs r4, #1
|
||||
_08087D0C:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _08087D2C
|
||||
ldr r0, _08087D28 @ =gSave+0xce
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
bne _08087D2C
|
||||
movs r5, #1
|
||||
b _08087D2E
|
||||
.align 2, 0
|
||||
_08087D28: .4byte gSave+0xce
|
||||
_08087D2C:
|
||||
adds r4, #1
|
||||
_08087D2E:
|
||||
cmp r7, r4
|
||||
bne _08087D02EU
|
||||
b _08087D6E
|
||||
_08087D34EU:
|
||||
movs r5, #1
|
||||
movs r0, #0x7e
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08087D3C:
|
||||
cmp r5, #0
|
||||
beq _08087DA4
|
||||
cmp r4, #0x88
|
||||
bls _08087D46
|
||||
movs r4, #1
|
||||
_08087D46:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _08087D68
|
||||
ldr r0, _08087D64 @ =gSave+0xce
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
beq _08087D68
|
||||
movs r5, #0
|
||||
b _08087D6A
|
||||
.align 2, 0
|
||||
_08087D64: .4byte gSave+0xce
|
||||
_08087D68:
|
||||
adds r4, #1
|
||||
_08087D6A:
|
||||
cmp r7, r4
|
||||
bne _08087D3C
|
||||
_08087D6E:
|
||||
cmp r5, #0
|
||||
beq _08087DA4
|
||||
_08087D72:
|
||||
ldr r0, _08087D94 @ =gSave
|
||||
adds r0, #0xb0
|
||||
ldrb r1, [r0]
|
||||
adds r1, #1
|
||||
strb r1, [r0]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x7c
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _08087D98
|
||||
movs r0, #7
|
||||
bl SetRoomFlag
|
||||
b _08087DA4
|
||||
.align 2, 0
|
||||
_08087D94: .4byte gSave
|
||||
_08087D98:
|
||||
movs r0, #0x5f
|
||||
bl SetLocalFlag
|
||||
movs r0, #8
|
||||
bl SetRoomFlag
|
||||
_08087DA4:
|
||||
mov r0, r8
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x7e
|
||||
strb r4, [r0]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.else
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
movs r4, #0x7f
|
||||
_08088332:
|
||||
bl Random
|
||||
adds r5, r0, #0
|
||||
ands r5, r4
|
||||
cmp r5, #0x63
|
||||
bhi _08088332
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
bl ModShells
|
||||
bl Random
|
||||
movs r1, #0x7f
|
||||
ands r1, r0
|
||||
adds r4, r1, #1
|
||||
adds r7, r4, #0
|
||||
adds r0, r6, #0
|
||||
bl sub_08088424
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x83
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r5, r0
|
||||
bhs _080883A4
|
||||
movs r5, #0
|
||||
movs r0, #0x7d
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_08088372:
|
||||
cmp r5, #0
|
||||
bne _080883E2
|
||||
cmp r4, #0x88
|
||||
bls _0808837C
|
||||
movs r4, #1
|
||||
_0808837C:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _0808839C
|
||||
ldr r0, _08088398 @ =gSave+0xce
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
bne _0808839C
|
||||
movs r5, #1
|
||||
b _0808839E
|
||||
.align 2, 0
|
||||
_08088398: .4byte gSave+0xce
|
||||
_0808839C:
|
||||
adds r4, #1
|
||||
_0808839E:
|
||||
cmp r7, r4
|
||||
bne _08088372
|
||||
b _080883DE
|
||||
_080883A4:
|
||||
movs r5, #1
|
||||
movs r0, #0x7d
|
||||
adds r0, r0, r6
|
||||
mov r8, r0
|
||||
_080883AC:
|
||||
cmp r5, #0
|
||||
beq _08088414
|
||||
cmp r4, #0x88
|
||||
bls _080883B6
|
||||
movs r4, #1
|
||||
_080883B6:
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08088160
|
||||
cmp r0, #0
|
||||
beq _080883D8
|
||||
ldr r0, _080883D4 @ =gSave+0xce
|
||||
adds r1, r4, #0
|
||||
bl ReadBit
|
||||
cmp r0, #0
|
||||
beq _080883D8
|
||||
movs r5, #0
|
||||
b _080883DA
|
||||
.align 2, 0
|
||||
_080883D4: .4byte gSave+0xce
|
||||
_080883D8:
|
||||
adds r4, #1
|
||||
_080883DA:
|
||||
cmp r7, r4
|
||||
bne _080883AC
|
||||
_080883DE:
|
||||
cmp r5, #0
|
||||
beq _08088414
|
||||
_080883E2:
|
||||
ldr r0, _08088404 @ =gSave
|
||||
adds r0, #0xb0
|
||||
ldrb r1, [r0]
|
||||
adds r1, #1
|
||||
strb r1, [r0]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x80
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _08088408
|
||||
movs r0, #7
|
||||
bl SetRoomFlag
|
||||
b _08088414
|
||||
.align 2, 0
|
||||
_08088404: .4byte gSave
|
||||
_08088408:
|
||||
movs r0, #0x5f
|
||||
bl SetLocalFlag
|
||||
movs r0, #8
|
||||
bl SetRoomFlag
|
||||
_08088414:
|
||||
mov r0, r8
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6, #0x50]
|
||||
adds r0, #0x7d
|
||||
strb r4, [r0]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.endif
|
||||
.syntax divided
|
||||
|
|
@ -489,7 +489,62 @@ void sub_080882A8(FigurineDeviceEntity* this) {
|
|||
gScreen.bg0.updated = 1;
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/figurineDevice/sub_08088328.inc", void sub_08088328(FigurineDeviceEntity* this))
|
||||
void sub_08088328(FigurineDeviceEntity* this) {
|
||||
u32 uVar2;
|
||||
u32 uVar3;
|
||||
u32 uVar5;
|
||||
u32 uVar6;
|
||||
|
||||
do {
|
||||
uVar2 = Random();
|
||||
uVar2 &= 0x7f;
|
||||
} while (uVar2 >= 100);
|
||||
ModShells(-this->unk_81);
|
||||
uVar3 = Random();
|
||||
uVar6 = (uVar3 & 0x7f) + 1;
|
||||
uVar5 = uVar6;
|
||||
sub_08088424(this);
|
||||
if (uVar2 < this->unk_83) {
|
||||
uVar2 = FALSE;
|
||||
do {
|
||||
if (uVar2)
|
||||
break;
|
||||
if (uVar6 > 0x88) {
|
||||
uVar6 = 1;
|
||||
}
|
||||
if (sub_08088160(this, uVar6) && ReadBit(&gSave.stats.filler4[4], uVar6) == 0) {
|
||||
uVar2 = TRUE;
|
||||
} else {
|
||||
uVar6++;
|
||||
}
|
||||
} while (uVar5 != uVar6);
|
||||
} else {
|
||||
uVar2 = TRUE;
|
||||
do {
|
||||
if (!uVar2)
|
||||
break;
|
||||
if (uVar6 > 0x88) {
|
||||
uVar6 = 1;
|
||||
}
|
||||
if (sub_08088160(this, uVar6) && ReadBit(&gSave.stats.filler4[4], uVar6) != 0) {
|
||||
uVar2 = FALSE;
|
||||
} else {
|
||||
uVar6++;
|
||||
}
|
||||
} while (uVar5 != uVar6);
|
||||
}
|
||||
if (uVar2) {
|
||||
gSave.stats.filler[0]++;
|
||||
if (gSave.stats.filler[0] != this->unk_80) {
|
||||
SetRoomFlag(7);
|
||||
} else {
|
||||
SetLocalFlag(SHOP07_COMPLETE);
|
||||
SetRoomFlag(8);
|
||||
}
|
||||
}
|
||||
this->unk_7d = uVar6;
|
||||
((FigurineDeviceEntity*)super->parent)->unk_7d = uVar6;
|
||||
}
|
||||
|
||||
void sub_08088424(FigurineDeviceEntity* this) {
|
||||
if (gSave.stats.filler[0] < 0x32) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue