sub_350F0

This commit is contained in:
Marcus Huderle 2025-08-11 19:10:56 -05:00
parent f15647db15
commit 0d91298c28
5 changed files with 46 additions and 100 deletions

View File

@ -5,101 +5,3 @@
.syntax unified
.text
thumb_func_start sub_350F0
sub_350F0: @ 0x080350F0
push {r4, r5, lr}
ldr r5, _08035118 @ =gCurrentPinballGame
ldr r0, [r5]
movs r1, #0x88
lsls r1, r1, #5
adds r0, r0, r1
movs r2, #0
movs r1, #1
strb r1, [r0]
ldr r3, [r5]
movs r4, #0x17
ldrsb r4, [r3, r4]
cmp r4, #1
beq _08035138
cmp r4, #1
bgt _0803511C
cmp r4, #0
beq _08035122
b _080351A0
.align 2, 0
_08035118: .4byte gCurrentPinballGame
_0803511C:
cmp r4, #2
beq _08035164
b _080351A0
_08035122:
movs r0, #0x41
strh r0, [r3, #0x18]
strb r1, [r3, #0x17]
ldr r1, _08035134 @ =gMain
ldrh r0, [r1, #0x38]
movs r0, #0x9f
strh r0, [r1, #0x38]
b _080351A0
.align 2, 0
_08035134: .4byte gMain
_08035138:
ldrh r0, [r3, #0x18]
cmp r0, #0
beq _080351A0
subs r0, #1
strh r0, [r3, #0x18]
ldr r2, _08035160 @ =gMain
ldrh r0, [r3, #0x18]
lsrs r0, r0, #2
movs r1, #0x10
subs r1, r1, r0
ldrh r0, [r2, #0x3c]
strh r1, [r2, #0x3c]
ldrh r0, [r3, #0x18]
cmp r0, #0
bne _080351A0
ldrb r0, [r3, #0x17]
adds r0, #1
strb r0, [r3, #0x17]
b _080351A0
.align 2, 0
_08035160: .4byte gMain
_08035164:
ldrh r0, [r3, #0x18]
cmp r0, #0x1d
bhi _08035170
adds r0, #1
strh r0, [r3, #0x18]
b _080351A0
_08035170:
movs r0, #0
strh r2, [r3, #0x18]
strb r0, [r3, #0x17]
ldr r1, _08035194 @ =gMain
movs r3, #0xe9
lsls r3, r3, #3
adds r0, r1, r3
strh r2, [r0]
subs r3, #0xb8
adds r0, r1, r3
strh r2, [r0]
ldrb r0, [r1, #5]
ldrb r1, [r1, #4]
cmp r0, r1
beq _08035198
bl sub_357B8
b _080351A0
.align 2, 0
_08035194: .4byte gMain
_08035198:
bl ResetSomeGraphicsRelatedStuff
ldr r0, [r5]
strb r4, [r0, #0x1d]
_080351A0:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0

Binary file not shown.

View File

@ -582,7 +582,7 @@ extern void sub_34450();
extern void sub_350F0();
extern void sub_351A8();
extern void sub_356A0();
//extern ? sub_357B8();
extern void sub_357B8(void);
//extern ? sub_35860();
//extern ? sub_35AA4();
//extern ? sub_35D54();

View File

@ -123,7 +123,7 @@ struct PinballGame
/*0x014*/ s8 unk14;
/*0x015*/ s8 unk15;
/*0x016*/ s8 unk16;
/*0x017*/ u8 unk17;
/*0x017*/ s8 unk17;
/*0x018*/ u16 unk18;
/*0x01A*/ s8 unk1A;
/*0x01B*/ u8 unk1B;

View File

@ -47,6 +47,50 @@ extern const u16 gUnknown_086B9AB8[][2][3];
extern const u8 gUnknown_0845588C[][0x100];
void sub_350F0(void)
{
gCurrentPinballGame->unk1100 = 1;
switch (gCurrentPinballGame->unk17)
{
case 0:
gCurrentPinballGame->unk18 = 65;
gCurrentPinballGame->unk17 = 1;
gMain.blendControl = 0x9F;
break;
case 1:
if (gCurrentPinballGame->unk18)
{
gCurrentPinballGame->unk18--;
gMain.blendBrightness = 16 - gCurrentPinballGame->unk18 / 4;
if (gCurrentPinballGame->unk18 == 0)
gCurrentPinballGame->unk17++;
}
break;
case 2:
if (gCurrentPinballGame->unk18 < 30)
{
gCurrentPinballGame->unk18++;
}
else
{
gCurrentPinballGame->unk18 = 0;
gCurrentPinballGame->unk17 = 0;
gMain.spriteGroups[6].available = 0;
gMain.spriteGroups[5].available = 0;
if (gMain.unk5 != gMain.selectedField)
{
sub_357B8();
}
else
{
ResetSomeGraphicsRelatedStuff();
gCurrentPinballGame->unk1D = 2;
}
}
break;
}
}
void sub_351A8(void)
{
s16 i;