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
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
sub_80CC59C: @ 80CC59C
push {r4-r7,lr}
@@ -2192,7 +1463,7 @@ _080CD104:
ldrh r1, [r1]
cmp r0, r1
bne _080CD140
bl sub_80CC1E4
bl GetPlayerTrainerId
adds r4, r0, 0
adds r0, r5, 0
movs r1, 0x1
+1 -1
View File
@@ -7652,7 +7652,7 @@ _081384C4: .4byte gEnemyParty
_081384C8: .4byte gLinkPlayers
_081384CC: .4byte 0x0000304c
_081384D0:
bl sub_80CC1E4
bl GetPlayerTrainerId
adds r4, r0, 0
ldr r0, _0813851C @ =0x0000ffff
ands r4, r0
+10 -10
View File
@@ -7917,7 +7917,7 @@ EventScript_1B2907:: @ 81B2907
playse MUS_ME_PHOTO
dofieldeffect FLDEFF_UNK_45
delay 60
special sub_80CC2BC
special Special_UpdateTrainerCardPhotoIcons
msgbox gUnknown_81B1E7D
hidemoneybox
nop
@@ -7942,7 +7942,7 @@ EventScript_1B292B:: @ 81B292B
FourIsland_House2_EventScript_1B2938:: @ 81B2938
lock
specialvar VAR_0x8008, sub_80CC3CC
specialvar VAR_0x8008, Special_StickerLadyGetBragFlags
checkflag FLAG_MET_STICKER_LADY
goto_if FALSE, EventScript_1B2951
checkflag FLAG_MET_STICKER_LADY
@@ -8078,9 +8078,9 @@ EventScript_1B2B98:: @ 81B2B98
end
EventScript_1B2BC5:: @ 81B2BC5
compare_var_to_value VAR_HOF_BRAG_STATE, 1
compare_var_to_value VAR_0x4049, 1
goto_if eq, EventScript_1B2C3D
setvar VAR_HOF_BRAG_STATE, 1
setvar VAR_0x4049, 1
msgbox gUnknown_81B206E
goto EventScript_1B2C51
@@ -8088,9 +8088,9 @@ EventScript_1B2BE2:: @ 81B2BE2
end
EventScript_1B2BE3:: @ 81B2BE3
compare_var_to_value VAR_HOF_BRAG_STATE, 2
compare_var_to_value VAR_0x4049, 2
goto_if eq, EventScript_1B2C3D
setvar VAR_HOF_BRAG_STATE, 2
setvar VAR_0x4049, 2
msgbox gUnknown_81B20CF
goto EventScript_1B2C51
@@ -8098,9 +8098,9 @@ EventScript_1B2C00:: @ 81B2C00
end
EventScript_1B2C01:: @ 81B2C01
compare_var_to_value VAR_HOF_BRAG_STATE, 3
compare_var_to_value VAR_0x4049, 3
goto_if eq, EventScript_1B2C3D
setvar VAR_HOF_BRAG_STATE, 3
setvar VAR_0x4049, 3
msgbox gUnknown_81B2133
goto EventScript_1B2C51
@@ -8108,9 +8108,9 @@ EventScript_1B2C1E:: @ 81B2C1E
end
EventScript_1B2C1F:: @ 81B2C1F
compare_var_to_value VAR_HOF_BRAG_STATE, 4
compare_var_to_value VAR_0x4049, 4
goto_if eq, EventScript_1B2C47
setvar VAR_HOF_BRAG_STATE, 4
setvar VAR_0x4049, 4
msgbox gUnknown_81B21C4
goto EventScript_1B2C51
+64 -63
View File
@@ -1,5 +1,6 @@
#include "constants/species.h"
#include "constants/items.h"
#include "constants/maps.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
@@ -235,72 +236,72 @@ sStarterMon:: @ 83F5D2C
.2byte SPECIES_CHARMANDER
gUnknown_83F5D32:: @ 83F5D32
.byte 0x05, 0x03, 0x01
.byte 0x06, 0x03, 0x03
.byte 0x07, 0x07, 0x01
.byte 0x08, 0x05, 0x01
.byte 0x09, 0x05, 0x01
.byte 0x0b, 0x01, 0x01
.byte 0x0c, 0x07, 0x01
.byte 0x0e, 0x05, 0x01
.byte 0x22, 0x03, 0x01
.byte 0x23, 0x07, 0x01
.byte 0x1f, 0x02, 0x01
.byte 0x25, 0x04, 0x01
.byte MAP_GROUP(VIRIDIAN_CITY_MART), MAP_NUM(VIRIDIAN_CITY_MART), 1
.byte MAP_GROUP(PEWTER_CITY_MART), MAP_NUM(PEWTER_CITY_MART), 3
.byte MAP_GROUP(CERULEAN_CITY_MART), MAP_NUM(CERULEAN_CITY_MART), 1
.byte MAP_GROUP(LAVENDER_TOWN_MART), MAP_NUM(LAVENDER_TOWN_MART), 1
.byte MAP_GROUP(VERMILION_CITY_MART), MAP_NUM(VERMILION_CITY_MART), 1
.byte MAP_GROUP(FUCHSIA_CITY_MART), MAP_NUM(FUCHSIA_CITY_MART), 1
.byte MAP_GROUP(CINNABAR_ISLAND_MART), MAP_NUM(CINNABAR_ISLAND_MART), 1
.byte MAP_GROUP(SAFFRON_CITY_MART), MAP_NUM(SAFFRON_CITY_MART), 1
.byte MAP_GROUP(THREE_ISLAND_MART), MAP_NUM(THREE_ISLAND_MART), 1
.byte MAP_GROUP(FOUR_ISLAND_MART), MAP_NUM(FOUR_ISLAND_MART), 1
.byte MAP_GROUP(SEVEN_ISLAND_MART), MAP_NUM(SEVEN_ISLAND_MART), 1
.byte MAP_GROUP(SIX_ISLAND_MART), MAP_NUM(SIX_ISLAND_MART), 1
.align 2
gUnknown_83F5D58:: @ 83F5D58
.2byte 0x0004, 0x0000, 0x0003, 0x0000
.2byte 0x0004, 0x0003, 0x0003, 0x0000
.2byte 0x0005, 0x0001, 0x0003, 0x0001
.2byte 0x001c, 0x0000, 0x0003, 0x0029
.2byte 0x001c, 0x0000, 0x0003, 0x002a
.2byte 0x0001, 0x0000, 0x000f, 0x0000
.2byte 0x0001, 0x0000, 0x000f, 0x0003
.2byte 0x0006, 0x0000, 0x0003, 0x0002
.2byte 0x0006, 0x0002, 0x0003, 0x0002
.2byte 0x0001, 0x0001, 0x0003, 0x0016
.2byte 0x0001, 0x0002, 0x0003, 0x0016
.2byte 0x0007, 0x0005, 0x0003, 0x0003
.2byte 0x0007, 0x0006, 0x0003, 0x0003
.2byte 0x001e, 0x0000, 0x0003, 0x002c
.2byte 0x0011, 0x0000, 0x0003, 0x0017
.2byte 0x0001, 0x001e, 0x0003, 0x0017
.2byte 0x0001, 0x0020, 0x0003, 0x0018
.2byte 0x0009, 0x0003, 0x0003, 0x0005
.2byte 0x0009, 0x0006, 0x0003, 0x0005
.2byte 0x0001, 0x0005, 0x0003, 0x0005
.2byte 0x0001, 0x0024, 0x0003, 0x0014
.2byte 0x0001, 0x0026, 0x0003, 0x001d
.2byte 0x0001, 0x0051, 0x0003, 0x001c
.2byte 0x0001, 0x0051, 0x0003, 0x001c
.2byte 0x0001, 0x005f, 0x0003, 0x001c
.2byte 0x0001, 0x0058, 0x0003, 0x0004
.2byte 0x0008, 0x0002, 0x0003, 0x0004
.2byte 0x0008, 0x0004, 0x0003, 0x0004
.2byte 0x0001, 0x0023, 0x0003, 0x001a
.2byte 0x0001, 0x0021, 0x0003, 0x0019
.2byte 0x000a, 0x0000, 0x0003, 0x0006
.2byte 0x000a, 0x0007, 0x0003, 0x0006
.2byte 0x000a, 0x000e, 0x0003, 0x0006
.2byte 0x000a, 0x0010, 0x0003, 0x0006
.2byte 0x000a, 0x0011, 0x0003, 0x0006
.2byte 0x0001, 0x002a, 0x000a, 0x000e
.2byte 0x0001, 0x003f, 0x000b, 0x0000
.2byte 0x000b, 0x0003, 0x0003, 0x0007
.2byte 0x000b, 0x0007, 0x0003, 0x0007
.2byte 0x000e, 0x0002, 0x0003, 0x000a
.2byte 0x000e, 0x0003, 0x0003, 0x000a
.2byte 0x0001, 0x002f, 0x0003, 0x000a
.2byte 0x0001, 0x0053, 0x0003, 0x0026
.2byte 0x0001, 0x0053, 0x0003, 0x0026
.2byte 0x0001, 0x003b, 0x0003, 0x0008
.2byte 0x000c, 0x0000, 0x0003, 0x0008
.2byte 0x000c, 0x0001, 0x0003, 0x0008
.2byte 0x0001, 0x0027, 0x0003, 0x002a
.2byte 0x0001, 0x0028, 0x0003, 0x002a
.2byte 0x000d, 0x0000, 0x0003, 0x0009
.2byte 0x0001, 0x0048, 0x0003, 0x0003
.2byte MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F), 0x03, 0x00
.2byte MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB), 0x03, 0x00
.2byte MAP_GROUP(VIRIDIAN_CITY_GYM), MAP_NUM(VIRIDIAN_CITY_GYM), 0x03, 0x01
.2byte MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), 0x03, 0x29
.2byte MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), 0x03, 0x2a
.2byte MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 0x0f, 0x00
.2byte MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), 0x0f, 0x03
.2byte MAP_GROUP(PEWTER_CITY_MUSEUM_1F), MAP_NUM(PEWTER_CITY_MUSEUM_1F), 0x03, 0x02
.2byte MAP_GROUP(PEWTER_CITY_GYM), MAP_NUM(PEWTER_CITY_GYM), 0x03, 0x02
.2byte MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), 0x03, 0x16
.2byte MAP_GROUP(MT_MOON_B1F), MAP_NUM(MT_MOON_B1F), 0x03, 0x16
.2byte MAP_GROUP(CERULEAN_CITY_GYM), MAP_NUM(CERULEAN_CITY_GYM), 0x03, 0x03
.2byte MAP_GROUP(CERULEAN_CITY_BIKE_SHOP), MAP_NUM(CERULEAN_CITY_BIKE_SHOP), 0x03, 0x03
.2byte MAP_GROUP(ROUTE25_SEA_COTTAGE), MAP_NUM(ROUTE25_SEA_COTTAGE), 0x03, 0x2c
.2byte MAP_GROUP(ROUTE5_POKEMON_DAY_CARE), MAP_NUM(ROUTE5_POKEMON_DAY_CARE), 0x03, 0x17
.2byte MAP_GROUP(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_NORTH_ENTRANCE), 0x03, 0x17
.2byte MAP_GROUP(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_SOUTH_ENTRANCE), 0x03, 0x18
.2byte MAP_GROUP(VERMILION_CITY_POKEMON_FAN_CLUB), MAP_NUM(VERMILION_CITY_POKEMON_FAN_CLUB), 0x03, 0x05
.2byte MAP_GROUP(VERMILION_CITY_GYM), MAP_NUM(VERMILION_CITY_GYM), 0x03, 0x05
.2byte MAP_GROUP(SSANNE_1F_CORRIDOR), MAP_NUM(SSANNE_1F_CORRIDOR), 0x03, 0x05
.2byte MAP_GROUP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_NORTH_ENTRANCE), 0x03, 0x14
.2byte MAP_GROUP(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_SOUTH_ENTRANCE), 0x03, 0x1d
.2byte MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 0x03, 0x1c
.2byte MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), 0x03, 0x1c
.2byte MAP_GROUP(POWER_PLANT), MAP_NUM(POWER_PLANT), 0x03, 0x1c
.2byte MAP_GROUP(POKEMON_TOWER_1F), MAP_NUM(POKEMON_TOWER_1F), 0x03, 0x04
.2byte MAP_GROUP(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP_NUM(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), 0x03, 0x04
.2byte MAP_GROUP(LAVENDER_TOWN_HOUSE2), MAP_NUM(LAVENDER_TOWN_HOUSE2), 0x03, 0x04
.2byte MAP_GROUP(UNDERGROUND_PATH_EAST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_EAST_ENTRANCE), 0x03, 0x1a
.2byte MAP_GROUP(UNDERGROUND_PATH_WEST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_WEST_ENTRANCE), 0x03, 0x19
.2byte MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F), MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F), 0x03, 0x06
.2byte MAP_GROUP(CELADON_CITY_CONDOMINIUMS_1F), MAP_NUM(CELADON_CITY_CONDOMINIUMS_1F), 0x03, 0x06
.2byte MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER), 0x03, 0x06
.2byte MAP_GROUP(CELADON_CITY_GYM), MAP_NUM(CELADON_CITY_GYM), 0x03, 0x06
.2byte MAP_GROUP(CELADON_CITY_RESTAURANT), MAP_NUM(CELADON_CITY_RESTAURANT), 0x03, 0x06
.2byte MAP_GROUP(ROCKET_HIDEOUT_B1F), MAP_NUM(ROCKET_HIDEOUT_B1F), 0x0a, 0x0e
.2byte MAP_GROUP(SAFARI_ZONE_CENTER), MAP_NUM(SAFARI_ZONE_CENTER), 0x0b, 0x00
.2byte MAP_GROUP(FUCHSIA_CITY_GYM), MAP_NUM(FUCHSIA_CITY_GYM), 0x03, 0x07
.2byte MAP_GROUP(FUCHSIA_CITY_BUILDING1), MAP_NUM(FUCHSIA_CITY_BUILDING1), 0x03, 0x07
.2byte MAP_GROUP(SAFFRON_CITY_DOJO), MAP_NUM(SAFFRON_CITY_DOJO), 0x03, 0x0a
.2byte MAP_GROUP(SAFFRON_CITY_GYM), MAP_NUM(SAFFRON_CITY_GYM), 0x03, 0x0a
.2byte MAP_GROUP(SILPH_CO_1F), MAP_NUM(SILPH_CO_1F), 0x03, 0x0a
.2byte MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), 0x03, 0x26
.2byte MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), 0x03, 0x26
.2byte MAP_GROUP(POKEMON_MANSION_1F), MAP_NUM(POKEMON_MANSION_1F), 0x03, 0x08
.2byte MAP_GROUP(CINNABAR_ISLAND_GYM), MAP_NUM(CINNABAR_ISLAND_GYM), 0x03, 0x08
.2byte MAP_GROUP(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP_NUM(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), 0x03, 0x08
.2byte MAP_GROUP(VICTORY_ROAD_1F), MAP_NUM(VICTORY_ROAD_1F), 0x03, 0x2a
.2byte MAP_GROUP(VICTORY_ROAD_2F), MAP_NUM(VICTORY_ROAD_2F), 0x03, 0x2a
.2byte MAP_GROUP(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_NUM(INDIGO_PLATEAU_POKEMON_CENTER_1F), 0x03, 0x09
.2byte MAP_GROUP(CERULEAN_CAVE_1F), MAP_NUM(CERULEAN_CAVE_1F), 0x03, 0x03
.align 2
gUnknown_83F5EF0:: @ 83F5EF0
+2 -2
View File
@@ -368,8 +368,8 @@ gSpecials:: @ 815FD60
def_special sub_810C444
def_special sub_80CC7B4
def_special ChangeBoxPokemonNickname
def_special sub_80CC2BC
def_special sub_80CC3CC
def_special Special_UpdateTrainerCardPhotoIcons
def_special Special_StickerLadyGetBragFlags
def_special sub_80CC524
def_special IsWirelessAdapterConnected
def_special sub_8115A24
+1
View File
@@ -1325,6 +1325,7 @@
#define FLAG_SYS_STRENGTH_ACTIVE (SYS_FLAGS + 0x5)
#define FLAG_SYS_FLASH_ACTIVE (SYS_FLAGS + 0x6)
#define FLAG_SYS_SPECIAL_WILD_BATTLE (SYS_FLAGS + 0x7)
#define FLAG_0x808 (SYS_FLAGS + 0x8)
#define PERMA_SYS_FLAGS_START 0x820
#define FLAG_BADGE01_GET (SYS_FLAGS + 0x20)
+41 -41
View File
@@ -78,50 +78,50 @@
// with the species sanity bit set.
// Bits 12-15 are the same for the player's party.
// Used by Quest Log.
#define VAR_QUEST_LOG_MON_COUNTS 0x4027
#define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028
#define VAR_0x4029 0x4029
#define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E
#define VAR_QUEST_LOG_MON_COUNTS 0x4027
#define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028
#define VAR_0x4029 0x4029
#define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E
#define VAR_0x402F 0x402F
#define VAR_0x402F 0x402F
#define VAR_0x4030 0x4030
#define VAR_STARTER_MON 0x4031
#define VAR_0x4032 0x4032
#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
#define VAR_0x4030 0x4030
#define VAR_STARTER_MON 0x4031
#define VAR_0x4032 0x4032
#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
#define VAR_0x4034 0x4034
#define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035
#define VAR_RESORT_GOREGOUS_REQUESTED_MON 0x4036
#define VAR_0x4037 0x4037
#define VAR_0x4038 0x4038
#define VAR_0x4039 0x4039
#define VAR_ELEVATOR_FLOOR 0x403A
#define VAR_RESORT_GOREGOUS_REWARD 0x403B
#define VAR_0x403C 0x403C
#define VAR_0x403D 0x403D
#define VAR_DEOXYS_INTERACTION_NUM 0x403E
#define VAR_0x403F 0x403F
#define VAR_DAYS 0x4040
#define VAR_0x4041 0x4041
#define VAR_0x4042 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_0x4044 0x4044
#define VAR_POKELOT_PRIZE 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SEEDOT_SIZE_RECORD 0x4047
#define VAR_ASH_GATHER_COUNT 0x4048
#define VAR_HOF_BRAG_STATE 0x4049
#define VAR_EGG_BRAG_STATE 0x404A
#define VAR_LINK_WIN_BRAG_STATE 0x404B
#define VAR_POKELOT_RND2 0x404C
#define VAR_0x404D 0x404D
#define VAR_0x404E 0x404E
#define VAR_LOTAD_SIZE_RECORD 0x404F
#define VAR_0x4034 0x4034
#define VAR_RESORT_GOREGEOUS_STEP_COUNTER 0x4035
#define VAR_RESORT_GOREGOUS_REQUESTED_MON 0x4036
#define VAR_0x4037 0x4037
#define VAR_0x4038 0x4038
#define VAR_0x4039 0x4039
#define VAR_ELEVATOR_FLOOR 0x403A
#define VAR_RESORT_GOREGOUS_REWARD 0x403B
#define VAR_0x403C 0x403C
#define VAR_0x403D 0x403D
#define VAR_DEOXYS_INTERACTION_NUM 0x403E
#define VAR_0x403F 0x403F
#define VAR_DAYS 0x4040
#define VAR_0x4041 0x4041
#define VAR_TRAINER_CARD_MON_ICON_TINT_IDX 0x4042
#define VAR_TRAINER_CARD_MON_ICON_1 0x4043
#define VAR_TRAINER_CARD_MON_ICON_2 0x4044
#define VAR_TRAINER_CARD_MON_ICON_3 0x4045
#define VAR_TRAINER_CARD_MON_ICON_4 0x4046
#define VAR_TRAINER_CARD_MON_ICON_5 0x4047
#define VAR_TRAINER_CARD_MON_ICON_6 0x4048
#define VAR_0x4049 0x4049
#define VAR_EGG_BRAG_STATE 0x404A
#define VAR_LINK_WIN_BRAG_STATE 0x404B
#define VAR_POKELOT_RND2 0x404C
#define VAR_0x404D 0x404D
#define VAR_0x404E 0x404E
#define VAR_LOTAD_SIZE_RECORD 0x404F
// Map Scene
#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);
u16 get_unknown_box_id(void);
bool8 sub_80CC7B4(void);
u16 GetHiddenItemAttr(struct HiddenItemStruct hiddenItem, u8 attr);
u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr);
u8 GetUnlockedSeviiAreas(void);
u32 GetPlayerTrainerId(void);
#endif // GUARD_FIELD_SPECIALS_H
+2 -1
View File
@@ -134,7 +134,8 @@ union BgUnion
u8 *script;
// hidden item type probably
struct HiddenItemStruct hiddenItem;
struct HiddenItemStruct hiddenItemStr;
u32 hiddenItem;
// secret base type
u32 secretBaseId;
+194 -1
View File
@@ -20,6 +20,7 @@
#include "field_map_obj.h"
#include "menu_indicators.h"
#include "random.h"
#include "mail_data.h"
#include "help_system.h"
#include "sound.h"
#include "text.h"
@@ -30,6 +31,7 @@
#include "window.h"
#include "text_window.h"
#include "menu.h"
#include "naming_screen.h"
#include "dynamic_placeholder_text_util.h"
#include "new_menu_helpers.h"
#include "constants/songs.h"
@@ -68,6 +70,8 @@ static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId);
static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static void Task_ListMenuRemoveScrollIndicatorArrowPair(u8 taskId);
static u16 GetStarterPokemon(u16 starterIdx);
static void ChangeBoxPokemonNickname_CB(void);
static void ChangePokemonNickname_CB(void);
extern const struct ScrollArrowsTemplate gUnknown_83F5D1C;
extern const u16 sStarterMon[3];
@@ -81,6 +85,13 @@ extern const u16 sElevatorWindowMetatilesGoingDown[3][3];
extern const u8 sElevatorAnimationDuration[9];
extern const u8 sElevatorWindowAnimDuration[9];
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)
{
@@ -1152,9 +1163,9 @@ static void Task_ListMenuHandleInput(u8 taskId)
{
s32 input;
struct Task * task;
asm("":::"r6", "r4"); // fakematch register allocation
task = &gTasks[taskId];
task++;task--;
input = ListMenu_ProcessInput(task->data[14]);
switch (input)
{
@@ -1350,3 +1361,185 @@ bool8 sub_80CBFA0(void)
else
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_ItemfinderUnderfootSoundsAndAnims(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 FindHiddenItemsInConnectedMaps(u8 taskId);
static void RegisterHiddenItemRelativeCoordsIfCloser(u8 taskId, s16 dx, s16 dy);
@@ -239,7 +239,7 @@ static bool8 HiddenItemIsWithinRangeOfPlayer(struct MapEvents * events, u8 taskI
return FALSE;
}
static void SetUnderfootHiddenItem(u8 taskId, struct HiddenItemStruct hiddenItem)
static void SetUnderfootHiddenItem(u8 taskId, u32 hiddenItem)
{
s16 *data = gTasks[taskId].data;
gSpecialVar_0x8004 = GetHiddenItemAttr(hiddenItem, HIDDEN_ITEM_FLAG);