Finish field_specials
This commit is contained in:
@@ -366,9 +366,9 @@ sub_806CAC8: @ 806CAC8
|
|||||||
bl IncrementGameStat
|
bl IncrementGameStat
|
||||||
bl MENewsJisanStepCounter
|
bl MENewsJisanStepCounter
|
||||||
bl IncrementRenewableHiddenItemStepCounter
|
bl IncrementRenewableHiddenItemStepCounter
|
||||||
bl sub_80CC918
|
bl RunMassageCooldownStepCounter
|
||||||
bl IncrementResortGorgeousStepCounter
|
bl IncrementResortGorgeousStepCounter
|
||||||
bl sub_80CCFBC
|
bl BirthIslandDeoxysStepCounter
|
||||||
mov r0, sp
|
mov r0, sp
|
||||||
adds r1, r4, 0
|
adds r1, r4, 0
|
||||||
adds r2, r6, 0
|
adds r2, r6, 0
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -33,7 +33,7 @@ sub_8097898: @ 8097898
|
|||||||
ldr r4, _080978CC @ =gUnknown_2039874
|
ldr r4, _080978CC @ =gUnknown_2039874
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strb r0, [r4]
|
strb r0, [r4]
|
||||||
bl sub_80CCD84
|
bl CutMoveRuinValleyCheck
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
cmp r0, 0x1
|
cmp r0, 0x1
|
||||||
@@ -232,7 +232,7 @@ sub_8097A20: @ 8097A20
|
|||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
cmp r0, 0x1
|
cmp r0, 0x1
|
||||||
bne _08097A3C
|
bne _08097A3C
|
||||||
bl sub_80CCDD0
|
bl CutMoveOpenDottedHoleDoor
|
||||||
b _08097A42
|
b _08097A42
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08097A38: .4byte gUnknown_2039874
|
_08097A38: .4byte gUnknown_2039874
|
||||||
|
|||||||
+16
-15
@@ -15,6 +15,7 @@
|
|||||||
#include "constants/map_objects.h"
|
#include "constants/map_objects.h"
|
||||||
#include "constants/fame_checker.h"
|
#include "constants/fame_checker.h"
|
||||||
#include "constants/seagallop.h"
|
#include "constants/seagallop.h"
|
||||||
|
#include "constants/game_stat.h"
|
||||||
.include "asm/macros.inc"
|
.include "asm/macros.inc"
|
||||||
.include "asm/macros/event.inc"
|
.include "asm/macros/event.inc"
|
||||||
.set FALSE, 0
|
.set FALSE, 0
|
||||||
@@ -1599,7 +1600,7 @@ EventScript_1A6578:: @ 81A6578
|
|||||||
end
|
end
|
||||||
|
|
||||||
EventScript_1A65B8:: @ 81A65B8
|
EventScript_1A65B8:: @ 81A65B8
|
||||||
incrementgamestat 15
|
incrementgamestat GAME_STAT_USED_POKECENTER
|
||||||
message Text_1A54E1
|
message Text_1A54E1
|
||||||
waitmessage
|
waitmessage
|
||||||
call EventScript_1A65CE
|
call EventScript_1A65CE
|
||||||
@@ -1618,7 +1619,7 @@ EventScript_1A65CE:: @ 81A65CE
|
|||||||
return
|
return
|
||||||
|
|
||||||
EventScript_1A65EC:: @ 81A65EC
|
EventScript_1A65EC:: @ 81A65EC
|
||||||
specialvar VAR_RESULT, sub_80CD074
|
specialvar VAR_RESULT, Special_PlayerIsNotInTrainerTowerLobby
|
||||||
compare_var_to_value VAR_RESULT, 0
|
compare_var_to_value VAR_RESULT, 0
|
||||||
goto_if eq, EventScript_1A661D
|
goto_if eq, EventScript_1A661D
|
||||||
specialvar VAR_RESULT, sp182_move_string
|
specialvar VAR_RESULT, sp182_move_string
|
||||||
@@ -1797,7 +1798,7 @@ gStdScript_1:: @ 81A67B3
|
|||||||
EventScript_1A67EE:: @ 81A67EE
|
EventScript_1A67EE:: @ 81A67EE
|
||||||
removeobject VAR_LAST_TALKED
|
removeobject VAR_LAST_TALKED
|
||||||
additem VAR_0x8004, VAR_0x8005
|
additem VAR_0x8004, VAR_0x8005
|
||||||
specialvar VAR_RESULT, sub_80CC8CC
|
specialvar VAR_RESULT, Special_ItemIsTM_GetMoveName
|
||||||
copyvar VAR_0x8008, VAR_RESULT
|
copyvar VAR_0x8008, VAR_RESULT
|
||||||
compare_var_to_value VAR_0x8008, 1
|
compare_var_to_value VAR_0x8008, 1
|
||||||
call_if eq, EventScript_1A6821
|
call_if eq, EventScript_1A6821
|
||||||
@@ -2500,7 +2501,7 @@ Movement_1A75D3:: @ 81A75D3
|
|||||||
step_end
|
step_end
|
||||||
|
|
||||||
EventScript_1A75D5:: @ 81A75D5
|
EventScript_1A75D5:: @ 81A75D5
|
||||||
special sub_80CC974
|
special Special_PokemonLeagueLightingEffect
|
||||||
return
|
return
|
||||||
|
|
||||||
Movement_1A75D9:: @ 81A75D9
|
Movement_1A75D9:: @ 81A75D9
|
||||||
@@ -2704,7 +2705,7 @@ gUnknown_81A7702:: @ 81A7702
|
|||||||
call EventScript_1A6AC0
|
call EventScript_1A6AC0
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
specialvar VAR_0x8008, sub_80CC4D4
|
specialvar VAR_0x8008, Special_GetMartClerkObjectId
|
||||||
textcolor 0
|
textcolor 0
|
||||||
compare_var_to_value VAR_0x8004, 0
|
compare_var_to_value VAR_0x8004, 0
|
||||||
goto_if eq, EventScript_1A774D
|
goto_if eq, EventScript_1A774D
|
||||||
@@ -4392,12 +4393,12 @@ EventScript_1A925E:: @ 81A925E
|
|||||||
doweather
|
doweather
|
||||||
return
|
return
|
||||||
|
|
||||||
EventScript_1A926C:: @ 81A926C
|
EventScript_BrailleCursorWaitButton:: @ 81A926C
|
||||||
special sub_80CD098
|
special Special_BrailleCursorToggle
|
||||||
waitbuttonpress
|
waitbuttonpress
|
||||||
playse SE_SELECT
|
playse SE_SELECT
|
||||||
setvar VAR_0x8006, 1
|
setvar VAR_0x8006, 1
|
||||||
special sub_80CD098
|
special Special_BrailleCursorToggle
|
||||||
return
|
return
|
||||||
|
|
||||||
EventScript_1A927C:: @ 81A927C
|
EventScript_1A927C:: @ 81A927C
|
||||||
@@ -9182,7 +9183,7 @@ EventScript_1BBA04:: @ 81BBA04
|
|||||||
faceplayer
|
faceplayer
|
||||||
checkflag FLAG_SYS_POKEDEX_GET
|
checkflag FLAG_SYS_POKEDEX_GET
|
||||||
goto_if FALSE, EventScript_1BB877
|
goto_if FALSE, EventScript_1BB877
|
||||||
specialvar VAR_RESULT, sub_80CD034
|
specialvar VAR_RESULT, Special_BadEggInParty
|
||||||
compare_var_to_value VAR_RESULT, 1
|
compare_var_to_value VAR_RESULT, 1
|
||||||
goto_if eq, EventScript_1BB867
|
goto_if eq, EventScript_1BB867
|
||||||
copyvar VAR_0x8007, VAR_LAST_TALKED
|
copyvar VAR_0x8007, VAR_LAST_TALKED
|
||||||
@@ -9304,7 +9305,7 @@ EventScript_1BBB9C:: @ 81BBB9C
|
|||||||
faceplayer
|
faceplayer
|
||||||
checkflag FLAG_SYS_POKEDEX_GET
|
checkflag FLAG_SYS_POKEDEX_GET
|
||||||
goto_if FALSE, EventScript_1BB877
|
goto_if FALSE, EventScript_1BB877
|
||||||
specialvar VAR_RESULT, sub_80CD034
|
specialvar VAR_RESULT, Special_BadEggInParty
|
||||||
compare_var_to_value VAR_RESULT, 1
|
compare_var_to_value VAR_RESULT, 1
|
||||||
goto_if eq, EventScript_1BB867
|
goto_if eq, EventScript_1BB867
|
||||||
specialvar VAR_RESULT, IsWirelessAdapterConnected
|
specialvar VAR_RESULT, IsWirelessAdapterConnected
|
||||||
@@ -11504,7 +11505,7 @@ EventScript_1BF3DD:: @ 81BF3DD
|
|||||||
msgbox Text_19DE24
|
msgbox Text_19DE24
|
||||||
waitmoncry
|
waitmoncry
|
||||||
special PutMonInRoute5Daycare
|
special PutMonInRoute5Daycare
|
||||||
incrementgamestat 47
|
incrementgamestat GAME_STAT_USED_DAYCARE
|
||||||
goto EventScript_1BF541
|
goto EventScript_1BF541
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -13879,13 +13880,13 @@ TwoIsland_CapeBrink_House_EventScript_1C4DEC:: @ 81C4DEC
|
|||||||
special sub_8112364
|
special sub_8112364
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
checkflag FLAG_LEARNED_MOVE_AT_CAPE_BRINK
|
checkflag FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK
|
||||||
goto_if TRUE, EventScript_1C4EA1
|
goto_if TRUE, EventScript_1C4EA1
|
||||||
checkflag FLAG_TEMP_2
|
checkflag FLAG_TEMP_2
|
||||||
goto_if TRUE, EventScript_1C4E97
|
goto_if TRUE, EventScript_1C4E97
|
||||||
getfirstpartymonname 0
|
getfirstpartymonname 0
|
||||||
msgbox Text_1A46C6
|
msgbox Text_1A46C6
|
||||||
specialvar VAR_RESULT, sub_80CCB94
|
specialvar VAR_RESULT, Special_CapeBrinkGetMoveToTeachLeadPokemon
|
||||||
compare_var_to_value VAR_RESULT, 0
|
compare_var_to_value VAR_RESULT, 0
|
||||||
goto_if eq, EventScript_1C4F26
|
goto_if eq, EventScript_1C4F26
|
||||||
copyvar VAR_0x8009, VAR_0x8005
|
copyvar VAR_0x8009, VAR_0x8005
|
||||||
@@ -13925,7 +13926,7 @@ EventScript_1C4EA1:: @ 81C4EA1
|
|||||||
|
|
||||||
EventScript_1C4EAB:: @ 81C4EAB
|
EventScript_1C4EAB:: @ 81C4EAB
|
||||||
copyvar VAR_0x8005, VAR_0x8009
|
copyvar VAR_0x8005, VAR_0x8009
|
||||||
specialvar VAR_RESULT, sub_80CCCF8
|
specialvar VAR_RESULT, Special_HasLearnedAllMovesFromCapeBrinkTutor
|
||||||
compare_var_to_value VAR_RESULT, 1
|
compare_var_to_value VAR_RESULT, 1
|
||||||
goto_if eq, EventScript_1C4ECD
|
goto_if eq, EventScript_1C4ECD
|
||||||
msgbox Text_1A4865
|
msgbox Text_1A4865
|
||||||
@@ -13935,7 +13936,7 @@ EventScript_1C4EAB:: @ 81C4EAB
|
|||||||
|
|
||||||
EventScript_1C4ECD:: @ 81C4ECD
|
EventScript_1C4ECD:: @ 81C4ECD
|
||||||
msgbox Text_1A48F3
|
msgbox Text_1A48F3
|
||||||
setflag FLAG_LEARNED_MOVE_AT_CAPE_BRINK
|
setflag FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK
|
||||||
release
|
release
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,105 +0,0 @@
|
|||||||
#include "constants/species.h"
|
|
||||||
#include "constants/items.h"
|
|
||||||
#include "constants/maps.h"
|
|
||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
.section .rodata
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
gUnknown_83F5F50:: @ 83F5F50
|
|
||||||
.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 "data/field_specials/unk_83F60B0.gbapal"
|
|
||||||
|
|
||||||
gUnknown_83F60D0:: @ 83F60D0
|
|
||||||
.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 "data/field_specials/unk_83F61D0.gbapal"
|
|
||||||
|
|
||||||
gUnknown_83F61F0:: @ 83F61F0
|
|
||||||
.byte 40
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
.byte 12
|
|
||||||
|
|
||||||
gUnknown_83F61FB:: @ 83F61FB
|
|
||||||
.byte 20
|
|
||||||
.byte 8
|
|
||||||
.byte 8
|
|
||||||
.byte 8
|
|
||||||
.byte 8
|
|
||||||
.byte 8
|
|
||||||
.byte 8
|
|
||||||
.byte 8
|
|
||||||
|
|
||||||
gUnknown_83F6203:: @ 83F6203
|
|
||||||
.byte 3
|
|
||||||
.byte 6
|
|
||||||
.byte 9
|
|
||||||
|
|
||||||
.align 1
|
|
||||||
gUnknown_83F6206:: @ 83F6206
|
|
||||||
.incbin "data/field_specials/unk_83F6206.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6226.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6246.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6266.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6286.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F62A6.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F62C6.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F62E6.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6306.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6326.gbapal"
|
|
||||||
.incbin "data/field_specials/unk_83F6346.gbapal"
|
|
||||||
|
|
||||||
gUnknown_83F6366:: @ 83F6366
|
|
||||||
.byte 0x0f, 0x0c
|
|
||||||
.byte 0x0b, 0x0e
|
|
||||||
.byte 0x0f, 0x08
|
|
||||||
.byte 0x13, 0x0e
|
|
||||||
.byte 0x0c, 0x0b
|
|
||||||
.byte 0x12, 0x0b
|
|
||||||
.byte 0x0f, 0x0e
|
|
||||||
.byte 0x0b, 0x0e
|
|
||||||
.byte 0x13, 0x0e
|
|
||||||
.byte 0x0f, 0x0f
|
|
||||||
.byte 0x0f, 0x0a
|
|
||||||
|
|
||||||
gUnknown_83F637C:: @ 83F637C
|
|
||||||
.byte 0x04
|
|
||||||
.byte 0x08
|
|
||||||
.byte 0x08
|
|
||||||
.byte 0x08
|
|
||||||
.byte 0x04
|
|
||||||
.byte 0x04
|
|
||||||
.byte 0x04
|
|
||||||
.byte 0x06
|
|
||||||
.byte 0x03
|
|
||||||
.byte 0x03
|
|
||||||
|
|
||||||
.align 2
|
|
||||||
@@ -5,7 +5,7 @@ BirthIsland_Exterior_MapScripts:: @ 8165203
|
|||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
BirthIsland_Exterior_MapScript3_165213:: @ 8165213
|
BirthIsland_Exterior_MapScript3_165213:: @ 8165213
|
||||||
special sub_80CD008
|
special Special_SetDeoxysTriangleObjectPal
|
||||||
end
|
end
|
||||||
|
|
||||||
BirthIsland_Exterior_MapScript1_165217:: @ 8165217
|
BirthIsland_Exterior_MapScript1_165217:: @ 8165217
|
||||||
@@ -50,7 +50,7 @@ BirthIsland_Exterior_EventScript_165271:: @ 8165271
|
|||||||
compare_var_to_value VAR_RESULT, 2
|
compare_var_to_value VAR_RESULT, 2
|
||||||
goto_if eq, EventScript_1A7AE0
|
goto_if eq, EventScript_1A7AE0
|
||||||
special sub_8112364
|
special sub_8112364
|
||||||
special sub_80CCDFC
|
special Special_DeoxysSound
|
||||||
waitstate
|
waitstate
|
||||||
switch VAR_RESULT
|
switch VAR_RESULT
|
||||||
case 0, EventScript_1652BA
|
case 0, EventScript_1652BA
|
||||||
|
|||||||
@@ -49,12 +49,12 @@ EventScript_1688BA:: @ 81688BA
|
|||||||
EventScript_1688E3:: @ 81688E3
|
EventScript_1688E3:: @ 81688E3
|
||||||
getspeciesname 1, SPECIES_TOGEPI
|
getspeciesname 1, SPECIES_TOGEPI
|
||||||
setvar VAR_0x8004, SPECIES_TOGEPI
|
setvar VAR_0x8004, SPECIES_TOGEPI
|
||||||
specialvar VAR_RESULT, sub_80CD0F4
|
specialvar VAR_RESULT, Special_PlayerPartyContainsSpeciesWithPlayerID
|
||||||
compare_var_to_value VAR_RESULT, 1
|
compare_var_to_value VAR_RESULT, 1
|
||||||
goto_if eq, EventScript_168895
|
goto_if eq, EventScript_168895
|
||||||
getspeciesname 1, SPECIES_TOGETIC
|
getspeciesname 1, SPECIES_TOGETIC
|
||||||
setvar VAR_0x8004, SPECIES_TOGETIC
|
setvar VAR_0x8004, SPECIES_TOGETIC
|
||||||
specialvar VAR_RESULT, sub_80CD0F4
|
specialvar VAR_RESULT, Special_PlayerPartyContainsSpeciesWithPlayerID
|
||||||
compare_var_to_value VAR_RESULT, 1
|
compare_var_to_value VAR_RESULT, 1
|
||||||
goto_if eq, EventScript_168895
|
goto_if eq, EventScript_168895
|
||||||
msgbox gUnknown_818A9C0
|
msgbox gUnknown_818A9C0
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ EventScript_171993:: @ 8171993
|
|||||||
msgbox gUnknown_81BF860
|
msgbox gUnknown_81BF860
|
||||||
waitmoncry
|
waitmoncry
|
||||||
special StoreSelectedPokemonInDaycare
|
special StoreSelectedPokemonInDaycare
|
||||||
incrementgamestat 47
|
incrementgamestat GAME_STAT_USED_DAYCARE
|
||||||
specialvar VAR_RESULT, GetDaycareState
|
specialvar VAR_RESULT, GetDaycareState
|
||||||
compare_var_to_value VAR_RESULT, 2
|
compare_var_to_value VAR_RESULT, 2
|
||||||
goto_if eq, EventScript_171A01
|
goto_if eq, EventScript_171A01
|
||||||
|
|||||||
@@ -7,31 +7,31 @@ MtEmber_RubyPath_B5F_EventScript_163BAB:: @ 8163BAB
|
|||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A92C5
|
braillemessage gUnknown_81A92C5
|
||||||
getbraillestringwidth gUnknown_81A92C5
|
getbraillestringwidth gUnknown_81A92C5
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A92D0
|
braillemessage gUnknown_81A92D0
|
||||||
getbraillestringwidth gUnknown_81A92D0
|
getbraillestringwidth gUnknown_81A92D0
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A92DC
|
braillemessage gUnknown_81A92DC
|
||||||
getbraillestringwidth gUnknown_81A92DC
|
getbraillestringwidth gUnknown_81A92DC
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A92E6
|
braillemessage gUnknown_81A92E6
|
||||||
getbraillestringwidth gUnknown_81A92E6
|
getbraillestringwidth gUnknown_81A92E6
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A92F2
|
braillemessage gUnknown_81A92F2
|
||||||
getbraillestringwidth gUnknown_81A92F2
|
getbraillestringwidth gUnknown_81A92F2
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A92FE
|
braillemessage gUnknown_81A92FE
|
||||||
getbraillestringwidth gUnknown_81A92FE
|
getbraillestringwidth gUnknown_81A92FE
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A930A
|
braillemessage gUnknown_81A930A
|
||||||
getbraillestringwidth gUnknown_81A930A
|
getbraillestringwidth gUnknown_81A930A
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
braillemessage gUnknown_81A9316
|
braillemessage gUnknown_81A9316
|
||||||
waitbuttonpress
|
waitbuttonpress
|
||||||
releaseall
|
releaseall
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ NavelRock_Summit_EventScript_164FFB:: @ 8164FFB
|
|||||||
special SpawnCameraObject
|
special SpawnCameraObject
|
||||||
setvar VAR_0x8004, 3
|
setvar VAR_0x8004, 3
|
||||||
setvar VAR_0x8005, 35
|
setvar VAR_0x8005, 35
|
||||||
special sub_80CD1B4
|
special Special_LoopWingFlapSound
|
||||||
applymovement 1, Movement_1650E0
|
applymovement 1, Movement_1650E0
|
||||||
applymovement 127, Movement_1650CD
|
applymovement 127, Movement_1650CD
|
||||||
waitmovement 0
|
waitmovement 0
|
||||||
@@ -59,7 +59,7 @@ NavelRock_Summit_EventScript_164FFB:: @ 8164FFB
|
|||||||
delay 60
|
delay 60
|
||||||
setvar VAR_0x8004, 3
|
setvar VAR_0x8004, 3
|
||||||
setvar VAR_0x8005, 35
|
setvar VAR_0x8005, 35
|
||||||
special sub_80CD1B4
|
special Special_LoopWingFlapSound
|
||||||
applymovement 127, Movement_1650D1
|
applymovement 127, Movement_1650D1
|
||||||
applymovement 1, Movement_1650D7
|
applymovement 1, Movement_1650D7
|
||||||
waitmovement 0
|
waitmovement 0
|
||||||
|
|||||||
@@ -241,63 +241,63 @@ SixIsland_DottedHole_SapphireRoom_EventScript_16441F:: @ 816441F
|
|||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9321
|
braillemessage gUnknown_81A9321
|
||||||
getbraillestringwidth gUnknown_81A9321
|
getbraillestringwidth gUnknown_81A9321
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A932D
|
braillemessage gUnknown_81A932D
|
||||||
getbraillestringwidth gUnknown_81A932D
|
getbraillestringwidth gUnknown_81A932D
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9338
|
braillemessage gUnknown_81A9338
|
||||||
getbraillestringwidth gUnknown_81A9338
|
getbraillestringwidth gUnknown_81A9338
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A933F
|
braillemessage gUnknown_81A933F
|
||||||
getbraillestringwidth gUnknown_81A933F
|
getbraillestringwidth gUnknown_81A933F
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A934A
|
braillemessage gUnknown_81A934A
|
||||||
getbraillestringwidth gUnknown_81A934A
|
getbraillestringwidth gUnknown_81A934A
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9356
|
braillemessage gUnknown_81A9356
|
||||||
getbraillestringwidth gUnknown_81A9356
|
getbraillestringwidth gUnknown_81A9356
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9362
|
braillemessage gUnknown_81A9362
|
||||||
getbraillestringwidth gUnknown_81A9362
|
getbraillestringwidth gUnknown_81A9362
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9368
|
braillemessage gUnknown_81A9368
|
||||||
getbraillestringwidth gUnknown_81A9368
|
getbraillestringwidth gUnknown_81A9368
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9374
|
braillemessage gUnknown_81A9374
|
||||||
getbraillestringwidth gUnknown_81A9374
|
getbraillestringwidth gUnknown_81A9374
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A937C
|
braillemessage gUnknown_81A937C
|
||||||
getbraillestringwidth gUnknown_81A937C
|
getbraillestringwidth gUnknown_81A937C
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9387
|
braillemessage gUnknown_81A9387
|
||||||
getbraillestringwidth gUnknown_81A9387
|
getbraillestringwidth gUnknown_81A9387
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A9393
|
braillemessage gUnknown_81A9393
|
||||||
getbraillestringwidth gUnknown_81A9393
|
getbraillestringwidth gUnknown_81A9393
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A939F
|
braillemessage gUnknown_81A939F
|
||||||
getbraillestringwidth gUnknown_81A939F
|
getbraillestringwidth gUnknown_81A939F
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A93AB
|
braillemessage gUnknown_81A93AB
|
||||||
getbraillestringwidth gUnknown_81A93AB
|
getbraillestringwidth gUnknown_81A93AB
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
setvar VAR_0x8006, 0
|
setvar VAR_0x8006, 0
|
||||||
braillemessage gUnknown_81A93B4
|
braillemessage gUnknown_81A93B4
|
||||||
getbraillestringwidth gUnknown_81A93B4
|
getbraillestringwidth gUnknown_81A93B4
|
||||||
call EventScript_1A926C
|
call EventScript_BrailleCursorWaitButton
|
||||||
braillemessage gUnknown_81A93C0
|
braillemessage gUnknown_81A93C0
|
||||||
waitbuttonpress
|
waitbuttonpress
|
||||||
releaseall
|
releaseall
|
||||||
|
|||||||
+12
-12
@@ -398,7 +398,7 @@ gSpecials:: @ 815FD60
|
|||||||
def_special sub_811999C
|
def_special sub_811999C
|
||||||
def_special sp182_move_string
|
def_special sp182_move_string
|
||||||
def_special sub_811390C
|
def_special sub_811390C
|
||||||
def_special sub_80CC4D4
|
def_special Special_GetMartClerkObjectId
|
||||||
def_special Special_BattleCardAction
|
def_special Special_BattleCardAction
|
||||||
def_special sub_8110AB4
|
def_special sub_8110AB4
|
||||||
def_special sub_8112364
|
def_special sub_8112364
|
||||||
@@ -415,7 +415,7 @@ gSpecials:: @ 815FD60
|
|||||||
def_special IsNationalPokedexEnabled
|
def_special IsNationalPokedexEnabled
|
||||||
def_special sub_815D9E8
|
def_special sub_815D9E8
|
||||||
def_special sub_814B504
|
def_special sub_814B504
|
||||||
def_special sub_80CC8CC
|
def_special Special_ItemIsTM_GetMoveName
|
||||||
def_special Special_DaisyMassageServices
|
def_special Special_DaisyMassageServices
|
||||||
def_special HelpSystem_Disable
|
def_special HelpSystem_Disable
|
||||||
def_special HelpSystem_Enable
|
def_special HelpSystem_Enable
|
||||||
@@ -426,31 +426,31 @@ gSpecials:: @ 815FD60
|
|||||||
def_special sub_815EEB0
|
def_special sub_815EEB0
|
||||||
def_special sub_815EF5C
|
def_special sub_815EF5C
|
||||||
def_special sub_815F070
|
def_special sub_815F070
|
||||||
def_special sub_80CC974
|
def_special Special_PokemonLeagueLightingEffect
|
||||||
def_special sub_814EA7C
|
def_special sub_814EA7C
|
||||||
def_special sub_80CCB94
|
def_special Special_CapeBrinkGetMoveToTeachLeadPokemon
|
||||||
def_special sub_80CCCF8
|
def_special Special_HasLearnedAllMovesFromCapeBrinkTutor
|
||||||
def_special Special_Credits
|
def_special Special_Credits
|
||||||
def_special sub_8153810
|
def_special sub_8153810
|
||||||
def_special sub_809D764
|
def_special sub_809D764
|
||||||
def_special sub_809D8C0
|
def_special sub_809D8C0
|
||||||
def_special sub_8147500
|
def_special sub_8147500
|
||||||
def_special GetPlayerFacingDirection
|
def_special GetPlayerFacingDirection
|
||||||
def_special sub_80CCDFC
|
def_special Special_DeoxysSound
|
||||||
def_special sub_80CD008
|
def_special Special_SetDeoxysTriangleObjectPal
|
||||||
def_special sub_8147594
|
def_special sub_8147594
|
||||||
def_special sub_80CD034
|
def_special Special_BadEggInParty
|
||||||
def_special sub_815D834
|
def_special sub_815D834
|
||||||
def_special HasAllMons
|
def_special HasAllMons
|
||||||
def_special sub_80CD074
|
def_special Special_PlayerIsNotInTrainerTowerLobby
|
||||||
def_special sub_80CD098
|
def_special Special_BrailleCursorToggle
|
||||||
def_special sub_811B15C
|
def_special sub_811B15C
|
||||||
def_special sub_80CD0F4
|
def_special Special_PlayerPartyContainsSpeciesWithPlayerID
|
||||||
def_special sub_809C4A8
|
def_special sub_809C4A8
|
||||||
def_special sub_81537C0
|
def_special sub_81537C0
|
||||||
def_special sub_809C5FC
|
def_special sub_809C5FC
|
||||||
def_special Special_InitElevatorFloorSelectMenuPos
|
def_special Special_InitElevatorFloorSelectMenuPos
|
||||||
def_special Special_ComputeLoreleiDollCollection
|
def_special Special_ComputeLoreleiDollCollection
|
||||||
def_special sub_80CD1B4
|
def_special Special_LoopWingFlapSound
|
||||||
def_special CreateObedientEnemyMon
|
def_special CreateObedientEnemyMon
|
||||||
gSpecialsEnd::
|
gSpecialsEnd::
|
||||||
|
|||||||
@@ -67,6 +67,7 @@
|
|||||||
#define FLDEFF_USE_TELEPORT 63
|
#define FLDEFF_USE_TELEPORT 63
|
||||||
#define FLDEFF_UNK_40 64
|
#define FLDEFF_UNK_40 64
|
||||||
#define FLDEFF_UNK_41 65 // TODO: related to vs_seeker
|
#define FLDEFF_UNK_41 65 // TODO: related to vs_seeker
|
||||||
|
#define FLDEFF_UNK_43 67 // TODO: related to deoxys
|
||||||
#define FLDEFF_UNK_45 69 // TODO: related to fame checker photos
|
#define FLDEFF_UNK_45 69 // TODO: related to fame checker photos
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_FIELD_EFFECTS_H
|
#endif // GUARD_CONSTANTS_FIELD_EFFECTS_H
|
||||||
|
|||||||
@@ -748,10 +748,10 @@
|
|||||||
#define FLAG_NO_ROOM_FOR_TOGEPI_EGG 0x2DB
|
#define FLAG_NO_ROOM_FOR_TOGEPI_EGG 0x2DB
|
||||||
#define FLAG_RECOVERED_SAPPHIRE 0x2DC
|
#define FLAG_RECOVERED_SAPPHIRE 0x2DC
|
||||||
#define FLAG_GOT_RUBY 0x2DD
|
#define FLAG_GOT_RUBY 0x2DD
|
||||||
#define FLAG_0x2DE 0x2DE
|
#define FLAG_TUTOR_FRENZY_PLANT 0x2DE
|
||||||
#define FLAG_0x2DF 0x2DF
|
#define FLAG_TUTOR_BLAST_BURN 0x2DF
|
||||||
#define FLAG_0x2E0 0x2E0
|
#define FLAG_TUTOR_HYDRO_CANNON 0x2E0
|
||||||
#define FLAG_LEARNED_MOVE_AT_CAPE_BRINK 0x2E1
|
#define FLAG_LEARNED_ALL_MOVES_AT_CAPE_BRINK 0x2E1
|
||||||
#define FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL 0x2E2
|
#define FLAG_GOT_NUGGET_FROM_DUNSPARCE_TUNNEL 0x2E2
|
||||||
#define FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE 0x2E3
|
#define FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE 0x2E3
|
||||||
#define FLAG_FOUGHT_DEOXYS 0x2E4
|
#define FLAG_FOUGHT_DEOXYS 0x2E4
|
||||||
|
|||||||
@@ -20,5 +20,6 @@ void sub_8084454(void);
|
|||||||
void sub_8084784(u8 a0, u8 a1);
|
void sub_8084784(u8 a0, u8 a1);
|
||||||
void sub_8084F2C(u8 a0);
|
void sub_8084F2C(u8 a0);
|
||||||
void sub_80853CC(u8 a0);
|
void sub_80853CC(u8 a0);
|
||||||
|
void sub_8083598(u8 a0);
|
||||||
|
|
||||||
#endif //GUARD_FIELD_EFFECTS_H
|
#endif //GUARD_FIELD_EFFECTS_H
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ u8 GetLeadMonIndex(void);
|
|||||||
s32 CountDigits(s32 number);
|
s32 CountDigits(s32 number);
|
||||||
void TV_PrintIntToStringVar(u8, int);
|
void TV_PrintIntToStringVar(u8, int);
|
||||||
u16 ScrSpecial_GetStarter(void);
|
u16 ScrSpecial_GetStarter(void);
|
||||||
void sub_80CCB68(void);
|
void StopPokemonLeagueLightingEffectTask(void);
|
||||||
void nullsub_60(void);
|
void nullsub_60(void);
|
||||||
void nullsub_61(void);
|
void nullsub_61(void);
|
||||||
u8 ContextNpcGetTextColor(void);
|
u8 ContextNpcGetTextColor(void);
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ bool32 CanCameraMoveInDirection(s32);
|
|||||||
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr);
|
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr);
|
||||||
const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection);
|
const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection);
|
||||||
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
|
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
|
||||||
|
void sub_8059948(u8 a0, u8 a1);
|
||||||
|
|
||||||
void save_serialize_map(void);
|
void save_serialize_map(void);
|
||||||
|
|
||||||
|
|||||||
@@ -188,7 +188,6 @@ SECTIONS {
|
|||||||
src/prof_pc.o(.text);
|
src/prof_pc.o(.text);
|
||||||
src/hof_pc.o(.text);
|
src/hof_pc.o(.text);
|
||||||
src/field_specials.o(.text);
|
src/field_specials.o(.text);
|
||||||
asm/field_specials.o(.text);
|
|
||||||
src/battle_records.o(.text);
|
src/battle_records.o(.text);
|
||||||
asm/evolution_scene.o(.text);
|
asm/evolution_scene.o(.text);
|
||||||
src/coins.o(.text);
|
src/coins.o(.text);
|
||||||
@@ -447,7 +446,6 @@ SECTIONS {
|
|||||||
src/battle_ai_script_commands.o(.rodata);
|
src/battle_ai_script_commands.o(.rodata);
|
||||||
data/data_83F5738.o(.rodata);
|
data/data_83F5738.o(.rodata);
|
||||||
src/field_specials.o(.rodata);
|
src/field_specials.o(.rodata);
|
||||||
data/field_specials.o(.rodata);
|
|
||||||
src/battle_records.o(.rodata);
|
src/battle_records.o(.rodata);
|
||||||
data/data_83F5738.o(.rodata.83F6C90);
|
data/data_83F5738.o(.rodata.83F6C90);
|
||||||
src/battle_transition.o(.rodata);
|
src/battle_transition.o(.rodata);
|
||||||
|
|||||||
+589
-22
@@ -1,5 +1,6 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "malloc.h"
|
#include "malloc.h"
|
||||||
|
#include "palette.h"
|
||||||
#include "quest_log.h"
|
#include "quest_log.h"
|
||||||
#include "list_menu.h"
|
#include "list_menu.h"
|
||||||
#include "diploma.h"
|
#include "diploma.h"
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "battle_tower.h"
|
#include "battle_tower.h"
|
||||||
#include "field_camera.h"
|
#include "field_camera.h"
|
||||||
|
#include "field_effect.h"
|
||||||
#include "field_map_obj.h"
|
#include "field_map_obj.h"
|
||||||
#include "menu_indicators.h"
|
#include "menu_indicators.h"
|
||||||
#include "random.h"
|
#include "random.h"
|
||||||
@@ -33,6 +35,7 @@
|
|||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "mevent.h"
|
#include "mevent.h"
|
||||||
#include "naming_screen.h"
|
#include "naming_screen.h"
|
||||||
|
#include "party_menu.h"
|
||||||
#include "dynamic_placeholder_text_util.h"
|
#include "dynamic_placeholder_text_util.h"
|
||||||
#include "new_menu_helpers.h"
|
#include "new_menu_helpers.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
@@ -41,13 +44,14 @@
|
|||||||
#include "constants/map_objects.h"
|
#include "constants/map_objects.h"
|
||||||
#include "constants/maps.h"
|
#include "constants/maps.h"
|
||||||
#include "constants/region_map.h"
|
#include "constants/region_map.h"
|
||||||
|
#include "constants/moves.h"
|
||||||
|
|
||||||
EWRAM_DATA u8 sElevatorCurrentFloorWindowId = 0;
|
EWRAM_DATA u8 sElevatorCurrentFloorWindowId = 0;
|
||||||
EWRAM_DATA u16 sElevatorScroll = 0;
|
EWRAM_DATA u16 sElevatorScroll = 0;
|
||||||
EWRAM_DATA u16 sElevatorCursorPos = 0;
|
EWRAM_DATA u16 sElevatorCursorPos = 0;
|
||||||
EWRAM_DATA struct ListMenuItem * gUnknown_2039A14 = NULL;
|
EWRAM_DATA struct ListMenuItem * gUnknown_2039A14 = NULL;
|
||||||
EWRAM_DATA u16 gUnknown_2039A18 = 0;
|
EWRAM_DATA u16 gUnknown_2039A18 = 0;
|
||||||
EWRAM_DATA u8 gUnknown_2039A1A = 0;
|
EWRAM_DATA u8 sUnknownBoxId = 0;
|
||||||
EWRAM_DATA u8 gUnknown_2039A1B = 0;
|
EWRAM_DATA u8 gUnknown_2039A1B = 0;
|
||||||
|
|
||||||
struct ListMenuTemplate gUnknown_3005360;
|
struct ListMenuTemplate gUnknown_3005360;
|
||||||
@@ -74,8 +78,14 @@ static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId);
|
|||||||
static u16 GetStarterPokemon(u16 starterIdx);
|
static u16 GetStarterPokemon(u16 starterIdx);
|
||||||
static void ChangeBoxPokemonNickname_CB(void);
|
static void ChangeBoxPokemonNickname_CB(void);
|
||||||
static void ChangePokemonNickname_CB(void);
|
static void ChangePokemonNickname_CB(void);
|
||||||
|
static void Task_RunPokemonLeagueLightingEffect(u8 taskId);
|
||||||
|
static void Task_CancelPokemonLeagueLightingEffect(u8 taskId);
|
||||||
|
static void task_deoxys_sound(u8 taskId);
|
||||||
|
static void MoveDeoxysObject(u8 num);
|
||||||
|
static void Task_WaitDeoxysFieldEffect(u8 taskId);
|
||||||
|
static void Task_WingFlapSound(u8 taskId);
|
||||||
|
|
||||||
static u8 *const gUnknown_83F5AF8[] = {
|
static u8 *const sStringVarPtrs[] = {
|
||||||
gStringVar1,
|
gStringVar1,
|
||||||
gStringVar2,
|
gStringVar2,
|
||||||
gStringVar3
|
gStringVar3
|
||||||
@@ -319,7 +329,7 @@ void Special_BufferEReaderTrainerName5(void)
|
|||||||
CopyEReaderTrainerName5(gStringVar1);
|
CopyEReaderTrainerName5(gStringVar1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const u8 gUnknown_83F5B04[] = {
|
static const u8 sUnused_83F5B04[] = {
|
||||||
13,
|
13,
|
||||||
14,
|
14,
|
||||||
15,
|
15,
|
||||||
@@ -736,7 +746,7 @@ static const u8 *const sFloorNamePointers[] = {
|
|||||||
gUnknown_841806D
|
gUnknown_841806D
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 gUnknown_83F5B84[] = {
|
static const u8 sUnused_83F5B84[] = {
|
||||||
26,
|
26,
|
||||||
26,
|
26,
|
||||||
26,
|
26,
|
||||||
@@ -1214,7 +1224,7 @@ void Special_ListMenu(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const u8 *const gUnknown_83F5BCC[][12] = {
|
static const u8 *const sListMenuLabels[][12] = {
|
||||||
{
|
{
|
||||||
gUnknown_8417FD9,
|
gUnknown_8417FD9,
|
||||||
gUnknown_8417FE6,
|
gUnknown_8417FE6,
|
||||||
@@ -1293,7 +1303,7 @@ static void Task_CreateScriptListMenu(u8 taskId)
|
|||||||
mwidth = 0;
|
mwidth = 0;
|
||||||
for (i = 0; i < task->data[1]; i++)
|
for (i = 0; i < task->data[1]; i++)
|
||||||
{
|
{
|
||||||
gUnknown_2039A14[i].label = gUnknown_83F5BCC[gSpecialVar_0x8004][i];
|
gUnknown_2039A14[i].label = sListMenuLabels[gSpecialVar_0x8004][i];
|
||||||
gUnknown_2039A14[i].index = i;
|
gUnknown_2039A14[i].index = i;
|
||||||
width = GetStringWidth(2, gUnknown_2039A14[i].label, 0);
|
width = GetStringWidth(2, gUnknown_2039A14[i].label, 0);
|
||||||
if (width > mwidth)
|
if (width > mwidth)
|
||||||
@@ -1530,7 +1540,7 @@ bool8 Special_HasLeadMonBeenRenamed(void)
|
|||||||
void TV_PrintIntToStringVar(u8 varidx, s32 number)
|
void TV_PrintIntToStringVar(u8 varidx, s32 number)
|
||||||
{
|
{
|
||||||
s32 n = CountDigits(number);
|
s32 n = CountDigits(number);
|
||||||
ConvertIntToDecimalStringN(gUnknown_83F5AF8[varidx], number, STR_CONV_MODE_LEFT_ALIGN, n);
|
ConvertIntToDecimalStringN(sStringVarPtrs[varidx], number, STR_CONV_MODE_LEFT_ALIGN, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 CountDigits(s32 number)
|
s32 CountDigits(s32 number)
|
||||||
@@ -1714,7 +1724,7 @@ bool8 Special_PlayerPartyContainsSpecies(void)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const u8 gUnknown_83F5D32[][3] = {
|
static const u8 sMartMaps[][3] = {
|
||||||
{MAP_GROUP(VIRIDIAN_CITY_MART), MAP_NUM(VIRIDIAN_CITY_MART), 1},
|
{MAP_GROUP(VIRIDIAN_CITY_MART), MAP_NUM(VIRIDIAN_CITY_MART), 1},
|
||||||
{MAP_GROUP(PEWTER_CITY_MART), MAP_NUM(PEWTER_CITY_MART), 3},
|
{MAP_GROUP(PEWTER_CITY_MART), MAP_NUM(PEWTER_CITY_MART), 3},
|
||||||
{MAP_GROUP(CERULEAN_CITY_MART), MAP_NUM(CERULEAN_CITY_MART), 1},
|
{MAP_GROUP(CERULEAN_CITY_MART), MAP_NUM(CERULEAN_CITY_MART), 1},
|
||||||
@@ -1729,13 +1739,13 @@ static const u8 gUnknown_83F5D32[][3] = {
|
|||||||
{MAP_GROUP(SIX_ISLAND_MART), MAP_NUM(SIX_ISLAND_MART), 1}
|
{MAP_GROUP(SIX_ISLAND_MART), MAP_NUM(SIX_ISLAND_MART), 1}
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 sub_80CC4D4(void)
|
u8 Special_GetMartClerkObjectId(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 0; i < NELEMS(gUnknown_83F5D32); i++)
|
for (i = 0; i < NELEMS(sMartMaps); i++)
|
||||||
{
|
{
|
||||||
if (gSaveBlock1Ptr->location.mapGroup == gUnknown_83F5D32[i][0] && gSaveBlock1Ptr->location.mapNum == gUnknown_83F5D32[i][1])
|
if (gSaveBlock1Ptr->location.mapGroup == sMartMaps[i][0] && gSaveBlock1Ptr->location.mapNum == sMartMaps[i][1])
|
||||||
return gUnknown_83F5D32[i][2];
|
return sMartMaps[i][2];
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1750,7 +1760,7 @@ static const struct {
|
|||||||
u16 num;
|
u16 num;
|
||||||
u16 grp2;
|
u16 grp2;
|
||||||
u16 num2;
|
u16 num2;
|
||||||
} gUnknown_83F5D58[51] = {
|
} sInsideOutsidePairs[51] = {
|
||||||
{MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)},
|
{MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)},
|
||||||
{MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)},
|
{MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)},
|
||||||
{MAP_GROUP(VIRIDIAN_CITY_GYM), MAP_NUM(VIRIDIAN_CITY_GYM), MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY)},
|
{MAP_GROUP(VIRIDIAN_CITY_GYM), MAP_NUM(VIRIDIAN_CITY_GYM), MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY)},
|
||||||
@@ -1807,9 +1817,9 @@ static const struct {
|
|||||||
void sub_80CC534(void)
|
void sub_80CC534(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 0; i < NELEMS(gUnknown_83F5D58); i++)
|
for (i = 0; i < NELEMS(sInsideOutsidePairs); i++)
|
||||||
{
|
{
|
||||||
if (gSaveBlock1Ptr->location.mapGroup == gUnknown_83F5D58[i].grp && gSaveBlock1Ptr->location.mapNum == gUnknown_83F5D58[i].num)
|
if (gSaveBlock1Ptr->location.mapGroup == sInsideOutsidePairs[i].grp && gSaveBlock1Ptr->location.mapNum == sInsideOutsidePairs[i].num)
|
||||||
{
|
{
|
||||||
if (VarGet(VAR_0x404D) != 35 || i != 32)
|
if (VarGet(VAR_0x404D) != 35 || i != 32)
|
||||||
{
|
{
|
||||||
@@ -1851,7 +1861,7 @@ void sub_80CC59C(void)
|
|||||||
{
|
{
|
||||||
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE22) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE23)))
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE22) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE23)))
|
||||||
{
|
{
|
||||||
sp0.unk0 = get_mapheader_by_bank_and_number(gUnknown_83F5D58[r5].grp, gUnknown_83F5D58[r5].num)->regionMapSectionId;
|
sp0.unk0 = get_mapheader_by_bank_and_number(sInsideOutsidePairs[r5].grp, sInsideOutsidePairs[r5].num)->regionMapSectionId;
|
||||||
if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22))
|
if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22))
|
||||||
sp0.unk1 = r5;
|
sp0.unk1 = r5;
|
||||||
else
|
else
|
||||||
@@ -1861,9 +1871,9 @@ void sub_80CC59C(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gSaveBlock1Ptr->location.mapGroup == gUnknown_83F5D58[r5].grp2 && gSaveBlock1Ptr->location.mapNum == gUnknown_83F5D58[r5].num2)
|
if (gSaveBlock1Ptr->location.mapGroup == sInsideOutsidePairs[r5].grp2 && gSaveBlock1Ptr->location.mapNum == sInsideOutsidePairs[r5].num2)
|
||||||
{
|
{
|
||||||
sp0.unk0 = get_mapheader_by_bank_and_number(gUnknown_83F5D58[r5].grp, gUnknown_83F5D58[r5].num)->regionMapSectionId;
|
sp0.unk0 = get_mapheader_by_bank_and_number(sInsideOutsidePairs[r5].grp, sInsideOutsidePairs[r5].num)->regionMapSectionId;
|
||||||
sp0.unk1 = r5;
|
sp0.unk1 = r5;
|
||||||
if (r5 == 22)
|
if (r5 == 22)
|
||||||
{
|
{
|
||||||
@@ -1888,9 +1898,6 @@ void sub_80CC59C(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern const char gUnknown_83F5EF0[];
|
|
||||||
extern const char gUnknown_83F5F24[];
|
|
||||||
|
|
||||||
u16 Special_BattleCardAction(void)
|
u16 Special_BattleCardAction(void)
|
||||||
{
|
{
|
||||||
switch (gSpecialVar_Result)
|
switch (gSpecialVar_Result)
|
||||||
@@ -1911,7 +1918,52 @@ u16 Special_BattleCardAction(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const u16 gUnknown_83F5F26[] = {
|
void set_unknown_box_id(u8 boxId)
|
||||||
|
{
|
||||||
|
sUnknownBoxId = boxId;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 get_unknown_box_id(void)
|
||||||
|
{
|
||||||
|
return sUnknownBoxId;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_80CC7B4(void)
|
||||||
|
{
|
||||||
|
if (FlagGet(FLAG_SYS_CHANGED_BOX_TO_STORE_MON))
|
||||||
|
return FALSE;
|
||||||
|
if (StorageGetCurrentBox() == VarGet(VAR_0x4037))
|
||||||
|
return FALSE;
|
||||||
|
FlagSet(FLAG_SYS_CHANGED_BOX_TO_STORE_MON);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_80CC7F8(void)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
s32 j;
|
||||||
|
set_unknown_box_id(VarGet(VAR_0x4037));
|
||||||
|
i = StorageGetCurrentBox();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
for (j = 0; j < IN_BOX_COUNT; j++)
|
||||||
|
{
|
||||||
|
if (GetBoxMonData(GetBoxedMonPtr(i, j), MON_DATA_SPECIES, NULL) == SPECIES_NONE)
|
||||||
|
{
|
||||||
|
if (get_unknown_box_id() != i)
|
||||||
|
FlagClear(FLAG_SYS_CHANGED_BOX_TO_STORE_MON);
|
||||||
|
VarSet(VAR_0x4037, i);
|
||||||
|
return sub_80CC7B4();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
if (i == TOTAL_BOXES_COUNT)
|
||||||
|
i = 0;
|
||||||
|
} while (i != StorageGetCurrentBox());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
const u16 sPokeCenter1FMaps[] = {
|
||||||
MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F,
|
MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F,
|
||||||
MAP_PEWTER_CITY_POKEMON_CENTER_1F,
|
MAP_PEWTER_CITY_POKEMON_CENTER_1F,
|
||||||
MAP_CERULEAN_CITY_POKEMON_CENTER_1F,
|
MAP_CERULEAN_CITY_POKEMON_CENTER_1F,
|
||||||
@@ -1934,3 +1986,518 @@ const u16 gUnknown_83F5F26[] = {
|
|||||||
MAP_UNKNOWN_MAP_00_04,
|
MAP_UNKNOWN_MAP_00_04,
|
||||||
MAP_UNDEFINED
|
MAP_UNDEFINED
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool8 sub_80CC87C(void)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
u16 mapno = (gUnknown_2031DB4.mapGroup << 8) + gUnknown_2031DB4.mapNum;
|
||||||
|
for (i = 0; sPokeCenter1FMaps[i] != MAP_UNDEFINED; i++)
|
||||||
|
{
|
||||||
|
if (sPokeCenter1FMaps[i] == mapno)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 Special_ItemIsTM_GetMoveName(void)
|
||||||
|
{
|
||||||
|
// 8004 = item ID
|
||||||
|
if (gSpecialVar_0x8004 >= ITEM_TM01 && gSpecialVar_0x8004 <= ITEM_HM08)
|
||||||
|
{
|
||||||
|
StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_0x8004)]);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RunMassageCooldownStepCounter(void)
|
||||||
|
{
|
||||||
|
u16 count = VarGet(VAR_MASSAGE_COOLDOWN_STEP_COUNTER);
|
||||||
|
if (count < 500)
|
||||||
|
VarSet(VAR_MASSAGE_COOLDOWN_STEP_COUNTER, count + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Special_DaisyMassageServices(void)
|
||||||
|
{
|
||||||
|
AdjustFriendship(&gPlayerParty[gSpecialVar_0x8004], 6);
|
||||||
|
VarSet(VAR_MASSAGE_COOLDOWN_STEP_COUNTER, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const u16 sEliteFourLightingPalettes[][16] = {
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F5F50.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F5F70.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F5F90.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F5FB0.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F5FD0.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F5FF0.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6010.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6030.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6050.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6070.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6090.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F60B0.gbapal")
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u16 sChampionRoomLightingPalettes[][16] = {
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F60D0.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F60F0.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6110.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6130.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6150.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6170.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6190.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F61B0.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F61D0.gbapal")
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u8 sEliteFourLightingTimers[] = {
|
||||||
|
40,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u8 sChampionRoomLightingTimers[] = {
|
||||||
|
20,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8
|
||||||
|
};
|
||||||
|
|
||||||
|
void Special_PokemonLeagueLightingEffect(void)
|
||||||
|
{
|
||||||
|
u8 taskId = CreateTask(Task_RunPokemonLeagueLightingEffect, 8);
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
if (FlagGet(FLAG_TEMP_3) == TRUE)
|
||||||
|
{
|
||||||
|
gTasks[taskId].func = Task_CancelPokemonLeagueLightingEffect;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(POKEMON_LEAGUE_CHAMPIONS_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(POKEMON_LEAGUE_CHAMPIONS_ROOM))
|
||||||
|
{
|
||||||
|
data[0] = sChampionRoomLightingTimers[0];
|
||||||
|
data[2] = 8;
|
||||||
|
LoadPalette(sChampionRoomLightingPalettes[0], 0x70, 0x20);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data[0] = sEliteFourLightingTimers[0];
|
||||||
|
data[2] = 11;
|
||||||
|
LoadPalette(sEliteFourLightingPalettes[0], 0x70, 0x20);
|
||||||
|
}
|
||||||
|
data[1] = 0;
|
||||||
|
sub_8059948(7, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Task_RunPokemonLeagueLightingEffect(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
if (!gPaletteFade.active
|
||||||
|
&& FlagGet(FLAG_TEMP_2) != FALSE
|
||||||
|
&& FlagGet(FLAG_TEMP_5) != TRUE
|
||||||
|
&& gUnknown_2036E28 != 3
|
||||||
|
&& --data[0] == 0
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (++data[1] == data[2])
|
||||||
|
data[1] = 0;
|
||||||
|
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(POKEMON_LEAGUE_CHAMPIONS_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(POKEMON_LEAGUE_CHAMPIONS_ROOM))
|
||||||
|
{
|
||||||
|
data[0] = sChampionRoomLightingTimers[data[1]];
|
||||||
|
LoadPalette(sChampionRoomLightingPalettes[data[1]], 0x70, 0x20);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data[0] = sEliteFourLightingTimers[data[1]];
|
||||||
|
LoadPalette(sEliteFourLightingPalettes[data[1]], 0x70, 0x20);
|
||||||
|
}
|
||||||
|
sub_8059948(7, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Task_CancelPokemonLeagueLightingEffect(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
if (FlagGet(FLAG_TEMP_4) != FALSE)
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(POKEMON_LEAGUE_CHAMPIONS_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(POKEMON_LEAGUE_CHAMPIONS_ROOM))
|
||||||
|
{
|
||||||
|
LoadPalette(sChampionRoomLightingPalettes[8], 0x70, 0x20);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LoadPalette(sEliteFourLightingPalettes[11], 0x70, 0x20);
|
||||||
|
}
|
||||||
|
sub_8059948(7, 1);
|
||||||
|
if (gPaletteFade.active)
|
||||||
|
{
|
||||||
|
BlendPalettes(0x00000080, 16, RGB_BLACK);
|
||||||
|
}
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StopPokemonLeagueLightingEffectTask(void)
|
||||||
|
{
|
||||||
|
if (FuncIsActiveTask(Task_RunPokemonLeagueLightingEffect) == TRUE)
|
||||||
|
{
|
||||||
|
DestroyTask(FindTaskIdByFunc(Task_RunPokemonLeagueLightingEffect));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const u8 sCapeBrinkCompatibleSpecies[] = {
|
||||||
|
SPECIES_VENUSAUR,
|
||||||
|
SPECIES_CHARIZARD,
|
||||||
|
SPECIES_BLASTOISE
|
||||||
|
};
|
||||||
|
|
||||||
|
bool8 Special_CapeBrinkGetMoveToTeachLeadPokemon(void)
|
||||||
|
{
|
||||||
|
// Returns:
|
||||||
|
// 8005 = Move tutor index
|
||||||
|
// 8006 = Num moves known by lead mon
|
||||||
|
// 8007 = Index of lead mon
|
||||||
|
// to specialvar = whether a move can be taught in the first place
|
||||||
|
u8 r7 = 0;
|
||||||
|
u8 r6 = 0;
|
||||||
|
u8 r8 = GetLeadMonIndex();
|
||||||
|
u8 r4;
|
||||||
|
gSpecialVar_0x8007 = r8;
|
||||||
|
for (r4 = 0; r4 < NELEMS(sCapeBrinkCompatibleSpecies); r4++)
|
||||||
|
{
|
||||||
|
if (GetMonData(&gPlayerParty[r8], MON_DATA_SPECIES2, NULL) == sCapeBrinkCompatibleSpecies[r4])
|
||||||
|
{
|
||||||
|
r7 = r4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (r4 == NELEMS(sCapeBrinkCompatibleSpecies) || GetMonData(&gPlayerParty[r8], MON_DATA_FRIENDSHIP) != 255)
|
||||||
|
return FALSE;
|
||||||
|
if (r7 == 0)
|
||||||
|
{
|
||||||
|
StringCopy(gStringVar2, gMoveNames[MOVE_FRENZY_PLANT]);
|
||||||
|
gSpecialVar_0x8005 = MOVETUTOR_FRENZY_PLANT;
|
||||||
|
if (FlagGet(FLAG_TUTOR_FRENZY_PLANT) == TRUE)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else if (r7 == 1)
|
||||||
|
{
|
||||||
|
StringCopy(gStringVar2, gMoveNames[MOVE_BLAST_BURN]);
|
||||||
|
gSpecialVar_0x8005 = MOVETUTOR_BLAST_BURN;
|
||||||
|
if (FlagGet(FLAG_TUTOR_BLAST_BURN) == TRUE)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringCopy(gStringVar2, gMoveNames[MOVE_HYDRO_CANNON]);
|
||||||
|
gSpecialVar_0x8005 = MOVETUTOR_HYDRO_CANNON;
|
||||||
|
if (FlagGet(FLAG_TUTOR_HYDRO_CANNON) == TRUE)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
if (GetMonData(&gPlayerParty[r8], MON_DATA_MOVE1) != MOVE_NONE)
|
||||||
|
r6++;
|
||||||
|
if (GetMonData(&gPlayerParty[r8], MON_DATA_MOVE2) != MOVE_NONE)
|
||||||
|
r6++;
|
||||||
|
if (GetMonData(&gPlayerParty[r8], MON_DATA_MOVE3) != MOVE_NONE)
|
||||||
|
r6++;
|
||||||
|
if (GetMonData(&gPlayerParty[r8], MON_DATA_MOVE4) != MOVE_NONE)
|
||||||
|
r6++;
|
||||||
|
gSpecialVar_0x8006 = r6;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 Special_HasLearnedAllMovesFromCapeBrinkTutor(void)
|
||||||
|
{
|
||||||
|
// 8005 is set by Special_CapeBrinkGetMoveToTeachLeadPokemon
|
||||||
|
u8 r4 = 0;
|
||||||
|
if (gSpecialVar_0x8005 == MOVETUTOR_FRENZY_PLANT)
|
||||||
|
FlagSet(FLAG_TUTOR_FRENZY_PLANT);
|
||||||
|
else if (gSpecialVar_0x8005 == MOVETUTOR_BLAST_BURN)
|
||||||
|
FlagSet(FLAG_TUTOR_BLAST_BURN);
|
||||||
|
else
|
||||||
|
FlagSet(FLAG_TUTOR_HYDRO_CANNON);
|
||||||
|
if (FlagGet(FLAG_TUTOR_FRENZY_PLANT) == TRUE)
|
||||||
|
r4++;
|
||||||
|
if (FlagGet(FLAG_TUTOR_BLAST_BURN) == TRUE)
|
||||||
|
r4++;
|
||||||
|
if (FlagGet(FLAG_TUTOR_HYDRO_CANNON) == TRUE)
|
||||||
|
r4++;
|
||||||
|
if (r4 == 3)
|
||||||
|
return TRUE;
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 CutMoveRuinValleyCheck(void)
|
||||||
|
{
|
||||||
|
if (FlagGet(FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE) != TRUE
|
||||||
|
&& gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SIX_ISLAND_RUIN_VALLEY)
|
||||||
|
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(SIX_ISLAND_RUIN_VALLEY)
|
||||||
|
&& gSaveBlock1Ptr->pos.x == 24
|
||||||
|
&& gSaveBlock1Ptr->pos.y == 25
|
||||||
|
&& GetPlayerFacingDirection() == DIR_NORTH)
|
||||||
|
return TRUE;
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CutMoveOpenDottedHoleDoor(void)
|
||||||
|
{
|
||||||
|
MapGridSetMetatileIdAt(31, 31, 0x358);
|
||||||
|
DrawWholeMapView();
|
||||||
|
PlaySE(SE_BAN);
|
||||||
|
FlagSet(FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE);
|
||||||
|
ScriptContext2_Disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
static const u16 sDeoxysObjectPals[][16] = {
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6206.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6226.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6246.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6266.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6286.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F62A6.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F62C6.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F62E6.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6306.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6326.gbapal"),
|
||||||
|
INCBIN_U16("data/field_specials/unk_83F6346.gbapal")
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u8 sDeoxysCoords[][2] = {
|
||||||
|
{15, 12},
|
||||||
|
{11, 14},
|
||||||
|
{15, 8},
|
||||||
|
{19, 14},
|
||||||
|
{12, 11},
|
||||||
|
{18, 11},
|
||||||
|
{15, 14},
|
||||||
|
{11, 14},
|
||||||
|
{19, 14},
|
||||||
|
{15, 15},
|
||||||
|
{15, 10}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const u8 sDeoxysStepCaps[] = {
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
6,
|
||||||
|
3,
|
||||||
|
3
|
||||||
|
};
|
||||||
|
|
||||||
|
void Special_DeoxysSound(void)
|
||||||
|
{
|
||||||
|
CreateTask(task_deoxys_sound, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task_deoxys_sound(u8 taskId)
|
||||||
|
{
|
||||||
|
u16 r5;
|
||||||
|
u16 r6;
|
||||||
|
if (FlagGet(FLAG_SYS_DEOXYS_AWAKENED) == TRUE)
|
||||||
|
{
|
||||||
|
gSpecialVar_Result = 3;
|
||||||
|
EnableBothScriptContexts();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
r5 = VarGet(VAR_DEOXYS_INTERACTION_NUM);
|
||||||
|
r6 = VarGet(VAR_DEOXYS_INTERACTION_STEP_COUNTER);
|
||||||
|
VarSet(VAR_DEOXYS_INTERACTION_STEP_COUNTER, 0);
|
||||||
|
if (r5 != 0 && sDeoxysStepCaps[r5 - 1] < r6)
|
||||||
|
{
|
||||||
|
MoveDeoxysObject(0);
|
||||||
|
VarSet(VAR_DEOXYS_INTERACTION_NUM, 0);
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
else if (r5 == 10)
|
||||||
|
{
|
||||||
|
FlagSet(FLAG_SYS_DEOXYS_AWAKENED);
|
||||||
|
gSpecialVar_Result = 2;
|
||||||
|
EnableBothScriptContexts();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
r5++;
|
||||||
|
MoveDeoxysObject(r5);
|
||||||
|
VarSet(VAR_DEOXYS_INTERACTION_NUM, r5);
|
||||||
|
gSpecialVar_Result = 1;
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void MoveDeoxysObject(u8 num)
|
||||||
|
{
|
||||||
|
u8 mapObjId;
|
||||||
|
LoadPalette(sDeoxysObjectPals[num], 0x1A0, 0x08);
|
||||||
|
sub_8083598(10);
|
||||||
|
TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjId);
|
||||||
|
if (num == 0)
|
||||||
|
PlaySE(SE_W109);
|
||||||
|
else
|
||||||
|
PlaySE(SE_DEOMOV);
|
||||||
|
CreateTask(Task_WaitDeoxysFieldEffect, 8);
|
||||||
|
gFieldEffectArguments[0] = 1;
|
||||||
|
gFieldEffectArguments[1] = 56;
|
||||||
|
gFieldEffectArguments[2] = 2;
|
||||||
|
gFieldEffectArguments[3] = sDeoxysCoords[num][0];
|
||||||
|
gFieldEffectArguments[4] = sDeoxysCoords[num][1];
|
||||||
|
if (num == 0)
|
||||||
|
gFieldEffectArguments[5] = 60;
|
||||||
|
else
|
||||||
|
gFieldEffectArguments[5] = 5;
|
||||||
|
FieldEffectStart(FLDEFF_UNK_43);
|
||||||
|
Overworld_SetMapObjTemplateCoords(1, sDeoxysCoords[num][0], sDeoxysCoords[num][1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Task_WaitDeoxysFieldEffect(u8 taskId)
|
||||||
|
{
|
||||||
|
if (!FieldEffectActiveListContains(FLDEFF_UNK_43))
|
||||||
|
{
|
||||||
|
EnableBothScriptContexts();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BirthIslandDeoxysStepCounter(void)
|
||||||
|
{
|
||||||
|
u16 count = VarGet(VAR_DEOXYS_INTERACTION_STEP_COUNTER);
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BIRTH_ISLAND_EXTERIOR) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BIRTH_ISLAND_EXTERIOR))
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
if (count > 99)
|
||||||
|
VarSet(VAR_DEOXYS_INTERACTION_STEP_COUNTER, 0);
|
||||||
|
else
|
||||||
|
VarSet(VAR_DEOXYS_INTERACTION_STEP_COUNTER, count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Special_SetDeoxysTriangleObjectPal(void)
|
||||||
|
{
|
||||||
|
u8 num = VarGet(VAR_DEOXYS_INTERACTION_NUM);
|
||||||
|
LoadPalette(sDeoxysObjectPals[num], 0x1A0, 0x08);
|
||||||
|
sub_8083598(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 Special_BadEggInParty(void)
|
||||||
|
{
|
||||||
|
u8 partyCount = CalculatePlayerPartyCount();
|
||||||
|
u8 i;
|
||||||
|
for (i = 0; i < partyCount; i++)
|
||||||
|
{
|
||||||
|
if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_BAD_EGG) == TRUE)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 Special_PlayerIsNotInTrainerTowerLobby(void)
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER_LOBBY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER_LOBBY))
|
||||||
|
return FALSE;
|
||||||
|
else
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Special_BrailleCursorToggle(void)
|
||||||
|
{
|
||||||
|
// 8004 = x - 27
|
||||||
|
// 8005 = y
|
||||||
|
// 8006 = action (0 = create, 1 = delete)
|
||||||
|
u16 x;
|
||||||
|
if (gUnknown_203ADFA != 2)
|
||||||
|
{
|
||||||
|
x = gSpecialVar_0x8004 + 27;
|
||||||
|
if (gSpecialVar_0x8006 == 0)
|
||||||
|
gUnknown_2039A1B = CreateTextCursorSpriteForOakSpeech(0, x, gSpecialVar_0x8005, 0, 0);
|
||||||
|
else
|
||||||
|
sub_8006398(gUnknown_2039A1B);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 Special_PlayerPartyContainsSpeciesWithPlayerID(void)
|
||||||
|
{
|
||||||
|
// 8004 = species
|
||||||
|
u8 playerCount = CalculatePlayerPartyCount();
|
||||||
|
u8 i;
|
||||||
|
for (i = 0; i < playerCount; i++)
|
||||||
|
{
|
||||||
|
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == gSpecialVar_0x8004 && GetPlayerTrainerId() == GetMonData(&gPlayerParty[i], MON_DATA_OT_ID, NULL))
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determines which of Lorelei's doll collection to show
|
||||||
|
* based on how many times you've entered the Hall of Fame.
|
||||||
|
*/
|
||||||
|
void Special_ComputeLoreleiDollCollection(void)
|
||||||
|
{
|
||||||
|
u32 numHofClears = GetGameStat(GAME_STAT_ENTERED_HOF);
|
||||||
|
if (numHofClears >= 25)
|
||||||
|
{
|
||||||
|
FlagClear(FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL);
|
||||||
|
if (numHofClears >= 50)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL);
|
||||||
|
if (numHofClears >= 75)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL);
|
||||||
|
if (numHofClears >= 100)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL);
|
||||||
|
if (numHofClears >= 125)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL);
|
||||||
|
if (numHofClears >= 150)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL);
|
||||||
|
if (numHofClears >= 175)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL);
|
||||||
|
if (numHofClears >= 200)
|
||||||
|
FlagClear(FLAG_HIDE_LORELEIS_HOUSE_LAPRAS_DOLL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Special_LoopWingFlapSound(void)
|
||||||
|
{
|
||||||
|
// 8004 = Num flaps
|
||||||
|
// 8005 = Frame delay between flaps
|
||||||
|
CreateTask(Task_WingFlapSound, 8);
|
||||||
|
PlaySE(SE_W017);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Task_WingFlapSound(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
data[1]++;
|
||||||
|
if (data[1] == gSpecialVar_0x8005)
|
||||||
|
{
|
||||||
|
data[0]++;
|
||||||
|
data[1] = 0;
|
||||||
|
PlaySE(SE_W017);
|
||||||
|
}
|
||||||
|
if (data[0] == gSpecialVar_0x8004 - 1)
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
|||||||
+5
-5
@@ -396,7 +396,7 @@ void FieldUseFunc_TmCase(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80CCB68();
|
StopPokemonLeagueLightingEffectTask();
|
||||||
fade_screen(1, 0);
|
fade_screen(1, 0);
|
||||||
gTasks[taskId].func = Task_InitTMCaseFromField;
|
gTasks[taskId].func = Task_InitTMCaseFromField;
|
||||||
}
|
}
|
||||||
@@ -427,7 +427,7 @@ void FieldUseFunc_BerryPouch(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80CCB68();
|
StopPokemonLeagueLightingEffectTask();
|
||||||
fade_screen(1, 0);
|
fade_screen(1, 0);
|
||||||
gTasks[taskId].func = Task_InitBerryPouchFromField;
|
gTasks[taskId].func = Task_InitBerryPouchFromField;
|
||||||
}
|
}
|
||||||
@@ -470,7 +470,7 @@ void FieldUseFunc_TeachyTv(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80CCB68();
|
StopPokemonLeagueLightingEffectTask();
|
||||||
fade_screen(1, 0);
|
fade_screen(1, 0);
|
||||||
gTasks[taskId].func = Task_InitTeachyTvFromField;
|
gTasks[taskId].func = Task_InitTeachyTvFromField;
|
||||||
}
|
}
|
||||||
@@ -600,7 +600,7 @@ void FieldUseFunc_TownMap(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80CCB68();
|
StopPokemonLeagueLightingEffectTask();
|
||||||
fade_screen(1, 0);
|
fade_screen(1, 0);
|
||||||
gTasks[taskId].func = sub_80A1CC0;
|
gTasks[taskId].func = sub_80A1CC0;
|
||||||
}
|
}
|
||||||
@@ -632,7 +632,7 @@ void FieldUseFunc_FameChecker(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80CCB68();
|
StopPokemonLeagueLightingEffectTask();
|
||||||
fade_screen(1, 0);
|
fade_screen(1, 0);
|
||||||
gTasks[taskId].func = sub_80A1D68;
|
gTasks[taskId].func = sub_80A1D68;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -445,7 +445,7 @@ static void StartMenu_FadeScreenIfLeavingOverworld(void)
|
|||||||
&& sStartMenuCallback != StartMenuExitCallback
|
&& sStartMenuCallback != StartMenuExitCallback
|
||||||
&& sStartMenuCallback != StartMenuSafariZoneRetireCallback)
|
&& sStartMenuCallback != StartMenuSafariZoneRetireCallback)
|
||||||
{
|
{
|
||||||
sub_80CCB68();
|
StopPokemonLeagueLightingEffectTask();
|
||||||
fade_screen(1, 0);
|
fade_screen(1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user