mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-04-25 07:37:32 -05:00
* Decomp sub_1931C * Remove comments --------- Co-authored-by: Marcus Huderle <huderlem@gmail.com>
This commit is contained in:
parent
9f79d92a22
commit
8fae79dd62
182
asm/rom_11B9C.s
182
asm/rom_11B9C.s
|
|
@ -8654,187 +8654,7 @@ _08018778: .4byte 0x000004B4
|
|||
_0801877C: .4byte 0x000004B6
|
||||
_08018780: .4byte 0x000004A4
|
||||
|
||||
.section .text1931C
|
||||
|
||||
thumb_func_start sub_1931C
|
||||
sub_1931C: @ 0x0801931C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
str r0, [sp]
|
||||
ldr r0, _080193BC @ =gCurrentPinballGame
|
||||
mov r8, r0
|
||||
ldr r1, [r0]
|
||||
mov sb, r1
|
||||
ldr r0, _080193C0 @ =0x000013BC
|
||||
add r0, sb
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
lsls r0, r0, #3
|
||||
ldr r2, _080193C4 @ =gUnknown_086ACE8C
|
||||
adds r7, r0, r2
|
||||
ldrh r0, [r7]
|
||||
adds r0, #0x53
|
||||
lsls r0, r0, #0x10
|
||||
ldr r3, _080193C8 @ =0xFFFF0000
|
||||
ldr r2, _080193CC @ =gUnknown_02031520
|
||||
ldrh r1, [r2, #0x1c]
|
||||
ldrh r2, [r7, #2]
|
||||
adds r4, r1, r2
|
||||
lsls r4, r4, #0x10
|
||||
ldr r2, _080193D0 @ =0x0000FFFF
|
||||
lsrs r0, r0, #0x10
|
||||
mov sl, r0
|
||||
ldrh r0, [r7, #4]
|
||||
adds r0, #0x53
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ands r6, r3
|
||||
orrs r6, r0
|
||||
ldrh r7, [r7, #6]
|
||||
adds r1, r1, r7
|
||||
lsls r1, r1, #0x10
|
||||
ands r6, r2
|
||||
orrs r6, r1
|
||||
asrs r1, r1, #0x10
|
||||
mov r3, sl
|
||||
orrs r3, r4
|
||||
mov sl, r3
|
||||
asrs r4, r4, #0x10
|
||||
subs r1, r1, r4
|
||||
ldr r2, [sp]
|
||||
lsls r0, r2, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
lsls r2, r3, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
subs r0, r0, r2
|
||||
muls r1, r0, r1
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
lsls r1, r6, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
subs r1, r1, r2
|
||||
bl __divsi3
|
||||
ldr r3, [sp]
|
||||
asrs r1, r3, #0x10
|
||||
subs r4, r4, r1
|
||||
lsls r1, r4, #4
|
||||
subs r1, r1, r4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
mov r2, r8
|
||||
ldr r3, _080193C4 @ =gUnknown_086ACE8C
|
||||
ldr r4, _080193CC @ =gUnknown_02031520
|
||||
cmp r0, #0
|
||||
blt _080193D8
|
||||
ldr r1, _080193D4 @ =0x000013C4
|
||||
add r1, sb
|
||||
movs r0, #1
|
||||
b _080193DE
|
||||
.align 2, 0
|
||||
_080193BC: .4byte gCurrentPinballGame
|
||||
_080193C0: .4byte 0x000013BC
|
||||
_080193C4: .4byte gUnknown_086ACE8C
|
||||
_080193C8: .4byte 0xFFFF0000
|
||||
_080193CC: .4byte gUnknown_02031520
|
||||
_080193D0: .4byte 0x0000FFFF
|
||||
_080193D4: .4byte 0x000013C4
|
||||
_080193D8:
|
||||
ldr r1, _08019460 @ =0x000013C4
|
||||
add r1, sb
|
||||
movs r0, #0xff
|
||||
_080193DE:
|
||||
strb r0, [r1]
|
||||
ldr r2, [r2]
|
||||
mov r8, r2
|
||||
ldr r0, _08019464 @ =0x000013C8
|
||||
add r0, r8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
lsls r0, r0, #3
|
||||
adds r7, r0, r3
|
||||
ldrh r3, [r7]
|
||||
movs r0, #0x9c
|
||||
subs r3, r0, r3
|
||||
ldr r1, _08019468 @ =0xFFFF0000
|
||||
mov sb, r1
|
||||
ldrh r2, [r4, #0x1c]
|
||||
ldrh r1, [r7, #2]
|
||||
adds r4, r2, r1
|
||||
lsls r4, r4, #0x10
|
||||
ldr r5, _0801946C @ =0x0000FFFF
|
||||
ldrh r1, [r7, #4]
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r1, sb
|
||||
ands r6, r1
|
||||
orrs r6, r0
|
||||
ldrh r7, [r7, #6]
|
||||
adds r2, r2, r7
|
||||
lsls r2, r2, #0x10
|
||||
ands r6, r5
|
||||
asrs r2, r2, #0x10
|
||||
asrs r4, r4, #0x10
|
||||
subs r2, r2, r4
|
||||
ldr r1, [sp]
|
||||
lsls r0, r1, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
lsls r3, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
subs r0, r0, r3
|
||||
adds r1, r2, #0
|
||||
muls r1, r0, r1
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
lsls r1, r6, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
subs r1, r1, r3
|
||||
bl __divsi3
|
||||
ldr r2, [sp]
|
||||
asrs r1, r2, #0x10
|
||||
subs r4, r4, r1
|
||||
lsls r1, r4, #4
|
||||
subs r1, r1, r4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
blt _08019474
|
||||
ldr r1, _08019470 @ =0x000013D0
|
||||
add r1, r8
|
||||
movs r0, #1
|
||||
b _0801947A
|
||||
.align 2, 0
|
||||
_08019460: .4byte 0x000013C4
|
||||
_08019464: .4byte 0x000013C8
|
||||
_08019468: .4byte 0xFFFF0000
|
||||
_0801946C: .4byte 0x0000FFFF
|
||||
_08019470: .4byte 0x000013D0
|
||||
_08019474:
|
||||
ldr r1, _0801948C @ =0x000013D0
|
||||
add r1, r8
|
||||
movs r0, #0xff
|
||||
_0801947A:
|
||||
strb r0, [r1]
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801948C: .4byte 0x000013D0
|
||||
.section .text19490
|
||||
|
||||
thumb_func_start sub_19490
|
||||
sub_19490: @ 0x08019490
|
||||
|
|
|
|||
|
|
@ -101,9 +101,12 @@ struct BallState
|
|||
|
||||
struct UnkPinballGame13BC
|
||||
{
|
||||
/*0x00*/ u8 filler0[0x4];
|
||||
/*0x00*/ s8 unk0;
|
||||
/*0x01*/ u8 filler1[0x3];
|
||||
/*0x04*/ s8 unk4;
|
||||
/*0x05*/ u8 filler5[0x7];
|
||||
/*0x05*/ u8 filler5[0x3];
|
||||
/*0x08*/ s8 unk8;
|
||||
/*0x09*/ u8 filler9[0x3];
|
||||
};
|
||||
|
||||
struct PinballGame
|
||||
|
|
@ -522,7 +525,9 @@ struct Unk02031520
|
|||
/*0x0A*/ u8 fillerA[0x2];
|
||||
/*0x0C*/ struct PinballGame *unkC;
|
||||
/*0x10*/ struct Unk02031520_unk10 *unk10;
|
||||
/*0x14*/ u8 filler14[0xc];
|
||||
/*0x14*/ u8 filler14[0x8];
|
||||
/*0x1C*/ u16 unk1C;
|
||||
/*0x1E*/ u8 filler1E[0x2];
|
||||
/*0x20*/ s16 unk20;
|
||||
/*0x22*/ s16 unk22;
|
||||
/*0x24*/ s16 unk24;
|
||||
|
|
@ -540,6 +545,14 @@ struct Unk02031590
|
|||
u8 unk16;
|
||||
};
|
||||
|
||||
struct Unk086ACE8C
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
extern struct PinballGame *gCurrentPinballGame;
|
||||
extern const StateFunc gIdlePinballGameStateFuncs[];
|
||||
extern u32 gUnknown_02031510;
|
||||
|
|
@ -561,5 +574,6 @@ extern s32 gUnknown_082EE0E0[0x3E0];
|
|||
extern const u16 gUnknown_08391A4C[0x1000];
|
||||
extern const u16 gUnknown_08393A4C[0x1000];
|
||||
extern const s16 gUnknown_086ACDF4[9];
|
||||
extern struct Unk086ACE8C gUnknown_086ACE8C[13];
|
||||
|
||||
#endif // GUARD_GLOBAL_H
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ SECTIONS
|
|||
src/rom_17634.o(.text);
|
||||
asm/rom_11B9C.o(.text176B0);
|
||||
src/rom_18784.o(.text);
|
||||
asm/rom_11B9C.o(.text1931C);
|
||||
asm/rom_11B9C.o(.text19490);
|
||||
src/rom_19B64.o(.text);
|
||||
src/rom_19D04.o(.text);
|
||||
asm/rom_11B9C.o(.text19E10);
|
||||
|
|
|
|||
|
|
@ -522,4 +522,40 @@ void sub_19304(void)
|
|||
{
|
||||
if (gMain.selectedField >= FIELD_BONUS_START)
|
||||
sub_19734();
|
||||
}
|
||||
|
||||
void sub_1931C(struct Vector16 arg0)
|
||||
{
|
||||
s16 check;
|
||||
struct Unk086ACE8C *line;
|
||||
struct Vector16 point1, point2;
|
||||
|
||||
line = &gUnknown_086ACE8C[gCurrentPinballGame->unk13BC[0].unk0];
|
||||
point1.x = line->unk0 + 0x53;
|
||||
point1.y = line->unk2 + gUnknown_02031520.unk1C;
|
||||
|
||||
point2.x = line->unk4 + 0x53;
|
||||
point2.y = line->unk6 + gUnknown_02031520.unk1C;
|
||||
|
||||
check = (point2.y - point1.y) * (arg0.x - point1.x) * 30 / (point2.x - point1.x) + (point1.y - arg0.y) * 30;
|
||||
|
||||
if (check >= 0)
|
||||
gCurrentPinballGame->unk13BC[0].unk8 = 1;
|
||||
else
|
||||
gCurrentPinballGame->unk13BC[0].unk8 = -1;
|
||||
|
||||
line = &gUnknown_086ACE8C[gCurrentPinballGame->unk13BC[1].unk0];
|
||||
|
||||
point1.x = 0x9C - line->unk0;
|
||||
point1.y = line->unk2 + gUnknown_02031520.unk1C;
|
||||
|
||||
point2.x = 0x9C - line->unk4;
|
||||
point2.y = line->unk6 + gUnknown_02031520.unk1C;
|
||||
|
||||
check = (point2.y - point1.y) * (arg0.x - point1.x) * 30 / (point2.x - point1.x) + (point1.y - arg0.y) * 30;
|
||||
|
||||
if (check >= 0)
|
||||
gCurrentPinballGame->unk13BC[1].unk8 = 1;
|
||||
else
|
||||
gCurrentPinballGame->unk13BC[1].unk8 = -1;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user