field_specials through sub_80CBDE8

This commit is contained in:
PikalaxALT
2019-10-23 20:12:14 -04:00
parent 16ab70a12c
commit 54d6414654
32 changed files with 566 additions and 448 deletions
-314
View File
@@ -5,320 +5,6 @@
.text
thumb_func_start sub_80CBBAC
sub_80CBBAC: @ 80CBBAC
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
ldr r0, _080CBC24 @ =gTasks
adds r4, r0
adds r0, r5, 0
bl sub_80CBD50
ldrh r0, [r4, 0x24]
lsls r0, 24
lsrs r0, 24
movs r1, 0
movs r2, 0
bl DestroyListMenuTask
ldr r0, _080CBC28 @ =gUnknown_2039A14
ldr r0, [r0]
bl Free
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
bl ClearStdWindowAndFrameToTransparent
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl FillWindowPixelBuffer
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
bl ClearWindowTilemap
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
bl CopyWindowToVram
ldrh r0, [r4, 0x22]
lsls r0, 24
lsrs r0, 24
bl RemoveWindow
adds r0, r5, 0
bl DestroyTask
bl EnableBothScriptContexts
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080CBC24: .4byte gTasks
_080CBC28: .4byte gUnknown_2039A14
thumb_func_end sub_80CBBAC
thumb_func_start sub_80CBC2C
sub_80CBC2C: @ 80CBC2C
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080CBC54 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r2, 0x14
ldrsh r0, [r1, r2]
cmp r0, 0x1
beq _080CBC50
cmp r0, 0x2
bne _080CBC50
movs r0, 0x1
strh r0, [r1, 0x14]
ldr r0, _080CBC58 @ =sub_80CBC90
str r0, [r1]
_080CBC50:
pop {r0}
bx r0
.align 2, 0
_080CBC54: .4byte gTasks
_080CBC58: .4byte sub_80CBC90
thumb_func_end sub_80CBC2C
thumb_func_start sub_80CBC5C
sub_80CBC5C: @ 80CBC5C
push {lr}
ldr r0, _080CBC74 @ =sub_80CBC2C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
bne _080CBC78
bl EnableBothScriptContexts
b _080CBC88
.align 2, 0
_080CBC74: .4byte sub_80CBC2C
_080CBC78:
ldr r0, _080CBC8C @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x14]
adds r0, 0x1
strh r0, [r1, 0x14]
_080CBC88:
pop {r0}
bx r0
.align 2, 0
_080CBC8C: .4byte gTasks
thumb_func_end sub_80CBC5C
thumb_func_start sub_80CBC90
sub_80CBC90: @ 80CBC90
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl ScriptContext2_Enable
adds r0, r4, 0
bl sub_80CBCC0
ldr r1, _080CBCB8 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080CBCBC @ =sub_80CBB28
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080CBCB8: .4byte gTasks
_080CBCBC: .4byte sub_80CBB28
thumb_func_end sub_80CBC90
thumb_func_start sub_80CBCC0
sub_80CBCC0: @ 80CBCC0
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _080CBD44 @ =gTasks
adds r4, r1, r0
mov r1, sp
ldr r0, _080CBD48 @ =gUnknown_83F5D1C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r0, [r0]
str r0, [r1]
movs r0, 0x8
ldrsh r1, [r4, r0]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r1, r0
beq _080CBD3C
mov r2, sp
movs r3, 0x10
ldrsh r1, [r4, r3]
lsls r1, 2
movs r5, 0xC
ldrsh r0, [r4, r5]
lsls r0, 3
adds r1, r0
movs r3, 0
strb r1, [r2, 0x1]
mov r1, sp
movs r0, 0x8
strb r0, [r1, 0x2]
movs r0, 0x10
ldrsh r1, [r4, r0]
lsls r1, 2
movs r5, 0xC
ldrsh r0, [r4, r5]
lsls r0, 3
adds r1, r0
strb r1, [r2, 0x4]
mov r1, sp
movs r2, 0x12
ldrsh r0, [r4, r2]
lsls r0, 3
adds r0, 0xA
strb r0, [r1, 0x5]
mov r0, sp
strh r3, [r0, 0x6]
mov r2, sp
ldrh r0, [r4, 0xA]
ldrh r1, [r4, 0x8]
subs r0, r1
strh r0, [r2, 0x8]
ldr r1, _080CBD4C @ =gUnknown_2039A18
mov r0, sp
bl AddScrollIndicatorArrowPair
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
_080CBD3C:
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080CBD44: .4byte gTasks
_080CBD48: .4byte gUnknown_83F5D1C
_080CBD4C: .4byte gUnknown_2039A18
thumb_func_end sub_80CBCC0
thumb_func_start sub_80CBD50
sub_80CBD50: @ 80CBD50
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _080CBD7C @ =gTasks
adds r2, r1, r0
movs r0, 0x8
ldrsh r1, [r2, r0]
movs r3, 0xA
ldrsh r0, [r2, r3]
cmp r1, r0
beq _080CBD76
ldrh r0, [r2, 0x20]
lsls r0, 24
lsrs r0, 24
bl RemoveScrollIndicatorArrowPair
_080CBD76:
pop {r0}
bx r0
.align 2, 0
_080CBD7C: .4byte gTasks
thumb_func_end sub_80CBD50
thumb_func_start sub_80CBD80
sub_80CBD80: @ 80CBD80
push {lr}
movs r0, 0x16
bl HelpSystem_SetSomeVariable2
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
pop {r0}
bx r0
thumb_func_end sub_80CBD80
thumb_func_start GetStarterPokemon
GetStarterPokemon: @ 80CBD94
push {lr}
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0x2
bls _080CBDA0
movs r1, 0
_080CBDA0:
ldr r0, _080CBDAC @ =sStarterMon
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
_080CBDAC: .4byte sStarterMon
thumb_func_end GetStarterPokemon
thumb_func_start ScrSpecial_GetStarter
ScrSpecial_GetStarter: @ 80CBDB0
push {lr}
ldr r0, _080CBDC8 @ =0x00004031
bl VarGet
lsls r0, 16
lsrs r0, 16
bl GetStarterPokemon
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_080CBDC8: .4byte 0x00004031
thumb_func_end ScrSpecial_GetStarter
thumb_func_start sub_80CBDCC
sub_80CBDCC: @ 80CBDCC
push {lr}
ldr r0, _080CBDE4 @ =gSpecialVar_0x8004
ldrh r0, [r0]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
bl GetSetPokedexFlag
pop {r0}
bx r0
.align 2, 0
_080CBDE4: .4byte gSpecialVar_0x8004
thumb_func_end sub_80CBDCC
thumb_func_start sub_80CBDE8
sub_80CBDE8: @ 80CBDE8
ldr r1, _080CBDF8 @ =gSelectedEventObject
movs r0, 0
strb r0, [r1]
ldr r1, _080CBDFC @ =gSpecialVar_TextColor
movs r0, 0xFF
strh r0, [r1]
bx lr
.align 2, 0
_080CBDF8: .4byte gSelectedEventObject
_080CBDFC: .4byte gSpecialVar_TextColor
thumb_func_end sub_80CBDE8
thumb_func_start ContextNpcGetTextColor
ContextNpcGetTextColor: @ 80CBE00
push {lr}
+21 -21
View File
@@ -335,33 +335,33 @@ gUnknown_83F5F26:: @ 83F5F26
.2byte 0xffff
gUnknown_83F5F50:: @ 83F5F50
.incbin "baserom.gba", 0x3F5F50, 0x20
.incbin "baserom.gba", 0x3F5F70, 0x20
.incbin "baserom.gba", 0x3F5F90, 0x20
.incbin "baserom.gba", 0x3F5FB0, 0x20
.incbin "baserom.gba", 0x3F5FD0, 0x20
.incbin "baserom.gba", 0x3F5FF0, 0x20
.incbin "baserom.gba", 0x3F6010, 0x20
.incbin "baserom.gba", 0x3F6030, 0x20
.incbin "baserom.gba", 0x3F6050, 0x20
.incbin "baserom.gba", 0x3F6070, 0x20
.incbin "baserom.gba", 0x3F6090, 0x20
.incbin "data/field_specials/unk_83F5F50.gbapal"
.incbin "data/field_specials/unk_83F5F70.gbapal"
.incbin "data/field_specials/unk_83F5F90.gbapal"
.incbin "data/field_specials/unk_83F5FB0.gbapal"
.incbin "data/field_specials/unk_83F5FD0.gbapal"
.incbin "data/field_specials/unk_83F5FF0.gbapal"
.incbin "data/field_specials/unk_83F6010.gbapal"
.incbin "data/field_specials/unk_83F6030.gbapal"
.incbin "data/field_specials/unk_83F6050.gbapal"
.incbin "data/field_specials/unk_83F6070.gbapal"
.incbin "data/field_specials/unk_83F6090.gbapal"
gUnknown_83F60B0:: @ 83F60B0
.incbin "baserom.gba", 0x3F60B0, 0x20
.incbin "data/field_specials/unk_83F60B0.gbapal"
gUnknown_83F60D0:: @ 83F60D0
.incbin "baserom.gba", 0x3F60D0, 0x20
.incbin "baserom.gba", 0x3F60F0, 0x20
.incbin "baserom.gba", 0x3F6110, 0x20
.incbin "baserom.gba", 0x3F6130, 0x20
.incbin "baserom.gba", 0x3F6150, 0x20
.incbin "baserom.gba", 0x3F6170, 0x20
.incbin "baserom.gba", 0x3F6190, 0x20
.incbin "baserom.gba", 0x3F61B0, 0x20
.incbin "data/field_specials/unk_83F60D0.gbapal"
.incbin "data/field_specials/unk_83F60F0.gbapal"
.incbin "data/field_specials/unk_83F6110.gbapal"
.incbin "data/field_specials/unk_83F6130.gbapal"
.incbin "data/field_specials/unk_83F6150.gbapal"
.incbin "data/field_specials/unk_83F6170.gbapal"
.incbin "data/field_specials/unk_83F6190.gbapal"
.incbin "data/field_specials/unk_83F61B0.gbapal"
gUnknown_83F61D0:: @ 83F61D0
.incbin "baserom.gba", 0x3F61D0, 0x20
.incbin "data/field_specials/unk_83F61D0.gbapal"
gUnknown_83F61F0:: @ 83F61F0
.incbin "baserom.gba", 0x3F61F0, 0xB
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
82 82 106
82 82 106
41 115 205
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
82 82 106
41 115 205
131 238 255
0 41 156
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
41 115 205
131 238 255
82 172 230
0 65 189
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
41 115 205
131 238 255
82 172 230
41 115 205
41 115 205
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
41 115 205
131 238 255
82 172 230
41 115 205
0 65 189
82 172 230
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
131 238 255
82 172 230
41 115 205
0 65 189
0 41 156
131 238 255
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 172 230
41 115 205
0 65 189
0 41 156
82 82 106
90 180 238
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
41 115 205
0 65 189
0 41 156
82 82 106
82 82 106
41 115 205
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
0 65 189
0 41 156
82 82 106
82 82 106
82 82 106
0 65 189
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
0 41 156
82 82 106
82 82 106
82 82 106
82 82 106
0 41 156
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
131 238 255
255 213 131
230 164 98
197 115 74
164 82 65
172 172 98
148 148 74
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
82 82 106
82 82 106
82 172 230
41 115 205
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 82 106
82 82 106
82 172 230
41 115 205
131 238 255
82 172 230
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 172 230
41 115 205
131 238 255
82 172 230
82 172 230
41 115 205
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
131 238 255
82 172 230
82 172 230
41 115 205
41 115 205
0 65 189
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
82 172 230
41 115 205
41 115 205
0 65 189
0 65 189
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
41 115 205
0 65 189
0 65 189
82 82 106
82 82 106
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
255 74 0
255 213 131
230 164 98
197 115 74
164 82 65
255 255 180
189 189 115
0 65 189
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
82 82 106
123 123 123
131 238 255
255 213 131
230 164 98
197 115 74
164 82 65
172 172 98
148 148 74
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
82 82 106
+1 -1
View File
@@ -26,7 +26,7 @@ CeruleanCity_House1_EventScript_16A7F0:: @ 816A7F0
EventScript_16A87D:: @ 816A87D
message Text_191967
waitmessage
special sub_80CBC5C
special Special_ReturnToListMenu
waitstate
switch VAR_RESULT
case 0, EventScript_16A8FB
+7 -7
View File
@@ -72,7 +72,7 @@ FuchsiaCity_EventScript_166E07:: @ 8166E07
FuchsiaCity_EventScript_166E1F:: @ 8166E1F
lockall
setvar VAR_0x8004, SPECIES_CHANSEY
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_CHANSEY, 10, 3
msgbox gUnknown_81807A9
erasemonpic
@@ -82,7 +82,7 @@ FuchsiaCity_EventScript_166E1F:: @ 8166E1F
FuchsiaCity_EventScript_166E38:: @ 8166E38
lockall
setvar VAR_0x8004, SPECIES_VOLTORB
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_VOLTORB, 10, 3
msgbox gUnknown_81807D9
erasemonpic
@@ -92,7 +92,7 @@ FuchsiaCity_EventScript_166E38:: @ 8166E38
FuchsiaCity_EventScript_166E51:: @ 8166E51
lockall
setvar VAR_0x8004, SPECIES_KANGASKHAN
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_KANGASKHAN, 10, 3
msgbox gUnknown_8180806
erasemonpic
@@ -102,7 +102,7 @@ FuchsiaCity_EventScript_166E51:: @ 8166E51
FuchsiaCity_EventScript_166E6A:: @ 8166E6A
lockall
setvar VAR_0x8004, SPECIES_SLOWPOKE
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_SLOWPOKE, 10, 3
msgbox gUnknown_8180859
erasemonpic
@@ -112,7 +112,7 @@ FuchsiaCity_EventScript_166E6A:: @ 8166E6A
FuchsiaCity_EventScript_166E83:: @ 8166E83
lockall
setvar VAR_0x8004, SPECIES_LAPRAS
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_LAPRAS, 10, 3
msgbox gUnknown_8180887
erasemonpic
@@ -124,7 +124,7 @@ FuchsiaCity_EventScript_166E9C:: @ 8166E9C
checkflag FLAG_GOT_DOME_FOSSIL
goto_if TRUE, EventScript_166EBE
setvar VAR_0x8004, SPECIES_KABUTO
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_KABUTO, 10, 3
msgbox gUnknown_81808FA
erasemonpic
@@ -133,7 +133,7 @@ FuchsiaCity_EventScript_166E9C:: @ 8166E9C
EventScript_166EBE:: @ 8166EBE
setvar VAR_0x8004, SPECIES_OMANYTE
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_OMANYTE, 10, 3
msgbox gUnknown_81808AE
erasemonpic
@@ -9,7 +9,7 @@ Route15_WestEntrance_2F_EventScript_170093:: @ 8170093
waitbuttonpress
erasemonpic
setvar VAR_0x8004, SPECIES_ARTICUNO
special sub_80CBDCC
special Special_SetSeenMon
releaseall
end
+4 -4
View File
@@ -263,7 +263,7 @@ EventScript_17082B:: @ 817082B
waitbuttonpress
erasemonpic
setvar VAR_0x8004, SPECIES_EEVEE
special sub_80CBDCC
special Special_SetSeenMon
goto EventScript_1707D8
end
@@ -272,7 +272,7 @@ EventScript_170840:: @ 8170840
waitbuttonpress
erasemonpic
setvar VAR_0x8004, SPECIES_FLAREON
special sub_80CBDCC
special Special_SetSeenMon
goto EventScript_1707D8
end
@@ -281,7 +281,7 @@ EventScript_170855:: @ 8170855
waitbuttonpress
erasemonpic
setvar VAR_0x8004, SPECIES_JOLTEON
special sub_80CBDCC
special Special_SetSeenMon
goto EventScript_1707D8
end
@@ -290,7 +290,7 @@ EventScript_17086A:: @ 817086A
waitbuttonpress
erasemonpic
setvar VAR_0x8004, SPECIES_VAPOREON
special sub_80CBDCC
special Special_SetSeenMon
goto EventScript_1707D8
end
+1 -1
View File
@@ -7,7 +7,7 @@ SSAnne_2F_Room1_EventScript_160C97:: @ 8160C97
message Text_173CE3
waitmessage
setvar VAR_0x8004, SPECIES_SNORLAX
special sub_80CBDCC
special Special_SetSeenMon
drawmonpic SPECIES_SNORLAX, 10, 3
waitbuttonpress
erasemonpic
+1 -1
View File
@@ -70,7 +70,7 @@ SeafoamIslands_B4F_MapScript4_1630E7:: @ 81630E7
EventScript_1630F1:: @ 81630F1
turnobject 255, 2
special sub_80CBD80
special Special_ForcePlayerToStartSurfing
end
SeafoamIslands_B4F_MapScript5_1630F9:: @ 81630F9
+3 -3
View File
@@ -354,7 +354,7 @@ gSpecials:: @ 815FD60
def_special sub_807F904
def_special Special_ForcePlayerOntoBike
def_special Special_ListMenu
def_special sub_80CBC5C
def_special Special_ReturnToListMenu
def_special sub_80CADC4
def_special Special_SetVermilionTrashCans
def_special sub_805D1A8
@@ -362,9 +362,9 @@ gSpecials:: @ 815FD60
def_special Special_CheckAddCoins
def_special GetDaycarePokemonCount
def_special Special_CloseElevatorCurrentFloorWindow
def_special sub_80CBD80
def_special Special_ForcePlayerToStartSurfing
def_special ScrSpecial_GetStarter
def_special sub_80CBDCC
def_special Special_SetSeenMon
def_special sub_810C444
def_special sub_80CC7B4
def_special ChangeBoxPokemonNickname
+1 -1
View File
@@ -169,7 +169,7 @@
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER (32 | (2 << 8))
#define MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER (33 | (2 << 8))
#define MAP_THREE_ISLAND_DUNSPARCE_TUNNEL (34 | (2 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY (35 | (2 << 8))
#define MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY (35 | (2 << 8))
#define MAP_NAVEL_ROCK_1F (36 | (2 << 8))
#define MAP_NAVEL_ROCK_SUMMIT (37 | (2 << 8))
#define MAP_NAVEL_ROCK_BASE (38 | (2 << 8))
+127 -94
View File
@@ -18,7 +18,9 @@
#include "battle_tower.h"
#include "field_camera.h"
#include "field_map_obj.h"
#include "menu_indicators.h"
#include "random.h"
#include "help_system.h"
#include "sound.h"
#include "text.h"
#include "pokemon_storage_system.h"
@@ -56,15 +58,18 @@ static void Task_ElevatorShake(u8 taskId);
static void AnimateElevatorWindowView(u16 nfloors, bool8 direction);
static void Task_AnimateElevatorWindowView(u8 taskId);
static void Task_CreateScriptListMenu(u8 taskId);
void sub_80CBA7C(void);
void sub_80CBADC(s32 nothing, bool8 is, struct ListMenu * used);
void sub_80CBB28(u8 taskId);
void sub_80CBBAC(u8 taskId);
void sub_80CBC2C(u8 taskId);
void sub_80CBCC0(u8 taskId);
void sub_80CBD50(u8 taskId);
u16 GetStarterPokemon(u16 starterIdx);
static void CreateScriptListMenu(void);
static void ScriptListMenuMoveCursorFunction(s32 nothing, bool8 is, struct ListMenu * used);
static void Task_ListMenuHandleInput(u8 taskId);
static void Task_DestroyListMenu(u8 taskId);
static void Task_SuspendListMenu(u8 taskId);
static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId);
static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static u16 GetStarterPokemon(u16 starterIdx);
extern const struct ScrollArrowsTemplate gUnknown_83F5D1C;
extern const u16 sStarterMon[3];
extern const u8 *const gUnknown_83F5BCC[][12];
extern const u8 sSlotMachineIndices[22];
extern const u16 sResortGorgeousDeluxeRewards[6];
@@ -613,10 +618,10 @@ static u16 SampleResortGoregeousMon(void)
for (i = 0; i < 100; i++)
{
species = (Random() % (NUM_SPECIES - 1)) + 1;
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FALSE) == TRUE)
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == TRUE)
return species;
}
while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FALSE) != TRUE)
while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) != TRUE)
{
if (species == SPECIES_BULBASAUR)
species = NUM_SPECIES - 1;
@@ -1079,7 +1084,7 @@ static void Task_CreateScriptListMenu(u8 taskId)
else
gUnknown_2039A18 = 0;
gUnknown_2039A14 = AllocZeroed(task->data[1] * sizeof(struct ListMenuItem));
sub_80CBA7C();
CreateScriptListMenu();
mwidth = 0;
for (i = 0; i < task->data[1]; i++)
{
@@ -1098,17 +1103,17 @@ static void Task_CreateScriptListMenu(u8 taskId)
gUnknown_3005360.totalItems = task->data[1];
gUnknown_3005360.maxShowed = task->data[0];
gUnknown_3005360.windowId = task->data[13];
sub_80CBCC0(taskId);
Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId);
task->data[14] = ListMenuInit(&gUnknown_3005360, task->data[7], task->data[8]);
PutWindowTilemap(task->data[13]);
CopyWindowToVram(task->data[13], 3);
gTasks[taskId].func = sub_80CBB28;
gTasks[taskId].func = Task_ListMenuHandleInput;
}
void sub_80CBA7C(void)
static void CreateScriptListMenu(void)
{
gUnknown_3005360.items = gUnknown_2039A14;
gUnknown_3005360.moveCursorFunc = sub_80CBADC;
gUnknown_3005360.moveCursorFunc = ScriptListMenuMoveCursorFunction;
gUnknown_3005360.itemPrintFunc = NULL;
gUnknown_3005360.totalItems = 1;
gUnknown_3005360.maxShowed = 1;
@@ -1127,12 +1132,12 @@ void sub_80CBA7C(void)
gUnknown_3005360.cursorKind = 0;
}
void sub_80CBADC(s32 nothing, bool8 is, struct ListMenu * used)
static void ScriptListMenuMoveCursorFunction(s32 nothing, bool8 is, struct ListMenu * used)
{
u8 taskId;
struct Task * task;
PlaySE(SE_SELECT);
taskId = FindTaskIdByFunc(sub_80CBB28);
taskId = FindTaskIdByFunc(Task_ListMenuHandleInput);
if (taskId != 0xFF)
{
task = &gTasks[taskId];
@@ -1141,12 +1146,14 @@ void sub_80CBADC(s32 nothing, bool8 is, struct ListMenu * used)
}
}
#ifdef NONMATCHING
// task should be in r6, taskId in r5
void sub_80CBB28(u8 taskId)
static void Task_ListMenuHandleInput(u8 taskId)
{
struct Task * task = &gTasks[taskId];
s32 input = ListMenu_ProcessInput(task->data[14]);
s32 input;
struct Task * task;
asm("":::"r6", "r4"); // fakematch register allocation
task = &gTasks[taskId];
input = ListMenu_ProcessInput(task->data[14]);
switch (input)
{
case -1:
@@ -1154,91 +1161,117 @@ void sub_80CBB28(u8 taskId)
case -2:
gSpecialVar_Result = 0x7F;
PlaySE(SE_SELECT);
sub_80CBBAC(taskId);
Task_DestroyListMenu(taskId);
break;
default:
gSpecialVar_Result = input;
PlaySE(SE_SELECT);
if (task->data[6] == 0 || input == task->data[1] - 1)
{
sub_80CBBAC(taskId);
Task_DestroyListMenu(taskId);
}
else
{
sub_80CBD50(taskId);
task->func = sub_80CBC2C;
Task_ListMenuRemoveScrollIndicatorArrowPair(taskId);
task->func = Task_SuspendListMenu;
EnableBothScriptContexts();
}
break;
}
}
#else
NAKED
void sub_80CBB28(u8 taskId)
static void Task_DestroyListMenu(u8 taskId)
{
asm_unified("\tpush {r4-r6,lr}\n"
"\tlsls r0, 24\n"
"\tlsrs r5, r0, 24\n"
"\tlsls r0, r5, 2\n"
"\tadds r0, r5\n"
"\tlsls r0, 3\n"
"\tldr r1, _080CBB54 @ =gTasks\n"
"\tadds r6, r0, r1\n"
"\tldrh r0, [r6, 0x24]\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tbl ListMenu_ProcessInput\n"
"\tadds r4, r0, 0\n"
"\tmovs r0, 0x2\n"
"\tnegs r0, r0\n"
"\tcmp r4, r0\n"
"\tbeq _080CBB58\n"
"\tadds r0, 0x1\n"
"\tcmp r4, r0\n"
"\tbne _080CBB6C\n"
"\tb _080CBBA2\n"
"\t.align 2, 0\n"
"_080CBB54: .4byte gTasks\n"
"_080CBB58:\n"
"\tldr r1, _080CBB68 @ =gSpecialVar_Result\n"
"\tmovs r0, 0x7F\n"
"\tstrh r0, [r1]\n"
"\tmovs r0, 0x5\n"
"\tbl PlaySE\n"
"\tb _080CBB88\n"
"\t.align 2, 0\n"
"_080CBB68: .4byte gSpecialVar_Result\n"
"_080CBB6C:\n"
"\tldr r0, _080CBB90 @ =gSpecialVar_Result\n"
"\tstrh r4, [r0]\n"
"\tmovs r0, 0x5\n"
"\tbl PlaySE\n"
"\tmovs r1, 0x14\n"
"\tldrsh r0, [r6, r1]\n"
"\tcmp r0, 0\n"
"\tbeq _080CBB88\n"
"\tmovs r1, 0xA\n"
"\tldrsh r0, [r6, r1]\n"
"\tsubs r0, 0x1\n"
"\tcmp r4, r0\n"
"\tbne _080CBB94\n"
"_080CBB88:\n"
"\tadds r0, r5, 0\n"
"\tbl sub_80CBBAC\n"
"\tb _080CBBA2\n"
"\t.align 2, 0\n"
"_080CBB90: .4byte gSpecialVar_Result\n"
"_080CBB94:\n"
"\tadds r0, r5, 0\n"
"\tbl sub_80CBD50\n"
"\tldr r0, _080CBBA8 @ =sub_80CBC2C\n"
"\tstr r0, [r6]\n"
"\tbl EnableBothScriptContexts\n"
"_080CBBA2:\n"
"\tpop {r4-r6}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_080CBBA8: .4byte sub_80CBC2C");
struct Task * task = &gTasks[taskId];
Task_ListMenuRemoveScrollIndicatorArrowPair(taskId);
DestroyListMenuTask(task->data[14], NULL, NULL);
Free(gUnknown_2039A14);
ClearStdWindowAndFrameToTransparent(task->data[13], TRUE);
FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0));
ClearWindowTilemap(task->data[13]);
CopyWindowToVram(task->data[13], 2);
RemoveWindow(task->data[13]);
DestroyTask(taskId);
EnableBothScriptContexts();
}
static void Task_SuspendListMenu(u8 taskId)
{
switch (gTasks[taskId].data[6])
{
case 1:
break;
case 2:
gTasks[taskId].data[6] = 1;
gTasks[taskId].func = Task_RedrawScrollArrowsAndWaitInput;
break;
}
}
void Special_ReturnToListMenu(void)
{
u8 taskId = FindTaskIdByFunc(Task_SuspendListMenu);
if (taskId == 0xFF)
EnableBothScriptContexts();
else
gTasks[taskId].data[6]++;
}
static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId)
{
ScriptContext2_Enable();
Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId);
gTasks[taskId].func = Task_ListMenuHandleInput;
}
static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId)
{
struct Task * task = &gTasks[taskId];
struct ScrollArrowsTemplate template = gUnknown_83F5D1C;
if (task->data[0] != task->data[1])
{
template.firstX = 4 * task->data[4] + 8 * task->data[2];
template.firstY = 8;
template.secondX = 4 * task->data[4] + 8 * task->data[2];
template.secondY = 8 * task->data[5] + 10;
template.fullyUpThreshold = 0;
template.fullyDownThreshold = task->data[1] - task->data[0];
task->data[12] = AddScrollIndicatorArrowPair(&template, &gUnknown_2039A18);
}
}
static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId)
{
struct Task * task = &gTasks[taskId];
if (task->data[0] != task->data[1])
RemoveScrollIndicatorArrowPair(task->data[12]);
}
void Special_ForcePlayerToStartSurfing(void)
{
HelpSystem_SetSomeVariable2(22);
SetPlayerAvatarTransitionFlags(8);
}
static u16 GetStarterPokemon(u16 idx)
{
if (idx >= NELEMS(sStarterMon))
idx = 0;
return sStarterMon[idx];
}
u16 ScrSpecial_GetStarter(void)
{
return GetStarterPokemon(VarGet(VAR_STARTER_MON));
}
void Special_SetSeenMon(void)
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gSpecialVar_0x8004), 2);
}
void sub_80CBDE8(void)
{
gSelectedEventObject = 0;
gSpecialVar_TextColor = 0xFF;
}
#endif //NONMATCHING