decompile up to sub_80444C4
This commit is contained in:
+5
-5
@@ -4155,7 +4155,7 @@ _08011F50:
|
||||
cmp r4, r0
|
||||
bne _08011F74
|
||||
ldr r0, _08011F6C @ =gUnknown_83AE03C
|
||||
ldr r1, _08011F70 @ =gUnknown_2024024
|
||||
ldr r1, _08011F70 @ =gBattleMonForms
|
||||
adds r1, r6, r1
|
||||
ldrb r1, [r1]
|
||||
lsls r1, 2
|
||||
@@ -4165,7 +4165,7 @@ _08011F50:
|
||||
.align 2, 0
|
||||
_08011F68: .4byte 0x00000181
|
||||
_08011F6C: .4byte gUnknown_83AE03C
|
||||
_08011F70: .4byte gUnknown_2024024
|
||||
_08011F70: .4byte gBattleMonForms
|
||||
_08011F74:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
@@ -4240,7 +4240,7 @@ _08011FE8:
|
||||
lsrs r0, 22
|
||||
adds r1, 0x4
|
||||
adds r1, r0
|
||||
ldr r2, _08012040 @ =gUnknown_2024024
|
||||
ldr r2, _08012040 @ =gBattleMonForms
|
||||
movs r3, 0x2E
|
||||
ldrsh r0, [r4, r3]
|
||||
adds r0, r2
|
||||
@@ -4260,7 +4260,7 @@ _0801201A:
|
||||
subs r0, 0x1
|
||||
cmp r0, 0
|
||||
bge _0801201A
|
||||
ldr r0, _08012040 @ =gUnknown_2024024
|
||||
ldr r0, _08012040 @ =gBattleMonForms
|
||||
movs r3, 0x2E
|
||||
ldrsh r1, [r4, r3]
|
||||
adds r1, r0
|
||||
@@ -4273,7 +4273,7 @@ _08012034:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801203C: .4byte gMonSpritesGfxPtr
|
||||
_08012040: .4byte gUnknown_2024024
|
||||
_08012040: .4byte gBattleMonForms
|
||||
thumb_func_end sub_8011FB4
|
||||
|
||||
thumb_func_start sub_8012044
|
||||
|
||||
@@ -227,7 +227,7 @@ _08074638:
|
||||
cmp r4, r0
|
||||
bne _08074658
|
||||
ldr r0, _08074650 @ =gUnknown_83AE050
|
||||
ldr r1, _08074654 @ =gUnknown_2024024
|
||||
ldr r1, _08074654 @ =gBattleMonForms
|
||||
adds r1, r5, r1
|
||||
ldrb r1, [r1]
|
||||
adds r1, r0
|
||||
@@ -236,7 +236,7 @@ _08074638:
|
||||
.align 2, 0
|
||||
_0807464C: .4byte 0x00000181
|
||||
_08074650: .4byte gUnknown_83AE050
|
||||
_08074654: .4byte gUnknown_2024024
|
||||
_08074654: .4byte gBattleMonForms
|
||||
_08074658:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
@@ -328,7 +328,7 @@ _08074704:
|
||||
cmp r4, r0
|
||||
bne _08074728
|
||||
ldr r0, _08074720 @ =gUnknown_83AE03C
|
||||
ldr r1, _08074724 @ =gUnknown_2024024
|
||||
ldr r1, _08074724 @ =gBattleMonForms
|
||||
adds r1, r6, r1
|
||||
ldrb r1, [r1]
|
||||
lsls r1, 2
|
||||
@@ -338,7 +338,7 @@ _08074704:
|
||||
.align 2, 0
|
||||
_0807471C: .4byte 0x00000181
|
||||
_08074720: .4byte gUnknown_83AE03C
|
||||
_08074724: .4byte gUnknown_2024024
|
||||
_08074724: .4byte gBattleMonForms
|
||||
_08074728:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
@@ -382,7 +382,7 @@ sub_807474C: @ 807474C
|
||||
cmp r4, r0
|
||||
bne _08074788
|
||||
ldr r0, _08074780 @ =gUnknown_83AE04C
|
||||
ldr r1, _08074784 @ =gUnknown_2024024
|
||||
ldr r1, _08074784 @ =gBattleMonForms
|
||||
adds r1, r6, r1
|
||||
ldrb r1, [r1]
|
||||
adds r1, r0
|
||||
@@ -391,7 +391,7 @@ sub_807474C: @ 807474C
|
||||
.align 2, 0
|
||||
_0807477C: .4byte 0x00000181
|
||||
_08074780: .4byte gUnknown_83AE04C
|
||||
_08074784: .4byte gUnknown_2024024
|
||||
_08074784: .4byte gBattleMonForms
|
||||
_08074788:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
@@ -5431,7 +5431,7 @@ _08076CA6:
|
||||
ldr r0, _08076CBC @ =0x00000181
|
||||
cmp r7, r0
|
||||
bne _08076CC8
|
||||
ldr r0, _08076CC0 @ =gUnknown_2024024
|
||||
ldr r0, _08076CC0 @ =gBattleMonForms
|
||||
add r0, r8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
@@ -5440,7 +5440,7 @@ _08076CA6:
|
||||
b _08076CDE
|
||||
.align 2, 0
|
||||
_08076CBC: .4byte 0x00000181
|
||||
_08076CC0: .4byte gUnknown_2024024
|
||||
_08076CC0: .4byte gBattleMonForms
|
||||
_08076CC4: .4byte gUnknown_83AE03C
|
||||
_08076CC8:
|
||||
movs r0, 0xCE
|
||||
|
||||
@@ -55250,7 +55250,7 @@ sub_80BCEF4: @ 80BCEF4
|
||||
lsls r4, 2
|
||||
adds r2, 0x4
|
||||
adds r2, r4
|
||||
ldr r1, _080BCFC8 @ =gUnknown_2024024
|
||||
ldr r1, _080BCFC8 @ =gBattleMonForms
|
||||
adds r0, r1
|
||||
ldrb r1, [r0]
|
||||
lsls r1, 11
|
||||
@@ -55320,7 +55320,7 @@ _080BCFA0:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080BCFC4: .4byte gMonSpritesGfxPtr
|
||||
_080BCFC8: .4byte gUnknown_2024024
|
||||
_080BCFC8: .4byte gBattleMonForms
|
||||
thumb_func_end sub_80BCEF4
|
||||
|
||||
thumb_func_start sub_80BCFCC
|
||||
|
||||
@@ -3164,7 +3164,7 @@ _080DFAC6:
|
||||
lsls r0, r1, 2
|
||||
adds r2, 0x4
|
||||
adds r2, r0
|
||||
ldr r1, _080DFB0C @ =gUnknown_2024024
|
||||
ldr r1, _080DFB0C @ =gBattleMonForms
|
||||
ldr r0, _080DFB10 @ =gUnknown_2037F1A
|
||||
ldrb r0, [r0]
|
||||
adds r0, r1
|
||||
@@ -3193,7 +3193,7 @@ _080DFB00:
|
||||
b _080DFBCE
|
||||
.align 2, 0
|
||||
_080DFB08: .4byte gMonSpritesGfxPtr
|
||||
_080DFB0C: .4byte gUnknown_2024024
|
||||
_080DFB0C: .4byte gBattleMonForms
|
||||
_080DFB10: .4byte gUnknown_2037F1A
|
||||
_080DFB14: .4byte 0x04000200
|
||||
_080DFB18: .4byte gTasks
|
||||
|
||||
@@ -3641,7 +3641,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _0803C4F8 @ =gUnknown_2024024
|
||||
ldr r1, _0803C4F8 @ =gBattleMonForms
|
||||
adds r2, r1
|
||||
ldrb r1, [r2]
|
||||
bl StartSpriteAnim
|
||||
@@ -3681,7 +3681,7 @@ _0803C4E8: .4byte gMultiuseSpriteTemplate
|
||||
_0803C4EC: .4byte gUnknown_2023D44
|
||||
_0803C4F0: .4byte gSprites
|
||||
_0803C4F4: .4byte 0x0000ff10
|
||||
_0803C4F8: .4byte gUnknown_2024024
|
||||
_0803C4F8: .4byte gBattleMonForms
|
||||
_0803C4FC: .4byte gUnknown_3004FE0
|
||||
_0803C500: .4byte sub_803AC14
|
||||
thumb_func_end LinkOpponentHandleLoadPokeSprite
|
||||
@@ -3844,7 +3844,7 @@ sub_803C550: @ 803C550
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _0803C6CC @ =gUnknown_2024024
|
||||
ldr r1, _0803C6CC @ =gBattleMonForms
|
||||
adds r6, r1
|
||||
ldrb r1, [r6]
|
||||
bl StartSpriteAnim
|
||||
@@ -3895,7 +3895,7 @@ _0803C6BC: .4byte gUnknown_3004FFC
|
||||
_0803C6C0: .4byte gMultiuseSpriteTemplate
|
||||
_0803C6C4: .4byte gUnknown_2023D44
|
||||
_0803C6C8: .4byte gSprites
|
||||
_0803C6CC: .4byte gUnknown_2024024
|
||||
_0803C6CC: .4byte gBattleMonForms
|
||||
_0803C6D0: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_803C550
|
||||
|
||||
|
||||
@@ -3435,7 +3435,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _080D5EC4 @ =gUnknown_2024024
|
||||
ldr r1, _080D5EC4 @ =gBattleMonForms
|
||||
adds r2, r1
|
||||
ldrb r1, [r2]
|
||||
bl StartSpriteAnim
|
||||
@@ -3458,7 +3458,7 @@ _080D5EB4: .4byte gMultiuseSpriteTemplate
|
||||
_080D5EB8: .4byte gUnknown_2023D44
|
||||
_080D5EBC: .4byte gSprites
|
||||
_080D5EC0: .4byte 0x0000ff10
|
||||
_080D5EC4: .4byte gUnknown_2024024
|
||||
_080D5EC4: .4byte gBattleMonForms
|
||||
_080D5EC8: .4byte gUnknown_3004FE0
|
||||
_080D5ECC: .4byte sub_80D4590
|
||||
thumb_func_end LinkPartnerHandleLoadPokeSprite
|
||||
@@ -3626,7 +3626,7 @@ sub_80D5F40: @ 80D5F40
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _080D60A4 @ =gUnknown_2024024
|
||||
ldr r1, _080D60A4 @ =gBattleMonForms
|
||||
adds r6, r1
|
||||
ldrb r1, [r6]
|
||||
bl StartSpriteAnim
|
||||
@@ -3677,7 +3677,7 @@ _080D6094: .4byte gUnknown_3004FFC
|
||||
_080D6098: .4byte gMultiuseSpriteTemplate
|
||||
_080D609C: .4byte gUnknown_2023D44
|
||||
_080D60A0: .4byte gSprites
|
||||
_080D60A4: .4byte gUnknown_2024024
|
||||
_080D60A4: .4byte gBattleMonForms
|
||||
_080D60A8: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_80D5F40
|
||||
|
||||
|
||||
@@ -7135,7 +7135,7 @@ sub_80EAF34: @ 80EAF34
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _080EB0A0 @ =gUnknown_2024024
|
||||
ldr r1, _080EB0A0 @ =gBattleMonForms
|
||||
adds r6, r1
|
||||
ldrb r1, [r6]
|
||||
bl StartSpriteAnim
|
||||
@@ -7187,7 +7187,7 @@ _080EB090: .4byte gUnknown_3004FFC
|
||||
_080EB094: .4byte gMultiuseSpriteTemplate
|
||||
_080EB098: .4byte gUnknown_2023D44
|
||||
_080EB09C: .4byte gSprites
|
||||
_080EB0A0: .4byte gUnknown_2024024
|
||||
_080EB0A0: .4byte gBattleMonForms
|
||||
_080EB0A4: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_80EAF34
|
||||
|
||||
|
||||
@@ -3717,7 +3717,7 @@ _080378AA:
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _080379B0 @ =gUnknown_2024024
|
||||
ldr r1, _080379B0 @ =gBattleMonForms
|
||||
adds r2, r1
|
||||
ldrb r1, [r2]
|
||||
bl StartSpriteAnim
|
||||
@@ -3762,7 +3762,7 @@ _080379A0: .4byte gMultiuseSpriteTemplate
|
||||
_080379A4: .4byte gUnknown_2023D44
|
||||
_080379A8: .4byte gSprites
|
||||
_080379AC: .4byte 0x0000ff10
|
||||
_080379B0: .4byte gUnknown_2024024
|
||||
_080379B0: .4byte gBattleMonForms
|
||||
_080379B4: .4byte gBattleTypeFlags
|
||||
_080379B8: .4byte gBattlerPartyIndexes
|
||||
_080379BC: .4byte gEnemyParty
|
||||
@@ -3936,7 +3936,7 @@ sub_8037A28: @ 8037A28
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _08037BA4 @ =gUnknown_2024024
|
||||
ldr r1, _08037BA4 @ =gBattleMonForms
|
||||
adds r6, r1
|
||||
ldrb r1, [r6]
|
||||
bl StartSpriteAnim
|
||||
@@ -3987,7 +3987,7 @@ _08037B94: .4byte gUnknown_3004FFC
|
||||
_08037B98: .4byte gMultiuseSpriteTemplate
|
||||
_08037B9C: .4byte gUnknown_2023D44
|
||||
_08037BA0: .4byte gSprites
|
||||
_08037BA4: .4byte gUnknown_2024024
|
||||
_08037BA4: .4byte gBattleMonForms
|
||||
_08037BA8: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_8037A28
|
||||
|
||||
|
||||
@@ -7506,7 +7506,7 @@ sub_8031FF4: @ 8031FF4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _08032158 @ =gUnknown_2024024
|
||||
ldr r1, _08032158 @ =gBattleMonForms
|
||||
adds r6, r1
|
||||
ldrb r1, [r6]
|
||||
bl StartSpriteAnim
|
||||
@@ -7557,7 +7557,7 @@ _08032148: .4byte gUnknown_3004FFC
|
||||
_0803214C: .4byte gMultiuseSpriteTemplate
|
||||
_08032150: .4byte gUnknown_2023D44
|
||||
_08032154: .4byte gSprites
|
||||
_08032158: .4byte gUnknown_2024024
|
||||
_08032158: .4byte gBattleMonForms
|
||||
_0803215C: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_8031FF4
|
||||
|
||||
|
||||
@@ -4001,7 +4001,7 @@ sub_81580E0: @ 81580E0
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _08158230 @ =gUnknown_2024024
|
||||
ldr r1, _08158230 @ =gBattleMonForms
|
||||
adds r2, r1
|
||||
ldrb r1, [r2]
|
||||
bl StartSpriteAnim
|
||||
@@ -4041,7 +4041,7 @@ _08158220: .4byte gMultiuseSpriteTemplate
|
||||
_08158224: .4byte gUnknown_2023D44
|
||||
_08158228: .4byte gSprites
|
||||
_0815822C: .4byte 0x0000ff10
|
||||
_08158230: .4byte gUnknown_2024024
|
||||
_08158230: .4byte gBattleMonForms
|
||||
_08158234: .4byte gUnknown_3004FE0
|
||||
_08158238: .4byte sub_8156184
|
||||
thumb_func_end sub_81580E0
|
||||
@@ -6400,7 +6400,7 @@ sub_8159478: @ 8159478
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _081595E4 @ =gUnknown_2024024
|
||||
ldr r1, _081595E4 @ =gBattleMonForms
|
||||
adds r6, r1
|
||||
ldrb r1, [r6]
|
||||
bl StartSpriteAnim
|
||||
@@ -6452,7 +6452,7 @@ _081595D4: .4byte gUnknown_3004FFC
|
||||
_081595D8: .4byte gMultiuseSpriteTemplate
|
||||
_081595DC: .4byte gUnknown_2023D44
|
||||
_081595E0: .4byte gSprites
|
||||
_081595E4: .4byte gUnknown_2024024
|
||||
_081595E4: .4byte gBattleMonForms
|
||||
_081595E8: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_8159478
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ _0800D298:
|
||||
movs r4, 0
|
||||
str r4, [r0]
|
||||
bl ClearBattleAnimationVars
|
||||
bl sub_8043FBC
|
||||
bl ClearBattleMonForms
|
||||
bl BattleAI_HandleItemUseBeforeAISetup
|
||||
ldr r0, _0800D304 @ =gUnknown_2022B54
|
||||
str r4, [r0]
|
||||
|
||||
+17
-17
@@ -348,7 +348,7 @@ TryHandleLaunchBattleTableAnimation: @ 803401C
|
||||
ands r0, r7
|
||||
cmp r0, 0
|
||||
beq _08034064
|
||||
ldr r0, _08034060 @ =gUnknown_2024024
|
||||
ldr r0, _08034060 @ =gBattleMonForms
|
||||
adds r0, r6, r0
|
||||
movs r2, 0x7F
|
||||
adds r1, r7, 0
|
||||
@@ -357,7 +357,7 @@ TryHandleLaunchBattleTableAnimation: @ 803401C
|
||||
movs r0, 0x1
|
||||
b _08034132
|
||||
.align 2, 0
|
||||
_08034060: .4byte gUnknown_2024024
|
||||
_08034060: .4byte gBattleMonForms
|
||||
_08034064:
|
||||
ldr r0, _08034090 @ =gUnknown_2024018
|
||||
mov r9, r0
|
||||
@@ -829,7 +829,7 @@ _080343DA:
|
||||
adds r1, r4
|
||||
adds r0, r6, 0
|
||||
bl LZDecompressWram
|
||||
ldr r0, _08034480 @ =gUnknown_2024024
|
||||
ldr r0, _08034480 @ =gBattleMonForms
|
||||
add r0, r8
|
||||
ldrb r1, [r0]
|
||||
lsls r1, 5
|
||||
@@ -872,7 +872,7 @@ _08034468:
|
||||
.align 2, 0
|
||||
_08034478: .4byte 0x00000181
|
||||
_0803447C: .4byte gBattleStruct
|
||||
_08034480: .4byte gUnknown_2024024
|
||||
_08034480: .4byte gBattleMonForms
|
||||
_08034484: .4byte gUnknown_2024018
|
||||
_08034488: .4byte 0x00007fff
|
||||
_0803448C: .4byte gUnknown_20375F8
|
||||
@@ -1035,7 +1035,7 @@ _0803459A:
|
||||
adds r1, r4
|
||||
adds r0, r6, 0
|
||||
bl LZDecompressWram
|
||||
ldr r0, _08034640 @ =gUnknown_2024024
|
||||
ldr r0, _08034640 @ =gBattleMonForms
|
||||
add r0, r8
|
||||
ldrb r1, [r0]
|
||||
lsls r1, 5
|
||||
@@ -1077,7 +1077,7 @@ _08034626:
|
||||
.align 2, 0
|
||||
_08034638: .4byte 0x00000181
|
||||
_0803463C: .4byte gBattleStruct
|
||||
_08034640: .4byte gUnknown_2024024
|
||||
_08034640: .4byte gBattleMonForms
|
||||
_08034644: .4byte gUnknown_2024018
|
||||
_08034648: .4byte 0x00007fff
|
||||
_0803464C: .4byte gUnknown_20375F8
|
||||
@@ -1927,7 +1927,7 @@ _08034C16:
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _08034D7C @ =gUnknown_2024024
|
||||
ldr r1, _08034D7C @ =gBattleMonForms
|
||||
add r1, r9
|
||||
ldrb r1, [r1]
|
||||
bl StartSpriteAnim
|
||||
@@ -1968,7 +1968,7 @@ _08034D6C: .4byte gUnknown_2023D44
|
||||
_08034D70: .4byte 0x06010000
|
||||
_08034D74: .4byte 0x040000d4
|
||||
_08034D78: .4byte 0x84000200
|
||||
_08034D7C: .4byte gUnknown_2024024
|
||||
_08034D7C: .4byte gBattleMonForms
|
||||
_08034D80: .4byte gSpeciesNames
|
||||
_08034D84: .4byte gUnknown_3004FF0
|
||||
_08034D88:
|
||||
@@ -2008,7 +2008,7 @@ _08034D88:
|
||||
mov r1, r10
|
||||
movs r2, 0x20
|
||||
bl LoadPalette
|
||||
ldr r1, _08034E38 @ =gUnknown_2024024
|
||||
ldr r1, _08034E38 @ =gBattleMonForms
|
||||
add r1, r9
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x8]
|
||||
@@ -2052,7 +2052,7 @@ _08034E28: .4byte gUnknown_2023D44
|
||||
_08034E2C: .4byte gSprites
|
||||
_08034E30: .4byte gUnknown_2024018
|
||||
_08034E34: .4byte gBattleStruct
|
||||
_08034E38: .4byte gUnknown_2024024
|
||||
_08034E38: .4byte gBattleMonForms
|
||||
_08034E3C: .4byte 0x00007fff
|
||||
_08034E40: .4byte gUnknown_20375F8
|
||||
_08034E44: .4byte gUnknown_20371F8
|
||||
@@ -2244,7 +2244,7 @@ _08034F5E:
|
||||
adds r1, r4
|
||||
adds r0, r6, 0
|
||||
bl LZDecompressWram
|
||||
ldr r0, _080350A4 @ =gUnknown_2024024
|
||||
ldr r0, _080350A4 @ =gBattleMonForms
|
||||
ldr r1, [sp]
|
||||
adds r0, r1, r0
|
||||
ldrb r1, [r0]
|
||||
@@ -2276,7 +2276,7 @@ _08034FFC:
|
||||
adds r0, r3, r0
|
||||
mov r1, r8
|
||||
strh r1, [r0, 0x2]
|
||||
ldr r0, _080350A4 @ =gUnknown_2024024
|
||||
ldr r0, _080350A4 @ =gBattleMonForms
|
||||
mov r2, r9
|
||||
adds r4, r2, r0
|
||||
ldr r3, [sp]
|
||||
@@ -2325,7 +2325,7 @@ _08035094: .4byte 0x040000d4
|
||||
_08035098: .4byte 0x84000200
|
||||
_0803509C: .4byte 0x00000181
|
||||
_080350A0: .4byte gBattleStruct
|
||||
_080350A4: .4byte gUnknown_2024024
|
||||
_080350A4: .4byte gBattleMonForms
|
||||
_080350A8: .4byte 0x00007fff
|
||||
_080350AC: .4byte gUnknown_20375F8
|
||||
_080350B0: .4byte gUnknown_20371F8
|
||||
@@ -2465,7 +2465,7 @@ LoadBattleMonGfxAndAnimate: @ 80351A8
|
||||
lsls r0, 2
|
||||
ldr r1, _080351E4 @ =gSprites
|
||||
adds r4, r0, r1
|
||||
ldr r0, _080351E8 @ =gUnknown_2024024
|
||||
ldr r0, _080351E8 @ =gBattleMonForms
|
||||
adds r0, r6, r0
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, 0
|
||||
@@ -2477,7 +2477,7 @@ LoadBattleMonGfxAndAnimate: @ 80351A8
|
||||
b _080351F2
|
||||
.align 2, 0
|
||||
_080351E4: .4byte gSprites
|
||||
_080351E8: .4byte gUnknown_2024024
|
||||
_080351E8: .4byte gBattleMonForms
|
||||
_080351EC:
|
||||
adds r0, r6, 0
|
||||
bl GetBankSpriteDefault_Y
|
||||
@@ -3371,7 +3371,7 @@ ClearTemporarySpeciesSpriteData: @ 803589C
|
||||
movs r3, 0
|
||||
movs r2, 0
|
||||
strh r2, [r0, 0x2]
|
||||
ldr r0, _080358D0 @ =gUnknown_2024024
|
||||
ldr r0, _080358D0 @ =gBattleMonForms
|
||||
adds r0, r4, r0
|
||||
strb r3, [r0]
|
||||
cmp r1, 0
|
||||
@@ -3384,7 +3384,7 @@ _080358C4:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080358CC: .4byte gUnknown_2024018
|
||||
_080358D0: .4byte gUnknown_2024024
|
||||
_080358D0: .4byte gBattleMonForms
|
||||
thumb_func_end ClearTemporarySpeciesSpriteData
|
||||
|
||||
thumb_func_start AllocateMonSpritesGfx
|
||||
|
||||
@@ -707,7 +707,7 @@ _080D77F0: .4byte gUnknown_83FDF3C
|
||||
BattleStringExpandPlaceholdersToDisplayedString: @ 80D77F4
|
||||
push {lr}
|
||||
ldr r1, _080D7800 @ =gDisplayedStringBattle
|
||||
bl sub_80D7868
|
||||
bl BattleStringExpandPlaceholders
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
@@ -770,8 +770,8 @@ _080D785E:
|
||||
bx r1
|
||||
thumb_func_end TryGetStatusString
|
||||
|
||||
thumb_func_start sub_80D7868
|
||||
sub_80D7868: @ 80D7868
|
||||
thumb_func_start BattleStringExpandPlaceholders
|
||||
BattleStringExpandPlaceholders: @ 80D7868
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
@@ -2177,7 +2177,7 @@ _080D83FA:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80D7868
|
||||
thumb_func_end BattleStringExpandPlaceholders
|
||||
|
||||
thumb_func_start ExpandBattleTextBuffPlaceholders
|
||||
ExpandBattleTextBuffPlaceholders: @ 80D8418
|
||||
|
||||
+2
-2
@@ -734,7 +734,7 @@ sub_8083970: @ 8083970
|
||||
str r2, [sp, 0x4]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x8]
|
||||
ldr r1, _080839C0 @ =gUnknown_823730C
|
||||
ldr r1, _080839C0 @ =gMonPaletteTable
|
||||
lsls r4, r0, 3
|
||||
adds r4, r1
|
||||
ldrh r1, [r4, 0x4]
|
||||
@@ -758,7 +758,7 @@ sub_8083970: @ 8083970
|
||||
lsrs r0, 24
|
||||
b _080839CA
|
||||
.align 2, 0
|
||||
_080839C0: .4byte gUnknown_823730C
|
||||
_080839C0: .4byte gMonPaletteTable
|
||||
_080839C4: .4byte 0x0000ffff
|
||||
_080839C8:
|
||||
movs r0, 0x40
|
||||
|
||||
-1306
File diff suppressed because it is too large
Load Diff
@@ -726,7 +726,7 @@ _08077CD2:
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _08077DA8 @ =gUnknown_2024024
|
||||
ldr r1, _08077DA8 @ =gBattleMonForms
|
||||
adds r1, r7, r1
|
||||
ldrb r1, [r1]
|
||||
bl StartSpriteAnim
|
||||
@@ -738,7 +738,7 @@ _08077D98: .4byte gMultiuseSpriteTemplate
|
||||
_08077D9C: .4byte gUnknown_2023D44
|
||||
_08077DA0: .4byte gSprites
|
||||
_08077DA4: .4byte SpriteCallbackDummy
|
||||
_08077DA8: .4byte gUnknown_2024024
|
||||
_08077DA8: .4byte gBattleMonForms
|
||||
_08077DAC:
|
||||
ldr r0, _08077E00 @ =gBattleTypeFlags
|
||||
ldr r1, [r0]
|
||||
@@ -952,7 +952,7 @@ _08077EA8:
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r5
|
||||
ldr r1, _08077FDC @ =gUnknown_2024024
|
||||
ldr r1, _08077FDC @ =gBattleMonForms
|
||||
adds r1, r7, r1
|
||||
ldrb r1, [r1]
|
||||
bl StartSpriteAnim
|
||||
@@ -996,7 +996,7 @@ _08077FCC: .4byte gMultiuseSpriteTemplate
|
||||
_08077FD0: .4byte gUnknown_2023D44
|
||||
_08077FD4: .4byte gSprites
|
||||
_08077FD8: .4byte SpriteCallbackDummy
|
||||
_08077FDC: .4byte gUnknown_2024024
|
||||
_08077FDC: .4byte gBattleMonForms
|
||||
_08077FE0: .4byte gUnknown_2024018
|
||||
thumb_func_end sub_8077C38
|
||||
|
||||
|
||||
+5
-5
@@ -79,13 +79,13 @@ gUnknown_8235E6C:: @ 8235E6C
|
||||
gUnknown_823654C:: @ 823654C
|
||||
.incbin "baserom.gba", 0x23654C, 0xDC0
|
||||
|
||||
gUnknown_823730C:: @ 823730C
|
||||
gMonPaletteTable:: @ 823730C
|
||||
.incbin "baserom.gba", 0x23730C, 0xE8
|
||||
|
||||
gUnknown_82373F4:: @ 82373F4
|
||||
.incbin "baserom.gba", 0x2373F4, 0xCD8
|
||||
|
||||
gUnknown_82380CC:: @ 82380CC
|
||||
gMonShinyPaletteTable:: @ 82380CC
|
||||
.incbin "baserom.gba", 0x2380CC, 0x1010
|
||||
|
||||
gTrainerFrontAnimsPtrTable:: @ 82390DC
|
||||
@@ -316,7 +316,7 @@ gItemEffectTable:: @ 82528BC
|
||||
gNatureStatTable:: @ 8252B48
|
||||
.incbin "baserom.gba", 0x252B48, 0x80
|
||||
|
||||
gUnknown_8252BC8:: @ 8252BC8
|
||||
gTMHMLearnsets:: @ 8252BC8
|
||||
.incbin "baserom.gba", 0x252BC8, 0xCE0
|
||||
|
||||
gFacilityClassToPicIndex:: @ 82538A8
|
||||
@@ -343,7 +343,7 @@ gEvolutionTable:: @ 8259754
|
||||
gLevelUpLearnsets:: @ 825D7B4
|
||||
.incbin "baserom.gba", 0x25D7B4, 0x670
|
||||
|
||||
gUnknown_825DE24:: @ 825DE24
|
||||
gPokeblockFlavorCompatibilityTable:: @ 825DE24
|
||||
.incbin "baserom.gba", 0x25DE24, 0x7D
|
||||
|
||||
gUnknown_825DEA1:: @ 825DEA1
|
||||
@@ -379,7 +379,7 @@ gUnknown_825DFF0:: @ 825DFF0
|
||||
sFriendshipEventDeltas:: @ 825DFF6
|
||||
.incbin "baserom.gba", 0x25DFF6, 0x1E
|
||||
|
||||
gUnknown_825E014:: @ 825E014
|
||||
sHMMoves:: @ 825E014
|
||||
.incbin "baserom.gba", 0x25E014, 0x12
|
||||
|
||||
gUnknown_825E026:: @ 825E026
|
||||
|
||||
+1
-1
@@ -282,7 +282,7 @@ BattleText_MistShroud:: @ 83FBBB4
|
||||
BattleText_GetPumped:: @ 83FBBE9
|
||||
.incbin "baserom.gba", 0x3FBBE9, 0xE43
|
||||
|
||||
gUnknown_83FCA2C:: @ 83FCA2C
|
||||
gText_PkmnsXPreventsSwitching:: @ 83FCA2C
|
||||
.incbin "baserom.gba", 0x3FCA2C, 0x11E
|
||||
|
||||
BattleText_Rose:: @ 83FCB4A
|
||||
|
||||
+3
-3
@@ -47,7 +47,7 @@
|
||||
#define BATTLE_TYPE_LEGENDARY 0x2000
|
||||
#define BATTLE_TYPE_REGI 0x4000
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
|
||||
#define BATTLE_TYPE_DOME 0x10000
|
||||
#define BATTLE_TYPE_DOME 0x10000 // this is used in pokemon.c, but its clearly not the correct name for FR/LG. TODO: Fix these
|
||||
#define BATTLE_TYPE_PALACE 0x20000
|
||||
#define BATTLE_TYPE_ARENA 0x40000
|
||||
#define BATTLE_TYPE_FACTORY 0x80000
|
||||
@@ -545,7 +545,7 @@ struct BattleStruct
|
||||
u8 field_46;
|
||||
u8 field_47;
|
||||
u8 focusPunchBank;
|
||||
u8 field_49;
|
||||
u8 battlerPreventingSwitchout;
|
||||
u8 moneyMultiplier;
|
||||
u8 savedTurnActionNumber;
|
||||
u8 switchInAbilitiesCounter;
|
||||
@@ -598,7 +598,7 @@ struct BattleStruct
|
||||
u8 field_A7;
|
||||
u16 hpOnSwitchout[2];
|
||||
u32 savedBattleTypeFlags;
|
||||
u8 field_B0;
|
||||
u8 abilityPreventingSwitchout;
|
||||
u8 hpScale;
|
||||
u8 synchronizeMoveEffect;
|
||||
u8 field_B3;
|
||||
|
||||
+407
-4
@@ -15,6 +15,8 @@
|
||||
#include "evolution_scene.h"
|
||||
#include "battle_message.h"
|
||||
#include "link.h"
|
||||
#include "m4a.h"
|
||||
#include "sound.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/pokemon.h"
|
||||
@@ -51,14 +53,13 @@ extern const u8 gUnknown_825DEA1[];
|
||||
extern const u8 gPPUpWriteMasks[];
|
||||
extern u8 *gUnknown_83FD5D0[];
|
||||
extern const u8 gUnknown_825DFF0[];
|
||||
extern u8 gBattleTextBuff1[];
|
||||
extern u8 gBattleTextBuff2[];
|
||||
extern const u8 gText_EggNickname[];
|
||||
extern const u8 gText_BadEgg[];
|
||||
extern const u8 BattleText_Rose[];
|
||||
extern const u8 BattleText_UnknownString3[];
|
||||
extern const u8 BattleText_GetPumped[];
|
||||
extern const u8 BattleText_MistShroud[];
|
||||
extern const u8 gText_PkmnsXPreventsSwitching[];
|
||||
extern const u8 sHoldEffectToType[][2];
|
||||
extern u8 sLearningMoveTableID;
|
||||
extern const u8 sSecretBaseFacilityClasses[2][5];
|
||||
@@ -69,6 +70,12 @@ extern u16 gUnknown_82539D4[];
|
||||
extern struct SpindaSpot gSpindaSpotGraphics[];
|
||||
extern s8 gNatureStatTable[][5];
|
||||
extern const s8 sFriendshipEventDeltas[][3];
|
||||
extern u32 gTMHMLearnsets[][2];
|
||||
extern u8 gBattleMonForms[4];
|
||||
extern const struct CompressedSpritePalette gMonPaletteTable[];
|
||||
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
|
||||
extern const u16 sHMMoves[];
|
||||
extern s8 gPokeblockFlavorCompatibilityTable[];
|
||||
|
||||
// External functions
|
||||
extern u8 sav1_map_get_name(void); // overworld
|
||||
@@ -4577,7 +4584,7 @@ u8 GetNatureFromPersonality(u32 personality)
|
||||
return personality % 25;
|
||||
}
|
||||
|
||||
extern bool32 sub_806E25C(u16 targetSpecies);
|
||||
extern bool32 sub_806E25C(void);
|
||||
|
||||
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
|
||||
{
|
||||
@@ -4679,7 +4686,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
|
||||
if (gEvolutionTable[species][i].param == heldItem)
|
||||
{
|
||||
targetSpecies = gEvolutionTable[species][i].targetSpecies;
|
||||
if (sub_806E25C(targetSpecies) || targetSpecies <= 151)
|
||||
if (sub_806E25C() || targetSpecies <= 151)
|
||||
{
|
||||
heldItem = 0;
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem);
|
||||
@@ -5204,3 +5211,399 @@ void sub_8043B40(void)
|
||||
{
|
||||
u8 foo[4]; // huh?
|
||||
}
|
||||
|
||||
void sub_8043B48(struct Pokemon *mon, int species, u8 unused, u32 data)
|
||||
{
|
||||
if (data > gExperienceTables[gBaseStats[species].growthRate][100])
|
||||
{
|
||||
data = gExperienceTables[gBaseStats[species].growthRate][100];
|
||||
SetMonData(mon, MON_DATA_EXP, &data);
|
||||
}
|
||||
}
|
||||
|
||||
bool32 sub_8043B90(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL);
|
||||
u8 newLevel = level + 1;
|
||||
u32 exp = GetMonData(mon, MON_DATA_EXP, NULL);
|
||||
|
||||
if(level < 100)
|
||||
{
|
||||
if(exp > gExperienceTables[gBaseStats[species].growthRate][newLevel])
|
||||
{
|
||||
SetMonData(mon, MON_DATA_LEVEL, &newLevel);
|
||||
sub_8043B48(mon, species, newLevel, exp);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8043B48(mon, species, level, exp);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
|
||||
if (species == SPECIES_EGG)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else if (tm < 32)
|
||||
{
|
||||
u32 mask = 1 << tm;
|
||||
return gTMHMLearnsets[species][0] & mask;
|
||||
}
|
||||
else
|
||||
{
|
||||
u32 mask = 1 << (tm - 32);
|
||||
return gTMHMLearnsets[species][1] & mask;
|
||||
}
|
||||
}
|
||||
|
||||
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves)
|
||||
{
|
||||
u16 learnedMoves[4];
|
||||
u8 numMoves = 0;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL, 0);
|
||||
int i, j, k;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0);
|
||||
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
u16 moveLevel;
|
||||
|
||||
if (gLevelUpLearnsets[species][i] == 0xFFFF)
|
||||
break;
|
||||
|
||||
moveLevel = gLevelUpLearnsets[species][i] & 0xFE00;
|
||||
|
||||
if (moveLevel <= (level << 9))
|
||||
{
|
||||
for (j = 0; j < 4 && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++)
|
||||
;
|
||||
|
||||
if (j == 4)
|
||||
{
|
||||
for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++)
|
||||
;
|
||||
|
||||
if (k == numMoves)
|
||||
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return numMoves;
|
||||
}
|
||||
|
||||
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
|
||||
{
|
||||
u8 numMoves = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != 0xFFFF; i++)
|
||||
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
|
||||
|
||||
return numMoves;
|
||||
}
|
||||
|
||||
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon)
|
||||
{
|
||||
u16 learnedMoves[4];
|
||||
u16 moves[20];
|
||||
u8 numMoves = 0;
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL, 0);
|
||||
int i, j, k;
|
||||
|
||||
if (species == SPECIES_EGG)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0);
|
||||
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
u16 moveLevel;
|
||||
|
||||
if (gLevelUpLearnsets[species][i] == 0xFFFF)
|
||||
break;
|
||||
|
||||
moveLevel = gLevelUpLearnsets[species][i] & 0xFE00;
|
||||
|
||||
if (moveLevel <= (level << 9))
|
||||
{
|
||||
for (j = 0; j < 4 && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++)
|
||||
;
|
||||
|
||||
if (j == 4)
|
||||
{
|
||||
for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++)
|
||||
;
|
||||
|
||||
if (k == numMoves)
|
||||
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return numMoves;
|
||||
}
|
||||
|
||||
// SpeciesToPokedexNum?
|
||||
u16 sub_8043F90(u16 species)
|
||||
{
|
||||
species = SpeciesToNationalPokedexNum(species);
|
||||
|
||||
if (!sub_806E25C() && species > 151)
|
||||
return 0xFFFF;
|
||||
return species;
|
||||
}
|
||||
|
||||
void ClearBattleMonForms(void)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < 4; i++)
|
||||
gBattleMonForms[i] = 0;
|
||||
}
|
||||
|
||||
u16 GetMUS_ForBattle(void)
|
||||
{
|
||||
if(gBattleTypeFlags & 0x1000)
|
||||
return 0x12A;
|
||||
if(gBattleTypeFlags & 0x4000)
|
||||
return 0x10A;
|
||||
if(gBattleTypeFlags & 0x2)
|
||||
return 0x10A;
|
||||
if(gBattleTypeFlags & 0x8)
|
||||
{
|
||||
switch (gTrainers[gTrainerBattleOpponent_A].trainerClass)
|
||||
{
|
||||
case 0x5A:
|
||||
return 0x12B;
|
||||
case 0x54:
|
||||
case 0x57:
|
||||
return 0x128;
|
||||
case 0x53:
|
||||
case 0x55:
|
||||
case 0x56:
|
||||
case 0x58:
|
||||
case 0x59:
|
||||
default:
|
||||
return 0x129;
|
||||
}
|
||||
}
|
||||
return 0x12A;
|
||||
}
|
||||
|
||||
void PlayBattleBGM(void)
|
||||
{
|
||||
ResetMapMusic();
|
||||
m4aMPlayAllStop();
|
||||
PlayBGM(GetMUS_ForBattle());
|
||||
}
|
||||
|
||||
void PlayMapChosenOrBattleBGM(u16 songId)
|
||||
{
|
||||
ResetMapMusic();
|
||||
m4aMPlayAllStop();
|
||||
if (songId)
|
||||
PlayNewMapMusic(songId);
|
||||
else
|
||||
PlayNewMapMusic(GetMUS_ForBattle());
|
||||
}
|
||||
|
||||
const u8 *GetMonFrontSpritePal(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
|
||||
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
|
||||
return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality);
|
||||
}
|
||||
|
||||
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)
|
||||
{
|
||||
u32 shinyValue;
|
||||
|
||||
if (species > SPECIES_EGG)
|
||||
return gMonPaletteTable[0].data;
|
||||
|
||||
shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
|
||||
if (shinyValue < 8)
|
||||
return gMonShinyPaletteTable[species].data;
|
||||
else
|
||||
return gMonPaletteTable[species].data;
|
||||
}
|
||||
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon)
|
||||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
|
||||
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
|
||||
return GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
|
||||
}
|
||||
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality)
|
||||
{
|
||||
u32 shinyValue;
|
||||
|
||||
shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
|
||||
if (shinyValue < 8)
|
||||
return &gMonShinyPaletteTable[species];
|
||||
else
|
||||
return &gMonPaletteTable[species];
|
||||
}
|
||||
|
||||
bool32 IsHMMove2(u16 move)
|
||||
{
|
||||
int i = 0;
|
||||
while (sHMMoves[i] != 0xFFFF)
|
||||
{
|
||||
if (sHMMoves[i++] == move)
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 IsPokeSpriteNotFlipped(u16 species)
|
||||
{
|
||||
return gBaseStats[species].noFlip;
|
||||
}
|
||||
|
||||
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor)
|
||||
{
|
||||
u8 nature = GetNature(mon);
|
||||
return gPokeblockFlavorCompatibilityTable[nature * 5 + flavor];
|
||||
}
|
||||
|
||||
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor)
|
||||
{
|
||||
u8 nature = GetNatureFromPersonality(personality);
|
||||
return gPokeblockFlavorCompatibilityTable[nature * 5 + flavor];
|
||||
}
|
||||
|
||||
bool8 IsTradedMon(struct Pokemon *mon)
|
||||
{
|
||||
u8 otName[7 + 1]; // change PLAYER_NAME_LENGTH to 7
|
||||
u32 otId;
|
||||
GetMonData(mon, MON_DATA_OT_NAME, otName);
|
||||
otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
return IsOtherTrainer(otId, otName);
|
||||
}
|
||||
|
||||
bool8 IsOtherTrainer(u32 otId, u8 *otName)
|
||||
{
|
||||
if (otId ==
|
||||
(gSaveBlock2Ptr->playerTrainerId[0]
|
||||
| (gSaveBlock2Ptr->playerTrainerId[1] << 8)
|
||||
| (gSaveBlock2Ptr->playerTrainerId[2] << 16)
|
||||
| (gSaveBlock2Ptr->playerTrainerId[3] << 24)))
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; otName[i] != EOS; i++)
|
||||
if (otName[i] != gSaveBlock2Ptr->playerName[i])
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void MonRestorePP(struct Pokemon *mon)
|
||||
{
|
||||
BoxMonRestorePP(&mon->box);
|
||||
}
|
||||
|
||||
void BoxMonRestorePP(struct BoxPokemon *boxMon)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, 0))
|
||||
{
|
||||
u16 move = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, 0);
|
||||
u16 bonus = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES, 0);
|
||||
u8 pp = CalculatePPWithBonus(move, bonus, i);
|
||||
SetBoxMonData(boxMon, MON_DATA_PP1 + i, &pp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// SetMonPreventsSwitchingString
|
||||
void sub_8044348(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
gLastUsedAbility = gBattleStruct -> abilityPreventingSwitchout; // fixed from the original
|
||||
#else
|
||||
gLastUsedAbility = ((u8 *) gBattleStruct)[0xac]; // huh? why is this wrong?
|
||||
#endif
|
||||
|
||||
gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN;
|
||||
gBattleTextBuff1[1] = B_BUFF_MON_NICK_WITH_PREFIX;
|
||||
gBattleTextBuff1[2] = gBattleStruct->battlerPreventingSwitchout;
|
||||
gBattleTextBuff1[4] = B_BUFF_EOS;
|
||||
|
||||
if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER)
|
||||
gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]);
|
||||
else
|
||||
gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout];
|
||||
|
||||
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, pokemon_order_func(gBattlerPartyIndexes[gBattlerInMenuId]))
|
||||
|
||||
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4);
|
||||
}
|
||||
|
||||
void SetWildMonHeldItem(void)
|
||||
{
|
||||
// TODO: Replace 0x00010000 with the right flag that isnt BATTLE_TYPE_DOME
|
||||
if (!(gBattleTypeFlags & (0x00010000 | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER)))
|
||||
{
|
||||
u16 rnd = Random() % 100;
|
||||
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0);
|
||||
if (gBaseStats[species].item1 == gBaseStats[species].item2)
|
||||
{
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (rnd > 44)
|
||||
{
|
||||
if (rnd <= 94)
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
|
||||
else
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool8 IsMonShiny(struct Pokemon *mon)
|
||||
{
|
||||
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
|
||||
return IsShinyOtIdPersonality(otId, personality);
|
||||
}
|
||||
|
||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality)
|
||||
{
|
||||
bool8 retVal = FALSE;
|
||||
u32 shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
|
||||
if (shinyValue < 8)
|
||||
retVal = TRUE;
|
||||
return retVal;
|
||||
}
|
||||
|
||||
u8 *sub_80444C4(void)
|
||||
{
|
||||
u8 id = GetMultiplayerId();
|
||||
return gLinkPlayers[GetBankMultiplayerId(gLinkPlayers[id].id ^ 2)].name;
|
||||
}
|
||||
|
||||
+1
-1
@@ -464,7 +464,7 @@ gBattleMovePower: @ 2024020
|
||||
gMoveToLearn: @ 2024022
|
||||
.space 0x2
|
||||
|
||||
gUnknown_2024024: @ 2024024
|
||||
gBattleMonForms: @ 2024024
|
||||
.space 0x4
|
||||
|
||||
sLearningMoveTableID: @ 2024028
|
||||
|
||||
Reference in New Issue
Block a user