mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-14 00:01:13 -05:00
through HandleInput
This commit is contained in:
parent
f45c229453
commit
e445a42a5b
|
|
@ -5,901 +5,8 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start InBoxInput_GrabbingMultiple
|
||||
InBoxInput_GrabbingMultiple: @ 8094240
|
||||
push {r4,lr}
|
||||
ldr r1, _08094270 @ =gMain
|
||||
ldrh r0, [r1, 0x2C]
|
||||
movs r4, 0x1
|
||||
ands r4, r0
|
||||
cmp r4, 0
|
||||
beq _080942F4
|
||||
ldrh r1, [r1, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094278
|
||||
ldr r4, _08094274 @ =sBoxCursorPosition
|
||||
movs r0, 0
|
||||
ldrsb r0, [r4, r0]
|
||||
movs r1, 0x6
|
||||
bl __divsi3
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080942EC
|
||||
ldrb r1, [r4]
|
||||
subs r1, 0x6
|
||||
b _080942DA
|
||||
.align 2, 0
|
||||
_08094270: .4byte gMain
|
||||
_08094274: .4byte sBoxCursorPosition
|
||||
_08094278:
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094298
|
||||
ldr r1, _08094294 @ =sBoxCursorPosition
|
||||
movs r0, 0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r0, 0x6
|
||||
cmp r0, 0x1D
|
||||
bgt _080942EC
|
||||
ldrb r1, [r1]
|
||||
adds r1, 0x6
|
||||
b _080942DA
|
||||
.align 2, 0
|
||||
_08094294: .4byte sBoxCursorPosition
|
||||
_08094298:
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080942BC
|
||||
ldr r4, _080942B8 @ =sBoxCursorPosition
|
||||
movs r0, 0
|
||||
ldrsb r0, [r4, r0]
|
||||
movs r1, 0x6
|
||||
bl __modsi3
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080942EC
|
||||
ldrb r1, [r4]
|
||||
subs r1, 0x1
|
||||
b _080942DA
|
||||
.align 2, 0
|
||||
_080942B8: .4byte sBoxCursorPosition
|
||||
_080942BC:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080942F0
|
||||
ldr r4, _080942E8 @ =sBoxCursorPosition
|
||||
movs r0, 0
|
||||
ldrsb r0, [r4, r0]
|
||||
adds r0, 0x1
|
||||
movs r1, 0x6
|
||||
bl __modsi3
|
||||
cmp r0, 0
|
||||
beq _080942EC
|
||||
ldrb r1, [r4]
|
||||
adds r1, 0x1
|
||||
_080942DA:
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
movs r0, 0
|
||||
bl sub_80927E8
|
||||
movs r0, 0x15
|
||||
b _08094364
|
||||
.align 2, 0
|
||||
_080942E8: .4byte sBoxCursorPosition
|
||||
_080942EC:
|
||||
movs r0, 0x18
|
||||
b _08094364
|
||||
_080942F0:
|
||||
movs r0, 0
|
||||
b _08094364
|
||||
_080942F4:
|
||||
bl sub_8095AA0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, _08094330 @ =sBoxCursorPosition
|
||||
ldrb r1, [r1]
|
||||
lsls r1, 24
|
||||
asrs r1, 24
|
||||
cmp r0, r1
|
||||
beq _08094344
|
||||
ldr r2, _08094334 @ =sIsMonBeingMoved
|
||||
ldr r0, _08094338 @ =sPSSData
|
||||
ldr r1, [r0]
|
||||
movs r3, 0xCE
|
||||
lsls r3, 4
|
||||
adds r0, r1, r3
|
||||
ldrh r0, [r0]
|
||||
negs r0, r0
|
||||
lsrs r0, 31
|
||||
strb r0, [r2]
|
||||
ldr r0, _0809433C @ =0x000021ef
|
||||
adds r1, r0
|
||||
movs r0, 0x2
|
||||
strb r0, [r1]
|
||||
bl StorageGetCurrentBox
|
||||
ldr r1, _08094340 @ =sMovingMonOrigBoxId
|
||||
strb r0, [r1]
|
||||
movs r0, 0x17
|
||||
b _08094364
|
||||
.align 2, 0
|
||||
_08094330: .4byte sBoxCursorPosition
|
||||
_08094334: .4byte sIsMonBeingMoved
|
||||
_08094338: .4byte sPSSData
|
||||
_0809433C: .4byte 0x000021ef
|
||||
_08094340: .4byte sMovingMonOrigBoxId
|
||||
_08094344:
|
||||
ldr r1, _0809436C @ =sPSSData
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08094370 @ =0x000021ef
|
||||
adds r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r1]
|
||||
ldr r3, _08094374 @ =0x00000cb4
|
||||
adds r0, r3
|
||||
ldr r1, [r0]
|
||||
adds r1, 0x3E
|
||||
ldrb r2, [r1]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r2
|
||||
strb r0, [r1]
|
||||
movs r0, 0x16
|
||||
_08094364:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809436C: .4byte sPSSData
|
||||
_08094370: .4byte 0x000021ef
|
||||
_08094374: .4byte 0x00000cb4
|
||||
thumb_func_end InBoxInput_GrabbingMultiple
|
||||
|
||||
thumb_func_start InBoxInput_MovingMultiple
|
||||
InBoxInput_MovingMultiple: @ 8094378
|
||||
push {r4,lr}
|
||||
ldr r2, _0809439C @ =gMain
|
||||
ldrh r1, [r2, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080943A4
|
||||
movs r0, 0
|
||||
bl sub_8095474
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08094450
|
||||
ldr r0, _080943A0 @ =sBoxCursorPosition
|
||||
ldrb r1, [r0]
|
||||
subs r1, 0x6
|
||||
b _08094402
|
||||
.align 2, 0
|
||||
_0809439C: .4byte gMain
|
||||
_080943A0: .4byte sBoxCursorPosition
|
||||
_080943A4:
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080943C4
|
||||
movs r0, 0x1
|
||||
bl sub_8095474
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08094450
|
||||
ldr r0, _080943C0 @ =sBoxCursorPosition
|
||||
ldrb r1, [r0]
|
||||
adds r1, 0x6
|
||||
b _08094402
|
||||
.align 2, 0
|
||||
_080943C0: .4byte sBoxCursorPosition
|
||||
_080943C4:
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080943E4
|
||||
movs r0, 0x2
|
||||
bl sub_8095474
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809446A
|
||||
ldr r0, _080943E0 @ =sBoxCursorPosition
|
||||
ldrb r1, [r0]
|
||||
subs r1, 0x1
|
||||
b _08094402
|
||||
.align 2, 0
|
||||
_080943E0: .4byte sBoxCursorPosition
|
||||
_080943E4:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
cmp r4, 0
|
||||
beq _08094414
|
||||
movs r0, 0x3
|
||||
bl sub_8095474
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809447E
|
||||
ldr r0, _08094410 @ =sBoxCursorPosition
|
||||
ldrb r1, [r0]
|
||||
adds r1, 0x1
|
||||
_08094402:
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
movs r0, 0
|
||||
bl sub_80927E8
|
||||
movs r0, 0x19
|
||||
b _08094484
|
||||
.align 2, 0
|
||||
_08094410: .4byte sBoxCursorPosition
|
||||
_08094414:
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094448
|
||||
bl sub_8095ABC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08094450
|
||||
ldr r0, _0809443C @ =sIsMonBeingMoved
|
||||
strb r4, [r0]
|
||||
ldr r0, _08094440 @ =sPSSData
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08094444 @ =0x000021ef
|
||||
adds r0, r1
|
||||
strb r4, [r0]
|
||||
movs r0, 0x1A
|
||||
b _08094484
|
||||
.align 2, 0
|
||||
_0809443C: .4byte sIsMonBeingMoved
|
||||
_08094440: .4byte sPSSData
|
||||
_08094444: .4byte 0x000021ef
|
||||
_08094448:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094454
|
||||
_08094450:
|
||||
movs r0, 0x18
|
||||
b _08094484
|
||||
_08094454:
|
||||
ldr r0, _08094470 @ =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x13]
|
||||
cmp r0, 0x1
|
||||
bne _08094482
|
||||
ldrh r1, [r2, 0x2C]
|
||||
movs r0, 0x80
|
||||
lsls r0, 2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094474
|
||||
_0809446A:
|
||||
movs r0, 0xA
|
||||
b _08094484
|
||||
.align 2, 0
|
||||
_08094470: .4byte gSaveBlock2Ptr
|
||||
_08094474:
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094482
|
||||
_0809447E:
|
||||
movs r0, 0x9
|
||||
b _08094484
|
||||
_08094482:
|
||||
movs r0, 0
|
||||
_08094484:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end InBoxInput_MovingMultiple
|
||||
|
||||
thumb_func_start sub_809448C
|
||||
sub_809448C: @ 809448C
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
ldr r0, _080944FC @ =sBoxCursorArea
|
||||
ldrb r0, [r0]
|
||||
mov r9, r0
|
||||
ldr r6, _08094500 @ =sBoxCursorPosition
|
||||
ldrb r4, [r6]
|
||||
ldr r2, _08094504 @ =sPSSData
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08094508 @ =0x00000ccf
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
ldr r3, _0809450C @ =0x00000cce
|
||||
adds r0, r3
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
adds r3, 0x5
|
||||
adds r0, r3
|
||||
strb r1, [r0]
|
||||
mov r8, r1
|
||||
movs r7, 0
|
||||
ldr r1, _08094510 @ =gMain
|
||||
ldrh r3, [r1, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r3
|
||||
adds r5, r6, 0
|
||||
mov r12, r1
|
||||
cmp r0, 0
|
||||
beq _080944D0
|
||||
b _08094670
|
||||
_080944D0:
|
||||
movs r0, 0x80
|
||||
ands r0, r3
|
||||
cmp r0, 0
|
||||
beq _08094514
|
||||
lsls r0, r4, 24
|
||||
movs r1, 0x80
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r4, r0, 24
|
||||
asrs r0, 24
|
||||
cmp r0, 0x6
|
||||
ble _080944EA
|
||||
movs r4, 0
|
||||
_080944EA:
|
||||
lsls r0, r4, 24
|
||||
asrs r0, 24
|
||||
movs r1, 0
|
||||
ldrsb r1, [r5, r1]
|
||||
cmp r0, r1
|
||||
bne _080944F8
|
||||
b _0809468E
|
||||
_080944F8:
|
||||
movs r7, 0x1
|
||||
b _08094692
|
||||
.align 2, 0
|
||||
_080944FC: .4byte sBoxCursorArea
|
||||
_08094500: .4byte sBoxCursorPosition
|
||||
_08094504: .4byte sPSSData
|
||||
_08094508: .4byte 0x00000ccf
|
||||
_0809450C: .4byte 0x00000cce
|
||||
_08094510: .4byte gMain
|
||||
_08094514:
|
||||
movs r0, 0x20
|
||||
ands r0, r3
|
||||
cmp r0, 0
|
||||
beq _08094538
|
||||
ldrb r1, [r5]
|
||||
movs r0, 0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, 0
|
||||
beq _08094538
|
||||
movs r7, 0x1
|
||||
ldr r0, [r2]
|
||||
ldr r2, _08094534 @ =0x00000cd2
|
||||
adds r0, r2
|
||||
strb r1, [r0]
|
||||
movs r4, 0
|
||||
b _0809468E
|
||||
.align 2, 0
|
||||
_08094534: .4byte 0x00000cd2
|
||||
_08094538:
|
||||
mov r3, r12
|
||||
ldrh r1, [r3, 0x30]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094566
|
||||
movs r0, 0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, 0
|
||||
bne _0809455C
|
||||
movs r7, 0x1
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08094558 @ =0x00000cd2
|
||||
adds r0, r1
|
||||
ldrb r4, [r0]
|
||||
b _0809468E
|
||||
.align 2, 0
|
||||
_08094558: .4byte 0x00000cd2
|
||||
_0809455C:
|
||||
movs r7, 0x6
|
||||
movs r2, 0
|
||||
mov r9, r2
|
||||
movs r4, 0
|
||||
b _0809468E
|
||||
_08094566:
|
||||
mov r3, r12
|
||||
ldrh r1, [r3, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094624
|
||||
movs r0, 0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r0, 0x6
|
||||
bne _0809458C
|
||||
ldr r0, [r2]
|
||||
ldrb r0, [r0, 0x1]
|
||||
cmp r0, 0x1
|
||||
bne _08094586
|
||||
movs r0, 0x4
|
||||
b _080946A0
|
||||
_08094586:
|
||||
movs r0, 0x1
|
||||
mov r8, r0
|
||||
b _08094624
|
||||
_0809458C:
|
||||
bl sub_8094924
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08094624
|
||||
ldr r0, _080945A4 @ =sCanOnlyMove
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080945A8
|
||||
movs r0, 0x8
|
||||
b _080946A0
|
||||
.align 2, 0
|
||||
_080945A4: .4byte sCanOnlyMove
|
||||
_080945A8:
|
||||
movs r0, 0
|
||||
bl sub_8094E50
|
||||
subs r0, 0x1
|
||||
lsls r0, 24
|
||||
asrs r0, 24
|
||||
cmp r0, 0xE
|
||||
bhi _08094624
|
||||
lsls r0, 2
|
||||
ldr r1, _080945C4 @ =_080945C8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080945C4: .4byte _080945C8
|
||||
.align 2, 0
|
||||
_080945C8:
|
||||
.4byte _08094604
|
||||
.4byte _08094608
|
||||
.4byte _0809460C
|
||||
.4byte _08094610
|
||||
.4byte _08094614
|
||||
.4byte _08094624
|
||||
.4byte _08094624
|
||||
.4byte _08094624
|
||||
.4byte _08094624
|
||||
.4byte _08094624
|
||||
.4byte _08094624
|
||||
.4byte _08094618
|
||||
.4byte _0809461C
|
||||
.4byte _08094624
|
||||
.4byte _08094620
|
||||
_08094604:
|
||||
movs r0, 0xB
|
||||
b _080946A0
|
||||
_08094608:
|
||||
movs r0, 0xC
|
||||
b _080946A0
|
||||
_0809460C:
|
||||
movs r0, 0xD
|
||||
b _080946A0
|
||||
_08094610:
|
||||
movs r0, 0xE
|
||||
b _080946A0
|
||||
_08094614:
|
||||
movs r0, 0xF
|
||||
b _080946A0
|
||||
_08094618:
|
||||
movs r0, 0x10
|
||||
b _080946A0
|
||||
_0809461C:
|
||||
movs r0, 0x11
|
||||
b _080946A0
|
||||
_08094620:
|
||||
movs r0, 0x12
|
||||
b _080946A0
|
||||
_08094624:
|
||||
ldr r2, _08094640 @ =gMain
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
mov r12, r2
|
||||
cmp r0, 0
|
||||
beq _0809464C
|
||||
ldr r0, _08094644 @ =sPSSData
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x1]
|
||||
cmp r0, 0x1
|
||||
bne _08094648
|
||||
movs r0, 0x13
|
||||
b _080946A0
|
||||
.align 2, 0
|
||||
_08094640: .4byte gMain
|
||||
_08094644: .4byte sPSSData
|
||||
_08094648:
|
||||
movs r1, 0x1
|
||||
mov r8, r1
|
||||
_0809464C:
|
||||
mov r2, r8
|
||||
cmp r2, 0
|
||||
beq _0809465C
|
||||
movs r7, 0x6
|
||||
movs r3, 0
|
||||
mov r9, r3
|
||||
movs r4, 0
|
||||
b _0809468E
|
||||
_0809465C:
|
||||
mov r0, r12
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809468E
|
||||
bl sub_8094C84
|
||||
movs r0, 0
|
||||
b _080946A0
|
||||
_08094670:
|
||||
lsls r0, r4, 24
|
||||
movs r1, 0xFF
|
||||
lsls r1, 24
|
||||
adds r0, r1
|
||||
lsrs r4, r0, 24
|
||||
cmp r0, 0
|
||||
bge _08094680
|
||||
movs r4, 0x6
|
||||
_08094680:
|
||||
lsls r0, r4, 24
|
||||
asrs r0, 24
|
||||
movs r1, 0
|
||||
ldrsb r1, [r6, r1]
|
||||
cmp r0, r1
|
||||
beq _0809468E
|
||||
movs r7, 0x1
|
||||
_0809468E:
|
||||
cmp r7, 0
|
||||
beq _0809469E
|
||||
_08094692:
|
||||
cmp r7, 0x6
|
||||
beq _0809469E
|
||||
mov r0, r9
|
||||
adds r1, r4, 0
|
||||
bl sub_80927E8
|
||||
_0809469E:
|
||||
adds r0, r7, 0
|
||||
_080946A0:
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_809448C
|
||||
|
||||
thumb_func_start sub_80946AC
|
||||
sub_80946AC: @ 80946AC
|
||||
push {r4-r6,lr}
|
||||
ldr r3, _080946E8 @ =sPSSData
|
||||
ldr r0, [r3]
|
||||
ldr r1, _080946EC @ =0x00000ccf
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r3]
|
||||
ldr r2, _080946F0 @ =0x00000cce
|
||||
adds r0, r2
|
||||
strb r1, [r0]
|
||||
ldr r0, [r3]
|
||||
ldr r5, _080946F4 @ =0x00000cd3
|
||||
adds r0, r5
|
||||
strb r1, [r0]
|
||||
ldr r1, _080946F8 @ =gMain
|
||||
ldrh r2, [r1, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
bne _08094772
|
||||
movs r0, 0x80
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _080946FC
|
||||
movs r4, 0x1
|
||||
movs r1, 0
|
||||
movs r6, 0x2
|
||||
b _0809477E
|
||||
.align 2, 0
|
||||
_080946E8: .4byte sPSSData
|
||||
_080946EC: .4byte 0x00000ccf
|
||||
_080946F0: .4byte 0x00000cce
|
||||
_080946F4: .4byte 0x00000cd3
|
||||
_080946F8: .4byte gMain
|
||||
_080946FC:
|
||||
ldrh r2, [r1, 0x2C]
|
||||
movs r0, 0x20
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
bne _08094722
|
||||
movs r0, 0x10
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
bne _08094736
|
||||
ldr r0, _08094728 @ =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x13]
|
||||
cmp r0, 0x1
|
||||
bne _0809473A
|
||||
movs r0, 0x80
|
||||
lsls r0, 2
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _0809472C
|
||||
_08094722:
|
||||
movs r0, 0xA
|
||||
b _0809479A
|
||||
.align 2, 0
|
||||
_08094728: .4byte gSaveBlock2Ptr
|
||||
_0809472C:
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _0809473A
|
||||
_08094736:
|
||||
movs r0, 0x9
|
||||
b _0809479A
|
||||
_0809473A:
|
||||
ldrh r1, [r1, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094752
|
||||
movs r0, 0
|
||||
bl sub_80920FC
|
||||
bl sub_8094900
|
||||
movs r0, 0x7
|
||||
b _0809479A
|
||||
_08094752:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809475E
|
||||
movs r0, 0x13
|
||||
b _0809479A
|
||||
_0809475E:
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809476E
|
||||
bl sub_8094C84
|
||||
movs r0, 0
|
||||
b _0809479A
|
||||
_0809476E:
|
||||
movs r4, 0
|
||||
b _08094798
|
||||
_08094772:
|
||||
movs r4, 0x1
|
||||
movs r1, 0x3
|
||||
movs r6, 0
|
||||
ldr r0, [r3]
|
||||
adds r0, r5
|
||||
strb r4, [r0]
|
||||
_0809477E:
|
||||
cmp r4, 0
|
||||
beq _08094798
|
||||
lsls r5, r1, 24
|
||||
cmp r1, 0x2
|
||||
beq _0809478E
|
||||
movs r0, 0
|
||||
bl sub_80920FC
|
||||
_0809478E:
|
||||
lsrs r0, r5, 24
|
||||
lsls r1, r6, 24
|
||||
lsrs r1, 24
|
||||
bl sub_80927E8
|
||||
_08094798:
|
||||
adds r0, r4, 0
|
||||
_0809479A:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80946AC
|
||||
|
||||
thumb_func_start sub_80947A0
|
||||
sub_80947A0: @ 80947A0
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r0, _080947F0 @ =sBoxCursorArea
|
||||
ldrb r0, [r0]
|
||||
mov r8, r0
|
||||
ldr r0, _080947F4 @ =sBoxCursorPosition
|
||||
mov r12, r0
|
||||
ldrb r2, [r0]
|
||||
ldr r3, _080947F8 @ =sPSSData
|
||||
ldr r0, [r3]
|
||||
ldr r1, _080947FC @ =0x00000ccf
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r3]
|
||||
ldr r6, _08094800 @ =0x00000cce
|
||||
adds r0, r6
|
||||
strb r1, [r0]
|
||||
ldr r0, [r3]
|
||||
ldr r5, _08094804 @ =0x00000cd3
|
||||
adds r0, r5
|
||||
strb r1, [r0]
|
||||
ldr r7, _08094808 @ =gMain
|
||||
ldrh r1, [r7, 0x30]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
adds r4, r3, 0
|
||||
cmp r0, 0
|
||||
bne _0809487A
|
||||
movs r0, 0x88
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809480C
|
||||
movs r7, 0x1
|
||||
movs r0, 0x2
|
||||
mov r8, r0
|
||||
movs r2, 0
|
||||
ldr r0, [r4]
|
||||
b _08094898
|
||||
.align 2, 0
|
||||
_080947F0: .4byte sBoxCursorArea
|
||||
_080947F4: .4byte sBoxCursorPosition
|
||||
_080947F8: .4byte sPSSData
|
||||
_080947FC: .4byte 0x00000ccf
|
||||
_08094800: .4byte 0x00000cce
|
||||
_08094804: .4byte 0x00000cd3
|
||||
_08094808: .4byte gMain
|
||||
_0809480C:
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094828
|
||||
movs r7, 0x1
|
||||
lsls r0, r2, 24
|
||||
movs r1, 0xFF
|
||||
lsls r1, 24
|
||||
adds r0, r1
|
||||
lsrs r2, r0, 24
|
||||
cmp r0, 0
|
||||
bge _0809489C
|
||||
movs r2, 0x1
|
||||
b _0809489C
|
||||
_08094828:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094846
|
||||
movs r7, 0x1
|
||||
lsls r0, r2, 24
|
||||
movs r1, 0x80
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r2, r0, 24
|
||||
asrs r0, 24
|
||||
cmp r0, 0x1
|
||||
ble _0809489C
|
||||
movs r2, 0
|
||||
b _0809489C
|
||||
_08094846:
|
||||
ldrh r1, [r7, 0x2E]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809485A
|
||||
movs r0, 0x4
|
||||
cmp r2, 0
|
||||
bne _080948AA
|
||||
movs r0, 0x5
|
||||
b _080948AA
|
||||
_0809485A:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094866
|
||||
movs r0, 0x13
|
||||
b _080948AA
|
||||
_08094866:
|
||||
movs r0, 0x4
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08094876
|
||||
bl sub_8094C84
|
||||
movs r0, 0
|
||||
b _080948AA
|
||||
_08094876:
|
||||
movs r7, 0
|
||||
b _080948A8
|
||||
_0809487A:
|
||||
movs r7, 0x1
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
ldr r0, [r3]
|
||||
adds r0, r6
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
mov r1, r12
|
||||
movs r0, 0
|
||||
ldrsb r0, [r1, r0]
|
||||
movs r2, 0x1D
|
||||
cmp r0, 0
|
||||
bne _08094896
|
||||
movs r2, 0x18
|
||||
_08094896:
|
||||
ldr r0, [r3]
|
||||
_08094898:
|
||||
adds r0, r5
|
||||
strb r7, [r0]
|
||||
_0809489C:
|
||||
cmp r7, 0
|
||||
beq _080948A8
|
||||
mov r0, r8
|
||||
adds r1, r2, 0
|
||||
bl sub_80927E8
|
||||
_080948A8:
|
||||
adds r0, r7, 0
|
||||
_080948AA:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80947A0
|
||||
|
||||
thumb_func_start HandleInput
|
||||
HandleInput: @ 80948B4
|
||||
push {r4,r5,lr}
|
||||
movs r3, 0
|
||||
ldr r0, _080948E0 @ =gUnknown_83D3478
|
||||
ldr r1, [r0]
|
||||
adds r4, r0, 0
|
||||
cmp r1, 0
|
||||
beq _080948F8
|
||||
ldr r5, _080948E4 @ =sBoxCursorArea
|
||||
_080948C4:
|
||||
lsls r0, r3, 3
|
||||
adds r2, r0, r4
|
||||
movs r1, 0x4
|
||||
ldrsb r1, [r2, r1]
|
||||
movs r0, 0
|
||||
ldrsb r0, [r5, r0]
|
||||
cmp r1, r0
|
||||
bne _080948E8
|
||||
ldr r0, [r2]
|
||||
bl _call_via_r0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _080948FA
|
||||
.align 2, 0
|
||||
_080948E0: .4byte gUnknown_83D3478
|
||||
_080948E4: .4byte sBoxCursorArea
|
||||
_080948E8:
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r3, r0, 16
|
||||
lsls r0, r3, 3
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080948C4
|
||||
_080948F8:
|
||||
movs r0, 0
|
||||
_080948FA:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end HandleInput
|
||||
|
||||
thumb_func_start sub_8094900
|
||||
sub_8094900: @ 8094900
|
||||
thumb_func_start AddBoxMenu
|
||||
AddBoxMenu: @ 8094900
|
||||
push {lr}
|
||||
bl InitMenu
|
||||
movs r0, 0x9
|
||||
|
|
@ -912,7 +19,7 @@ sub_8094900: @ 8094900
|
|||
bl SetMenuText
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8094900
|
||||
thumb_func_end AddBoxMenu
|
||||
|
||||
thumb_func_start sub_8094924
|
||||
sub_8094924: @ 8094924
|
||||
|
|
|
|||
|
|
@ -6,23 +6,6 @@
|
|||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_83D3478:: @ 83D3478
|
||||
.4byte HandleInput_InBox
|
||||
.byte 0
|
||||
.align 2
|
||||
.4byte sub_809448C
|
||||
.byte 1
|
||||
.align 2
|
||||
.4byte sub_80946AC
|
||||
.byte 2
|
||||
.align 2
|
||||
.4byte sub_80947A0
|
||||
.byte 3
|
||||
.align 2
|
||||
.4byte NULL
|
||||
.byte 0
|
||||
.align 2
|
||||
|
||||
gUnknown_83D34A0:: @ 83D34A0
|
||||
obj_tiles gUnknown_83D2BEC, 0x0800, 0
|
||||
obj_tiles gUnknown_83D33EC, 0x0080, 1
|
||||
|
|
|
|||
|
|
@ -457,4 +457,10 @@ void sub_80910CC(void);
|
|||
u8 CountPartyMons(void);
|
||||
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
|
||||
|
||||
s8 sub_8094E50(u8 a0);
|
||||
bool8 sub_8095474(u8 action);
|
||||
u8 sub_8095AA0(void);
|
||||
bool8 sub_8095ABC(void);
|
||||
void sub_8095D44(u8 cursorArea, u8 cursorPos);
|
||||
|
||||
#endif //GUARD_POKEMON_STORAGE_SYSTEM_INTERNAL_H
|
||||
|
|
|
|||
|
|
@ -37,10 +37,9 @@ void sub_8093AAC(void);
|
|||
u8 InBoxInput_Normal(void);
|
||||
u8 InBoxInput_GrabbingMultiple(void);
|
||||
u8 InBoxInput_MovingMultiple(void);
|
||||
void sub_8094AD8(void);
|
||||
void sub_8095D44(u8 cursorArea, u8 cursorPos);
|
||||
void AddBoxMenu(void);
|
||||
bool8 sub_8094924(void);
|
||||
s8 sub_8094E50(u8 a0);
|
||||
void sub_8094AD8(void);
|
||||
void sub_8094C84(void);
|
||||
|
||||
const u16 gUnknown_83D2BCC[] = INCBIN_U16("graphics/interface/pss_unk_83D2BCC.gbapal");
|
||||
|
|
@ -1290,3 +1289,453 @@ u8 InBoxInput_Normal(void)
|
|||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
u8 InBoxInput_GrabbingMultiple(void)
|
||||
{
|
||||
if (JOY_HELD(A_BUTTON))
|
||||
{
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
if (sBoxCursorPosition / IN_BOX_ROWS != 0)
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS);
|
||||
return 21;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
{
|
||||
if (sBoxCursorPosition + IN_BOX_ROWS < IN_BOX_COUNT)
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS);
|
||||
return 21;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (JOY_REPT(DPAD_LEFT))
|
||||
{
|
||||
if (sBoxCursorPosition % IN_BOX_ROWS != 0)
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1);
|
||||
return 21;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (JOY_REPT(DPAD_RIGHT))
|
||||
{
|
||||
if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0)
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1);
|
||||
return 21;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sub_8095AA0() == sBoxCursorPosition)
|
||||
{
|
||||
sPSSData->inBoxMovingMode = 0;
|
||||
sPSSData->field_CB8->invisible = FALSE;
|
||||
return 22;
|
||||
}
|
||||
else
|
||||
{
|
||||
sIsMonBeingMoved = (sPSSData->cursorMonSpecies != SPECIES_NONE);
|
||||
sPSSData->inBoxMovingMode = 2;
|
||||
sMovingMonOrigBoxId = StorageGetCurrentBox();
|
||||
return 23;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 InBoxInput_MovingMultiple(void)
|
||||
{
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
if (sub_8095474(0))
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS);
|
||||
return 25;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
{
|
||||
if (sub_8095474(1))
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS);
|
||||
return 25;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (JOY_REPT(DPAD_LEFT))
|
||||
{
|
||||
if (sub_8095474(2))
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1);
|
||||
return 25;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 10;
|
||||
}
|
||||
}
|
||||
else if (JOY_REPT(DPAD_RIGHT))
|
||||
{
|
||||
if (sub_8095474(3))
|
||||
{
|
||||
sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1);
|
||||
return 25;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
}
|
||||
else if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
if (sub_8095ABC())
|
||||
{
|
||||
sIsMonBeingMoved = FALSE;
|
||||
sPSSData->inBoxMovingMode = 0;
|
||||
return 26;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
return 24;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
||||
{
|
||||
if (JOY_HELD(L_BUTTON))
|
||||
return 10;
|
||||
if (JOY_HELD(R_BUTTON))
|
||||
return 9;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
u8 HandleInput_InParty(void)
|
||||
{
|
||||
u8 retVal;
|
||||
bool8 gotoBox;
|
||||
s8 cursorArea;
|
||||
s8 cursorPosition;
|
||||
|
||||
do
|
||||
{
|
||||
cursorArea = sBoxCursorArea;
|
||||
cursorPosition = sBoxCursorPosition;
|
||||
sPSSData->field_CD3 = 0;
|
||||
sPSSData->field_CD2 = 0;
|
||||
sPSSData->field_CD7 = 0;
|
||||
gotoBox = FALSE;
|
||||
retVal = 0;
|
||||
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
if (--cursorPosition < 0)
|
||||
cursorPosition = PARTY_SIZE;
|
||||
if (cursorPosition != sBoxCursorPosition)
|
||||
retVal = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
{
|
||||
if (++cursorPosition > PARTY_SIZE)
|
||||
cursorPosition = 0;
|
||||
if (cursorPosition != sBoxCursorPosition)
|
||||
retVal = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_LEFT) && sBoxCursorPosition != 0)
|
||||
{
|
||||
retVal = 1;
|
||||
sPSSData->field_CD6 = sBoxCursorPosition;
|
||||
cursorPosition = 0;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_RIGHT))
|
||||
{
|
||||
if (sBoxCursorPosition == 0)
|
||||
{
|
||||
retVal = 1;
|
||||
cursorPosition = sPSSData->field_CD6;
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = 6;
|
||||
cursorArea = CURSOR_AREA_IN_BOX;
|
||||
cursorPosition = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
if (sBoxCursorPosition == PARTY_SIZE)
|
||||
{
|
||||
if (sPSSData->boxOption == BOX_OPTION_DEPOSIT)
|
||||
return 4;
|
||||
|
||||
gotoBox = TRUE;
|
||||
}
|
||||
else if (sub_8094924())
|
||||
{
|
||||
if (!sCanOnlyMove)
|
||||
return 8;
|
||||
|
||||
switch (sub_8094E50(0))
|
||||
{
|
||||
case 1:
|
||||
return 11;
|
||||
case 2:
|
||||
return 12;
|
||||
case 3:
|
||||
return 13;
|
||||
case 4:
|
||||
return 14;
|
||||
case 5:
|
||||
return 15;
|
||||
case 12:
|
||||
return 16;
|
||||
case 13:
|
||||
return 17;
|
||||
case 15:
|
||||
return 18;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
if (sPSSData->boxOption == BOX_OPTION_DEPOSIT)
|
||||
return 19;
|
||||
|
||||
gotoBox = TRUE;
|
||||
}
|
||||
|
||||
if (gotoBox)
|
||||
{
|
||||
retVal = 6;
|
||||
cursorArea = CURSOR_AREA_IN_BOX;
|
||||
cursorPosition = 0;
|
||||
}
|
||||
else if (JOY_NEW(SELECT_BUTTON))
|
||||
{
|
||||
sub_8094C84();
|
||||
return 0;
|
||||
}
|
||||
|
||||
} while (0);
|
||||
|
||||
if (retVal != 0)
|
||||
{
|
||||
if (retVal != 6)
|
||||
sub_80927E8(cursorArea, cursorPosition);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
u8 HandleInput_OnBox(void)
|
||||
{
|
||||
u8 retVal;
|
||||
s8 cursorArea;
|
||||
s8 cursorPosition;
|
||||
|
||||
do
|
||||
{
|
||||
sPSSData->field_CD3 = 0;
|
||||
sPSSData->field_CD2 = 0;
|
||||
sPSSData->field_CD7 = 0;
|
||||
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_BUTTONS;
|
||||
cursorPosition = 0;
|
||||
sPSSData->field_CD7 = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN))
|
||||
{
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_IN_BOX;
|
||||
cursorPosition = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (JOY_HELD(DPAD_LEFT))
|
||||
return 10;
|
||||
if (JOY_HELD(DPAD_RIGHT))
|
||||
return 9;
|
||||
|
||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
||||
{
|
||||
if (JOY_HELD(L_BUTTON))
|
||||
return 10;
|
||||
if (JOY_HELD(R_BUTTON))
|
||||
return 9;
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sub_80920FC(FALSE);
|
||||
AddBoxMenu();
|
||||
return 7;
|
||||
}
|
||||
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
return 19;
|
||||
|
||||
if (JOY_NEW(SELECT_BUTTON))
|
||||
{
|
||||
sub_8094C84();
|
||||
return 0;
|
||||
}
|
||||
|
||||
retVal = 0;
|
||||
|
||||
} while (0);
|
||||
|
||||
if (retVal)
|
||||
{
|
||||
if (cursorArea != CURSOR_AREA_BOX)
|
||||
sub_80920FC(FALSE);
|
||||
sub_80927E8(cursorArea, cursorPosition);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
u8 HandleInput_OnButtons(void)
|
||||
{
|
||||
u8 retVal;
|
||||
s8 cursorArea;
|
||||
s8 cursorPosition;
|
||||
s8 prevPos;
|
||||
|
||||
do
|
||||
{
|
||||
cursorArea = sBoxCursorArea;
|
||||
cursorPosition = sBoxCursorPosition;
|
||||
sPSSData->field_CD3 = 0;
|
||||
sPSSData->field_CD2 = 0;
|
||||
sPSSData->field_CD7 = 0;
|
||||
|
||||
if (JOY_REPT(DPAD_UP))
|
||||
{
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_IN_BOX;
|
||||
sPSSData->field_CD2 = -1;
|
||||
if (sBoxCursorPosition == 0)
|
||||
cursorPosition = IN_BOX_COUNT - 1 - 5;
|
||||
else
|
||||
cursorPosition = IN_BOX_COUNT - 1;
|
||||
sPSSData->field_CD7 = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_DOWN | START_BUTTON))
|
||||
{
|
||||
retVal = 1;
|
||||
cursorArea = CURSOR_AREA_BOX;
|
||||
cursorPosition = 0;
|
||||
sPSSData->field_CD7 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (JOY_REPT(DPAD_LEFT))
|
||||
{
|
||||
retVal = 1;
|
||||
if (--cursorPosition < 0)
|
||||
cursorPosition = 1;
|
||||
break;
|
||||
}
|
||||
else if (JOY_REPT(DPAD_RIGHT))
|
||||
{
|
||||
retVal = 1;
|
||||
if (++cursorPosition > 1)
|
||||
cursorPosition = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
return cursorPosition == 0 ? 5 : 4;
|
||||
}
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
return 19;
|
||||
|
||||
if (JOY_NEW(SELECT_BUTTON))
|
||||
{
|
||||
sub_8094C84();
|
||||
return 0;
|
||||
}
|
||||
|
||||
retVal = 0;
|
||||
} while (0);
|
||||
|
||||
if (retVal != 0)
|
||||
sub_80927E8(cursorArea, cursorPosition);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
u8 HandleInput(void)
|
||||
{
|
||||
struct
|
||||
{
|
||||
u8 (*func)(void);
|
||||
s8 area;
|
||||
}
|
||||
static const inputFuncs[] =
|
||||
{
|
||||
{HandleInput_InBox, CURSOR_AREA_IN_BOX},
|
||||
{HandleInput_InParty, CURSOR_AREA_IN_PARTY},
|
||||
{HandleInput_OnBox, CURSOR_AREA_BOX},
|
||||
{HandleInput_OnButtons, CURSOR_AREA_BUTTONS},
|
||||
{NULL, 0},
|
||||
};
|
||||
|
||||
u16 i = 0;
|
||||
while (inputFuncs[i].func != NULL)
|
||||
{
|
||||
if (inputFuncs[i].area == sBoxCursorArea)
|
||||
return inputFuncs[i].func();
|
||||
i++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user