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