document pokemon function symbols

This commit is contained in:
jiangzhengwenjz
2019-07-12 09:59:49 +08:00
parent 39d68ebd44
commit 43ba65ef8b
22 changed files with 120 additions and 121 deletions
+6 -6
View File
@@ -1132,7 +1132,7 @@ _0801067E:
adds r1, r0 adds r1, r0
ldrh r0, [r1] ldrh r0, [r1]
strh r0, [r2, 0x10] strh r0, [r2, 0x10]
bl sub_8044708 bl SetDeoxysStats
ldr r1, _080106F0 @ =gUnknown_2023E82 ldr r1, _080106F0 @ =gUnknown_2023E82
b _080108B2 b _080108B2
.align 2, 0 .align 2, 0
@@ -1834,7 +1834,7 @@ _08010CE2:
adds r1, r7, 0 adds r1, r7, 0
bl sub_8010414 bl sub_8010414
bl sub_801017C bl sub_801017C
bl sub_8044708 bl SetDeoxysStats
ldr r0, _08010D4C @ =gDecompressionBuffer ldr r0, _08010D4C @ =gDecompressionBuffer
ldr r1, _08010D50 @ =gPlayerParty ldr r1, _08010D50 @ =gPlayerParty
movs r2, 0x96 movs r2, 0x96
@@ -6570,7 +6570,7 @@ _080131F6:
add r1, r10 add r1, r10
ldr r2, [r1] ldr r2, [r1]
movs r1, 0x2 movs r1, 0x2
bl sub_8044898 bl HandleSetPokedexFlag
b _080132C2 b _080132C2
.align 2, 0 .align 2, 0
_08013230: .4byte gBaseStats _08013230: .4byte gBaseStats
@@ -6609,7 +6609,7 @@ _0801324C:
add r1, r10 add r1, r10
ldr r2, [r1] ldr r2, [r1]
movs r1, 0x2 movs r1, 0x2
bl sub_8044898 bl HandleSetPokedexFlag
b _080132B4 b _080132B4
_0801328E: _0801328E:
ldr r0, _08013324 @ =0x0001aa02 ldr r0, _08013324 @ =0x0001aa02
@@ -6628,7 +6628,7 @@ _0801328E:
add r1, r10 add r1, r10
ldr r2, [r1] ldr r2, [r1]
movs r1, 0x2 movs r1, 0x2
bl sub_8044898 bl HandleSetPokedexFlag
_080132B4: _080132B4:
movs r0, 0 movs r0, 0
bl EmitLoadMonSprite bl EmitLoadMonSprite
@@ -7097,7 +7097,7 @@ _0801364C:
adds r1, r7 adds r1, r7
ldr r2, [r1] ldr r2, [r1]
movs r1, 0x2 movs r1, 0x2
bl sub_8044898 bl HandleSetPokedexFlag
_08013684: _08013684:
ldrb r0, [r4] ldrb r0, [r4]
adds r0, 0x1 adds r0, 0x1
+2 -2
View File
@@ -3610,7 +3610,7 @@ _08049734:
lsls r1, 24 lsls r1, 24
lsrs r1, 24 lsrs r1, 24
adds r0, r7, 0 adds r0, r7, 0
bl sub_80448F8 bl CheckBattleTypeGhost
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
beq _08049754 beq _08049754
@@ -3755,7 +3755,7 @@ sub_804981C: @ 804981C
ldr r6, _080498EC @ =gEnemyParty ldr r6, _080498EC @ =gEnemyParty
adds r0, r6 adds r0, r6
adds r1, r4, 0 adds r1, r4, 0
bl sub_80448F8 bl CheckBattleTypeGhost
lsls r0, 24 lsls r0, 24
cmp r0, 0 cmp r0, 0
bne _0804991C bne _0804991C
+5 -5
View File
@@ -13273,7 +13273,7 @@ sub_80240D4: @ 80240D4
adds r1, r4 adds r1, r4
ldr r2, [r1] ldr r2, [r1]
movs r1, 0x2 movs r1, 0x2
bl sub_8044898 bl HandleSetPokedexFlag
_0802412A: _0802412A:
ldr r2, _08024180 @ =gAbsentBattlerFlags ldr r2, _08024180 @ =gAbsentBattlerFlags
ldr r1, _08024184 @ =gBitTable ldr r1, _08024184 @ =gBitTable
@@ -13398,7 +13398,7 @@ _08024228:
bl GetBankMultiplayerId bl GetBankMultiplayerId
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl sub_8043620 bl GetLinkTrainerFlankId
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
cmp r0, 0x1 cmp r0, 0x1
@@ -21520,7 +21520,7 @@ _08028336:
bl GetBankMultiplayerId bl GetBankMultiplayerId
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl sub_8043620 bl GetLinkTrainerFlankId
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
cmp r0, 0x1 cmp r0, 0x1
@@ -21665,7 +21665,7 @@ _08028458:
bl GetBankMultiplayerId bl GetBankMultiplayerId
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
bl sub_8043620 bl GetLinkTrainerFlankId
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
cmp r0, 0x1 cmp r0, 0x1
@@ -32384,7 +32384,7 @@ _0802D9B4:
lsrs r0, 16 lsrs r0, 16
movs r1, 0x3 movs r1, 0x3
adds r2, r4, 0 adds r2, r4, 0
bl sub_8044898 bl HandleSetPokedexFlag
ldr r1, _0802D9D4 @ =gUnknown_2023D74 ldr r1, _0802D9D4 @ =gUnknown_2023D74
ldr r0, [r1] ldr r0, [r1]
adds r0, 0x5 adds r0, 0x5
+1 -1
View File
@@ -2051,7 +2051,7 @@ sub_8080628: @ 8080628
beq _080806BE beq _080806BE
ldr r0, _08080668 @ =gTrainerBattleOpponent_A ldr r0, _08080668 @ =gTrainerBattleOpponent_A
ldrh r0, [r0] ldrh r0, [r0]
bl sub_804367C bl GetTrainerEncounterMusicId
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
cmp r0, 0xD cmp r0, 0xD
+3 -3
View File
@@ -1222,7 +1222,7 @@ _080E6286:
adds r2, r3 adds r2, r3
ldr r1, [r4] ldr r1, [r4]
adds r1, r2 adds r1, r2
bl sub_803E0A4 bl CreateBattleTowerMon
adds r6, 0x1 adds r6, 0x1
cmp r6, 0x2 cmp r6, 0x2
ble _080E6286 ble _080E6286
@@ -1251,7 +1251,7 @@ _080E62B2:
muls r2, r6 muls r2, r6
adds r2, 0x1C adds r2, 0x1C
adds r1, r2 adds r1, r2
bl sub_803E0A4 bl CreateBattleTowerMon
adds r6, 0x1 adds r6, 0x1
cmp r6, 0x2 cmp r6, 0x2
ble _080E62B2 ble _080E62B2
@@ -2136,7 +2136,7 @@ _080E69A0:
adds r2, r1 adds r2, r1
ldr r1, [r4] ldr r1, [r4]
adds r1, r2 adds r1, r2
bl sub_803E0A4 bl CreateBattleTowerMon
adds r5, 0x1 adds r5, 0x1
cmp r5, 0x2 cmp r5, 0x2
ble _080E69A0 ble _080E69A0
+1 -1
View File
@@ -5775,7 +5775,7 @@ _08019C40:
mov r8, r0 mov r8, r0
_08019C66: _08019C66:
adds r0, r7, 0 adds r0, r7, 0
bl sub_8043620 bl GetLinkTrainerFlankId
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
lsls r0, r6, 1 lsls r0, r6, 1
+1 -1
View File
@@ -38,7 +38,7 @@ sub_8054C04: @ 8054C04
adds r4, r0, 0 adds r4, r0, 0
lsls r4, 24 lsls r4, 24
lsrs r4, 24 lsrs r4, 24
bl sub_80444F8 bl GetPlayerPartyHighestLevel
lsls r0, 24 lsls r0, 24
lsrs r0, 24 lsrs r0, 24
ldr r1, _08054C40 @ =gUnknown_826D294 ldr r1, _08054C40 @ =gUnknown_826D294
+1 -1
View File
@@ -18182,7 +18182,7 @@ sub_8127AC0: @ 8127AC0
bne _08127B08 bne _08127B08
_08127AE6: _08127AE6:
ldr r4, _08127AFC @ =gStringVar1 ldr r4, _08127AFC @ =gStringVar1
bl sub_80444C4 bl GetTrainerPartnerName
adds r1, r0, 0 adds r1, r0, 0
adds r0, r4, 0 adds r0, r4, 0
bl StringCopy bl StringCopy
+59 -59
View File
@@ -5,8 +5,8 @@
.text .text
thumb_func_start sub_80444F8 thumb_func_start GetPlayerPartyHighestLevel
sub_80444F8: @ 80444F8 GetPlayerPartyHighestLevel: @ 80444F8
push {r4-r6,lr} push {r4-r6,lr}
movs r6, 0x1 movs r6, 0x1
movs r5, 0 movs r5, 0
@@ -47,10 +47,10 @@ _08044538:
bx r1 bx r1
.align 2, 0 .align 2, 0
_08044548: .4byte gPlayerParty _08044548: .4byte gPlayerParty
thumb_func_end sub_80444F8 thumb_func_end GetPlayerPartyHighestLevel
thumb_func_start sub_804454C thumb_func_start FacilityClassToPicIndex
sub_804454C: @ 804454C FacilityClassToPicIndex: @ 804454C
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
ldr r1, _08044558 @ =gFacilityClassToPicIndex ldr r1, _08044558 @ =gFacilityClassToPicIndex
@@ -59,7 +59,7 @@ sub_804454C: @ 804454C
bx lr bx lr
.align 2, 0 .align 2, 0
_08044558: .4byte gFacilityClassToPicIndex _08044558: .4byte gFacilityClassToPicIndex
thumb_func_end sub_804454C thumb_func_end FacilityClassToPicIndex
thumb_func_start sub_804455C thumb_func_start sub_804455C
sub_804455C: @ 804455C sub_804455C: @ 804455C
@@ -261,7 +261,7 @@ _080446CC:
lsls r2, r6, 24 lsls r2, r6, 24
lsrs r2, 24 lsrs r2, 24
adds r1, r4, 0 adds r1, r4, 0
bl nature_stat_mod bl ModifyStatByNature
lsls r0, 16 lsls r0, 16
lsrs r4, r0, 16 lsrs r4, r0, 16
adds r0, r4, 0 adds r0, r4, 0
@@ -273,8 +273,8 @@ _080446FE:
_08044704: .4byte gUnknown_825E026 _08044704: .4byte gUnknown_825E026
thumb_func_end GetDeoxysStat thumb_func_end GetDeoxysStat
thumb_func_start sub_8044708 thumb_func_start SetDeoxysStats
sub_8044708: @ 8044708 SetDeoxysStats: @ 8044708
push {r4,r5,lr} push {r4,r5,lr}
sub sp, 0x4 sub sp, 0x4
movs r5, 0 movs r5, 0
@@ -347,7 +347,7 @@ _08044798:
bx r0 bx r0
.align 2, 0 .align 2, 0
_080447A8: .4byte gPlayerParty _080447A8: .4byte gPlayerParty
thumb_func_end sub_8044708 thumb_func_end SetDeoxysStats
thumb_func_start sub_80447AC thumb_func_start sub_80447AC
sub_80447AC: @ 80447AC sub_80447AC: @ 80447AC
@@ -374,7 +374,7 @@ sub_80447AC: @ 80447AC
lsls r2, 1 lsls r2, 1
adds r2, r0 adds r2, r0
ldrh r0, [r2] ldrh r0, [r2]
bl sub_804454C bl FacilityClassToPicIndex
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
pop {r1} pop {r1}
@@ -420,8 +420,8 @@ _08044830: .4byte gFacilityClassToTrainerClass
_08044834: .4byte gUnknown_825E032 _08044834: .4byte gUnknown_825E032
thumb_func_end sub_80447F0 thumb_func_end sub_80447F0
thumb_func_start sub_8044838 thumb_func_start CreateObedientEnemyMon
sub_8044838: @ 8044838 CreateObedientEnemyMon: @ 8044838
push {r4-r7,lr} push {r4-r7,lr}
sub sp, 0x14 sub sp, 0x14
ldr r0, _08044888 @ =gSpecialVar_0x8004 ldr r0, _08044888 @ =gSpecialVar_0x8004
@@ -465,10 +465,10 @@ _08044888: .4byte gSpecialVar_0x8004
_0804488C: .4byte gSpecialVar_0x8005 _0804488C: .4byte gSpecialVar_0x8005
_08044890: .4byte gSpecialVar_0x8006 _08044890: .4byte gSpecialVar_0x8006
_08044894: .4byte gEnemyParty _08044894: .4byte gEnemyParty
thumb_func_end sub_8044838 thumb_func_end CreateObedientEnemyMon
thumb_func_start sub_8044898 thumb_func_start HandleSetPokedexFlag
sub_8044898: @ 8044898 HandleSetPokedexFlag: @ 8044898
push {r4-r7,lr} push {r4-r7,lr}
adds r7, r2, 0 adds r7, r2, 0
lsls r0, 16 lsls r0, 16
@@ -515,10 +515,10 @@ _080448EE:
bx r0 bx r0
.align 2, 0 .align 2, 0
_080448F4: .4byte gSaveBlock2Ptr _080448F4: .4byte gSaveBlock2Ptr
thumb_func_end sub_8044898 thumb_func_end HandleSetPokedexFlag
thumb_func_start sub_80448F8 thumb_func_start CheckBattleTypeGhost
sub_80448F8: @ 80448F8 CheckBattleTypeGhost: @ 80448F8
push {r4,lr} push {r4,lr}
sub sp, 0xC sub sp, 0xC
adds r4, r0, 0 adds r4, r0, 0
@@ -559,10 +559,10 @@ _08044946:
pop {r4} pop {r4}
pop {r1} pop {r1}
bx r1 bx r1
thumb_func_end sub_80448F8 thumb_func_end CheckBattleTypeGhost
thumb_func_start sub_8044950 thumb_func_start OakSpeechNidoranFSetupTemplate
sub_8044950: @ 8044950 OakSpeechNidoranFSetupTemplate: @ 8044950
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r10 mov r7, r10
mov r6, r9 mov r6, r9
@@ -688,10 +688,10 @@ _08044A2C:
bx r0 bx r0
.align 2, 0 .align 2, 0
_08044A3C: .4byte gUnknown_825DEF0 _08044A3C: .4byte gUnknown_825DEF0
thumb_func_end sub_8044950 thumb_func_end OakSpeechNidoranFSetupTemplate
thumb_func_start sub_8044A40 thumb_func_start OakSpeechNidoranFSetupTemplateDummy
sub_8044A40: @ 8044A40 OakSpeechNidoranFSetupTemplateDummy: @ 8044A40
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r10 mov r7, r10
mov r6, r9 mov r6, r9
@@ -783,10 +783,10 @@ _08044ADA:
.align 2, 0 .align 2, 0
_08044AE8: .4byte gUnknown_825E05C _08044AE8: .4byte gUnknown_825E05C
_08044AEC: .4byte gUnknown_82349BC _08044AEC: .4byte gUnknown_82349BC
thumb_func_end sub_8044A40 thumb_func_end OakSpeechNidoranFSetupTemplateDummy
thumb_func_start SetUpMonSpriteManagerMaybe thumb_func_start OakSpeechNidoranFSetup
SetUpMonSpriteManagerMaybe: @ 8044AF0 OakSpeechNidoranFSetup: @ 8044AF0
push {r4-r7,lr} push {r4-r7,lr}
mov r7, r8 mov r7, r8
push {r7} push {r7}
@@ -796,7 +796,7 @@ SetUpMonSpriteManagerMaybe: @ 8044AF0
lsrs r5, r1, 24 lsrs r5, r1, 24
movs r0, 0 movs r0, 0
mov r8, r0 mov r8, r0
ldr r4, _08044B34 @ =gUnknown_20244F4 ldr r4, _08044B34 @ =sOakTutNidoranResources
ldr r1, [r4] ldr r1, [r4]
cmp r1, 0 cmp r1, 0
beq _08044B1E beq _08044B1E
@@ -810,7 +810,7 @@ SetUpMonSpriteManagerMaybe: @ 8044AF0
mov r1, r8 mov r1, r8
str r1, [r4] str r1, [r4]
_08044B1E: _08044B1E:
ldr r4, _08044B34 @ =gUnknown_20244F4 ldr r4, _08044B34 @ =sOakTutNidoranResources
movs r0, 0x18 movs r0, 0x18
bl AllocZeroed bl AllocZeroed
adds r2, r0, 0 adds r2, r0, 0
@@ -821,7 +821,7 @@ _08044B2E:
movs r0, 0 movs r0, 0
b _08044D70 b _08044D70
.align 2, 0 .align 2, 0
_08044B34: .4byte gUnknown_20244F4 _08044B34: .4byte sOakTutNidoranResources
_08044B38: _08044B38:
cmp r5, 0 cmp r5, 0
beq _08044B94 beq _08044B94
@@ -862,7 +862,7 @@ _08044B64:
_08044B7C: _08044B7C:
orrs r0, r1 orrs r0, r1
strb r0, [r2] strb r0, [r2]
ldr r2, _08044B90 @ =gUnknown_20244F4 ldr r2, _08044B90 @ =sOakTutNidoranResources
ldr r1, [r2] ldr r1, [r2]
movs r0, 0x4 movs r0, 0x4
strb r0, [r1, 0x1] strb r0, [r1, 0x1]
@@ -871,7 +871,7 @@ _08044B7C:
strb r0, [r1, 0x3] strb r0, [r1, 0x3]
b _08044BD0 b _08044BD0
.align 2, 0 .align 2, 0
_08044B90: .4byte gUnknown_20244F4 _08044B90: .4byte sOakTutNidoranResources
_08044B94: _08044B94:
cmp r6, 0 cmp r6, 0
bne _08044B9A bne _08044B9A
@@ -881,7 +881,7 @@ _08044B9A:
bls _08044BA0 bls _08044BA0
movs r6, 0x8 movs r6, 0x8
_08044BA0: _08044BA0:
ldr r4, _08044C10 @ =gUnknown_20244F4 ldr r4, _08044C10 @ =sOakTutNidoranResources
ldr r3, [r4] ldr r3, [r4]
movs r0, 0xF movs r0, 0xF
adds r1, r6, 0 adds r1, r6, 0
@@ -906,7 +906,7 @@ _08044BA0:
ldr r0, [r4] ldr r0, [r4]
strb r2, [r0, 0x3] strb r2, [r0, 0x3]
_08044BD0: _08044BD0:
ldr r5, _08044C10 @ =gUnknown_20244F4 ldr r5, _08044C10 @ =sOakTutNidoranResources
ldr r0, [r5] ldr r0, [r5]
ldrb r1, [r0, 0x1] ldrb r1, [r0, 0x1]
lsls r1, 11 lsls r1, 11
@@ -937,7 +937,7 @@ _08044C04:
mov r8, r1 mov r8, r1
b _08044C44 b _08044C44
.align 2, 0 .align 2, 0
_08044C10: .4byte gUnknown_20244F4 _08044C10: .4byte sOakTutNidoranResources
_08044C14: _08044C14:
ldrb r0, [r1] ldrb r0, [r1]
lsls r0, 28 lsls r0, 28
@@ -965,7 +965,7 @@ _08044C20:
cmp r4, r0 cmp r4, r0
blt _08044C20 blt _08044C20
_08044C44: _08044C44:
ldr r5, _08044C8C @ =gUnknown_20244F4 ldr r5, _08044C8C @ =sOakTutNidoranResources
ldr r0, [r5] ldr r0, [r5]
ldrb r1, [r0] ldrb r1, [r0]
lsls r1, 28 lsls r1, 28
@@ -1000,7 +1000,7 @@ _08044C7C:
mov r8, r0 mov r8, r0
b _08044CE2 b _08044CE2
.align 2, 0 .align 2, 0
_08044C8C: .4byte gUnknown_20244F4 _08044C8C: .4byte sOakTutNidoranResources
_08044C90: _08044C90:
movs r4, 0 movs r4, 0
ldrb r0, [r1, 0x1] ldrb r0, [r1, 0x1]
@@ -1038,19 +1038,19 @@ _08044CC6:
cmp r4, 0x1 cmp r4, 0x1
bne _08044CDA bne _08044CDA
adds r1, r6, 0 adds r1, r6, 0
bl sub_8044950 bl OakSpeechNidoranFSetupTemplate
b _08044CE2 b _08044CE2
_08044CDA: _08044CDA:
ldr r0, _08044D60 @ =gUnknown_20244F4 ldr r0, _08044D60 @ =sOakTutNidoranResources
ldr r0, [r0] ldr r0, [r0]
bl sub_8044A40 bl OakSpeechNidoranFSetupTemplateDummy
_08044CE2: _08044CE2:
movs r0, 0x2 movs r0, 0x2
mov r1, r8 mov r1, r8
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
beq _08044D12 beq _08044D12
ldr r4, _08044D60 @ =gUnknown_20244F4 ldr r4, _08044D60 @ =sOakTutNidoranResources
ldr r0, [r4] ldr r0, [r4]
ldr r0, [r0, 0x14] ldr r0, [r0, 0x14]
cmp r0, 0 cmp r0, 0
@@ -1074,7 +1074,7 @@ _08044D12:
ands r0, r1 ands r0, r1
cmp r0, 0 cmp r0, 0
beq _08044D42 beq _08044D42
ldr r4, _08044D60 @ =gUnknown_20244F4 ldr r4, _08044D60 @ =sOakTutNidoranResources
ldr r0, [r4] ldr r0, [r4]
ldr r0, [r0, 0xC] ldr r0, [r0, 0xC]
cmp r0, 0 cmp r0, 0
@@ -1096,7 +1096,7 @@ _08044D42:
mov r0, r8 mov r0, r8
cmp r0, 0 cmp r0, 0
beq _08044D64 beq _08044D64
ldr r4, _08044D60 @ =gUnknown_20244F4 ldr r4, _08044D60 @ =sOakTutNidoranResources
ldr r0, [r4] ldr r0, [r4]
movs r1, 0 movs r1, 0
movs r2, 0x18 movs r2, 0x18
@@ -1107,14 +1107,14 @@ _08044D42:
str r0, [r4] str r0, [r4]
b _08044D6C b _08044D6C
.align 2, 0 .align 2, 0
_08044D60: .4byte gUnknown_20244F4 _08044D60: .4byte sOakTutNidoranResources
_08044D64: _08044D64:
ldr r0, _08044D7C @ =gUnknown_20244F4 ldr r0, _08044D7C @ =sOakTutNidoranResources
ldr r1, [r0] ldr r1, [r0]
movs r0, 0xA3 movs r0, 0xA3
strb r0, [r1, 0x2] strb r0, [r1, 0x2]
_08044D6C: _08044D6C:
ldr r0, _08044D7C @ =gUnknown_20244F4 ldr r0, _08044D7C @ =sOakTutNidoranResources
ldr r0, [r0] ldr r0, [r0]
_08044D70: _08044D70:
pop {r3} pop {r3}
@@ -1123,13 +1123,13 @@ _08044D70:
pop {r1} pop {r1}
bx r1 bx r1
.align 2, 0 .align 2, 0
_08044D7C: .4byte gUnknown_20244F4 _08044D7C: .4byte sOakTutNidoranResources
thumb_func_end SetUpMonSpriteManagerMaybe thumb_func_end OakSpeechNidoranFSetup
thumb_func_start sub_8044D80 thumb_func_start OakSpeechNidoranFFreeResources
sub_8044D80: @ 8044D80 OakSpeechNidoranFFreeResources: @ 8044D80
push {r4,lr} push {r4,lr}
ldr r4, _08044D9C @ =gUnknown_20244F4 ldr r4, _08044D9C @ =sOakTutNidoranResources
ldr r1, [r4] ldr r1, [r4]
cmp r1, 0 cmp r1, 0
beq _08044DFA beq _08044DFA
@@ -1142,7 +1142,7 @@ sub_8044D80: @ 8044D80
bl memset bl memset
b _08044DF6 b _08044DF6
.align 2, 0 .align 2, 0
_08044D9C: .4byte gUnknown_20244F4 _08044D9C: .4byte sOakTutNidoranResources
_08044DA0: _08044DA0:
ldr r0, [r1, 0x14] ldr r0, [r1, 0x14]
cmp r0, 0 cmp r0, 0
@@ -1192,14 +1192,14 @@ _08044DFA:
pop {r4} pop {r4}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end sub_8044D80 thumb_func_end OakSpeechNidoranFFreeResources
thumb_func_start sub_8044E00 thumb_func_start OakSpeechNidoranFGetBuffer
sub_8044E00: @ 8044E00 OakSpeechNidoranFGetBuffer: @ 8044E00
push {lr} push {lr}
lsls r0, 24 lsls r0, 24
lsrs r1, r0, 24 lsrs r1, r0, 24
ldr r0, _08044E14 @ =gUnknown_20244F4 ldr r0, _08044E14 @ =sOakTutNidoranResources
ldr r2, [r0] ldr r2, [r0]
ldrb r0, [r2, 0x2] ldrb r0, [r2, 0x2]
cmp r0, 0xA3 cmp r0, 0xA3
@@ -1207,7 +1207,7 @@ sub_8044E00: @ 8044E00
movs r0, 0 movs r0, 0
b _08044E2C b _08044E2C
.align 2, 0 .align 2, 0
_08044E14: .4byte gUnknown_20244F4 _08044E14: .4byte sOakTutNidoranResources
_08044E18: _08044E18:
ldrb r0, [r2] ldrb r0, [r2]
lsls r0, 28 lsls r0, 28
@@ -1223,6 +1223,6 @@ _08044E24:
_08044E2C: _08044E2C:
pop {r1} pop {r1}
bx r1 bx r1
thumb_func_end sub_8044E00 thumb_func_end OakSpeechNidoranFGetBuffer
.align 2, 0 @ Don't pad with nop. .align 2, 0 @ Don't pad with nop.
+1 -1
View File
@@ -8135,7 +8135,7 @@ sub_80507A0: @ 80507A0
adds r0, r4, 0 adds r0, r4, 0
movs r1, 0x3 movs r1, 0x3
adds r2, r5, 0 adds r2, r5, 0
bl sub_8044898 bl HandleSetPokedexFlag
_080507F4: _080507F4:
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
+2 -2
View File
@@ -4955,7 +4955,7 @@ sub_808B838: @ 808B838
adds r0, r1 adds r0, r1
ldrb r4, [r0] ldrb r4, [r0]
adds r0, r4, 0 adds r0, r4, 0
bl sub_804454C bl FacilityClassToPicIndex
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
ldr r4, _0808B8A0 @ =gUnknown_83CD8EC ldr r4, _0808B8A0 @ =gUnknown_83CD8EC
@@ -4982,7 +4982,7 @@ _0808B8A4:
cmp r0, 0 cmp r0, 0
beq _0808B8FC beq _0808B8FC
adds r0, r4, 0 adds r0, r4, 0
bl sub_804454C bl FacilityClassToPicIndex
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
ldr r4, _0808B8F4 @ =gUnknown_83CD8EC ldr r4, _0808B8F4 @ =gUnknown_83CD8EC
+1 -1
View File
@@ -90,7 +90,7 @@ EventScript_1652C0:: @ 81652C0
setvar VAR_0x8004, SPECIES_DEOXYS setvar VAR_0x8004, SPECIES_DEOXYS
setvar VAR_0x8005, 30 setvar VAR_0x8005, 30
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special sub_8044838 special CreateObedientEnemyMon
setflag FLAG_0x807 setflag FLAG_0x807
special sub_807F9D8 special sub_807F9D8
waitstate waitstate
+1 -1
View File
@@ -63,7 +63,7 @@ NavelRock_Base_EventScript_165134:: @ 8165134
setvar VAR_0x8004, SPECIES_LUGIA setvar VAR_0x8004, SPECIES_LUGIA
setvar VAR_0x8005, 70 setvar VAR_0x8005, 70
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special sub_8044838 special CreateObedientEnemyMon
setflag FLAG_0x807 setflag FLAG_0x807
special sub_807F9D8 special sub_807F9D8
waitstate waitstate
+1 -1
View File
@@ -67,7 +67,7 @@ NavelRock_Summit_EventScript_164FFB:: @ 8164FFB
setvar VAR_0x8004, SPECIES_HO_OH setvar VAR_0x8004, SPECIES_HO_OH
setvar VAR_0x8005, 70 setvar VAR_0x8005, 70
setvar VAR_0x8006, 0 setvar VAR_0x8006, 0
special sub_8044838 special CreateObedientEnemyMon
setflag FLAG_0x807 setflag FLAG_0x807
special sub_807F9D8 special sub_807F9D8
waitstate waitstate
+1 -1
View File
@@ -452,5 +452,5 @@ gSpecials:: @ 815FD60
def_special sub_80CB328 def_special sub_80CB328
def_special sub_80CD154 def_special sub_80CD154
def_special sub_80CD1B4 def_special sub_80CD1B4
def_special sub_8044838 def_special CreateObedientEnemyMon
gSpecialsEnd:: gSpecialsEnd::
+3 -2
View File
@@ -607,7 +607,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
u8 GetNature(struct Pokemon *mon); u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality); u8 GetNatureFromPersonality(u32 personality);
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex); u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
void MonRestorePP(struct Pokemon *); void MonRestorePP(struct Pokemon *);
void BoxMonRestorePP(struct BoxPokemon *); void BoxMonRestorePP(struct BoxPokemon *);
@@ -666,6 +666,7 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon);
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon); void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId); bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId);
u16 GetDeoxysStat(struct Pokemon *mon, s32 statId);
#include "sprite.h" #include "sprite.h"
@@ -675,7 +676,7 @@ void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
void PlayMapChosenOrBattleBGM(u16 songId); void PlayMapChosenOrBattleBGM(u16 songId);
u8 GetMonsStateToDoubles(void); u8 GetMonsStateToDoubles(void);
void sub_803E0A4(struct Pokemon *mon, struct BattleTowerPokemon *src); void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src);
void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition); void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition);
const u8 * Battle_PrintStatBoosterEffectMessage(u16 itemId); const u8 * Battle_PrintStatBoosterEffectMessage(u16 itemId);
+3 -3
View File
@@ -5,8 +5,8 @@
const u8* GetTrainerClassNameFromId(u16 trainerId); const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId); const u8* GetTrainerNameFromId(u16 trainerId);
void * SetUpMonSpriteManagerMaybe(u8, u8); void * OakSpeechNidoranFSetup(u8, u8);
void sub_8044D80(void); void OakSpeechNidoranFFreeResources(void);
void * sub_8044E00(u8 buffId); void * OakSpeechNidoranFGetBuffer(u8 buffId);
#endif // GUARD_POKEMON_3_H #endif // GUARD_POKEMON_3_H
BIN
View File
Binary file not shown.
+3 -3
View File
@@ -500,7 +500,7 @@ static void Task_OaksSpeech1(u8 taskId)
break; break;
case 1: case 1:
sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources)); sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources));
SetUpMonSpriteManagerMaybe(1, 1); OakSpeechNidoranFSetup(1, 1);
break; break;
case 2: case 2:
SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0H, 0);
@@ -1513,7 +1513,7 @@ static void Task_OakSpeech41(u8 taskId)
static void Task_OakSpeech42(u8 taskId) static void Task_OakSpeech42(u8 taskId)
{ {
FreeAllWindowBuffers(); FreeAllWindowBuffers();
sub_8044D80(); OakSpeechNidoranFFreeResources();
Free(sOakSpeechResources); Free(sOakSpeechResources);
sOakSpeechResources = NULL; sOakSpeechResources = NULL;
gTextFlags.canABSpeedUpPrint = FALSE; gTextFlags.canABSpeedUpPrint = FALSE;
@@ -1612,7 +1612,7 @@ static void CreateNidoranFSprite(u8 taskId)
{ {
u8 spriteId; u8 spriteId;
DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F); DecompressPicFromTable(gUnknown_8235194, OakSpeechNidoranFGetBuffer(0), SPECIES_NIDORAN_F);
LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4); LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4);
SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0); SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0);
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1); spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1);
+20 -22
View File
@@ -44,11 +44,10 @@ struct UnkStruct20244F4
}; };
// External symbols // External symbols
extern struct UnkStruct20244F4 *gUnknown_20244F4; extern struct UnkStruct20244F4 *sOakTutNidoranResources;
extern struct SpriteTemplate gUnknown_825DEF0[]; extern struct SpriteTemplate gUnknown_825DEF0[];
extern struct SpriteTemplate gUnknown_825DF50[]; extern struct SpriteTemplate gUnknown_825DF50[];
extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
extern struct SpriteTemplate gUnknown_825DEF0[];
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
extern const union AnimCmd *const gUnknown_82349BC[]; extern const union AnimCmd *const gUnknown_82349BC[];
extern const u8 gUnknown_825DEA1[]; extern const u8 gUnknown_825DEA1[];
@@ -90,7 +89,6 @@ extern u8 StorageGetCurrentBox(void); // pokemon_storage_system
extern void sub_80174B8(u8 battlerId); extern void sub_80174B8(u8 battlerId);
union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType); union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType);
s32 GetDeoxysStat(struct Pokemon *mon, s32 statId);
// code // code
void ZeroBoxMonData(struct BoxPokemon *boxMon) void ZeroBoxMonData(struct BoxPokemon *boxMon)
@@ -351,7 +349,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI
CalculateMonStats(mon); CalculateMonStats(mon);
} }
void sub_803E0A4(struct Pokemon *mon, struct BattleTowerPokemon *src) void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src)
{ {
s32 i; s32 i;
u8 value; u8 value;
@@ -476,7 +474,7 @@ u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon)
u8 baseStat = gBaseStats[species].base; \ u8 baseStat = gBaseStats[species].base; \
s32 n = (((2 * baseStat + iv + ev / 4) * level) / 100) + 5; \ s32 n = (((2 * baseStat + iv + ev / 4) * level) / 100) + 5; \
u8 nature = GetNature(mon); \ u8 nature = GetNature(mon); \
n = nature_stat_mod(nature, n, statIndex); \ n = ModifyStatByNature(nature, n, statIndex); \
SetMonData(mon, field, &n); \ SetMonData(mon, field, &n); \
} }
@@ -1122,7 +1120,7 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality)
return MON_MALE; return MON_MALE;
} }
void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition) void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition)
{ {
if(gMonSpritesGfxPtr != NULL) if(gMonSpritesGfxPtr != NULL)
{ {
@@ -1133,12 +1131,12 @@ void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition)
} }
else else
{ {
if(gUnknown_20244F4) if(sOakTutNidoranResources)
{ {
if(battlerPosition >= (s8)gUnknown_20244F4->unk0_2) // why a cast?!? changing the unk0_2 type to s8 causes extra shifts, but a cast is the correct fix. why, compiler? if(battlerPosition >= (s8)sOakTutNidoranResources->unk0_2) // why a cast?!? changing the unk0_2 type to s8 causes extra shifts, but a cast is the correct fix. why, compiler?
battlerPosition = 0; battlerPosition = 0;
gMultiuseSpriteTemplate = gUnknown_20244F4->unk10[battlerPosition]; gMultiuseSpriteTemplate = sOakTutNidoranResources->unk10[battlerPosition];
} }
else else
{ {
@@ -1148,7 +1146,7 @@ void SetMultiuseSpriteTemplateToPokemon(u16 trainerSpriteId, u8 battlerPosition)
gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition]; gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition];
} }
} }
gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; gMultiuseSpriteTemplate.paletteTag = speciesTag;
gMultiuseSpriteTemplate.anims = gUnknown_82349BC; gMultiuseSpriteTemplate.anims = gUnknown_82349BC;
} }
@@ -1290,27 +1288,27 @@ u32 GetMonData(struct Pokemon *mon, s32 field, u8* data)
ret = mon->maxHP; ret = mon->maxHP;
break; break;
case MON_DATA_ATK: case MON_DATA_ATK:
ret = (u16)GetDeoxysStat(mon, STAT_ATK); ret = GetDeoxysStat(mon, STAT_ATK);
if (!ret) if (!ret)
ret = mon->attack; ret = mon->attack;
break; break;
case MON_DATA_DEF: case MON_DATA_DEF:
ret = (u16)GetDeoxysStat(mon, STAT_DEF); ret = GetDeoxysStat(mon, STAT_DEF);
if (!ret) if (!ret)
ret = mon->defense; ret = mon->defense;
break; break;
case MON_DATA_SPEED: case MON_DATA_SPEED:
ret = (u16)GetDeoxysStat(mon, STAT_SPEED); ret = GetDeoxysStat(mon, STAT_SPEED);
if (!ret) if (!ret)
ret = mon->speed; ret = mon->speed;
break; break;
case MON_DATA_SPATK: case MON_DATA_SPATK:
ret = (u16)GetDeoxysStat(mon, STAT_SPATK); ret = GetDeoxysStat(mon, STAT_SPATK);
if (!ret) if (!ret)
ret = mon->spAttack; ret = mon->spAttack;
break; break;
case MON_DATA_SPDEF: case MON_DATA_SPDEF:
ret = (u16)GetDeoxysStat(mon, STAT_SPDEF); ret = GetDeoxysStat(mon, STAT_SPDEF);
if (!ret) if (!ret)
ret = mon->spDefense; ret = mon->spDefense;
break; break;
@@ -4928,7 +4926,7 @@ bool8 sub_80435E0(void)
return retVal; return retVal;
} }
bool8 sub_8043620(u8 id) bool8 GetLinkTrainerFlankId(u8 id)
{ {
bool8 retVal = FALSE; bool8 retVal = FALSE;
switch (gLinkPlayers[id].id) switch (gLinkPlayers[id].id)
@@ -4954,12 +4952,12 @@ s32 GetBankMultiplayerId(u16 a1)
return id; return id;
} }
u8 sub_804367C(u16 trainer) u8 GetTrainerEncounterMusicId(u16 trainer)
{ {
return gTrainers[trainer].encounterMusic_gender & 0x7F; return gTrainers[trainer].encounterMusic_gender & 0x7F;
} }
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex) u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex)
{ {
if (statIndex < 1 || statIndex > 5) if (statIndex < 1 || statIndex > 5)
{ {
@@ -5214,7 +5212,7 @@ void sub_8043B40(void)
u8 foo[4]; // huh? u8 foo[4]; // huh?
} }
void sub_8043B48(struct Pokemon *mon, int species, u8 unused, u32 data) void SetMonExpWithMaxLevelCheck(struct Pokemon *mon, int species, u8 unused, u32 data)
{ {
if (data > gExperienceTables[gBaseStats[species].growthRate][100]) if (data > gExperienceTables[gBaseStats[species].growthRate][100])
{ {
@@ -5235,7 +5233,7 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon)
if(exp > gExperienceTables[gBaseStats[species].growthRate][newLevel]) if(exp > gExperienceTables[gBaseStats[species].growthRate][newLevel])
{ {
SetMonData(mon, MON_DATA_LEVEL, &newLevel); SetMonData(mon, MON_DATA_LEVEL, &newLevel);
sub_8043B48(mon, species, newLevel, exp); SetMonExpWithMaxLevelCheck(mon, species, newLevel, exp);
return TRUE; return TRUE;
} }
else else
@@ -5243,7 +5241,7 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon)
} }
else else
{ {
sub_8043B48(mon, species, level, exp); SetMonExpWithMaxLevelCheck(mon, species, level, exp);
return FALSE; return FALSE;
} }
} }
@@ -5604,7 +5602,7 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality)
return retVal; return retVal;
} }
u8 *sub_80444C4(void) u8 *GetTrainerPartnerName(void)
{ {
u8 id = GetMultiplayerId(); u8 id = GetMultiplayerId();
return gLinkPlayers[GetBankMultiplayerId(gLinkPlayers[id].id ^ 2)].name; return gLinkPlayers[GetBankMultiplayerId(gLinkPlayers[id].id ^ 2)].name;
+4 -4
View File
@@ -1378,21 +1378,21 @@ void sub_815E9FC(void)
{ {
r2 = gUnknown_847A2EE[r5][r6]; r2 = gUnknown_847A2EE[r5][r6];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9; gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[r6], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]); CreateBattleTowerMon(&gEnemyParty[r6], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]);
} }
break; break;
case 1: case 1:
r2 = gUnknown_847A2FE[r5][0]; r2 = gUnknown_847A2FE[r5][0];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2].level = r9; gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2]); CreateBattleTowerMon(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[0].unk_040[r2]);
r2 = gUnknown_847A2FE[r5][1]; r2 = gUnknown_847A2FE[r5][1];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2].level = r9; gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[1], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2]); CreateBattleTowerMon(&gEnemyParty[1], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[1].unk_040[r2]);
break; break;
case 2: case 2:
r2 = gUnknown_847A30E[r5][r4]; r2 = gUnknown_847A30E[r5][r4];
gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9; gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2].level = r9;
sub_803E0A4(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]); CreateBattleTowerMon(&gEnemyParty[0], &gUnknown_203F458->unk_0004.trainers[gUnknown_203F458->unk_0000].unk_004[r4].unk_040[r2]);
break; break;
} }
} }
+1 -1
View File
@@ -490,7 +490,7 @@ gUnknown_2024478: @ 2024478
gMultiuseSpriteTemplate: @ 20244DC gMultiuseSpriteTemplate: @ 20244DC
.space 0x18 .space 0x18
gUnknown_20244F4: @ 20244F4 sOakTutNidoranResources: @ 20244F4
.space 0x4 .space 0x4
.align 2 .align 2