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