field_specials through sub_80CC534

This commit is contained in:
PikalaxALT
2019-10-24 10:22:39 -04:00
parent db3be6ef2e
commit 779d6187c6
11 changed files with 320 additions and 852 deletions
+1 -730
View File
@@ -5,735 +5,6 @@
.text .text
thumb_func_start ChangeBoxPokemonNickname
ChangeBoxPokemonNickname: @ 80CBFE0
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x8
ldr r0, _080CC050 @ =gSpecialVar_MonBoxId
ldrb r0, [r0]
ldr r1, _080CC054 @ =gSpecialVar_MonBoxPos
ldrb r1, [r1]
bl GetBoxedMonPtr
adds r6, r0, 0
ldr r2, _080CC058 @ =gStringVar3
movs r1, 0x2
bl GetBoxMonData
ldr r0, _080CC05C @ =gStringVar2
mov r8, r0
adds r0, r6, 0
movs r1, 0x2
mov r2, r8
bl GetBoxMonData
adds r0, r6, 0
movs r1, 0xB
movs r2, 0
bl GetBoxMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
bl GetBoxMonGender
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0
movs r2, 0
bl GetBoxMonData
str r0, [sp]
ldr r0, _080CC060 @ =ChangeBoxPokemonNickname_CB
str r0, [sp, 0x4]
movs r0, 0x3
mov r1, r8
adds r2, r5, 0
adds r3, r4, 0
bl DoNamingScreen
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080CC050: .4byte gSpecialVar_MonBoxId
_080CC054: .4byte gSpecialVar_MonBoxPos
_080CC058: .4byte gStringVar3
_080CC05C: .4byte gStringVar2
_080CC060: .4byte ChangeBoxPokemonNickname_CB
thumb_func_end ChangeBoxPokemonNickname
thumb_func_start ChangeBoxPokemonNickname_CB
ChangeBoxPokemonNickname_CB: @ 80CC064
push {lr}
ldr r0, _080CC07C @ =gSpecialVar_MonBoxId
ldrb r0, [r0]
ldr r1, _080CC080 @ =gSpecialVar_MonBoxPos
ldrb r1, [r1]
ldr r2, _080CC084 @ =gStringVar2
bl SetBoxMonNickFromAnyBox
bl CB2_ReturnToFieldContinueScriptPlayMapMusic
pop {r0}
bx r0
.align 2, 0
_080CC07C: .4byte gSpecialVar_MonBoxId
_080CC080: .4byte gSpecialVar_MonBoxPos
_080CC084: .4byte gStringVar2
thumb_func_end ChangeBoxPokemonNickname_CB
thumb_func_start ChangePokemonNickname
ChangePokemonNickname: @ 80CC088
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x8
ldr r0, _080CC130 @ =gSpecialVar_0x8004
mov r9, r0
ldrh r0, [r0]
movs r1, 0x64
mov r8, r1
mov r1, r8
muls r1, r0
adds r0, r1, 0
ldr r6, _080CC134 @ =gPlayerParty
adds r0, r6
ldr r2, _080CC138 @ =gStringVar3
movs r1, 0x2
bl GetMonData
mov r1, r9
ldrh r0, [r1]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r6
ldr r1, _080CC13C @ =gStringVar2
mov r10, r1
movs r1, 0x2
mov r2, r10
bl GetMonData
mov r1, r9
ldrh r0, [r1]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
movs r2, 0
bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
mov r1, r9
ldrh r0, [r1]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r6
bl GetMonGender
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r1, r9
ldrh r0, [r1]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r6
movs r1, 0
movs r2, 0
bl GetMonData
str r0, [sp]
ldr r0, _080CC140 @ =ChangePokemonNickname_CB
str r0, [sp, 0x4]
movs r0, 0x3
mov r1, r10
adds r2, r5, 0
adds r3, r4, 0
bl DoNamingScreen
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080CC130: .4byte gSpecialVar_0x8004
_080CC134: .4byte gPlayerParty
_080CC138: .4byte gStringVar3
_080CC13C: .4byte gStringVar2
_080CC140: .4byte ChangePokemonNickname_CB
thumb_func_end ChangePokemonNickname
thumb_func_start ChangePokemonNickname_CB
ChangePokemonNickname_CB: @ 80CC144
push {lr}
ldr r0, _080CC164 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080CC168 @ =gPlayerParty
adds r0, r1
ldr r2, _080CC16C @ =gStringVar2
movs r1, 0x2
bl SetMonData
bl CB2_ReturnToFieldContinueScriptPlayMapMusic
pop {r0}
bx r0
.align 2, 0
_080CC164: .4byte gSpecialVar_0x8004
_080CC168: .4byte gPlayerParty
_080CC16C: .4byte gStringVar2
thumb_func_end ChangePokemonNickname_CB
thumb_func_start TV_CopyNicknameToStringVar1AndEnsureTerminated
TV_CopyNicknameToStringVar1AndEnsureTerminated: @ 80CC170
push {r4,lr}
ldr r0, _080CC194 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080CC198 @ =gPlayerParty
adds r0, r1
ldr r4, _080CC19C @ =gStringVar1
movs r1, 0x2
adds r2, r4, 0
bl GetMonData
adds r0, r4, 0
bl StringGetEnd10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080CC194: .4byte gSpecialVar_0x8004
_080CC198: .4byte gPlayerParty
_080CC19C: .4byte gStringVar1
thumb_func_end TV_CopyNicknameToStringVar1AndEnsureTerminated
thumb_func_start TV_CheckMonOTIDEqualsPlayerID
TV_CheckMonOTIDEqualsPlayerID: @ 80CC1A0
push {r4,lr}
bl sub_80CC1E4
adds r4, r0, 0
ldr r0, _080CC1C8 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080CC1CC @ =gPlayerParty
adds r0, r1
movs r1, 0x1
movs r2, 0
bl GetMonData
cmp r4, r0
bne _080CC1D4
ldr r1, _080CC1D0 @ =gSpecialVar_Result
movs r0, 0
b _080CC1D8
.align 2, 0
_080CC1C8: .4byte gSpecialVar_0x8004
_080CC1CC: .4byte gPlayerParty
_080CC1D0: .4byte gSpecialVar_Result
_080CC1D4:
ldr r1, _080CC1E0 @ =gSpecialVar_Result
movs r0, 0x1
_080CC1D8:
strh r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080CC1E0: .4byte gSpecialVar_Result
thumb_func_end TV_CheckMonOTIDEqualsPlayerID
thumb_func_start sub_80CC1E4
sub_80CC1E4: @ 80CC1E4
ldr r0, _080CC200 @ =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r0, [r2, 0xD]
lsls r0, 24
ldrb r1, [r2, 0xC]
lsls r1, 16
orrs r0, r1
ldrb r1, [r2, 0xB]
lsls r1, 8
orrs r0, r1
ldrb r1, [r2, 0xA]
orrs r0, r1
bx lr
.align 2, 0
_080CC200: .4byte gSaveBlock2Ptr
thumb_func_end sub_80CC1E4
thumb_func_start GetUnlockedSeviiAreas
GetUnlockedSeviiAreas: @ 80CC204
push {r4,lr}
movs r4, 0
ldr r0, _080CC2A4 @ =0x0000089b
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC218
movs r4, 0x1
_080CC218:
ldr r0, _080CC2A8 @ =0x0000089c
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC22A
movs r0, 0x2
orrs r4, r0
_080CC22A:
ldr r0, _080CC2AC @ =0x0000089d
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC240
movs r0, 0x4
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_080CC240:
ldr r0, _080CC2B0 @ =0x0000089e
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC256
movs r0, 0x8
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_080CC256:
ldr r0, _080CC2B4 @ =0x0000089f
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC26C
movs r0, 0x10
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_080CC26C:
ldr r0, _080CC2B8 @ =0x000008a1
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC282
movs r0, 0x20
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_080CC282:
movs r0, 0x8A
lsls r0, 4
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CC29A
movs r0, 0x40
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_080CC29A:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080CC2A4: .4byte 0x0000089b
_080CC2A8: .4byte 0x0000089c
_080CC2AC: .4byte 0x0000089d
_080CC2B0: .4byte 0x0000089e
_080CC2B4: .4byte 0x0000089f
_080CC2B8: .4byte 0x000008a1
thumb_func_end GetUnlockedSeviiAreas
thumb_func_start sub_80CC2BC
sub_80CC2BC: @ 80CC2BC
push {r4-r7,lr}
sub sp, 0x24
movs r5, 0
add r7, sp, 0xC
movs r1, 0
_080CC2C6:
lsls r0, r5, 1
add r0, sp
strh r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _080CC2C6
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
cmp r5, r6
bcs _080CC318
_080CC2E4:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080CC3BC @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
bl GetMonData
lsls r1, r5, 1
add r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0
movs r2, 0
bl GetMonData
lsls r1, r5, 2
adds r1, r7, r1
str r0, [r1]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r6
bcc _080CC2E4
_080CC318:
ldr r4, _080CC3C0 @ =0x00004043
mov r0, sp
ldrh r0, [r0]
ldr r1, [sp, 0xC]
bl SpeciesToMailSpecies
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
adds r4, 0x1
mov r0, sp
ldrh r0, [r0, 0x2]
ldr r1, [r7, 0x4]
bl SpeciesToMailSpecies
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
adds r4, 0x1
mov r0, sp
ldrh r0, [r0, 0x4]
ldr r1, [r7, 0x8]
bl SpeciesToMailSpecies
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
adds r4, 0x1
mov r0, sp
ldrh r0, [r0, 0x6]
ldr r1, [r7, 0xC]
bl SpeciesToMailSpecies
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
adds r4, 0x1
mov r0, sp
ldrh r0, [r0, 0x8]
ldr r1, [r7, 0x10]
bl SpeciesToMailSpecies
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
adds r4, 0x1
mov r0, sp
ldrh r0, [r0, 0xA]
ldr r1, [r7, 0x14]
bl SpeciesToMailSpecies
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
ldr r0, _080CC3C4 @ =0x00004042
ldr r1, _080CC3C8 @ =gSpecialVar_0x8004
ldrh r1, [r1]
bl VarSet
add sp, 0x24
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080CC3BC: .4byte gPlayerParty
_080CC3C0: .4byte 0x00004043
_080CC3C4: .4byte 0x00004042
_080CC3C8: .4byte gSpecialVar_0x8004
thumb_func_end sub_80CC2BC
thumb_func_start sub_80CC3CC
sub_80CC3CC: @ 80CC3CC
push {r4-r6,lr}
movs r5, 0
ldr r4, _080CC3F8 @ =gSpecialVar_0x8004
movs r0, 0xA
bl GetGameStat
strh r0, [r4]
movs r0, 0xD
bl GetGameStat
adds r6, r0, 0
ldr r4, _080CC3FC @ =gSpecialVar_0x8006
movs r0, 0x17
bl GetGameStat
strh r0, [r4]
ldr r1, _080CC400 @ =0x0000ffff
cmp r6, r1
bls _080CC408
ldr r0, _080CC404 @ =gSpecialVar_0x8005
strh r1, [r0]
b _080CC40C
.align 2, 0
_080CC3F8: .4byte gSpecialVar_0x8004
_080CC3FC: .4byte gSpecialVar_0x8006
_080CC400: .4byte 0x0000ffff
_080CC404: .4byte gSpecialVar_0x8005
_080CC408:
ldr r0, _080CC440 @ =gSpecialVar_0x8005
strh r6, [r0]
_080CC40C:
adds r1, r0, 0
ldr r0, _080CC444 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
beq _080CC41A
movs r0, 0x1
orrs r5, r0
_080CC41A:
ldrh r0, [r1]
cmp r0, 0
beq _080CC428
movs r0, 0x2
orrs r5, r0
lsls r0, r5, 16
lsrs r5, r0, 16
_080CC428:
ldr r0, _080CC448 @ =gSpecialVar_0x8006
ldrh r0, [r0]
cmp r0, 0
beq _080CC438
movs r0, 0x4
orrs r5, r0
lsls r0, r5, 16
lsrs r5, r0, 16
_080CC438:
adds r0, r5, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080CC440: .4byte gSpecialVar_0x8005
_080CC444: .4byte gSpecialVar_0x8004
_080CC448: .4byte gSpecialVar_0x8006
thumb_func_end sub_80CC3CC
thumb_func_start GetHiddenItemAttr
GetHiddenItemAttr: @ 80CC44C
push {lr}
lsls r1, 24
lsrs r1, 24
adds r2, r1, 0
cmp r1, 0
bne _080CC45E
lsls r0, 16
lsrs r0, 16
b _080CC486
_080CC45E:
cmp r1, 0x1
bne _080CC470
lsrs r0, 16
movs r1, 0xFF
ands r0, r1
movs r1, 0xFA
lsls r1, 2
adds r0, r1
b _080CC486
_080CC470:
cmp r1, 0x2
bne _080CC47C
lsrs r0, 24
movs r1, 0x7F
ands r0, r1
b _080CC486
_080CC47C:
cmp r2, 0x3
beq _080CC484
movs r0, 0x1
b _080CC486
_080CC484:
lsrs r0, 31
_080CC486:
pop {r1}
bx r1
thumb_func_end GetHiddenItemAttr
thumb_func_start Special_PlayerPartyContainsSpecies
Special_PlayerPartyContainsSpecies: @ 80CC48C
push {r4,r5,lr}
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
cmp r4, r5
bcs _080CC4CA
_080CC49C:
movs r0, 0x64
muls r0, r4
ldr r1, _080CC4B8 @ =gPlayerParty
adds r0, r1
movs r1, 0x41
movs r2, 0
bl GetMonData
ldr r1, _080CC4BC @ =gSpecialVar_0x8004
ldrh r1, [r1]
cmp r0, r1
bne _080CC4C0
movs r0, 0x1
b _080CC4CC
.align 2, 0
_080CC4B8: .4byte gPlayerParty
_080CC4BC: .4byte gSpecialVar_0x8004
_080CC4C0:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _080CC49C
_080CC4CA:
movs r0, 0
_080CC4CC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end Special_PlayerPartyContainsSpecies
thumb_func_start sub_80CC4D4
sub_80CC4D4: @ 80CC4D4
push {r4-r7,lr}
movs r3, 0
ldr r0, _080CC508 @ =gSaveBlock1Ptr
ldr r4, [r0]
movs r6, 0x4
ldrsb r6, [r4, r6]
ldr r5, _080CC50C @ =gUnknown_83F5D32
adds r0, r5, 0x2
mov r12, r0
adds r7, r5, 0x1
_080CC4E8:
lsls r0, r3, 1
adds r2, r0, r3
adds r0, r2, r5
ldrb r0, [r0]
cmp r6, r0
bne _080CC510
movs r1, 0x5
ldrsb r1, [r4, r1]
adds r0, r2, r7
ldrb r0, [r0]
cmp r1, r0
bne _080CC510
mov r1, r12
adds r0, r2, r1
ldrb r0, [r0]
b _080CC51C
.align 2, 0
_080CC508: .4byte gSaveBlock1Ptr
_080CC50C: .4byte gUnknown_83F5D32
_080CC510:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xB
bls _080CC4E8
movs r0, 0x1
_080CC51C:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80CC4D4
thumb_func_start sub_80CC524
sub_80CC524: @ 80CC524
push {lr}
movs r0, 0xB
movs r1, 0
bl sub_8113550
pop {r0}
bx r0
thumb_func_end sub_80CC524
thumb_func_start sub_80CC534
sub_80CC534: @ 80CC534
push {r4-r6,lr}
movs r4, 0
ldr r6, _080CC57C @ =gSaveBlock1Ptr
ldr r5, _080CC580 @ =gUnknown_83F5D58
_080CC53C:
ldr r3, [r6]
movs r1, 0x4
ldrsb r1, [r3, r1]
lsls r0, r4, 3
adds r2, r0, r5
ldrh r0, [r2]
cmp r1, r0
bne _080CC58C
movs r0, 0x5
ldrsb r0, [r3, r0]
ldrh r2, [r2, 0x2]
cmp r0, r2
bne _080CC58C
ldr r5, _080CC584 @ =0x0000404d
adds r0, r5, 0
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x23
bne _080CC56A
cmp r4, 0x20
beq _080CC596
_080CC56A:
adds r0, r5, 0
adds r1, r4, 0
bl VarSet
ldr r0, _080CC588 @ =0x00000808
bl FlagSet
b _080CC596
.align 2, 0
_080CC57C: .4byte gSaveBlock1Ptr
_080CC580: .4byte gUnknown_83F5D58
_080CC584: .4byte 0x0000404d
_080CC588: .4byte 0x00000808
_080CC58C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x32
bls _080CC53C
_080CC596:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80CC534
thumb_func_start sub_80CC59C thumb_func_start sub_80CC59C
sub_80CC59C: @ 80CC59C sub_80CC59C: @ 80CC59C
push {r4-r7,lr} push {r4-r7,lr}
@@ -2192,7 +1463,7 @@ _080CD104:
ldrh r1, [r1] ldrh r1, [r1]
cmp r0, r1 cmp r0, r1
bne _080CD140 bne _080CD140
bl sub_80CC1E4 bl GetPlayerTrainerId
adds r4, r0, 0 adds r4, r0, 0
adds r0, r5, 0 adds r0, r5, 0
movs r1, 0x1 movs r1, 0x1
+1 -1
View File
@@ -7652,7 +7652,7 @@ _081384C4: .4byte gEnemyParty
_081384C8: .4byte gLinkPlayers _081384C8: .4byte gLinkPlayers
_081384CC: .4byte 0x0000304c _081384CC: .4byte 0x0000304c
_081384D0: _081384D0:
bl sub_80CC1E4 bl GetPlayerTrainerId
adds r4, r0, 0 adds r4, r0, 0
ldr r0, _0813851C @ =0x0000ffff ldr r0, _0813851C @ =0x0000ffff
ands r4, r0 ands r4, r0
+10 -10
View File
@@ -7917,7 +7917,7 @@ EventScript_1B2907:: @ 81B2907
playse MUS_ME_PHOTO playse MUS_ME_PHOTO
dofieldeffect FLDEFF_UNK_45 dofieldeffect FLDEFF_UNK_45
delay 60 delay 60
special sub_80CC2BC special Special_UpdateTrainerCardPhotoIcons
msgbox gUnknown_81B1E7D msgbox gUnknown_81B1E7D
hidemoneybox hidemoneybox
nop nop
@@ -7942,7 +7942,7 @@ EventScript_1B292B:: @ 81B292B
FourIsland_House2_EventScript_1B2938:: @ 81B2938 FourIsland_House2_EventScript_1B2938:: @ 81B2938
lock lock
specialvar VAR_0x8008, sub_80CC3CC specialvar VAR_0x8008, Special_StickerLadyGetBragFlags
checkflag FLAG_MET_STICKER_LADY checkflag FLAG_MET_STICKER_LADY
goto_if FALSE, EventScript_1B2951 goto_if FALSE, EventScript_1B2951
checkflag FLAG_MET_STICKER_LADY checkflag FLAG_MET_STICKER_LADY
@@ -8078,9 +8078,9 @@ EventScript_1B2B98:: @ 81B2B98
end end
EventScript_1B2BC5:: @ 81B2BC5 EventScript_1B2BC5:: @ 81B2BC5
compare_var_to_value VAR_HOF_BRAG_STATE, 1 compare_var_to_value VAR_0x4049, 1
goto_if eq, EventScript_1B2C3D goto_if eq, EventScript_1B2C3D
setvar VAR_HOF_BRAG_STATE, 1 setvar VAR_0x4049, 1
msgbox gUnknown_81B206E msgbox gUnknown_81B206E
goto EventScript_1B2C51 goto EventScript_1B2C51
@@ -8088,9 +8088,9 @@ EventScript_1B2BE2:: @ 81B2BE2
end end
EventScript_1B2BE3:: @ 81B2BE3 EventScript_1B2BE3:: @ 81B2BE3
compare_var_to_value VAR_HOF_BRAG_STATE, 2 compare_var_to_value VAR_0x4049, 2
goto_if eq, EventScript_1B2C3D goto_if eq, EventScript_1B2C3D
setvar VAR_HOF_BRAG_STATE, 2 setvar VAR_0x4049, 2
msgbox gUnknown_81B20CF msgbox gUnknown_81B20CF
goto EventScript_1B2C51 goto EventScript_1B2C51
@@ -8098,9 +8098,9 @@ EventScript_1B2C00:: @ 81B2C00
end end
EventScript_1B2C01:: @ 81B2C01 EventScript_1B2C01:: @ 81B2C01
compare_var_to_value VAR_HOF_BRAG_STATE, 3 compare_var_to_value VAR_0x4049, 3
goto_if eq, EventScript_1B2C3D goto_if eq, EventScript_1B2C3D
setvar VAR_HOF_BRAG_STATE, 3 setvar VAR_0x4049, 3
msgbox gUnknown_81B2133 msgbox gUnknown_81B2133
goto EventScript_1B2C51 goto EventScript_1B2C51
@@ -8108,9 +8108,9 @@ EventScript_1B2C1E:: @ 81B2C1E
end end
EventScript_1B2C1F:: @ 81B2C1F EventScript_1B2C1F:: @ 81B2C1F
compare_var_to_value VAR_HOF_BRAG_STATE, 4 compare_var_to_value VAR_0x4049, 4
goto_if eq, EventScript_1B2C47 goto_if eq, EventScript_1B2C47
setvar VAR_HOF_BRAG_STATE, 4 setvar VAR_0x4049, 4
msgbox gUnknown_81B21C4 msgbox gUnknown_81B21C4
goto EventScript_1B2C51 goto EventScript_1B2C51
+64 -63
View File
@@ -1,5 +1,6 @@
#include "constants/species.h" #include "constants/species.h"
#include "constants/items.h" #include "constants/items.h"
#include "constants/maps.h"
.include "asm/macros.inc" .include "asm/macros.inc"
.include "constants/constants.inc" .include "constants/constants.inc"
.section .rodata .section .rodata
@@ -235,72 +236,72 @@ sStarterMon:: @ 83F5D2C
.2byte SPECIES_CHARMANDER .2byte SPECIES_CHARMANDER
gUnknown_83F5D32:: @ 83F5D32 gUnknown_83F5D32:: @ 83F5D32
.byte 0x05, 0x03, 0x01 .byte MAP_GROUP(VIRIDIAN_CITY_MART), MAP_NUM(VIRIDIAN_CITY_MART), 1
.byte 0x06, 0x03, 0x03 .byte MAP_GROUP(PEWTER_CITY_MART), MAP_NUM(PEWTER_CITY_MART), 3
.byte 0x07, 0x07, 0x01 .byte MAP_GROUP(CERULEAN_CITY_MART), MAP_NUM(CERULEAN_CITY_MART), 1
.byte 0x08, 0x05, 0x01 .byte MAP_GROUP(LAVENDER_TOWN_MART), MAP_NUM(LAVENDER_TOWN_MART), 1
.byte 0x09, 0x05, 0x01 .byte MAP_GROUP(VERMILION_CITY_MART), MAP_NUM(VERMILION_CITY_MART), 1
.byte 0x0b, 0x01, 0x01 .byte MAP_GROUP(FUCHSIA_CITY_MART), MAP_NUM(FUCHSIA_CITY_MART), 1
.byte 0x0c, 0x07, 0x01 .byte MAP_GROUP(CINNABAR_ISLAND_MART), MAP_NUM(CINNABAR_ISLAND_MART), 1
.byte 0x0e, 0x05, 0x01 .byte MAP_GROUP(SAFFRON_CITY_MART), MAP_NUM(SAFFRON_CITY_MART), 1
.byte 0x22, 0x03, 0x01 .byte MAP_GROUP(THREE_ISLAND_MART), MAP_NUM(THREE_ISLAND_MART), 1
.byte 0x23, 0x07, 0x01 .byte MAP_GROUP(FOUR_ISLAND_MART), MAP_NUM(FOUR_ISLAND_MART), 1
.byte 0x1f, 0x02, 0x01 .byte MAP_GROUP(SEVEN_ISLAND_MART), MAP_NUM(SEVEN_ISLAND_MART), 1
.byte 0x25, 0x04, 0x01 .byte MAP_GROUP(SIX_ISLAND_MART), MAP_NUM(SIX_ISLAND_MART), 1
.align 2 .align 2
gUnknown_83F5D58:: @ 83F5D58 gUnknown_83F5D58:: @ 83F5D58
.2byte 0x0004, 0x0000, 0x0003, 0x0000 .2byte MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F), 0x03, 0x00
.2byte 0x0004, 0x0003, 0x0003, 0x0000 .2byte MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB), 0x03, 0x00
.2byte 0x0005, 0x0001, 0x0003, 0x0001 .2byte MAP_GROUP(VIRIDIAN_CITY_GYM), MAP_NUM(VIRIDIAN_CITY_GYM), 0x03, 0x01
.2byte 0x001c, 0x0000, 0x0003, 0x0029 .2byte MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), 0x03, 0x29
.2byte 0x001c, 0x0000, 0x0003, 0x002a .2byte MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), 0x03, 0x2a
.2byte 0x0001, 0x0000, 0x000f, 0x0000 .2byte MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 0x0f, 0x00
.2byte 0x0001, 0x0000, 0x000f, 0x0003 .2byte MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 0x0f, 0x03
.2byte 0x0006, 0x0000, 0x0003, 0x0002 .2byte MAP_GROUP(PEWTER_CITY_MUSEUM_1F), MAP_NUM(PEWTER_CITY_MUSEUM_1F), 0x03, 0x02
.2byte 0x0006, 0x0002, 0x0003, 0x0002 .2byte MAP_GROUP(PEWTER_CITY_GYM), MAP_NUM(PEWTER_CITY_GYM), 0x03, 0x02
.2byte 0x0001, 0x0001, 0x0003, 0x0016 .2byte MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 0x03, 0x16
.2byte 0x0001, 0x0002, 0x0003, 0x0016 .2byte MAP_GROUP(MT_MOON_B1F), MAP_NUM(MT_MOON_B1F), 0x03, 0x16
.2byte 0x0007, 0x0005, 0x0003, 0x0003 .2byte MAP_GROUP(CERULEAN_CITY_GYM), MAP_NUM(CERULEAN_CITY_GYM), 0x03, 0x03
.2byte 0x0007, 0x0006, 0x0003, 0x0003 .2byte MAP_GROUP(CERULEAN_CITY_BIKE_SHOP), MAP_NUM(CERULEAN_CITY_BIKE_SHOP), 0x03, 0x03
.2byte 0x001e, 0x0000, 0x0003, 0x002c .2byte MAP_GROUP(ROUTE25_SEA_COTTAGE), MAP_NUM(ROUTE25_SEA_COTTAGE), 0x03, 0x2c
.2byte 0x0011, 0x0000, 0x0003, 0x0017 .2byte MAP_GROUP(ROUTE5_POKEMON_DAY_CARE), MAP_NUM(ROUTE5_POKEMON_DAY_CARE), 0x03, 0x17
.2byte 0x0001, 0x001e, 0x0003, 0x0017 .2byte MAP_GROUP(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_NORTH_ENTRANCE), 0x03, 0x17
.2byte 0x0001, 0x0020, 0x0003, 0x0018 .2byte MAP_GROUP(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_SOUTH_ENTRANCE), 0x03, 0x18
.2byte 0x0009, 0x0003, 0x0003, 0x0005 .2byte MAP_GROUP(VERMILION_CITY_POKEMON_FAN_CLUB), MAP_NUM(VERMILION_CITY_POKEMON_FAN_CLUB), 0x03, 0x05
.2byte 0x0009, 0x0006, 0x0003, 0x0005 .2byte MAP_GROUP(VERMILION_CITY_GYM), MAP_NUM(VERMILION_CITY_GYM), 0x03, 0x05
.2byte 0x0001, 0x0005, 0x0003, 0x0005 .2byte MAP_GROUP(SSANNE_1F_CORRIDOR), MAP_NUM(SSANNE_1F_CORRIDOR), 0x03, 0x05
.2byte 0x0001, 0x0024, 0x0003, 0x0014 .2byte MAP_GROUP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_NORTH_ENTRANCE), 0x03, 0x14
.2byte 0x0001, 0x0026, 0x0003, 0x001d .2byte MAP_GROUP(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_SOUTH_ENTRANCE), 0x03, 0x1d
.2byte 0x0001, 0x0051, 0x0003, 0x001c .2byte MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 0x03, 0x1c
.2byte 0x0001, 0x0051, 0x0003, 0x001c .2byte MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 0x03, 0x1c
.2byte 0x0001, 0x005f, 0x0003, 0x001c .2byte MAP_GROUP(POWER_PLANT), MAP_NUM(POWER_PLANT), 0x03, 0x1c
.2byte 0x0001, 0x0058, 0x0003, 0x0004 .2byte MAP_GROUP(POKEMON_TOWER_1F), MAP_NUM(POKEMON_TOWER_1F), 0x03, 0x04
.2byte 0x0008, 0x0002, 0x0003, 0x0004 .2byte MAP_GROUP(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP_NUM(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), 0x03, 0x04
.2byte 0x0008, 0x0004, 0x0003, 0x0004 .2byte MAP_GROUP(LAVENDER_TOWN_HOUSE2), MAP_NUM(LAVENDER_TOWN_HOUSE2), 0x03, 0x04
.2byte 0x0001, 0x0023, 0x0003, 0x001a .2byte MAP_GROUP(UNDERGROUND_PATH_EAST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_EAST_ENTRANCE), 0x03, 0x1a
.2byte 0x0001, 0x0021, 0x0003, 0x0019 .2byte MAP_GROUP(UNDERGROUND_PATH_WEST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_WEST_ENTRANCE), 0x03, 0x19
.2byte 0x000a, 0x0000, 0x0003, 0x0006 .2byte MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F), MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F), 0x03, 0x06
.2byte 0x000a, 0x0007, 0x0003, 0x0006 .2byte MAP_GROUP(CELADON_CITY_CONDOMINIUMS_1F), MAP_NUM(CELADON_CITY_CONDOMINIUMS_1F), 0x03, 0x06
.2byte 0x000a, 0x000e, 0x0003, 0x0006 .2byte MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER), 0x03, 0x06
.2byte 0x000a, 0x0010, 0x0003, 0x0006 .2byte MAP_GROUP(CELADON_CITY_GYM), MAP_NUM(CELADON_CITY_GYM), 0x03, 0x06
.2byte 0x000a, 0x0011, 0x0003, 0x0006 .2byte MAP_GROUP(CELADON_CITY_RESTAURANT), MAP_NUM(CELADON_CITY_RESTAURANT), 0x03, 0x06
.2byte 0x0001, 0x002a, 0x000a, 0x000e .2byte MAP_GROUP(ROCKET_HIDEOUT_B1F), MAP_NUM(ROCKET_HIDEOUT_B1F), 0x0a, 0x0e
.2byte 0x0001, 0x003f, 0x000b, 0x0000 .2byte MAP_GROUP(SAFARI_ZONE_CENTER), MAP_NUM(SAFARI_ZONE_CENTER), 0x0b, 0x00
.2byte 0x000b, 0x0003, 0x0003, 0x0007 .2byte MAP_GROUP(FUCHSIA_CITY_GYM), MAP_NUM(FUCHSIA_CITY_GYM), 0x03, 0x07
.2byte 0x000b, 0x0007, 0x0003, 0x0007 .2byte MAP_GROUP(FUCHSIA_CITY_BUILDING1), MAP_NUM(FUCHSIA_CITY_BUILDING1), 0x03, 0x07
.2byte 0x000e, 0x0002, 0x0003, 0x000a .2byte MAP_GROUP(SAFFRON_CITY_DOJO), MAP_NUM(SAFFRON_CITY_DOJO), 0x03, 0x0a
.2byte 0x000e, 0x0003, 0x0003, 0x000a .2byte MAP_GROUP(SAFFRON_CITY_GYM), MAP_NUM(SAFFRON_CITY_GYM), 0x03, 0x0a
.2byte 0x0001, 0x002f, 0x0003, 0x000a .2byte MAP_GROUP(SILPH_CO_1F), MAP_NUM(SILPH_CO_1F), 0x03, 0x0a
.2byte 0x0001, 0x0053, 0x0003, 0x0026 .2byte MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), 0x03, 0x26
.2byte 0x0001, 0x0053, 0x0003, 0x0026 .2byte MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), 0x03, 0x26
.2byte 0x0001, 0x003b, 0x0003, 0x0008 .2byte MAP_GROUP(POKEMON_MANSION_1F), MAP_NUM(POKEMON_MANSION_1F), 0x03, 0x08
.2byte 0x000c, 0x0000, 0x0003, 0x0008 .2byte MAP_GROUP(CINNABAR_ISLAND_GYM), MAP_NUM(CINNABAR_ISLAND_GYM), 0x03, 0x08
.2byte 0x000c, 0x0001, 0x0003, 0x0008 .2byte MAP_GROUP(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP_NUM(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), 0x03, 0x08
.2byte 0x0001, 0x0027, 0x0003, 0x002a .2byte MAP_GROUP(VICTORY_ROAD_1F), MAP_NUM(VICTORY_ROAD_1F), 0x03, 0x2a
.2byte 0x0001, 0x0028, 0x0003, 0x002a .2byte MAP_GROUP(VICTORY_ROAD_2F), MAP_NUM(VICTORY_ROAD_2F), 0x03, 0x2a
.2byte 0x000d, 0x0000, 0x0003, 0x0009 .2byte MAP_GROUP(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_NUM(INDIGO_PLATEAU_POKEMON_CENTER_1F), 0x03, 0x09
.2byte 0x0001, 0x0048, 0x0003, 0x0003 .2byte MAP_GROUP(CERULEAN_CAVE_1F), MAP_NUM(CERULEAN_CAVE_1F), 0x03, 0x03
.align 2 .align 2
gUnknown_83F5EF0:: @ 83F5EF0 gUnknown_83F5EF0:: @ 83F5EF0
+2 -2
View File
@@ -368,8 +368,8 @@ gSpecials:: @ 815FD60
def_special sub_810C444 def_special sub_810C444
def_special sub_80CC7B4 def_special sub_80CC7B4
def_special ChangeBoxPokemonNickname def_special ChangeBoxPokemonNickname
def_special sub_80CC2BC def_special Special_UpdateTrainerCardPhotoIcons
def_special sub_80CC3CC def_special Special_StickerLadyGetBragFlags
def_special sub_80CC524 def_special sub_80CC524
def_special IsWirelessAdapterConnected def_special IsWirelessAdapterConnected
def_special sub_8115A24 def_special sub_8115A24
+1
View File
@@ -1325,6 +1325,7 @@
#define FLAG_SYS_STRENGTH_ACTIVE (SYS_FLAGS + 0x5) #define FLAG_SYS_STRENGTH_ACTIVE (SYS_FLAGS + 0x5)
#define FLAG_SYS_FLASH_ACTIVE (SYS_FLAGS + 0x6) #define FLAG_SYS_FLASH_ACTIVE (SYS_FLAGS + 0x6)
#define FLAG_SYS_SPECIAL_WILD_BATTLE (SYS_FLAGS + 0x7) #define FLAG_SYS_SPECIAL_WILD_BATTLE (SYS_FLAGS + 0x7)
#define FLAG_0x808 (SYS_FLAGS + 0x8)
#define PERMA_SYS_FLAGS_START 0x820 #define PERMA_SYS_FLAGS_START 0x820
#define FLAG_BADGE01_GET (SYS_FLAGS + 0x20) #define FLAG_BADGE01_GET (SYS_FLAGS + 0x20)
+41 -41
View File
@@ -78,50 +78,50 @@
// with the species sanity bit set. // with the species sanity bit set.
// Bits 12-15 are the same for the player's party. // Bits 12-15 are the same for the player's party.
// Used by Quest Log. // Used by Quest Log.
#define VAR_QUEST_LOG_MON_COUNTS 0x4027 #define VAR_QUEST_LOG_MON_COUNTS 0x4027
#define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028 #define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028
#define VAR_0x4029 0x4029 #define VAR_0x4029 0x4029
#define VAR_HAPPINESS_STEP_COUNTER 0x402A #define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B #define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C #define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_0x402D 0x402D #define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E #define VAR_0x402E 0x402E
#define VAR_0x402F 0x402F #define VAR_0x402F 0x402F
#define VAR_0x4030 0x4030 #define VAR_0x4030 0x4030
#define VAR_STARTER_MON 0x4031 #define VAR_STARTER_MON 0x4031
#define VAR_0x4032 0x4032 #define VAR_0x4032 0x4032
#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033 #define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
#define VAR_0x4034 0x4034 #define VAR_0x4034 0x4034
#define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035 #define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035
#define VAR_RESORT_GOREGOUS_REQUESTED_MON 0x4036 #define VAR_RESORT_GOREGOUS_REQUESTED_MON 0x4036
#define VAR_0x4037 0x4037 #define VAR_0x4037 0x4037
#define VAR_0x4038 0x4038 #define VAR_0x4038 0x4038
#define VAR_0x4039 0x4039 #define VAR_0x4039 0x4039
#define VAR_ELEVATOR_FLOOR 0x403A #define VAR_ELEVATOR_FLOOR 0x403A
#define VAR_RESORT_GOREGOUS_REWARD 0x403B #define VAR_RESORT_GOREGOUS_REWARD 0x403B
#define VAR_0x403C 0x403C #define VAR_0x403C 0x403C
#define VAR_0x403D 0x403D #define VAR_0x403D 0x403D
#define VAR_DEOXYS_INTERACTION_NUM 0x403E #define VAR_DEOXYS_INTERACTION_NUM 0x403E
#define VAR_0x403F 0x403F #define VAR_0x403F 0x403F
#define VAR_DAYS 0x4040 #define VAR_DAYS 0x4040
#define VAR_0x4041 0x4041 #define VAR_0x4041 0x4041
#define VAR_0x4042 0x4042 #define VAR_TRAINER_CARD_MON_ICON_TINT_IDX 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043 #define VAR_TRAINER_CARD_MON_ICON_1 0x4043
#define VAR_0x4044 0x4044 #define VAR_TRAINER_CARD_MON_ICON_2 0x4044
#define VAR_POKELOT_PRIZE 0x4045 #define VAR_TRAINER_CARD_MON_ICON_3 0x4045
#define VAR_NATIONAL_DEX 0x4046 #define VAR_TRAINER_CARD_MON_ICON_4 0x4046
#define VAR_SEEDOT_SIZE_RECORD 0x4047 #define VAR_TRAINER_CARD_MON_ICON_5 0x4047
#define VAR_ASH_GATHER_COUNT 0x4048 #define VAR_TRAINER_CARD_MON_ICON_6 0x4048
#define VAR_HOF_BRAG_STATE 0x4049 #define VAR_0x4049 0x4049
#define VAR_EGG_BRAG_STATE 0x404A #define VAR_EGG_BRAG_STATE 0x404A
#define VAR_LINK_WIN_BRAG_STATE 0x404B #define VAR_LINK_WIN_BRAG_STATE 0x404B
#define VAR_POKELOT_RND2 0x404C #define VAR_POKELOT_RND2 0x404C
#define VAR_0x404D 0x404D #define VAR_0x404D 0x404D
#define VAR_0x404E 0x404E #define VAR_0x404E 0x404E
#define VAR_LOTAD_SIZE_RECORD 0x404F #define VAR_LOTAD_SIZE_RECORD 0x404F
// Map Scene // Map Scene
#define VAR_MAP_SCENE_PALLET_TOWN_OAK 0x4050 #define VAR_MAP_SCENE_PALLET_TOWN_OAK 0x4050
+2 -1
View File
@@ -22,7 +22,8 @@ u8 ContextNpcGetTextColor(void);
void set_unknown_box_id(u8); void set_unknown_box_id(u8);
u16 get_unknown_box_id(void); u16 get_unknown_box_id(void);
bool8 sub_80CC7B4(void); bool8 sub_80CC7B4(void);
u16 GetHiddenItemAttr(struct HiddenItemStruct hiddenItem, u8 attr); u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr);
u8 GetUnlockedSeviiAreas(void); u8 GetUnlockedSeviiAreas(void);
u32 GetPlayerTrainerId(void);
#endif // GUARD_FIELD_SPECIALS_H #endif // GUARD_FIELD_SPECIALS_H
+2 -1
View File
@@ -134,7 +134,8 @@ union BgUnion
u8 *script; u8 *script;
// hidden item type probably // hidden item type probably
struct HiddenItemStruct hiddenItem; struct HiddenItemStruct hiddenItemStr;
u32 hiddenItem;
// secret base type // secret base type
u32 secretBaseId; u32 secretBaseId;
+194 -1
View File
@@ -20,6 +20,7 @@
#include "field_map_obj.h" #include "field_map_obj.h"
#include "menu_indicators.h" #include "menu_indicators.h"
#include "random.h" #include "random.h"
#include "mail_data.h"
#include "help_system.h" #include "help_system.h"
#include "sound.h" #include "sound.h"
#include "text.h" #include "text.h"
@@ -30,6 +31,7 @@
#include "window.h" #include "window.h"
#include "text_window.h" #include "text_window.h"
#include "menu.h" #include "menu.h"
#include "naming_screen.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"
@@ -68,6 +70,8 @@ static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId);
static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId); static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId); static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static u16 GetStarterPokemon(u16 starterIdx); static u16 GetStarterPokemon(u16 starterIdx);
static void ChangeBoxPokemonNickname_CB(void);
static void ChangePokemonNickname_CB(void);
extern const struct ScrollArrowsTemplate gUnknown_83F5D1C; extern const struct ScrollArrowsTemplate gUnknown_83F5D1C;
extern const u16 sStarterMon[3]; extern const u16 sStarterMon[3];
@@ -81,6 +85,13 @@ extern const u16 sElevatorWindowMetatilesGoingDown[3][3];
extern const u8 sElevatorAnimationDuration[9]; extern const u8 sElevatorAnimationDuration[9];
extern const u8 sElevatorWindowAnimDuration[9]; extern const u8 sElevatorWindowAnimDuration[9];
extern u8 *const gUnknown_83F5AF8[3]; extern u8 *const gUnknown_83F5AF8[3];
extern const u8 gUnknown_83F5D32[12][3];
extern const struct {
u16 grp;
u16 num;
u16 unk4;
u16 unk6;
} gUnknown_83F5D58[51];
void Special_ShowDiploma(void) void Special_ShowDiploma(void)
{ {
@@ -1152,9 +1163,9 @@ static void Task_ListMenuHandleInput(u8 taskId)
{ {
s32 input; s32 input;
struct Task * task; struct Task * task;
asm("":::"r6", "r4"); // fakematch register allocation
task = &gTasks[taskId]; task = &gTasks[taskId];
task++;task--;
input = ListMenu_ProcessInput(task->data[14]); input = ListMenu_ProcessInput(task->data[14]);
switch (input) switch (input)
{ {
@@ -1350,3 +1361,185 @@ bool8 sub_80CBFA0(void)
else else
return TRUE; return TRUE;
} }
void ChangeBoxPokemonNickname(void)
{
struct BoxPokemon * pokemon = GetBoxedMonPtr(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos);
u16 species;
u8 gender;
u32 personality;
GetBoxMonData(pokemon, MON_DATA_NICKNAME, gStringVar3);
GetBoxMonData(pokemon, MON_DATA_NICKNAME, gStringVar2);
species = GetBoxMonData(pokemon, MON_DATA_SPECIES, NULL);
gender = GetBoxMonGender(pokemon);
personality = GetBoxMonData(pokemon, MON_DATA_PERSONALITY, NULL);
DoNamingScreen(3, gStringVar2, species, gender, personality, ChangeBoxPokemonNickname_CB);
}
static void ChangeBoxPokemonNickname_CB(void)
{
SetBoxMonNickFromAnyBox(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos, gStringVar2);
CB2_ReturnToFieldContinueScriptPlayMapMusic();
}
void ChangePokemonNickname(void)
{
u16 species;
u8 gender;
u32 personality;
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3);
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2);
species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL);
gender = GetMonGender(&gPlayerParty[gSpecialVar_0x8004]);
personality = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL);
DoNamingScreen(3, gStringVar2, species, gender, personality, ChangePokemonNickname_CB);
}
static void ChangePokemonNickname_CB(void)
{
SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2);
CB2_ReturnToFieldContinueScriptPlayMapMusic();
}
void TV_CopyNicknameToStringVar1AndEnsureTerminated(void)
{
GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1);
StringGetEnd10(gStringVar1);
}
void TV_CheckMonOTIDEqualsPlayerID(void)
{
if (GetPlayerTrainerId() == GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_ID, NULL))
gSpecialVar_Result = FALSE;
else
gSpecialVar_Result = TRUE;
}
u32 GetPlayerTrainerId(void)
{
return (gSaveBlock2Ptr->playerTrainerId[3] << 24) | (gSaveBlock2Ptr->playerTrainerId[2] << 16) | (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0];
}
u8 GetUnlockedSeviiAreas(void)
{
u8 result = 0;
if (FlagGet(FLAG_WORLD_MAP_ONE_ISLAND) == TRUE)
result |= 1 << 0;
if (FlagGet(FLAG_WORLD_MAP_TWO_ISLAND) == TRUE)
result |= 1 << 1;
if (FlagGet(FLAG_WORLD_MAP_THREE_ISLAND) == TRUE)
result |= 1 << 2;
if (FlagGet(FLAG_WORLD_MAP_FOUR_ISLAND) == TRUE)
result |= 1 << 3;
if (FlagGet(FLAG_WORLD_MAP_FIVE_ISLAND) == TRUE)
result |= 1 << 4;
if (FlagGet(FLAG_WORLD_MAP_SIX_ISLAND) == TRUE)
result |= 1 << 5;
if (FlagGet(FLAG_WORLD_MAP_SEVEN_ISLAND) == TRUE)
result |= 1 << 6;
return result;
}
void Special_UpdateTrainerCardPhotoIcons(void)
{
u16 species[PARTY_SIZE];
u32 personality[PARTY_SIZE];
u8 i;
u8 partyCount;
for (i = 0; i < PARTY_SIZE; i++)
species[i] = SPECIES_NONE;
partyCount = CalculatePlayerPartyCount();
for (i = 0; i < partyCount; i++)
{
species[i] = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL);
personality[i] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY, NULL);
}
VarSet(VAR_TRAINER_CARD_MON_ICON_1, SpeciesToMailSpecies(species[0], personality[0]));
VarSet(VAR_TRAINER_CARD_MON_ICON_2, SpeciesToMailSpecies(species[1], personality[1]));
VarSet(VAR_TRAINER_CARD_MON_ICON_3, SpeciesToMailSpecies(species[2], personality[2]));
VarSet(VAR_TRAINER_CARD_MON_ICON_4, SpeciesToMailSpecies(species[3], personality[3]));
VarSet(VAR_TRAINER_CARD_MON_ICON_5, SpeciesToMailSpecies(species[4], personality[4]));
VarSet(VAR_TRAINER_CARD_MON_ICON_6, SpeciesToMailSpecies(species[5], personality[5]));
VarSet(VAR_TRAINER_CARD_MON_ICON_TINT_IDX, gSpecialVar_0x8004);
}
u16 Special_StickerLadyGetBragFlags(void)
{
u16 result = 0;
u32 numEggs;
gSpecialVar_0x8004 = GetGameStat(GAME_STAT_ENTERED_HOF);
numEggs = GetGameStat(GAME_STAT_HATCHED_EGGS);
gSpecialVar_0x8006 = GetGameStat(GAME_STAT_LINK_BATTLE_WINS);
if (numEggs > 0xFFFF)
gSpecialVar_0x8005 = 0xFFFF;
else
gSpecialVar_0x8005 = numEggs;
if (gSpecialVar_0x8004 != 0)
result |= 1 << 0;
if (gSpecialVar_0x8005 != 0)
result |= 1 << 1;
if (gSpecialVar_0x8006 != 0)
result |= 1 << 2;
return result;
}
u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr)
{
if (attr == 0)
return hiddenItem & 0xFFFF;
else if (attr == 1)
return ((hiddenItem >> 16) & 0xFF) + 1000;
else if (attr == 2)
return (hiddenItem >> 24) & 0x7F;
else if (attr == 3)
return (hiddenItem >> 31) & 0x01;
else
return 1;
}
bool8 Special_PlayerPartyContainsSpecies(void)
{
u8 partyCount = CalculatePlayerPartyCount();
u8 i;
for (i = 0; i < partyCount; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) == gSpecialVar_0x8004)
return TRUE;
}
return FALSE;
}
u8 sub_80CC4D4(void)
{
u8 i;
for (i = 0; i < NELEMS(gUnknown_83F5D32); i++)
{
if (gSaveBlock1Ptr->location.mapGroup == gUnknown_83F5D32[i][0] && gSaveBlock1Ptr->location.mapNum == gUnknown_83F5D32[i][1])
return gUnknown_83F5D32[i][2];
}
return 1;
}
void sub_80CC524(void)
{
sub_8113550(11, NULL);
}
void sub_80CC534(void)
{
u8 i;
for (i = 0; i < NELEMS(gUnknown_83F5D58); i++)
{
if (gSaveBlock1Ptr->location.mapGroup == gUnknown_83F5D58[i].grp && gSaveBlock1Ptr->location.mapNum == gUnknown_83F5D58[i].num)
{
if (VarGet(VAR_0x404D) != 35 || i != 32)
{
VarSet(VAR_0x404D, i);
FlagSet(FLAG_0x808);
}
break;
}
}
}
+2 -2
View File
@@ -17,7 +17,7 @@ static void Task_NoResponse_CleanUp(u8 taskId);
static void Task_ItemfinderResponseSoundsAndAnims(u8 taskId); static void Task_ItemfinderResponseSoundsAndAnims(u8 taskId);
static void Task_ItemfinderUnderfootSoundsAndAnims(u8 taskId); static void Task_ItemfinderUnderfootSoundsAndAnims(u8 taskId);
static bool8 HiddenItemIsWithinRangeOfPlayer(struct MapEvents * events, u8 taskId); static bool8 HiddenItemIsWithinRangeOfPlayer(struct MapEvents * events, u8 taskId);
static void SetUnderfootHiddenItem(u8 taskId, struct HiddenItemStruct hiddenItem); static void SetUnderfootHiddenItem(u8 taskId, u32 hiddenItem);
static void SetNormalHiddenItem(u8 taskId); static void SetNormalHiddenItem(u8 taskId);
static void FindHiddenItemsInConnectedMaps(u8 taskId); static void FindHiddenItemsInConnectedMaps(u8 taskId);
static void RegisterHiddenItemRelativeCoordsIfCloser(u8 taskId, s16 dx, s16 dy); static void RegisterHiddenItemRelativeCoordsIfCloser(u8 taskId, s16 dx, s16 dy);
@@ -239,7 +239,7 @@ static bool8 HiddenItemIsWithinRangeOfPlayer(struct MapEvents * events, u8 taskI
return FALSE; return FALSE;
} }
static void SetUnderfootHiddenItem(u8 taskId, struct HiddenItemStruct hiddenItem) static void SetUnderfootHiddenItem(u8 taskId, u32 hiddenItem)
{ {
s16 *data = gTasks[taskId].data; s16 *data = gTasks[taskId].data;
gSpecialVar_0x8004 = GetHiddenItemAttr(hiddenItem, HIDDEN_ITEM_FLAG); gSpecialVar_0x8004 = GetHiddenItemAttr(hiddenItem, HIDDEN_ITEM_FLAG);