mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
sub_395D8
This commit is contained in:
parent
1289521541
commit
8f6d9df0cd
539
asm/rom_3219C.s
539
asm/rom_3219C.s
|
|
@ -5017,542 +5017,3 @@ _080395C8: .4byte gSpeciesInfo
|
|||
_080395CC: .4byte 0x00001278
|
||||
_080395D0: .4byte gMPlayInfo_BGM
|
||||
_080395D4: .4byte 0x0000FFFF
|
||||
|
||||
thumb_func_start sub_395D8
|
||||
sub_395D8: @ 0x080395D8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
ldr r7, _08039648 @ =gMain+0x1210 @gMain.spriteGroups[21]
|
||||
ldrh r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _080395EE
|
||||
b _080398D0
|
||||
_080395EE:
|
||||
ldr r1, _0803964C @ =gCurrentPinballGame
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08039650 @ =0x000003DF
|
||||
adds r3, r0, r2
|
||||
movs r5, #0
|
||||
ldrsb r5, [r3, r5]
|
||||
ldr r4, _08039654 @ =gUnknown_086AEAF8
|
||||
adds r2, #3
|
||||
adds r0, r0, r2
|
||||
movs r6, #0
|
||||
ldrsh r1, [r0, r6]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r1, r4, #4
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
strb r0, [r3]
|
||||
ldr r1, _0803964C @ =gCurrentPinballGame
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r2
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
mov r8, r0
|
||||
cmp r5, #0xe
|
||||
bgt _08039668
|
||||
ldr r2, _08039658 @ =0x040000D4
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #2
|
||||
subs r0, r0, r5
|
||||
lsls r0, r0, #7
|
||||
ldr r1, _0803965C @ =gUnknown_0849664C
|
||||
adds r0, r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, _08039660 @ =0x06010FA0
|
||||
str r0, [r2, #4]
|
||||
ldr r0, _08039664 @ =0x800002C0
|
||||
b _08039684
|
||||
.align 2, 0
|
||||
_08039648: .4byte gMain+0x1210 @gMain.spriteGroups[21]
|
||||
_0803964C: .4byte gCurrentPinballGame
|
||||
_08039650: .4byte 0x000003DF
|
||||
_08039654: .4byte gUnknown_086AEAF8
|
||||
_08039658: .4byte 0x040000D4
|
||||
_0803965C: .4byte gUnknown_0849664C
|
||||
_08039660: .4byte 0x06010FA0
|
||||
_08039664: .4byte 0x800002C0
|
||||
_08039668:
|
||||
ldr r2, _08039720 @ =0x040000D4
|
||||
adds r1, r5, #0
|
||||
subs r1, #0xf
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #6
|
||||
ldr r1, _08039724 @ =gUnknown_0849B8CC
|
||||
adds r0, r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, _08039728 @ =0x06010FA0
|
||||
str r0, [r2, #4]
|
||||
ldr r0, _0803972C @ =0x80000260
|
||||
_08039684:
|
||||
str r0, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
ldr r3, _08039730 @ =gCurrentPinballGame
|
||||
ldr r4, [r3]
|
||||
movs r6, #0xfa
|
||||
lsls r6, r6, #2
|
||||
adds r5, r4, r6
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x48
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
ldrh r1, [r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #2]
|
||||
ldr r2, _08039734 @ =0x000003EA
|
||||
adds r6, r4, r2
|
||||
movs r3, #0
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x42
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5a
|
||||
ldrh r1, [r1]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #4]
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x78
|
||||
movs r2, #0xa2
|
||||
lsls r2, r2, #2
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r0, #0x32
|
||||
ldr r2, _08039738 @ =0x0000028A
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
ldr r3, _0803973C @ =0x00000387
|
||||
adds r0, r4, r3
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #2
|
||||
bne _08039740
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0xc0
|
||||
movs r2, #0xfc
|
||||
lsls r2, r2, #2
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0x86
|
||||
b _08039796
|
||||
.align 2, 0
|
||||
_08039720: .4byte 0x040000D4
|
||||
_08039724: .4byte gUnknown_0849B8CC
|
||||
_08039728: .4byte 0x06010FA0
|
||||
_0803972C: .4byte 0x80000260
|
||||
_08039730: .4byte gCurrentPinballGame
|
||||
_08039734: .4byte 0x000003EA
|
||||
_08039738: .4byte 0x0000028A
|
||||
_0803973C: .4byte 0x00000387
|
||||
_08039740:
|
||||
cmp r0, #3
|
||||
bne _0803976E
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0xc0
|
||||
movs r2, #0xfc
|
||||
lsls r2, r2, #2
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0x96
|
||||
b _08039796
|
||||
_0803976E:
|
||||
movs r1, #0
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0xb4
|
||||
movs r2, #0xfc
|
||||
lsls r2, r2, #2
|
||||
adds r1, r4, r2
|
||||
strh r0, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0xf
|
||||
adds r0, #0x74
|
||||
_08039796:
|
||||
ldr r6, _080397FC @ =0x000003F2
|
||||
adds r1, r4, r6
|
||||
strh r0, [r1]
|
||||
ldr r1, _08039800 @ =gCurrentPinballGame
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08039804 @ =0x00000389
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #9
|
||||
ble _08039810
|
||||
movs r2, #0
|
||||
ldr r4, _08039808 @ =gOamBuffer
|
||||
ldr r3, _0803980C @ =0xFFFFFE00
|
||||
mov r8, r3
|
||||
movs r6, #0xb0
|
||||
_080397B8:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
adds r2, r2, r4
|
||||
ldrh r1, [r2, #2]
|
||||
mov r0, r8
|
||||
ands r0, r1
|
||||
movs r1, #0xf0
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r0, [r5]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r4
|
||||
movs r1, #0xb4
|
||||
strb r1, [r0]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r4
|
||||
ldrb r2, [r1, #5]
|
||||
movs r0, #0xf
|
||||
ands r0, r2
|
||||
orrs r0, r6
|
||||
strb r0, [r1, #5]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #9
|
||||
ble _080397B8
|
||||
b _080398D0
|
||||
.align 2, 0
|
||||
_080397FC: .4byte 0x000003F2
|
||||
_08039800: .4byte gCurrentPinballGame
|
||||
_08039804: .4byte 0x00000389
|
||||
_08039808: .4byte gOamBuffer
|
||||
_0803980C: .4byte 0xFFFFFE00
|
||||
_08039810:
|
||||
cmp r0, #1
|
||||
bne _0803981C
|
||||
movs r3, #0xe
|
||||
mov r4, r8
|
||||
lsls r0, r4, #0x10
|
||||
b _0803983C
|
||||
_0803981C:
|
||||
cmp r0, #3
|
||||
bne _08039828
|
||||
movs r3, #0xb
|
||||
mov r6, r8
|
||||
lsls r0, r6, #0x10
|
||||
b _0803983C
|
||||
_08039828:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #0x10
|
||||
asrs r1, r0, #0x10
|
||||
movs r3, #4
|
||||
cmp r1, #0x14
|
||||
beq _0803983C
|
||||
movs r3, #0xf
|
||||
cmp r1, #0x15
|
||||
bne _0803983C
|
||||
movs r3, #3
|
||||
_0803983C:
|
||||
movs r2, #0
|
||||
lsls r3, r3, #4
|
||||
mov r8, r3
|
||||
ldr r3, _080399BC @ =gUnknown_086B92FC
|
||||
mov sl, r3
|
||||
ldr r6, _080399C0 @ =gOamBuffer
|
||||
asrs r1, r0, #0x10
|
||||
lsls r0, r1, #4
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
mov ip, r0
|
||||
ldr r4, _080399C4 @ =0xFFFFFE00
|
||||
mov sb, r4
|
||||
_08039856:
|
||||
lsls r3, r2, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
lsls r0, r3, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
adds r2, r2, r6
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r3
|
||||
lsls r0, r0, #1
|
||||
add r0, sl
|
||||
add r0, ip
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r2]
|
||||
adds r0, #2
|
||||
adds r2, #2
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0, #2]
|
||||
strh r0, [r2, #2]
|
||||
ldrh r2, [r5]
|
||||
lsls r2, r2, #3
|
||||
adds r2, r2, r6
|
||||
ldrh r0, [r2, #2]
|
||||
lsls r1, r0, #0x17
|
||||
lsrs r1, r1, #0x17
|
||||
str r1, [sp]
|
||||
movs r4, #2
|
||||
ldrsh r1, [r7, r4]
|
||||
ldr r0, [sp]
|
||||
adds r1, r0, r1
|
||||
ldr r4, _080399C8 @ =0x000001FF
|
||||
ands r1, r4
|
||||
mov r0, sb
|
||||
ldrh r4, [r2, #2]
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #2]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r0, [r7, #4]
|
||||
ldrb r2, [r1]
|
||||
adds r0, r0, r2
|
||||
strb r0, [r1]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r2, [r1, #5]
|
||||
movs r0, #0xf
|
||||
ands r0, r2
|
||||
mov r4, r8
|
||||
orrs r0, r4
|
||||
strb r0, [r1, #5]
|
||||
adds r3, #1
|
||||
lsls r3, r3, #0x10
|
||||
lsrs r2, r3, #0x10
|
||||
asrs r3, r3, #0x10
|
||||
cmp r3, #9
|
||||
ble _08039856
|
||||
_080398D0:
|
||||
ldr r7, _080399CC @ =gMain+0x15A8 @gMain.spriteGroups[26]
|
||||
ldrh r0, [r7]
|
||||
cmp r0, #0
|
||||
bne _080398DA
|
||||
b _08039A08
|
||||
_080398DA:
|
||||
ldr r6, _080399D0 @ =gCurrentPinballGame
|
||||
ldr r4, [r6]
|
||||
movs r1, #0xfa
|
||||
lsls r1, r1, #2
|
||||
adds r0, r4, r1
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r4, #0x58
|
||||
ldrh r1, [r4]
|
||||
subs r1, #0x6c
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #2]
|
||||
ldr r4, [r6]
|
||||
ldr r3, _080399D4 @ =0x000003EA
|
||||
adds r0, r4, r3
|
||||
movs r6, #0
|
||||
ldrsh r0, [r0, r6]
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r4, #0x5a
|
||||
ldrh r1, [r4]
|
||||
subs r1, #0x52
|
||||
subs r0, r0, r1
|
||||
strh r0, [r7, #4]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xc7
|
||||
ble _0803991E
|
||||
movs r0, #0xc8
|
||||
strh r0, [r7, #4]
|
||||
_0803991E:
|
||||
ldr r4, _080399D8 @ =gUnknown_086AEDCC
|
||||
ldr r1, _080399D0 @ =gCurrentPinballGame
|
||||
ldr r0, [r1]
|
||||
ldr r2, _080399DC @ =0x00000456
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
movs r1, #0x54
|
||||
bl __umodsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #6
|
||||
bl __udivsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0xf
|
||||
adds r0, r0, r4
|
||||
ldr r2, _080399E0 @ =0x040000D4
|
||||
movs r3, #0
|
||||
ldrsh r1, [r0, r3]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #6
|
||||
ldr r1, _080399E4 @ =gUnknown_083C13AC
|
||||
adds r0, r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, _080399E8 @ =0x06012420
|
||||
str r0, [r2, #4]
|
||||
ldr r0, _080399EC @ =0x80000060
|
||||
str r0, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
movs r2, #0
|
||||
ldr r6, _080399C0 @ =gOamBuffer
|
||||
ldr r4, _080399C4 @ =0xFFFFFE00
|
||||
mov r8, r4
|
||||
_08039964:
|
||||
lsls r4, r2, #0x10
|
||||
asrs r4, r4, #0x10
|
||||
lsls r0, r4, #3
|
||||
adds r0, #8
|
||||
adds r5, r7, r0
|
||||
ldrh r3, [r5]
|
||||
lsls r3, r3, #3
|
||||
adds r3, r3, r6
|
||||
movs r0, #2
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r2, #2
|
||||
ldrsh r0, [r7, r2]
|
||||
adds r1, r1, r0
|
||||
ldr r2, _080399C8 @ =0x000001FF
|
||||
adds r0, r2, #0
|
||||
ands r1, r0
|
||||
ldrh r2, [r3, #2]
|
||||
mov r0, r8
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strh r0, [r3, #2]
|
||||
ldrh r1, [r5]
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r6
|
||||
ldrb r0, [r7, #4]
|
||||
ldrb r5, [r5, #4]
|
||||
adds r0, r0, r5
|
||||
strb r0, [r1]
|
||||
adds r4, #1
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r2, r4, #0x10
|
||||
asrs r4, r4, #0x10
|
||||
cmp r4, #1
|
||||
ble _08039964
|
||||
ldr r3, _080399D0 @ =gCurrentPinballGame
|
||||
ldr r0, [r3]
|
||||
ldr r6, _080399DC @ =0x00000456
|
||||
adds r4, r0, r6
|
||||
ldrh r0, [r4]
|
||||
cmp r0, #0x52
|
||||
bhi _080399F0
|
||||
adds r0, #1
|
||||
strh r0, [r4]
|
||||
b _08039A2C
|
||||
.align 2, 0
|
||||
_080399BC: .4byte gUnknown_086B92FC
|
||||
_080399C0: .4byte gOamBuffer
|
||||
_080399C4: .4byte 0xFFFFFE00
|
||||
_080399C8: .4byte 0x000001FF
|
||||
_080399CC: .4byte gMain+0x15A8 @gMain.spriteGroups[26]
|
||||
_080399D0: .4byte gCurrentPinballGame
|
||||
_080399D4: .4byte 0x000003EA
|
||||
_080399D8: .4byte gUnknown_086AEDCC
|
||||
_080399DC: .4byte 0x00000456
|
||||
_080399E0: .4byte 0x040000D4
|
||||
_080399E4: .4byte gUnknown_083C13AC
|
||||
_080399E8: .4byte 0x06012420
|
||||
_080399EC: .4byte 0x80000060
|
||||
_080399F0:
|
||||
movs r1, #0
|
||||
strh r1, [r4]
|
||||
ldr r0, _08039A00 @ =gMain
|
||||
ldr r2, _08039A04 @ =0x000015A8
|
||||
adds r0, r0, r2
|
||||
strh r1, [r0]
|
||||
b _08039A2C
|
||||
.align 2, 0
|
||||
_08039A00: .4byte gMain
|
||||
_08039A04: .4byte 0x000015A8
|
||||
_08039A08:
|
||||
ldr r3, _08039A3C @ =gCurrentPinballGame
|
||||
ldr r1, [r3]
|
||||
movs r4, #0xf7
|
||||
lsls r4, r4, #2
|
||||
adds r0, r1, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0xb
|
||||
bne _08039A2C
|
||||
movs r6, #0xf9
|
||||
lsls r6, r6, #2
|
||||
adds r0, r1, r6
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0xda
|
||||
bne _08039A2C
|
||||
movs r0, #1
|
||||
strh r0, [r7]
|
||||
_08039A2C:
|
||||
add sp, #8
|
||||
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
|
||||
_08039A3C: .4byte gCurrentPinballGame
|
||||
|
|
|
|||
Binary file not shown.
127
src/rom_49A34.c
127
src/rom_49A34.c
|
|
@ -124,6 +124,7 @@ extern const u16 gUnknown_086AF3C6[];
|
|||
extern const u16 gUnknown_086B63AA[][2][3];
|
||||
extern const u16 gUnknown_086B65EA[][19][3];
|
||||
extern const u16 gUnknown_086B91AC[][4][3];
|
||||
extern const u16 gUnknown_086B92FC[][10][3];
|
||||
extern const u16 gUnknown_086B6512[][6][3];
|
||||
extern const u16 gUnknown_086B63F2[][4][3];
|
||||
extern const u16 gUnknown_086B8AE0[][10][3];
|
||||
|
|
@ -150,6 +151,11 @@ extern const s16 gUnknown_086AEE5E[][3];
|
|||
extern const u8 gUnknown_083C1A6C[][0x3C0];
|
||||
extern const struct Vector16 gUnknown_086AEDE8[];
|
||||
extern const u8 gUnknown_084FF90C[][0x200];
|
||||
extern const s16 gUnknown_086AEAF8[][3];
|
||||
extern const u8 gUnknown_0849664C[][0x580];
|
||||
extern const u8 gUnknown_0849B8CC[][0x4C0];
|
||||
extern const s16 gUnknown_086AEDCC[];
|
||||
extern const u8 gUnknown_083C13AC[][0xC0];
|
||||
|
||||
struct Unk_086AFAC0
|
||||
{
|
||||
|
|
@ -178,6 +184,127 @@ extern u8 gUnknown_0200FBB0[];
|
|||
extern u8 gUnknown_020030A0[];
|
||||
|
||||
|
||||
void sub_395D8(void)
|
||||
{
|
||||
s16 i;
|
||||
struct SpriteGroup *group;
|
||||
struct OamDataSimple *oamSimple;
|
||||
u16 *dst;
|
||||
const u16 *src;
|
||||
s16 var2;
|
||||
s16 index;
|
||||
s16 palette;
|
||||
|
||||
group = &gMain.spriteGroups[21];
|
||||
if (group->available)
|
||||
{
|
||||
index = gCurrentPinballGame->unk3DF;
|
||||
gCurrentPinballGame->unk3DF = gUnknown_086AEAF8[gCurrentPinballGame->unk3E2][2];
|
||||
var2 = gUnknown_086AEAF8[gCurrentPinballGame->unk3E2][0];
|
||||
if (index < 15)
|
||||
{
|
||||
DmaCopy16(3, gUnknown_0849664C[index], (void *)0x06010FA0, 0x580);
|
||||
}
|
||||
else
|
||||
{
|
||||
index -= 15;
|
||||
DmaCopy16(3, gUnknown_0849B8CC[index], (void *)0x06010FA0, 0x4C0);
|
||||
}
|
||||
|
||||
group->baseX = gCurrentPinballGame->unk3E8 / 10 + 72u - gCurrentPinballGame->unk58;
|
||||
group->baseY = gCurrentPinballGame->unk3EA / 10 + 66u - gCurrentPinballGame->unk5A;
|
||||
gCurrentPinballGame->unk288 = gCurrentPinballGame->unk3E8 / 10 + 120;
|
||||
gCurrentPinballGame->unk28A = gCurrentPinballGame->unk3EA / 10 + 50;
|
||||
if (gCurrentPinballGame->unk387 == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = (gCurrentPinballGame->unk3E8 / 10) * 2 + 192;
|
||||
gCurrentPinballGame->unk3F2 = (gCurrentPinballGame->unk3EA / 10) * 2 + 134;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk387 == 3)
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = (gCurrentPinballGame->unk3E8 / 10) * 2 + 192;
|
||||
gCurrentPinballGame->unk3F2 = (gCurrentPinballGame->unk3EA / 10) * 2 + 150;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk3F0 = (gCurrentPinballGame->unk3E8 / 10) * 2 + 180;
|
||||
gCurrentPinballGame->unk3F2 = (gCurrentPinballGame->unk3EA / 10) * 2 + 116;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk389 > 9)
|
||||
{
|
||||
palette = 11;
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
gOamBuffer[oamSimple->oamId].x = 240;
|
||||
gOamBuffer[oamSimple->oamId].y = 180;
|
||||
gOamBuffer[oamSimple->oamId].paletteNum = palette;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk389 == 1)
|
||||
palette = 14;
|
||||
else if (gCurrentPinballGame->unk389 == 3)
|
||||
palette = 11;
|
||||
else if (var2 == 20)
|
||||
palette = 4;
|
||||
else if (var2 == 21)
|
||||
palette = 3;
|
||||
else
|
||||
palette = 15;
|
||||
|
||||
for (i = 0; i < 10; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
dst = (u16*)&gOamBuffer[oamSimple->oamId];
|
||||
src = gUnknown_086B92FC[var2][i];
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
|
||||
gOamBuffer[oamSimple->oamId].x += group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y += group->baseY;
|
||||
gOamBuffer[oamSimple->oamId].paletteNum = palette;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group = &gMain.spriteGroups[26];
|
||||
if (group->available)
|
||||
{
|
||||
group->baseX = gCurrentPinballGame->unk3E8 / 10 + 108 - gCurrentPinballGame->unk58;
|
||||
group->baseY = gCurrentPinballGame->unk3EA / 10 + 82 - gCurrentPinballGame->unk5A;
|
||||
if (group->baseY >= 200)
|
||||
group->baseY = 200;
|
||||
|
||||
index = gUnknown_086AEDCC[(gCurrentPinballGame->unk456 % 84) / 6];
|
||||
DmaCopy16(3, gUnknown_083C13AC[index], (void *)0x06012420, 0xC0);
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
oamSimple = &group->oam[i];
|
||||
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX;
|
||||
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk456 < 83)
|
||||
{
|
||||
gCurrentPinballGame->unk456++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk456 = 0;
|
||||
gMain.spriteGroups[26].available = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk3DC == 11 && gCurrentPinballGame->unk3E4 == 218)
|
||||
group->available = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_39A40(void)
|
||||
{
|
||||
s16 i, j;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user