diff options
92 files changed, 16585 insertions, 15137 deletions
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s index ae6709650..32429e22d 100644 --- a/asm/battle_anim_80CA710.s +++ b/asm/battle_anim_80CA710.s @@ -31309,7 +31309,7 @@ sub_80D97CC: @ 80D97CC ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9828 - ldr r4, _080D981C @ =gUnknown_02024C07 + ldr r4, _080D981C @ =gPlayerMonIndex ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC @@ -31338,7 +31338,7 @@ sub_80D97CC: @ 80D97CC b _080D9844 .align 2, 0 _080D9818: .4byte gBattleAnimArgs -_080D981C: .4byte gUnknown_02024C07 +_080D981C: .4byte gPlayerMonIndex _080D9820: .4byte gUnknown_0202F7C8 _080D9824: .4byte gUnknown_0202F7C9 _080D9828: @@ -31614,7 +31614,7 @@ sub_80D9A38: @ 80D9A38 ldrsh r0, [r0, r1] cmp r0, 0 bne _080D9A7C - ldr r4, _080D9A70 @ =gUnknown_02024C07 + ldr r4, _080D9A70 @ =gPlayerMonIndex ldrb r0, [r4] movs r1, 0x2 bl sub_8077ABC @@ -31633,7 +31633,7 @@ sub_80D9A38: @ 80D9A38 b _080D9A82 .align 2, 0 _080D9A6C: .4byte gBattleAnimArgs -_080D9A70: .4byte gUnknown_02024C07 +_080D9A70: .4byte gPlayerMonIndex _080D9A74: .4byte gUnknown_0202F7C9 _080D9A78: .4byte gUnknown_0202F7C8 _080D9A7C: @@ -43672,7 +43672,7 @@ sub_80DF78C: @ 80DF78C ldr r0, _080DF7E4 @ =gBattleAnimArgs ldrh r0, [r0] strh r0, [r6, 0x3A] - ldr r4, _080DF7E8 @ =gUnknown_02024C07 + ldr r4, _080DF7E8 @ =gPlayerMonIndex ldrb r0, [r4] movs r1, 0 bl sub_807A100 @@ -43690,7 +43690,7 @@ sub_80DF78C: @ 80DF78C .align 2, 0 _080DF7E0: .4byte gUnknown_0202F7C8 _080DF7E4: .4byte gBattleAnimArgs -_080DF7E8: .4byte gUnknown_02024C07 +_080DF7E8: .4byte gPlayerMonIndex _080DF7EC: lsrs r0, r1, 17 _080DF7EE: @@ -53227,7 +53227,7 @@ sub_80E4234: @ 80E4234 lsls r0, 24 lsrs r0, 24 ldr r2, _080E4254 @ =gUnknown_0202F7C8 - ldr r1, _080E4258 @ =gUnknown_02024C08 + ldr r1, _080E4258 @ =gEnemyMonIndex ldrb r1, [r1] strb r1, [r2] ldr r2, _080E425C @ =gUnknown_0202F7C9 @@ -53239,7 +53239,7 @@ sub_80E4234: @ 80E4234 bx r0 .align 2, 0 _080E4254: .4byte gUnknown_0202F7C8 -_080E4258: .4byte gUnknown_02024C08 +_080E4258: .4byte gEnemyMonIndex _080E425C: .4byte gUnknown_0202F7C9 _080E4260: .4byte gUnknown_02024C0A thumb_func_end sub_80E4234 @@ -53287,7 +53287,7 @@ sub_80E42B0: @ 80E42B0 lsls r0, 24 lsrs r0, 24 ldr r2, _080E42C8 @ =gUnknown_0202F7C9 - ldr r1, _080E42CC @ =gUnknown_02024C08 + ldr r1, _080E42CC @ =gEnemyMonIndex ldrb r1, [r1] strb r1, [r2] bl move_anim_task_del @@ -53295,7 +53295,7 @@ sub_80E42B0: @ 80E42B0 bx r0 .align 2, 0 _080E42C8: .4byte gUnknown_0202F7C9 -_080E42CC: .4byte gUnknown_02024C08 +_080E42CC: .4byte gEnemyMonIndex thumb_func_end sub_80E42B0 thumb_func_start sub_80E42D0 @@ -53304,7 +53304,7 @@ sub_80E42D0: @ 80E42D0 lsls r0, 24 lsrs r0, 24 ldr r2, _080E42F0 @ =gUnknown_0202F7C8 - ldr r1, _080E42F4 @ =gUnknown_02024C07 + ldr r1, _080E42F4 @ =gPlayerMonIndex ldrb r1, [r1] strb r1, [r2] ldr r2, _080E42F8 @ =gUnknown_0202F7C9 @@ -53316,7 +53316,7 @@ sub_80E42D0: @ 80E42D0 bx r0 .align 2, 0 _080E42F0: .4byte gUnknown_0202F7C8 -_080E42F4: .4byte gUnknown_02024C07 +_080E42F4: .4byte gPlayerMonIndex _080E42F8: .4byte gUnknown_0202F7C9 _080E42FC: .4byte gUnknown_02024C0A thumb_func_end sub_80E42D0 diff --git a/asm/battle_message.s b/asm/battle_message.s index c4e4a7dd0..17841a4e9 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -968,7 +968,7 @@ _0812129C: .4byte gUnknown_02024A6A _081212A0: .4byte gLinkPlayers _081212A4: .4byte gEnemyParty _081212A8: - ldr r4, _081212CC @ =gUnknown_02024C07 + ldr r4, _081212CC @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -985,7 +985,7 @@ _081212A8: ldr r4, _081212D8 @ =gUnknown_08400797 b _081212E6 .align 2, 0 -_081212CC: .4byte gUnknown_02024C07 +_081212CC: .4byte gPlayerMonIndex _081212D0: .4byte gBattleTypeFlags _081212D4: .4byte gUnknown_08400791 _081212D8: .4byte gUnknown_08400797 @@ -1035,7 +1035,7 @@ _0812131C: .align 2, 0 _08121338: .4byte gUnknown_02024A6A _0812133C: - ldr r4, _08121370 @ =gUnknown_02024C07 + ldr r4, _08121370 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -1059,7 +1059,7 @@ _0812133C: adds r0, r1 b _0812190E .align 2, 0 -_08121370: .4byte gUnknown_02024C07 +_08121370: .4byte gPlayerMonIndex _08121374: .4byte gUnknown_02024A6A _08121378: .4byte gPlayerParty _0812137C: @@ -1083,7 +1083,7 @@ _0812137C: _081213A0: .4byte gUnknown_02024A6A _081213A4: .4byte gEnemyParty _081213A8: - ldr r5, _081213F4 @ =gUnknown_02024C07 + ldr r5, _081213F4 @ =gPlayerMonIndex ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 @@ -1123,7 +1123,7 @@ _081213E8: ldrh r1, [r0] b _08121908 .align 2, 0 -_081213F4: .4byte gUnknown_02024C07 +_081213F4: .4byte gPlayerMonIndex _081213F8: .4byte gBattleTypeFlags _081213FC: .4byte gUnknown_08400791 _08121400: .4byte gUnknown_08400797 @@ -1139,7 +1139,7 @@ _0812140C: .align 2, 0 _08121418: .4byte gUnknown_02024A6A _0812141C: - ldr r5, _08121468 @ =gUnknown_02024C08 + ldr r5, _08121468 @ =gEnemyMonIndex ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 @@ -1179,7 +1179,7 @@ _0812145C: ldrh r1, [r0] b _08121908 .align 2, 0 -_08121468: .4byte gUnknown_02024C08 +_08121468: .4byte gEnemyMonIndex _0812146C: .4byte gBattleTypeFlags _08121470: .4byte gUnknown_08400791 _08121474: .4byte gUnknown_08400797 @@ -1489,18 +1489,18 @@ _081216EC: _081216F0: .4byte byte_2024C06 _081216F4: ldr r1, _081216FC @ =gUnknown_0203926C - ldr r0, _08121700 @ =gUnknown_02024C07 + ldr r0, _08121700 @ =gPlayerMonIndex b _08121730 .align 2, 0 _081216FC: .4byte gUnknown_0203926C -_08121700: .4byte gUnknown_02024C07 +_08121700: .4byte gPlayerMonIndex _08121704: ldr r1, _0812170C @ =gUnknown_0203926C - ldr r0, _08121710 @ =gUnknown_02024C08 + ldr r0, _08121710 @ =gEnemyMonIndex b _08121730 .align 2, 0 _0812170C: .4byte gUnknown_0203926C -_08121710: .4byte gUnknown_02024C08 +_08121710: .4byte gEnemyMonIndex _08121714: ldr r1, _08121720 @ =gUnknown_0203926C ldr r0, _08121724 @ =0x02000000 @@ -1805,12 +1805,12 @@ _08121970: .4byte 0x0000084b _08121974: .4byte gUnknown_084009ED _08121978: .4byte gUnknown_084009F7 _0812197C: - ldr r0, _08121980 @ =gUnknown_02024C07 + ldr r0, _08121980 @ =gPlayerMonIndex b _08121986 .align 2, 0 -_08121980: .4byte gUnknown_02024C07 +_08121980: .4byte gPlayerMonIndex _08121984: - ldr r0, _08121998 @ =gUnknown_02024C08 + ldr r0, _08121998 @ =gEnemyMonIndex _08121986: ldrb r0, [r0] bl battle_side_get_owner @@ -1821,16 +1821,16 @@ _08121986: ldr r4, _081219A0 @ =gUnknown_084007AC b _081219E6 .align 2, 0 -_08121998: .4byte gUnknown_02024C08 +_08121998: .4byte gEnemyMonIndex _0812199C: .4byte gUnknown_084007A7 _081219A0: .4byte gUnknown_084007AC _081219A4: - ldr r0, _081219A8 @ =gUnknown_02024C07 + ldr r0, _081219A8 @ =gPlayerMonIndex b _081219AE .align 2, 0 -_081219A8: .4byte gUnknown_02024C07 +_081219A8: .4byte gPlayerMonIndex _081219AC: - ldr r0, _081219C0 @ =gUnknown_02024C08 + ldr r0, _081219C0 @ =gEnemyMonIndex _081219AE: ldrb r0, [r0] bl battle_side_get_owner @@ -1841,16 +1841,16 @@ _081219AE: ldr r4, _081219C8 @ =gUnknown_084007A1 b _081219E6 .align 2, 0 -_081219C0: .4byte gUnknown_02024C08 +_081219C0: .4byte gEnemyMonIndex _081219C4: .4byte gUnknown_0840079C _081219C8: .4byte gUnknown_084007A1 _081219CC: - ldr r0, _081219D0 @ =gUnknown_02024C07 + ldr r0, _081219D0 @ =gPlayerMonIndex b _081219D6 .align 2, 0 -_081219D0: .4byte gUnknown_02024C07 +_081219D0: .4byte gPlayerMonIndex _081219D4: - ldr r0, _08121A24 @ =gUnknown_02024C08 + ldr r0, _08121A24 @ =gEnemyMonIndex _081219D6: ldrb r0, [r0] bl battle_side_get_owner @@ -1894,7 +1894,7 @@ _08121A06: adds r6, 0x1 b _08121A3C .align 2, 0 -_08121A24: .4byte gUnknown_02024C08 +_08121A24: .4byte gEnemyMonIndex _08121A28: .4byte gUnknown_084007B2 _08121A2C: .4byte gUnknown_084007B7 _08121A30: diff --git a/asm/contest.s b/asm/contest.s index 8a8a65edb..92f5e362a 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -878,9 +878,9 @@ _080AB8CC: strb r2, [r1, 0x3] ldr r0, _080AB92C @ =gBattleTypeFlags strh r4, [r0] - ldr r4, _080AB930 @ =gUnknown_02024C07 + ldr r4, _080AB930 @ =gPlayerMonIndex strb r2, [r4] - ldr r0, _080AB934 @ =gUnknown_02024C08 + ldr r0, _080AB934 @ =gEnemyMonIndex strb r3, [r0] bl sub_80AE858 ldr r2, _080AB938 @ =gUnknown_02024BE0 @@ -893,8 +893,8 @@ _080AB8CC: _080AB924: .4byte 0x02019204 _080AB928: .4byte gUnknown_02024A72 _080AB92C: .4byte gBattleTypeFlags -_080AB930: .4byte gUnknown_02024C07 -_080AB934: .4byte gUnknown_02024C08 +_080AB930: .4byte gPlayerMonIndex +_080AB934: .4byte gEnemyMonIndex _080AB938: .4byte gUnknown_02024BE0 _080AB93C: movs r0, 0 @@ -2344,7 +2344,7 @@ _080AC542: adds r4, r0 strh r5, [r4, 0xC] ldr r1, _080AC5E0 @ =gUnknown_02024BE0 - ldr r0, _080AC5E4 @ =gUnknown_02024C07 + ldr r0, _080AC5E4 @ =gPlayerMonIndex ldrb r0, [r0] adds r0, r1 strb r5, [r0] @@ -2365,7 +2365,7 @@ _080AC5D4: .4byte gSprites _080AC5D8: .4byte sub_80AD8FC _080AC5DC: .4byte gTasks _080AC5E0: .4byte gUnknown_02024BE0 -_080AC5E4: .4byte gUnknown_02024C07 +_080AC5E4: .4byte gPlayerMonIndex _080AC5E8: mov r1, r8 lsls r0, r1, 2 @@ -15226,7 +15226,7 @@ sub_80B292C: @ 80B292C bl CreateInvisibleSpriteWithCallback ldr r1, _080B295C @ =gUnknown_02024BE0 strb r0, [r1, 0x3] - ldr r0, _080B2960 @ =gUnknown_02024C08 + ldr r0, _080B2960 @ =gEnemyMonIndex ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] @@ -15242,7 +15242,7 @@ sub_80B292C: @ 80B292C .align 2, 0 _080B2958: .4byte SpriteCallbackDummy _080B295C: .4byte gUnknown_02024BE0 -_080B2960: .4byte gUnknown_02024C08 +_080B2960: .4byte gEnemyMonIndex _080B2964: .4byte gSprites thumb_func_end sub_80B292C @@ -15341,20 +15341,20 @@ _080B29DC: .4byte _080B2A6C .4byte _080B2A6C _080B2A60: - ldr r1, _080B2A68 @ =gUnknown_02024C08 + ldr r1, _080B2A68 @ =gEnemyMonIndex movs r0, 0x2 b _080B2A70 .align 2, 0 -_080B2A68: .4byte gUnknown_02024C08 +_080B2A68: .4byte gEnemyMonIndex _080B2A6C: - ldr r1, _080B2A78 @ =gUnknown_02024C08 + ldr r1, _080B2A78 @ =gEnemyMonIndex movs r0, 0x3 _080B2A70: strb r0, [r1] pop {r0} bx r0 .align 2, 0 -_080B2A78: .4byte gUnknown_02024C08 +_080B2A78: .4byte gEnemyMonIndex thumb_func_end sub_80B29B4 thumb_func_start sub_80B2A7C diff --git a/asm/field_tasks.s b/asm/field_tasks.s index c879ebf63..23a49109d 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -1708,7 +1708,7 @@ _0806A122: lsls r0, 24 cmp r0, 0 beq _0806A182 - bl sub_80E6034 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x4 diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc index 38a44ddfb..679e30340 100644 --- a/asm/macros/battle_ai_script.inc +++ b/asm/macros/battle_ai_script.inc @@ -1,21 +1,24 @@ - .macro if_random percent, address + .macro if_random_less_than percent, address .byte 0x00 .byte \percent .4byte \address .endm - .macro if_not_random percent, address + @ unused + .macro if_random_greater_than percent, address .byte 0x01 .byte \percent .4byte \address .endm - .macro if_random_1 address + @ unused + .macro if_random_equal address .byte 0x02 .4byte \address .endm - .macro if_not_random_1 address + @ unused + .macro if_random_not_equal address .byte 0x03 .4byte \address .endm @@ -212,7 +215,8 @@ .byte \byte .endm - .macro ai_23 + @ unused + .macro get_move_power .byte 0x23 .endm @@ -225,14 +229,17 @@ .byte \target .endm - .macro if_type type, address + .macro if_arg_equal type, address .byte 0x26 .byte \type .4byte \address .endm - .macro ai_27 + @ unused + .macro if_arg_not_equal type, address .byte 0x27 + .byte \type + .4byte \address .endm .macro if_would_go_first target, address @@ -247,10 +254,12 @@ .4byte \address .endm + @ nullsub .macro ai_2a .byte 0x2a .endm + @ nullsub .macro ai_2b .byte 0x2b .endm @@ -260,7 +269,8 @@ .byte \target .endm - .macro ai_2d + @ unused + .macro get_considered_move .byte 0x2d .endm @@ -273,7 +283,8 @@ .byte \target .endm - .macro ai_30 + @ unused + .macro get_highest_possible_damage .byte 0x30 .endm @@ -283,10 +294,12 @@ .4byte \address .endm + @ nullsub .macro ai_32 .byte 0x32 .endm + @ nullsub .macro ai_33 .byte 0x33 .endm @@ -364,12 +377,20 @@ .4byte \address .endm - .macro if_has_move + @ unused + .macro if_has_move, target, move, address .byte 0x3f + .byte \target + .2byte \move + .4byte \address .endm - .macro if_dont_have_move + @ unused + .macro if_dont_have_move, target, move, address .byte 0x40 + .byte \target + .2byte \move + .4byte \address .endm .macro if_move_effect target, effect, address @@ -393,8 +414,9 @@ .4byte \address .endm - .macro if_encored address + .macro if_encored target, address .byte 0x44 + .byte \target .4byte \address .endm @@ -402,7 +424,7 @@ .byte 0x45 .endm - .macro if_random_2 address + .macro if_random_100 address .byte 0x46 .4byte \address .endm @@ -440,15 +462,15 @@ .byte \target .endm - .macro get_move_type + .macro get_move_type_from_result .byte 0x4e .endm - .macro get_move_power + .macro get_move_power_from_result .byte 0x4f .endm - .macro get_move_effect + .macro get_move_effect_from_result .byte 0x50 .endm @@ -457,30 +479,37 @@ .byte \target .endm + @ nullsub .macro ai_52 .byte 0x52 .endm + @ nullsub .macro ai_53 .byte 0x53 .endm + @ nullsub .macro ai_54 .byte 0x54 .endm + @ nullsub .macro ai_55 .byte 0x55 .endm + @ nullsub .macro ai_56 .byte 0x56 .endm + @ nullsub .macro ai_57 .byte 0x57 .endm + @ unused .macro call address .byte 0x58 .4byte \address @@ -513,6 +542,7 @@ if_level_cond 2, \address .endm + @ unused .macro if_taunted address .byte 0x5c .4byte \address diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 3af0f2b11..90d97e9a4 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -6,502 +6,6 @@ .text - thumb_func_start sub_80F7A34 -sub_80F7A34: @ 80F7A34 - push {r4,lr} - ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94 - movs r1, 0 - strb r1, [r0] - adds r2, r0, 0 - adds r2, 0x29 - strb r1, [r2] - movs r2, 0 - adds r4, r0, 0x2 - ldr r3, _080F7A68 @ =gUnknown_083E537C -_080F7A48: - lsls r0, r2, 1 - adds r1, r4, r0 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080F7A48 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7A64: .4byte gSaveBlock1 + 0x2D94 -_080F7A68: .4byte gUnknown_083E537C - thumb_func_end sub_80F7A34 - - thumb_func_start sub_80F7A6C -sub_80F7A6C: @ 80F7A6C - ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F7A78: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7A6C - - thumb_func_start sub_80F7A7C -sub_80F7A7C: @ 80F7A7C - push {lr} - bl sub_80F83F8 - pop {r0} - bx r0 - thumb_func_end sub_80F7A7C - - thumb_func_start sub_80F7A88 -sub_80F7A88: @ 80F7A88 - ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - movs r1, 0x4 - strb r1, [r0] - strb r2, [r0, 0x1] - bx lr - .align 2, 0 -_080F7A94: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7A88 - - thumb_func_start sub_80F7A98 -sub_80F7A98: @ 80F7A98 - push {lr} - bl sub_81099CC - pop {r0} - bx r0 - thumb_func_end sub_80F7A98 - - thumb_func_start sub_80F7AA4 -sub_80F7AA4: @ 80F7AA4 - push {lr} - ldr r0, _080F7AC8 @ =gSaveBlock2 - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r0, 17 - cmp r0, 0x4 - bhi _080F7B00 - lsls r0, 2 - ldr r1, _080F7ACC @ =_080F7AD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F7AC8: .4byte gSaveBlock2 -_080F7ACC: .4byte _080F7AD0 - .align 2, 0 -_080F7AD0: - .4byte _080F7AE4 - .4byte _080F7AEA - .4byte _080F7AF0 - .4byte _080F7AF6 - .4byte _080F7AFC -_080F7AE4: - bl sub_80F7A34 - b _080F7B00 -_080F7AEA: - bl sub_80F7A6C - b _080F7B00 -_080F7AF0: - bl sub_80F7A98 - b _080F7B00 -_080F7AF6: - bl sub_80F7A7C - b _080F7B00 -_080F7AFC: - bl sub_80F7A88 -_080F7B00: - bl sub_80F83D0 - pop {r0} - bx r0 - thumb_func_end sub_80F7AA4 - - thumb_func_start GetCurrentMauvilleOldMan -GetCurrentMauvilleOldMan: @ 80F7B08 - ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080F7B10: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end GetCurrentMauvilleOldMan - - thumb_func_start sub_80F7B14 -sub_80F7B14: @ 80F7B14 - push {r4,lr} - ldr r4, _080F7B28 @ =gScriptResult - bl GetCurrentMauvilleOldMan - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7B28: .4byte gScriptResult - thumb_func_end sub_80F7B14 - - thumb_func_start sub_80F7B2C -sub_80F7B2C: @ 80F7B2C - ldr r0, _080F7B38 @ =gScriptResult - ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94 - adds r1, 0x29 - ldrb r1, [r1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F7B38: .4byte gScriptResult -_080F7B3C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7B2C - - thumb_func_start sub_80F7B40 -sub_80F7B40: @ 80F7B40 - push {r4,r5,lr} - ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94 - adds r0, r5, 0 - adds r0, 0x1A - ldr r4, _080F7B9C @ =gSaveBlock2 - adds r1, r4, 0 - bl StringCopy - movs r2, 0 - adds r3, r5, 0 - adds r3, 0x25 - adds r4, 0xA -_080F7B58: - adds r1, r3, r2 - adds r0, r2, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _080F7B58 - movs r2, 0 - movs r0, 0x29 - adds r0, r5 - mov r12, r0 - adds r4, r5, 0x2 - adds r3, r5, 0 - adds r3, 0xE -_080F7B78: - lsls r0, r2, 1 - adds r1, r4, r0 - adds r0, r3, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080F7B78 - movs r0, 0x1 - mov r1, r12 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F7B98: .4byte gSaveBlock1 + 0x2D94 -_080F7B9C: .4byte gSaveBlock2 - thumb_func_end sub_80F7B40 - - thumb_func_start sub_80F7BA0 -sub_80F7BA0: @ 80F7BA0 - push {r4-r7,lr} - ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94 - ldr r0, _080F7C4C @ =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r5, r1, 0 - adds r5, 0xE - cmp r0, 0 - bne _080F7BB2 - adds r5, r1, 0x2 -_080F7BB2: - ldr r2, _080F7C50 @ =gStringVar4 - adds r4, r2, 0 - movs r6, 0 -_080F7BB8: - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - adds r7, r6, 0x1 - cmp r2, r4 - beq _080F7BDA - movs r1, 0x37 -_080F7BCC: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7BD4 - strb r1, [r4] -_080F7BD4: - adds r4, 0x1 - cmp r2, r4 - bne _080F7BCC -_080F7BDA: - adds r4, 0x1 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - cmp r2, r4 - beq _080F7C02 - movs r1, 0x37 -_080F7BF4: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7BFC - strb r1, [r4] -_080F7BFC: - adds r4, 0x1 - cmp r2, r4 - bne _080F7BF4 -_080F7C02: - adds r4, 0x1 - movs r0, 0xFE - strb r0, [r2] - adds r2, 0x1 - ldrh r1, [r5] - adds r5, 0x2 - adds r0, r2, 0 - bl sub_80EB3FC - adds r2, r0, 0 - cmp r2, r4 - beq _080F7C2A - movs r1, 0x37 -_080F7C1C: - ldrb r0, [r4] - cmp r0, 0 - bne _080F7C24 - strb r1, [r4] -_080F7C24: - adds r4, 0x1 - cmp r2, r4 - bne _080F7C1C -_080F7C2A: - cmp r6, 0 - bne _080F7C3A - movs r0, 0xFC - strb r0, [r2] - adds r2, 0x1 - movs r0, 0xF - strb r0, [r2] - adds r2, 0x1 -_080F7C3A: - lsls r0, r7, 16 - lsrs r6, r0, 16 - cmp r6, 0x1 - bls _080F7BB8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7C48: .4byte gSaveBlock1 + 0x2D94 -_080F7C4C: .4byte gSpecialVar_0x8004 -_080F7C50: .4byte gStringVar4 - thumb_func_end sub_80F7BA0 - - thumb_func_start sub_80F7C54 -sub_80F7C54: @ 80F7C54 - push {lr} - ldr r0, _080F7C6C @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_80F7F80 - bl MenuDisplayMessageBox - bl ScriptContext1_Stop - pop {r0} - bx r0 - .align 2, 0 -_080F7C6C: .4byte gSpecialVar_0x8004 - thumb_func_end sub_80F7C54 - - thumb_func_start sub_80F7C70 -sub_80F7C70: @ 80F7C70 - ldr r0, _080F7C7C @ =gScriptResult - ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94 - ldrb r1, [r1, 0x1] - strh r1, [r0] - bx lr - .align 2, 0 -_080F7C7C: .4byte gScriptResult -_080F7C80: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7C70 - - thumb_func_start sub_80F7C84 -sub_80F7C84: @ 80F7C84 - ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94 - movs r0, 0x1 - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_080F7C8C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_80F7C84 - - thumb_func_start sub_80F7C90 -sub_80F7C90: @ 80F7C90 - push {lr} - bl sub_80EB8EC - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _080F7CA8 @ =0x0000ffff - cmp r1, r0 - bne _080F7CB0 - ldr r1, _080F7CAC @ =gScriptResult - movs r0, 0 - b _080F7CBA - .align 2, 0 -_080F7CA8: .4byte 0x0000ffff -_080F7CAC: .4byte gScriptResult -_080F7CB0: - ldr r0, _080F7CC0 @ =gStringVar1 - bl sub_80EB3FC - ldr r1, _080F7CC4 @ =gScriptResult - movs r0, 0x1 -_080F7CBA: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080F7CC0: .4byte gStringVar1 -_080F7CC4: .4byte gScriptResult - thumb_func_end sub_80F7C90 - - thumb_func_start sub_80F7CC8 -sub_80F7CC8: @ 80F7CC8 - push {lr} - ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r2, 0x1] - cmp r0, 0xA - bne _080F7CE4 - ldr r1, _080F7CE0 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - strb r0, [r2, 0x1] - b _080F7CEA - .align 2, 0 -_080F7CDC: .4byte gSaveBlock1 + 0x2D94 -_080F7CE0: .4byte gScriptResult -_080F7CE4: - ldr r1, _080F7CF0 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_080F7CEA: - pop {r0} - bx r0 - .align 2, 0 -_080F7CF0: .4byte gScriptResult - thumb_func_end sub_80F7CC8 - - thumb_func_start sub_80F7CF4 -sub_80F7CF4: @ 80F7CF4 - push {r4-r6,lr} - ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94 - ldrb r0, [r5, 0x1] - cmp r0, 0 - bne _080F7D02 - bl sub_80F7DC0 -_080F7D02: - ldrb r0, [r5, 0x1] - lsls r0, 1 - adds r6, r5, 0x4 - adds r0, r6 - ldrh r1, [r0] - ldr r0, _080F7D54 @ =0x0000ffff - cmp r1, r0 - beq _080F7D68 - bl Random - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x7 - ands r4, r0 - ldr r0, _080F7D58 @ =gStringVar4 - ldrb r1, [r5, 0x1] - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - bl sub_80EB3FC - adds r2, r0, 0 - ldr r1, _080F7D5C @ =gOtherText_Is - bl StringCopy - adds r2, r0, 0 - ldr r0, _080F7D60 @ =gUnknown_083E5388 - lsls r4, 2 - adds r4, r0 - ldr r1, [r4] - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - ldr r1, _080F7D64 @ =gOtherText_DontYouAgree - bl StringCopy - b _080F7D88 - .align 2, 0 -_080F7D50: .4byte gSaveBlock1 + 0x2D94 -_080F7D54: .4byte 0x0000ffff -_080F7D58: .4byte gStringVar4 -_080F7D5C: .4byte gOtherText_Is -_080F7D60: .4byte gUnknown_083E5388 -_080F7D64: .4byte gOtherText_DontYouAgree -_080F7D68: - ldr r0, _080F7DA0 @ =gStringVar4 - ldr r3, _080F7DA4 @ =gUnknown_083E53A8 - ldrb r1, [r5, 0x2] - adds r2, r1, 0x1 - strb r2, [r5, 0x2] - lsls r1, 24 - lsrs r1, 24 - adds r2, r5, 0 - adds r2, 0x18 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl StringCopy -_080F7D88: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080F7DA8 - movs r0, 0xA - b _080F7DAC - .align 2, 0 -_080F7DA0: .4byte gStringVar4 -_080F7DA4: .4byte gUnknown_083E53A8 -_080F7DA8: - ldrb r0, [r5, 0x1] - adds r0, 0x1 -_080F7DAC: - strb r0, [r5, 0x1] - ldr r1, _080F7DBC @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F7DBC: .4byte gScriptResult - thumb_func_end sub_80F7CF4 - thumb_func_start sub_80F7DC0 sub_80F7DC0: @ 80F7DC0 push {r4-r7,lr} diff --git a/asm/naming_screen.s b/asm/naming_screen.s deleted file mode 100644 index a2da2caf4..000000000 --- a/asm/naming_screen.s +++ /dev/null @@ -1,1290 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80B7090 -sub_80B7090: @ 80B7090 - push {r4-r7,lr} - bl sub_80B6F84 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r0, _080B70C8 @ =0x02000000 - adds r0, 0x11 - adds r0, r5, r0 - ldrb r4, [r0] - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80B7198 - lsls r0, 24 - cmp r0, 0 - beq _080B70D6 - adds r0, r4, 0 - bl sub_80B7264 - lsls r0, 24 - cmp r0, 0 - beq _080B70CC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B7370 - b _080B70F4 - .align 2, 0 -_080B70C8: .4byte 0x02000000 -_080B70CC: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B73CC - b _080B70F4 -_080B70D6: - adds r0, r4, 0 - bl sub_80B71E4 - lsls r0, 24 - cmp r0, 0 - beq _080B70EC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B7474 - b _080B70F4 -_080B70EC: - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_80B72A4 -_080B70F4: - bl sub_80B7960 - movs r0, 0x5 - bl PlaySE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80B7090 - - thumb_func_start sub_80B7104 -sub_80B7104: @ 80B7104 - push {r4,r5,lr} - bl sub_80B6F84 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B7128 @ =0x02000000 - adds r0, 0x11 - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r4, 0 - bl sub_80B720C - lsls r0, 24 - cmp r0, 0 - bne _080B712C - movs r0, 0 - b _080B7136 - .align 2, 0 -_080B7128: .4byte 0x02000000 -_080B712C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B72A4 - movs r0, 0x1 -_080B7136: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B7104 - - thumb_func_start sub_80B713C -sub_80B713C: @ 80B713C - push {r4,r5,lr} - bl sub_80B6F84 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080B7160 @ =0x02000000 - adds r0, 0x11 - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r4, 0 - bl sub_80B7264 - lsls r0, 24 - cmp r0, 0 - bne _080B7164 - movs r0, 0 - b _080B716E - .align 2, 0 -_080B7160: .4byte 0x02000000 -_080B7164: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80B7370 - movs r0, 0x1 -_080B716E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B713C - - thumb_func_start sub_80B7174 -sub_80B7174: @ 80B7174 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80B6F44 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080B7194 @ =0x02000000 - adds r1, 0x11 - adds r0, r1 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7194: .4byte 0x02000000 - thumb_func_end sub_80B7174 - - thumb_func_start sub_80B7198 -sub_80B7198: @ 80B7198 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC9 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x13 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x6F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B71DA - adds r0, r1, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B71DE -_080B71DA: - movs r0, 0x1 - b _080B71E0 -_080B71DE: - movs r0, 0 -_080B71E0: - pop {r1} - bx r1 - thumb_func_end sub_80B7198 - - thumb_func_start sub_80B71E4 -sub_80B71E4: @ 80B71E4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xB5 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B7202 - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7206 -_080B7202: - movs r0, 0x1 - b _080B7208 -_080B7206: - movs r0, 0 -_080B7208: - pop {r1} - bx r1 - thumb_func_end sub_80B71E4 - - thumb_func_start sub_80B720C -sub_80B720C: @ 80B720C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFA - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xE - bls _080B725A - adds r0, r1, 0 - subs r0, 0x1A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B725A - adds r0, r1, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B725A - adds r0, r1, 0 - subs r0, 0x56 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE - bls _080B725A - adds r0, r1, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B725A - adds r0, r1, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B725E -_080B725A: - movs r0, 0x1 - b _080B7260 -_080B725E: - movs r0, 0 -_080B7260: - pop {r1} - bx r1 - thumb_func_end sub_80B720C - - thumb_func_start sub_80B7264 -sub_80B7264: @ 80B7264 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xE6 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B729A - adds r0, r1, 0 - subs r0, 0x46 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B729A - adds r0, r1, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B729A - adds r0, r1, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B729E -_080B729A: - movs r0, 0x1 - b _080B72A0 -_080B729E: - movs r0, 0 -_080B72A0: - pop {r1} - bx r1 - thumb_func_end sub_80B7264 - - thumb_func_start sub_80B72A4 -sub_80B72A4: @ 80B72A4 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xFA - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72C0 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B72C0: - adds r0, r2, 0 - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72D2 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B72D2: - adds r0, r2, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72E4 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B72E4: - adds r0, r2, 0 - subs r0, 0x1A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B72F6 - adds r0, r2, 0 - adds r0, 0x2C - b _080B735A -_080B72F6: - adds r0, r2, 0 - subs r0, 0x4B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B7356 - adds r0, r2, 0 - subs r0, 0x56 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7314 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B7314: - adds r0, r2, 0 - subs r0, 0x5B - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7326 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B7326: - adds r0, r2, 0 - subs r0, 0x60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7338 - adds r0, r2, 0 - adds r0, 0x31 - b _080B735A -_080B7338: - adds r0, r2, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B734A - adds r0, r2, 0 - adds r0, 0x2C - b _080B735A -_080B734A: - adds r0, r2, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B735E -_080B7356: - adds r0, r2, 0 - adds r0, 0xFB -_080B735A: - lsls r0, 24 - lsrs r2, r0, 24 -_080B735E: - ldr r0, _080B736C @ =0x02000000 - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B736C: .4byte 0x02000000 - thumb_func_end sub_80B72A4 - - thumb_func_start sub_80B7370 -sub_80B7370: @ 80B7370 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xE6 - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B738C - adds r0, r2, 0 - adds r0, 0x31 - b _080B73B8 -_080B738C: - adds r0, r2, 0 - subs r0, 0x46 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B73B6 - adds r0, r2, 0 - subs r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73AA - adds r0, r2, 0 - adds r0, 0x31 - b _080B73B8 -_080B73AA: - adds r0, r2, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73BC -_080B73B6: - adds r0, r2, 0x5 -_080B73B8: - lsls r0, 24 - lsrs r2, r0, 24 -_080B73BC: - ldr r0, _080B73C8 @ =0x02000000 - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B73C8: .4byte 0x02000000 - thumb_func_end sub_80B7370 - - thumb_func_start sub_80B73CC -sub_80B73CC: @ 80B73CC - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xC9 - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73E8 - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B73E8: - adds r0, r2, 0 - subs r0, 0x3C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B73FA - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B73FA: - adds r0, r2, 0 - subs r0, 0x41 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B740C - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B740C: - adds r0, r2, 0 - subs r0, 0x46 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B745A - adds r0, r2, 0 - adds r0, 0x79 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B742A - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B742A: - adds r0, r2, 0 - adds r0, 0x74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B743C - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B743C: - adds r0, r2, 0 - adds r0, 0x6F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B744E - adds r0, r2, 0 - adds r0, 0xCF - b _080B745E -_080B744E: - adds r0, r2, 0 - adds r0, 0x6A - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B7462 -_080B745A: - adds r0, r2, 0 - adds r0, 0xD4 -_080B745E: - lsls r0, 24 - lsrs r2, r0, 24 -_080B7462: - ldr r0, _080B7470 @ =0x02000000 - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B7470: .4byte 0x02000000 - thumb_func_end sub_80B73CC - - thumb_func_start sub_80B7474 -sub_80B7474: @ 80B7474 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsrs r2, r0, 24 - movs r3, 0xB5 - lsls r3, 24 - adds r0, r3 - lsrs r0, 24 - cmp r0, 0x4 - bls _080B7496 - adds r0, r2, 0 - adds r0, 0x65 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080B749E -_080B7496: - adds r0, r2, 0 - adds r0, 0xCF - lsls r0, 24 - lsrs r2, r0, 24 -_080B749E: - ldr r0, _080B74AC @ =0x02000000 - adds r0, 0x11 - adds r0, r1, r0 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080B74AC: .4byte 0x02000000 - thumb_func_end sub_80B7474 - - thumb_func_start sub_80B74B0 -sub_80B74B0: @ 80B74B0 - push {r4,lr} - movs r1, 0 - ldr r3, _080B74E4 @ =0x02000000 - ldr r0, [r3, 0x34] - ldrb r0, [r0, 0x1] - cmp r1, r0 - bcs _080B74F6 - adds r2, r3, 0 - adds r4, r3, 0 - adds r4, 0x11 -_080B74C4: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080B74E8 - cmp r0, 0xFF - beq _080B74E8 - ldr r0, [r2, 0x38] - ldr r1, [r2, 0x34] - ldrb r2, [r1, 0x1] - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - adds r1, r4, 0 - bl StringCopyN - b _080B74F6 - .align 2, 0 -_080B74E4: .4byte 0x02000000 -_080B74E8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, [r3, 0x34] - ldrb r0, [r0, 0x1] - cmp r1, r0 - bcc _080B74C4 -_080B74F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B74B0 - - thumb_func_start sub_80B74FC -sub_80B74FC: @ 80B74FC - push {r4,lr} - ldr r0, _080B7528 @ =gStringVar1 - ldr r1, _080B752C @ =0x02000000 - ldr r1, [r1, 0x38] - bl StringCopy - ldr r4, _080B7530 @ =gStringVar4 - ldr r1, _080B7534 @ =gOtherText_SentToPC - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r0, _080B7538 @ =gWindowConfig_81E6E88 - bl BasicInitMenuWindow - bl MenuDisplayMessageBox - adds r0, r4, 0 - bl sub_8072044 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7528: .4byte gStringVar1 -_080B752C: .4byte 0x02000000 -_080B7530: .4byte gStringVar4 -_080B7534: .4byte gOtherText_SentToPC -_080B7538: .4byte gWindowConfig_81E6E88 - thumb_func_end sub_80B74FC - - thumb_func_start sub_80B753C -sub_80B753C: @ 80B753C - push {lr} - ldr r0, _080B7550 @ =gUnknown_083CE6A0 - bl LoadSpriteSheets - ldr r0, _080B7554 @ =gUnknown_083CE708 - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_080B7550: .4byte gUnknown_083CE6A0 -_080B7554: .4byte gUnknown_083CE708 - thumb_func_end sub_80B753C - - thumb_func_start sub_80B7558 -sub_80B7558: @ 80B7558 - push {lr} - bl sub_80B7568 - bl sub_80B75B0 - pop {r0} - bx r0 - thumb_func_end sub_80B7558 - - thumb_func_start sub_80B7568 -sub_80B7568: @ 80B7568 - push {r4,lr} - ldr r4, _080B759C @ =gNamingScreenMenu_Gfx - ldr r3, _080B75A0 @ =gMenuMessageBoxContentTileOffset - ldrh r0, [r3] - lsls r0, 5 - movs r1, 0xC0 - lsls r1, 19 - adds r0, r1 - ldr r1, _080B75A4 @ =0x040000d4 - str r4, [r1] - str r0, [r1, 0x4] - ldr r2, _080B75A8 @ =0x80000400 - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] - ldrh r0, [r3] - lsls r0, 5 - ldr r3, _080B75AC @ =0x06008000 - adds r0, r3 - str r4, [r1] - str r0, [r1, 0x4] - str r2, [r1, 0x8] - ldr r0, [r1, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B759C: .4byte gNamingScreenMenu_Gfx -_080B75A0: .4byte gMenuMessageBoxContentTileOffset -_080B75A4: .4byte 0x040000d4 -_080B75A8: .4byte 0x80000400 -_080B75AC: .4byte 0x06008000 - thumb_func_end sub_80B7568 - - thumb_func_start sub_80B75B0 -sub_80B75B0: @ 80B75B0 - push {lr} - ldr r0, _080B75C0 @ =gNamingScreenPalettes - movs r1, 0 - movs r2, 0x80 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080B75C0: .4byte gNamingScreenPalettes - thumb_func_end sub_80B75B0 - - thumb_func_start sub_80B75C4 -sub_80B75C4: @ 80B75C4 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _080B7608 @ =gUnknown_083CE308 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r4, _080B760C @ =gUnknown_083CE2F0 - ldr r5, _080B7610 @ =0x02000000 - ldrb r1, [r5, 0xE] - lsls r1, 3 - adds r1, r4 - ldrb r0, [r5, 0xC] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r1] - bl _call_via_r1 - ldrb r1, [r5, 0xE] - lsls r1, 3 - adds r4, 0x4 - adds r1, r4 - ldrb r0, [r5, 0xD] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r1] - bl _call_via_r1 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080B7608: .4byte gUnknown_083CE308 -_080B760C: .4byte gUnknown_083CE2F0 -_080B7610: .4byte 0x02000000 - thumb_func_end sub_80B75C4 - - thumb_func_start sub_80B7614 -sub_80B7614: @ 80B7614 - push {lr} - sub sp, 0x8 - ldr r0, _080B7644 @ =gUnknown_083CE308 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, _080B7648 @ =gUnknown_083CE2F0 - ldr r2, _080B764C @ =0x02000000 - ldrb r1, [r2, 0xE] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldrb r0, [r2, 0xD] - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r1] - bl _call_via_r1 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080B7644: .4byte gUnknown_083CE308 -_080B7648: .4byte gUnknown_083CE2F0 -_080B764C: .4byte 0x02000000 - thumb_func_end sub_80B7614 - - thumb_func_start sub_80B7650 -sub_80B7650: @ 80B7650 - push {lr} - ldr r1, _080B765C @ =gUnknown_083CE748 - bl sub_80B7698 - pop {r0} - bx r0 - .align 2, 0 -_080B765C: .4byte gUnknown_083CE748 - thumb_func_end sub_80B7650 - - thumb_func_start sub_80B7660 -sub_80B7660: @ 80B7660 - push {lr} - ldr r1, _080B766C @ =gUnknown_083CEBF8 - bl sub_80B7698 - pop {r0} - bx r0 - .align 2, 0 -_080B766C: .4byte gUnknown_083CEBF8 - thumb_func_end sub_80B7660 - - thumb_func_start sub_80B7670 -sub_80B7670: @ 80B7670 - push {lr} - ldr r1, _080B767C @ =gUnknown_083CF0A8 - bl sub_80B7698 - pop {r0} - bx r0 - .align 2, 0 -_080B767C: .4byte gUnknown_083CF0A8 - thumb_func_end sub_80B7670 - - thumb_func_start sub_80B7680 -sub_80B7680: @ 80B7680 - push {lr} - ldr r0, _080B7690 @ =0x0600f000 - ldr r1, _080B7694 @ =gUnknown_08E86258 - bl sub_80B76E0 - pop {r0} - bx r0 - .align 2, 0 -_080B7690: .4byte 0x0600f000 -_080B7694: .4byte gUnknown_08E86258 - thumb_func_end sub_80B7680 - - thumb_func_start sub_80B7698 -sub_80B7698: @ 80B7698 - push {r4-r7,lr} - mov r12, r0 - adds r3, r1, 0 - movs r4, 0 - ldr r0, _080B76DC @ =gMenuMessageBoxContentTileOffset - ldrh r6, [r0] -_080B76A4: - movs r1, 0 - lsls r4, 16 - asrs r5, r4, 11 -_080B76AA: - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r5, r0 - lsls r1, 1 - add r1, r12 - ldrh r7, [r3] - adds r2, r6, r7 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - adds r3, 0x2 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080B76AA - movs r1, 0x80 - lsls r1, 9 - adds r0, r4, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080B76A4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B76DC: .4byte gMenuMessageBoxContentTileOffset - thumb_func_end sub_80B7698 - - thumb_func_start sub_80B76E0 -sub_80B76E0: @ 80B76E0 - push {r4-r7,lr} - mov r12, r0 - adds r3, r1, 0 - movs r4, 0 - ldr r0, _080B7728 @ =gMenuMessageBoxContentTileOffset - ldrh r6, [r0] -_080B76EC: - movs r1, 0 - lsls r5, r4, 16 - asrs r4, r5, 11 -_080B76F2: - lsls r0, r1, 16 - asrs r0, 16 - adds r1, r4, r0 - lsls r1, 1 - add r1, r12 - ldrh r7, [r3] - adds r2, r6, r7 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - adds r3, 0x2 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _080B76F2 - adds r3, 0x4 - movs r1, 0x80 - lsls r1, 9 - adds r0, r5, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080B76EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B7728: .4byte gMenuMessageBoxContentTileOffset - thumb_func_end sub_80B76E0 - - thumb_func_start sub_80B772C -sub_80B772C: @ 80B772C - push {lr} - ldr r1, _080B773C @ =0x02000000 - ldrb r0, [r1, 0xE] - ldrb r1, [r1, 0xC] - bl nullsub_20 - pop {r0} - bx r0 - .align 2, 0 -_080B773C: .4byte 0x02000000 - thumb_func_end sub_80B772C - - thumb_func_start sub_80B7740 -sub_80B7740: @ 80B7740 - push {r4,lr} - ldr r4, _080B7760 @ =0x02000000 - ldrb r0, [r4, 0xE] - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4, 0xD] - bl nullsub_20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B7760: .4byte 0x02000000 - thumb_func_end sub_80B7740 - - thumb_func_start nullsub_20 -nullsub_20: @ 80B7764 - bx lr - thumb_func_end nullsub_20 - - thumb_func_start sub_80B7768 -sub_80B7768: @ 80B7768 - ldr r3, _080B778C @ =gUnknown_083CE3A8 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r0, r2 - ldr r1, _080B7790 @ =0x02000000 - ldrb r2, [r1, 0xE] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080B778C: .4byte gUnknown_083CE3A8 -_080B7790: .4byte 0x02000000 - thumb_func_end sub_80B7768 - - thumb_func_start sub_80B7794 -sub_80B7794: @ 80B7794 - push {r4-r6,lr} - ldr r6, _080B77EC @ =gUnknown_083CE328 - ldr r4, _080B77F0 @ =0x02000000 - ldrb r0, [r4, 0xC] - lsls r0, 2 - ldrb r1, [r4, 0xE] - lsls r1, 4 - adds r0, r1 - adds r0, r6 - ldr r0, [r0] - bl BasicInitMenuWindow - ldr r5, _080B77F4 @ =gUnknown_083CE310 - ldrb r0, [r4, 0xE] - lsls r0, 3 - adds r0, r5 - ldr r0, [r0] - bl _call_via_r0 - ldrb r1, [r4, 0xD] - lsls r1, 2 - ldrb r0, [r4, 0xE] - lsls r0, 4 - adds r1, r0 - adds r6, 0x8 - adds r1, r6 - ldr r0, [r1] - bl BasicInitMenuWindow - ldrb r0, [r4, 0xE] - lsls r0, 3 - adds r5, 0x4 - adds r0, r5 - ldr r0, [r0] - bl _call_via_r0 - bl sub_80B772C - bl sub_80B7740 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B77EC: .4byte gUnknown_083CE328 -_080B77F0: .4byte 0x02000000 -_080B77F4: .4byte gUnknown_083CE310 - thumb_func_end sub_80B7794 - - thumb_func_start sub_80B77F8 -sub_80B77F8: @ 80B77F8 - push {r4,lr} - ldr r2, _080B782C @ =gUnknown_083CE328 - ldr r4, _080B7830 @ =0x02000000 - ldrb r1, [r4, 0xD] - lsls r1, 2 - ldrb r0, [r4, 0xE] - lsls r0, 4 - adds r1, r0 - adds r2, 0x8 - adds r1, r2 - ldr r0, [r1] - bl BasicInitMenuWindow - ldr r1, _080B7834 @ =gUnknown_083CE310 - ldrb r0, [r4, 0xE] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_80B7740 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B782C: .4byte gUnknown_083CE328 -_080B7830: .4byte 0x02000000 -_080B7834: .4byte gUnknown_083CE310 - thumb_func_end sub_80B77F8 - - thumb_func_start sub_80B7838 -sub_80B7838: @ 80B7838 - push {lr} - movs r0, 0x1 - bl sub_80B785C - pop {r0} - bx r0 - thumb_func_end sub_80B7838 - - thumb_func_start sub_80B7844 -sub_80B7844: @ 80B7844 - push {lr} - movs r0, 0 - bl sub_80B785C - pop {r0} - bx r0 - thumb_func_end sub_80B7844 - - thumb_func_start sub_80B7850 -sub_80B7850: @ 80B7850 - push {lr} - movs r0, 0x2 - bl sub_80B785C - pop {r0} - bx r0 - thumb_func_end sub_80B7850 - - thumb_func_start sub_80B785C -sub_80B785C: @ 80B785C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - movs r5, 0x9 - lsls r1, r0, 2 - adds r1, r0 - lsls r6, r1, 4 -_080B786C: - lsls r4, r2, 16 - asrs r4, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 - ldr r1, _080B78A4 @ =gUnknown_083CE3A8 - adds r0, r1 - adds r0, r6, r0 - lsls r2, r5, 24 - lsrs r2, 24 - movs r1, 0x3 - bl MenuPrint - adds r4, 0x1 - lsls r4, 16 - lsls r0, r5, 16 - movs r1, 0x80 - lsls r1, 10 - adds r0, r1 - lsrs r5, r0, 16 - lsrs r2, r4, 16 - asrs r4, 16 - cmp r4, 0x3 - ble _080B786C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080B78A4: .4byte gUnknown_083CE3A8 - thumb_func_end sub_80B785C - - thumb_func_start sub_80B78A8 -sub_80B78A8: @ 80B78A8 - push {r4,lr} - ldr r0, _080B78E4 @ =gWindowConfig_81E6F4C - bl BasicInitMenuWindow - ldr r1, _080B78E8 @ =gUnknown_083CE358 - ldr r4, _080B78EC @ =0x02000000 - ldrb r0, [r4, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _080B78F0 @ =gUnknown_083CE368 - ldr r0, [r4, 0x34] - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, [r4, 0x34] - ldr r0, [r0, 0x8] - movs r1, 0x9 - movs r2, 0x2 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B78E4: .4byte gWindowConfig_81E6F4C -_080B78E8: .4byte gUnknown_083CE358 -_080B78EC: .4byte 0x02000000 -_080B78F0: .4byte gUnknown_083CE368 - thumb_func_end sub_80B78A8 - - thumb_func_start nullsub_61 -nullsub_61: @ 80B78F4 - bx lr - thumb_func_end nullsub_61 - - thumb_func_start sub_80B78F8 -sub_80B78F8: @ 80B78F8 - push {lr} - ldr r0, _080B7914 @ =gStringVar1 - ldr r1, _080B7918 @ =0x02000000 - movs r3, 0x3E - ldrsh r2, [r1, r3] - movs r1, 0xB - muls r1, r2 - ldr r2, _080B791C @ =gSpeciesNames - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080B7914: .4byte gStringVar1 -_080B7918: .4byte 0x02000000 -_080B791C: .4byte gSpeciesNames - thumb_func_end sub_80B78F8 - - thumb_func_start nullsub_62 -nullsub_62: @ 80B7920 - bx lr - thumb_func_end nullsub_62 - - thumb_func_start sub_80B7924 -sub_80B7924: @ 80B7924 - push {lr} - sub sp, 0x4 - ldr r1, _080B7958 @ =gUnknown_083CE370 - mov r0, sp - movs r2, 0x2 - bl memcpy - ldr r0, _080B795C @ =0x02000000 - adds r0, 0x40 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - beq _080B7952 - cmp r0, 0xFE - bne _080B7948 - mov r1, sp - movs r0, 0xB6 - strb r0, [r1] -_080B7948: - mov r0, sp - movs r1, 0x14 - movs r2, 0x4 - bl MenuPrint -_080B7952: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080B7958: .4byte gUnknown_083CE370 -_080B795C: .4byte 0x02000000 - thumb_func_end sub_80B7924 - - thumb_func_start sub_80B7960 -sub_80B7960: @ 80B7960 - push {r4,lr} - ldr r0, _080B799C @ =gStringVar1 - movs r2, 0xFC - strb r2, [r0] - movs r1, 0x14 - strb r1, [r0, 0x1] - movs r1, 0x8 - strb r1, [r0, 0x2] - strb r2, [r0, 0x3] - movs r1, 0x11 - strb r1, [r0, 0x4] - movs r1, 0x1 - strb r1, [r0, 0x5] - adds r0, 0x6 - ldr r4, _080B79A0 @ =0x02000011 - adds r1, r4, 0 - bl StringCopy - ldr r0, _080B79A4 @ =gWindowConfig_81E6F4C - bl BasicInitMenuWindow - ldr r0, _080B799C @ =gStringVar1 - subs r4, 0x11 - ldrb r1, [r4, 0x2] - movs r2, 0x4 - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080B799C: .4byte gStringVar1 -_080B79A0: .4byte 0x02000011 -_080B79A4: .4byte gWindowConfig_81E6F4C - thumb_func_end sub_80B7960 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeball.s b/asm/pokeball.s index 57e4a5a21..9abeed00d 100644 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -152,7 +152,7 @@ _080464D6: beq _0804655C cmp r2, 0xFF bne _08046598 - ldr r0, _08046554 @ =gUnknown_02024C08 + ldr r0, _08046554 @ =gEnemyMonIndex strb r5, [r0] movs r0, 0x18 strh r0, [r4, 0x20] @@ -169,7 +169,7 @@ _08046544: .4byte gUnknown_02024A6A _08046548: .4byte gPlayerParty _0804654C: .4byte gSpriteTemplate_820AAB4 _08046550: .4byte gSprites -_08046554: .4byte gUnknown_02024C08 +_08046554: .4byte gEnemyMonIndex _08046558: .4byte sub_8047074 _0804655C: adds r0, r5, 0 @@ -185,7 +185,7 @@ _0804655C: lsrs r0, 24 adds r0, 0x18 strh r0, [r4, 0x22] - ldr r0, _08046590 @ =gUnknown_02024C08 + ldr r0, _08046590 @ =gEnemyMonIndex strb r5, [r0] movs r3, 0 strh r3, [r4, 0x2E] @@ -196,12 +196,12 @@ _0804655C: str r1, [r0] b _080465A6 .align 2, 0 -_08046590: .4byte gUnknown_02024C08 +_08046590: .4byte gEnemyMonIndex _08046594: .4byte sub_8047254 _08046598: movs r0, 0x1 bl battle_get_side_with_given_state - ldr r1, _080465C4 @ =gUnknown_02024C08 + ldr r1, _080465C4 @ =gEnemyMonIndex strb r0, [r1] movs r0, 0x1 str r0, [sp] @@ -211,7 +211,7 @@ _080465A6: adds r1, r7 lsls r1, 2 adds r4, r1, r0 - ldr r5, _080465C4 @ =gUnknown_02024C08 + ldr r5, _080465C4 @ =gEnemyMonIndex ldrb r0, [r5] strh r0, [r4, 0x3A] ldr r2, [sp] @@ -221,7 +221,7 @@ _080465A6: bl DestroyTask b _08046616 .align 2, 0 -_080465C4: .4byte gUnknown_02024C08 +_080465C4: .4byte gEnemyMonIndex _080465C8: .4byte gSprites _080465CC: movs r0, 0x22 diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s index 24e845abb..9ab29cd30 100644 --- a/asm/rom_800D42C.s +++ b/asm/rom_800D42C.s @@ -6330,9 +6330,9 @@ _08010906: cmp r2, 0 bge _08010902 movs r1, 0 - ldr r2, _08010AFC @ =gUnknown_02024C07 + ldr r2, _08010AFC @ =gPlayerMonIndex strb r1, [r2] - ldr r3, _08010B00 @ =gUnknown_02024C08 + ldr r3, _08010B00 @ =gEnemyMonIndex strb r1, [r3] ldr r4, _08010B04 @ =gBattleWeather strh r1, [r4] @@ -6562,8 +6562,8 @@ _08010AEC: .4byte gUnknown_02024C5C _08010AF0: .4byte 0x02017100 _08010AF4: .4byte gUnknown_02024C80 _08010AF8: .4byte gUnknown_02024C7A -_08010AFC: .4byte gUnknown_02024C07 -_08010B00: .4byte gUnknown_02024C08 +_08010AFC: .4byte gPlayerMonIndex +_08010B00: .4byte gEnemyMonIndex _08010B04: .4byte gBattleWeather _08010B08: .4byte gUnknown_02024DBC _08010B0C: .4byte gUnknown_02024C6C @@ -10891,7 +10891,7 @@ _08012EC0: .4byte 0x00016060 _08012EC4: .4byte gUnknown_02024D1E _08012EC8: .4byte 0x00016094 _08012ECC: - ldr r0, _08012F20 @ =gUnknown_02024C07 + ldr r0, _08012F20 @ =gPlayerMonIndex strb r1, [r0] ldr r7, _08012F24 @ =gUnknown_02024C10 ldr r6, _08012F28 @ =gUnknown_02024C1C @@ -10933,7 +10933,7 @@ _08012F12: str r1, [r0] b _08012F66 .align 2, 0 -_08012F20: .4byte gUnknown_02024C07 +_08012F20: .4byte gPlayerMonIndex _08012F24: .4byte gUnknown_02024C10 _08012F28: .4byte gUnknown_02024C1C _08012F2C: .4byte gUnknown_02024A64 @@ -12067,7 +12067,7 @@ bc_80154A0: @ 80137CC cmp r1, r0 bcs _08013884 ldr r6, _08013860 @ =gUnknown_02024A60 - ldr r5, _08013864 @ =gUnknown_02024C07 + ldr r5, _08013864 @ =gPlayerMonIndex adds r4, r2, 0 movs r1, 0x84 lsls r1, 1 @@ -12121,7 +12121,7 @@ _08013854: .4byte 0x02000000 _08013858: .4byte 0x0001601d _0801385C: .4byte gUnknown_02024A68 _08013860: .4byte gUnknown_02024A60 -_08013864: .4byte gUnknown_02024C07 +_08013864: .4byte gPlayerMonIndex _08013868: .4byte gUnknown_02024C60 _0801386C: .4byte gBattleMons _08013870: .4byte gUnknown_02024CA8 @@ -12273,7 +12273,7 @@ sub_8013998: @ 8013998 strb r0, [r1] movs r0, 0 bl battle_get_side_with_given_state - ldr r1, _080139E0 @ =gUnknown_02024C07 + ldr r1, _080139E0 @ =gPlayerMonIndex strb r0, [r1] ldr r1, _080139E4 @ =gUnknown_02024C10 ldr r0, _080139E8 @ =gUnknown_081D8E02 @@ -12288,7 +12288,7 @@ _080139D0: .4byte gUnknown_02024A7F _080139D4: .4byte gBattleTypeFlags _080139D8: .4byte gUnknown_030041C0 _080139DC: .4byte gUnknown_02024D26 -_080139E0: .4byte gUnknown_02024C07 +_080139E0: .4byte gPlayerMonIndex _080139E4: .4byte gUnknown_02024C10 _080139E8: .4byte gUnknown_081D8E02 _080139EC: @@ -12448,7 +12448,7 @@ sub_8013B64: @ 8013B64 strb r0, [r1] movs r0, 0 bl battle_get_side_with_given_state - ldr r1, _08013BAC @ =gUnknown_02024C07 + ldr r1, _08013BAC @ =gPlayerMonIndex strb r0, [r1] ldr r1, _08013BB0 @ =gUnknown_02024C10 ldr r0, _08013BB4 @ =gUnknown_081D8E02 @@ -12463,7 +12463,7 @@ _08013B9C: .4byte gUnknown_02024A7F _08013BA0: .4byte gBattleTypeFlags _08013BA4: .4byte gUnknown_030041C0 _08013BA8: .4byte gUnknown_02024D26 -_08013BAC: .4byte gUnknown_02024C07 +_08013BAC: .4byte gPlayerMonIndex _08013BB0: .4byte gUnknown_02024C10 _08013BB4: .4byte gUnknown_081D8E02 _08013BB8: @@ -12491,7 +12491,7 @@ sub_8013BDC: @ 8013BDC movs r0, 0 strb r0, [r1] ldr r1, _08013C08 @ =gUnknown_02024D28 - ldr r0, _08013C0C @ =gUnknown_02024C07 + ldr r0, _08013C0C @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -12508,7 +12508,7 @@ sub_8013BDC: @ 8013BDC .align 2, 0 _08013C04: .4byte gUnknown_02024A7F _08013C08: .4byte gUnknown_02024D28 -_08013C0C: .4byte gUnknown_02024C07 +_08013C0C: .4byte gPlayerMonIndex _08013C10: .4byte gUnknown_02024C10 _08013C14: .4byte gUnknown_081D8E29 _08013C18: @@ -12545,7 +12545,7 @@ sub_8013C48: @ 8013C48 strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] - ldr r2, _08013C84 @ =gUnknown_02024C07 + ldr r2, _08013C84 @ =gPlayerMonIndex ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, _08013C88 @ =gUnknown_02024A6A @@ -12566,7 +12566,7 @@ sub_8013C48: @ 8013C48 .align 2, 0 _08013C7C: .4byte gUnknown_02024A7F _08013C80: .4byte gUnknown_030041C0 -_08013C84: .4byte gUnknown_02024C07 +_08013C84: .4byte gPlayerMonIndex _08013C88: .4byte gUnknown_02024A6A _08013C8C: .4byte gUnknown_02024C10 _08013C90: .4byte gUnknown_081D8E30 @@ -12995,7 +12995,7 @@ sub_8013FE8: @ 8013FE8 sub sp, 0xC movs r0, 0x4 str r0, [sp] - ldr r7, _08014028 @ =gUnknown_02024C07 + ldr r7, _08014028 @ =gPlayerMonIndex ldr r1, _0801402C @ =gUnknown_02024A7A ldr r0, _08014030 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -13019,7 +13019,7 @@ sub_8013FE8: @ 8013FE8 movs r0, 0xC b _080146CC .align 2, 0 -_08014028: .4byte gUnknown_02024C07 +_08014028: .4byte gPlayerMonIndex _0801402C: .4byte gUnknown_02024A7A _08014030: .4byte gUnknown_02024A7E _08014034: .4byte 0x02000000 @@ -13240,7 +13240,7 @@ _08014218: mov r4, r8 ldrb r0, [r4] lsls r0, 1 - ldr r4, _0801425C @ =gUnknown_02024C07 + ldr r4, _0801425C @ =gPlayerMonIndex ldrb r2, [r4] movs r1, 0x58 muls r1, r2 @@ -13270,7 +13270,7 @@ _08014218: strb r0, [r1] b _08014280 .align 2, 0 -_0801425C: .4byte gUnknown_02024C07 +_0801425C: .4byte gPlayerMonIndex _08014260: .4byte gBattleMons _08014264: .4byte gUnknown_02024C60 _08014268: .4byte gUnknown_02024BE6 @@ -13283,7 +13283,7 @@ _08014278: strh r3, [r0] strh r3, [r1] _08014280: - ldr r0, _080142A0 @ =gUnknown_02024C07 + ldr r0, _080142A0 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -13297,7 +13297,7 @@ _08014280: .align 2, 0 _08014298: .4byte gUnknown_02024BE6 _0801429C: .4byte gUnknown_02024BE8 -_080142A0: .4byte gUnknown_02024C07 +_080142A0: .4byte gPlayerMonIndex _080142A4: .4byte gUnknown_030042E0 _080142A8: ldr r0, _08014314 @ =gUnknown_030042E0 @@ -13305,7 +13305,7 @@ _080142A8: ldrh r1, [r1] strh r1, [r0, 0x24] _080142B0: - ldr r4, _0801431C @ =gUnknown_02024C07 + ldr r4, _0801431C @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner movs r1, 0x1 @@ -13348,23 +13348,23 @@ _080142B0: ldrh r0, [r0, 0x28] cmp r0, 0 beq _08014330 - ldr r0, _0801432C @ =gUnknown_02024C08 + ldr r0, _0801432C @ =gEnemyMonIndex strb r2, [r0] b _080146AC .align 2, 0 _08014314: .4byte gUnknown_030042E0 _08014318: .4byte gUnknown_02024BE6 -_0801431C: .4byte gUnknown_02024C07 +_0801431C: .4byte gPlayerMonIndex _08014320: .4byte gUnknown_02024C80 _08014324: .4byte gBattleMoves _08014328: .4byte gBattleMons -_0801432C: .4byte gUnknown_02024C08 +_0801432C: .4byte gEnemyMonIndex _08014330: ldr r2, _08014454 @ =gBattleTypeFlags ldrh r1, [r2] movs r0, 0x1 ands r0, r1 - ldr r3, _08014458 @ =gUnknown_02024C07 + ldr r3, _08014458 @ =gPlayerMonIndex mov r9, r2 cmp r0, 0 bne _08014342 @@ -13398,7 +13398,7 @@ _08014370: ldr r3, _08014468 @ =gBattleMons ldr r0, _0801446C @ =0x02000000 mov r8, r0 - ldr r2, _08014458 @ =gUnknown_02024C07 + ldr r2, _08014458 @ =gPlayerMonIndex ldrb r5, [r2] ldr r1, _08014470 @ =0x00016010 adds r0, r5, r1 @@ -13438,7 +13438,7 @@ _080143B6: lsrs r0, 24 cmp r6, r0 beq _08014404 - ldr r0, _08014458 @ =gUnknown_02024C07 + ldr r0, _08014458 @ =gPlayerMonIndex ldrb r0, [r0] ldr r2, _08014470 @ =0x00016010 adds r0, r2 @@ -13496,7 +13496,7 @@ _0801441E: ands r3, r0 cmp r3, 0 beq _080144A4 - ldr r0, _08014458 @ =gUnknown_02024C07 + ldr r0, _08014458 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -13511,7 +13511,7 @@ _0801441E: b _08014496 .align 2, 0 _08014454: .4byte gBattleTypeFlags -_08014458: .4byte gUnknown_02024C07 +_08014458: .4byte gPlayerMonIndex _0801445C: .4byte gUnknown_02024C80 _08014460: .4byte gBattleMoves _08014464: .4byte gUnknown_02024BE6 @@ -13536,15 +13536,15 @@ _08014494: movs r0, 0x2 _08014496: bl battle_get_side_with_given_state - ldr r1, _080144A0 @ =gUnknown_02024C08 + ldr r1, _080144A0 @ =gEnemyMonIndex strb r0, [r1] b _080144B6 .align 2, 0 -_080144A0: .4byte gUnknown_02024C08 +_080144A0: .4byte gEnemyMonIndex _080144A4: - ldr r2, _080144EC @ =gUnknown_02024C08 + ldr r2, _080144EC @ =gEnemyMonIndex ldr r1, _080144F0 @ =0x02000000 - ldr r0, _080144F4 @ =gUnknown_02024C07 + ldr r0, _080144F4 @ =gPlayerMonIndex ldrb r0, [r0] ldr r4, _080144F8 @ =0x00016010 adds r0, r4 @@ -13556,7 +13556,7 @@ _080144B6: ldrb r0, [r7] ldr r1, _08014500 @ =gBitTable mov r8, r1 - ldr r5, _080144EC @ =gUnknown_02024C08 + ldr r5, _080144EC @ =gEnemyMonIndex ldrb r1, [r5] lsls r1, 2 add r1, r8 @@ -13566,7 +13566,7 @@ _080144B6: bne _080144D0 b _080146AC _080144D0: - ldr r6, _080144F4 @ =gUnknown_02024C07 + ldr r6, _080144F4 @ =gPlayerMonIndex ldrb r0, [r6] bl battle_side_get_owner adds r4, r0, 0 @@ -13579,9 +13579,9 @@ _080144D0: ldrb r0, [r5] b _0801469A .align 2, 0 -_080144EC: .4byte gUnknown_02024C08 +_080144EC: .4byte gEnemyMonIndex _080144F0: .4byte 0x02000000 -_080144F4: .4byte gUnknown_02024C07 +_080144F4: .4byte gPlayerMonIndex _080144F8: .4byte 0x00016010 _080144FC: .4byte gUnknown_02024C0C _08014500: .4byte gBitTable @@ -13624,7 +13624,7 @@ _08014522: movs r2, 0x2 orrs r1, r2 strb r1, [r0] - ldr r1, _0801456C @ =gUnknown_02024C08 + ldr r1, _0801456C @ =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1] b _080146AC @@ -13633,7 +13633,7 @@ _0801455C: .4byte gUnknown_02024A60 _08014560: .4byte gUnknown_02024A7A _08014564: .4byte gBattleMons _08014568: .4byte gUnknown_02024D68 -_0801456C: .4byte gUnknown_02024C08 +_0801456C: .4byte gEnemyMonIndex _08014570: mov r4, r9 ldrh r1, [r4] @@ -13684,12 +13684,12 @@ _080145D0: movs r0, 0x2 _080145D2: bl battle_get_side_with_given_state - ldr r1, _0801460C @ =gUnknown_02024C08 + ldr r1, _0801460C @ =gEnemyMonIndex strb r0, [r1] ldr r0, _08014610 @ =gUnknown_02024C0C ldrb r1, [r0] ldr r2, _08014614 @ =gBitTable - ldr r5, _0801460C @ =gUnknown_02024C08 + ldr r5, _0801460C @ =gEnemyMonIndex ldrb r0, [r5] lsls r0, 2 adds r0, r2 @@ -13697,7 +13697,7 @@ _080145D2: ands r1, r0 cmp r1, 0 beq _080146AC - ldr r0, _08014618 @ =gUnknown_02024C07 + ldr r0, _08014618 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner adds r4, r0, 0 @@ -13710,12 +13710,12 @@ _080145D2: ldrb r0, [r5] b _0801469A .align 2, 0 -_0801460C: .4byte gUnknown_02024C08 +_0801460C: .4byte gEnemyMonIndex _08014610: .4byte gUnknown_02024C0C _08014614: .4byte gBitTable -_08014618: .4byte gUnknown_02024C07 +_08014618: .4byte gPlayerMonIndex _0801461C: - ldr r5, _08014660 @ =gUnknown_02024C08 + ldr r5, _08014660 @ =gEnemyMonIndex ldr r1, _08014664 @ =0x02000000 adds r2, r3, 0 ldrb r0, [r2] @@ -13748,7 +13748,7 @@ _0801461C: ldrb r0, [r5] b _0801469A .align 2, 0 -_08014660: .4byte gUnknown_02024C08 +_08014660: .4byte gEnemyMonIndex _08014664: .4byte 0x02000000 _08014668: .4byte 0x00016010 _0801466C: .4byte gUnknown_02024C0C @@ -13818,7 +13818,7 @@ _080146F0: .4byte gUnknown_02024A7F thumb_func_start sub_80146F4 sub_80146F4: @ 80146F4 push {r4,lr} - ldr r3, _08014764 @ =gUnknown_02024C07 + ldr r3, _08014764 @ =gPlayerMonIndex ldr r1, _08014768 @ =gUnknown_02024A7A ldr r0, _0801476C @ =gUnknown_02024A7E ldrb r0, [r0] @@ -13874,7 +13874,7 @@ _0801475C: pop {r0} bx r0 .align 2, 0 -_08014764: .4byte gUnknown_02024C07 +_08014764: .4byte gPlayerMonIndex _08014768: .4byte gUnknown_02024A7A _0801476C: .4byte gUnknown_02024A7E _08014770: .4byte gUnknown_030042A4 @@ -13898,8 +13898,8 @@ sub_80147A0: @ 80147A0 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r4, _08014804 @ =gUnknown_02024C07 - ldr r2, _08014808 @ =gUnknown_02024C08 + ldr r4, _08014804 @ =gPlayerMonIndex + ldr r2, _08014808 @ =gEnemyMonIndex ldr r1, _0801480C @ =gUnknown_02024A7A ldr r0, _08014810 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -13943,8 +13943,8 @@ sub_80147A0: @ 80147A0 str r0, [r2] b _08014A8C .align 2, 0 -_08014804: .4byte gUnknown_02024C07 -_08014808: .4byte gUnknown_02024C08 +_08014804: .4byte gPlayerMonIndex +_08014808: .4byte gEnemyMonIndex _0801480C: .4byte gUnknown_02024A7A _08014810: .4byte gUnknown_02024A7E _08014814: .4byte gUnknown_030042A4 @@ -14028,7 +14028,7 @@ _080148CC: ldr r2, _08014904 @ =gUnknown_02024D1E movs r0, 0 strb r0, [r2, 0x5] - ldr r1, _08014908 @ =gUnknown_02024C07 + ldr r1, _08014908 @ =gPlayerMonIndex ldrb r0, [r1] lsrs r0, 1 ldr r6, _0801490C @ =0x000160da @@ -14055,7 +14055,7 @@ _080148FC: b _08014A74 .align 2, 0 _08014904: .4byte gUnknown_02024D1E -_08014908: .4byte gUnknown_02024C07 +_08014908: .4byte gPlayerMonIndex _0801490C: .4byte 0x000160da _08014910: .4byte gUnknown_02024C10 _08014914: .4byte gUnknown_081D9E7C @@ -14095,7 +14095,7 @@ _08014958: ldr r3, _0801498C @ =gUnknown_02024D1E movs r0, 0x4 strb r0, [r3, 0x5] - ldr r2, _08014990 @ =gUnknown_02024C07 + ldr r2, _08014990 @ =gPlayerMonIndex ldrb r0, [r2] lsrs r0, 1 ldr r1, _08014994 @ =0x000160da @@ -14119,7 +14119,7 @@ _08014958: b _08014A74 .align 2, 0 _0801498C: .4byte gUnknown_02024D1E -_08014990: .4byte gUnknown_02024C07 +_08014990: .4byte gPlayerMonIndex _08014994: .4byte 0x000160da _08014998: .4byte gUnknown_02024C10 _0801499C: .4byte gUnknown_081D9E7C @@ -14202,7 +14202,7 @@ _08014A30: ldr r1, _08014A54 @ =gUnknown_02024D1E movs r0, 0x2 strb r0, [r1, 0x5] - ldr r0, _08014A58 @ =gUnknown_02024C07 + ldr r0, _08014A58 @ =gPlayerMonIndex mov r8, r0 ldr r1, _08014A5C @ =gUnknown_02024C10 mov r9, r1 @@ -14212,13 +14212,13 @@ _08014A30: .align 2, 0 _08014A50: .4byte gBattleTypeFlags _08014A54: .4byte gUnknown_02024D1E -_08014A58: .4byte gUnknown_02024C07 +_08014A58: .4byte gPlayerMonIndex _08014A5C: .4byte gUnknown_02024C10 _08014A60: .4byte gUnknown_081D9E7C _08014A64: ldr r0, _08014AA0 @ =gUnknown_02024D1E strb r1, [r0, 0x5] - ldr r3, _08014AA4 @ =gUnknown_02024C07 + ldr r3, _08014AA4 @ =gPlayerMonIndex mov r8, r3 ldr r0, _08014AA8 @ =gUnknown_02024C10 mov r9, r0 @@ -14250,7 +14250,7 @@ _08014A8C: bx r0 .align 2, 0 _08014AA0: .4byte gUnknown_02024D1E -_08014AA4: .4byte gUnknown_02024C07 +_08014AA4: .4byte gPlayerMonIndex _08014AA8: .4byte gUnknown_02024C10 _08014AAC: .4byte gUnknown_081D9E7C _08014AB0: .4byte 0x000160d8 @@ -14416,7 +14416,7 @@ _08014BF0: .4byte gUnknown_02024D26 thumb_func_start sub_8014BF4 sub_8014BF4: @ 8014BF4 push {r4-r6,lr} - ldr r4, _08014C44 @ =gUnknown_02024C07 + ldr r4, _08014C44 @ =gPlayerMonIndex ldr r1, _08014C48 @ =gUnknown_02024A7A ldr r5, _08014C4C @ =gUnknown_02024A7E ldrb r0, [r5] @@ -14456,7 +14456,7 @@ _08014C28: movs r1, 0x2 b _08014C72 .align 2, 0 -_08014C44: .4byte gUnknown_02024C07 +_08014C44: .4byte gPlayerMonIndex _08014C48: .4byte gUnknown_02024A7A _08014C4C: .4byte gUnknown_02024A7E _08014C50: .4byte gBattleTypeFlags @@ -14579,7 +14579,7 @@ _08014D4C: .4byte gUnknown_02024D26 thumb_func_start sub_8014D50 sub_8014D50: @ 8014D50 - ldr r2, _08014D78 @ =gUnknown_02024C07 + ldr r2, _08014D78 @ =gPlayerMonIndex ldr r1, _08014D7C @ =gUnknown_02024A7A ldr r0, _08014D80 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -14600,7 +14600,7 @@ sub_8014D50: @ 8014D50 strb r0, [r1] bx lr .align 2, 0 -_08014D78: .4byte gUnknown_02024C07 +_08014D78: .4byte gPlayerMonIndex _08014D7C: .4byte gUnknown_02024A7A _08014D80: .4byte gUnknown_02024A7E _08014D84: .4byte gUnknown_030042A4 @@ -14612,7 +14612,7 @@ _08014D94: .4byte gUnknown_02024A7F thumb_func_start sub_8014D98 sub_8014D98: @ 8014D98 - ldr r2, _08014DD0 @ =gUnknown_02024C07 + ldr r2, _08014DD0 @ =gPlayerMonIndex ldr r1, _08014DD4 @ =gUnknown_02024A7A ldr r0, _08014DD8 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -14640,7 +14640,7 @@ sub_8014D98: @ 8014D98 strb r0, [r1] bx lr .align 2, 0 -_08014DD0: .4byte gUnknown_02024C07 +_08014DD0: .4byte gPlayerMonIndex _08014DD4: .4byte gUnknown_02024A7A _08014DD8: .4byte gUnknown_02024A7E _08014DDC: .4byte gUnknown_030042A4 @@ -14655,7 +14655,7 @@ _08014DF4: .4byte gUnknown_02024A7F thumb_func_start sub_8014DF8 sub_8014DF8: @ 8014DF8 push {r4-r6,lr} - ldr r3, _08014E68 @ =gUnknown_02024C07 + ldr r3, _08014E68 @ =gPlayerMonIndex ldr r1, _08014E6C @ =gUnknown_02024A7A ldr r0, _08014E70 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -14711,7 +14711,7 @@ _08014E42: movs r0, 0x1 b _08014E9A .align 2, 0 -_08014E68: .4byte gUnknown_02024C07 +_08014E68: .4byte gPlayerMonIndex _08014E6C: .4byte gUnknown_02024A7A _08014E70: .4byte gUnknown_02024A7E _08014E74: .4byte gUnknown_030042A4 @@ -14747,7 +14747,7 @@ _08014EB8: .4byte gUnknown_02024A7F thumb_func_start sub_8014EBC sub_8014EBC: @ 8014EBC push {r4,r5,lr} - ldr r2, _08014F28 @ =gUnknown_02024C07 + ldr r2, _08014F28 @ =gPlayerMonIndex ldr r1, _08014F2C @ =gUnknown_02024A7A ldr r0, _08014F30 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -14803,7 +14803,7 @@ _08014F18: strb r5, [r0, 0x5] b _08014F5A .align 2, 0 -_08014F28: .4byte gUnknown_02024C07 +_08014F28: .4byte gPlayerMonIndex _08014F2C: .4byte gUnknown_02024A7A _08014F30: .4byte gUnknown_02024A7E _08014F34: .4byte gUnknown_030042A4 @@ -14839,7 +14839,7 @@ _08014F7C: .4byte gUnknown_02024A7F thumb_func_start bs8_exit_by_flight bs8_exit_by_flight: @ 8014F80 push {r4,lr} - ldr r2, _08014FA8 @ =gUnknown_02024C07 + ldr r2, _08014FA8 @ =gPlayerMonIndex ldr r1, _08014FAC @ =gUnknown_02024A7A ldr r4, _08014FB0 @ =gUnknown_02024A7E ldrb r0, [r4] @@ -14858,7 +14858,7 @@ bs8_exit_by_flight: @ 8014F80 pop {r0} bx r0 .align 2, 0 -_08014FA8: .4byte gUnknown_02024C07 +_08014FA8: .4byte gPlayerMonIndex _08014FAC: .4byte gUnknown_02024A7A _08014FB0: .4byte gUnknown_02024A7E _08014FB4: .4byte gUnknown_02024A68 @@ -14867,7 +14867,7 @@ _08014FB8: .4byte gUnknown_02024D26 thumb_func_start sub_8014FBC sub_8014FBC: @ 8014FBC - ldr r3, _08015008 @ =gUnknown_02024C07 + ldr r3, _08015008 @ =gPlayerMonIndex ldr r1, _0801500C @ =gUnknown_02024A7A ldr r0, _08015010 @ =gUnknown_02024A7E ldrb r0, [r0] @@ -14905,7 +14905,7 @@ sub_8014FBC: @ 8014FBC strb r0, [r1, 0x1] bx lr .align 2, 0 -_08015008: .4byte gUnknown_02024C07 +_08015008: .4byte gPlayerMonIndex _0801500C: .4byte gUnknown_02024A7A _08015010: .4byte gUnknown_02024A7E _08015014: .4byte gUnknown_030042A4 @@ -14998,7 +14998,7 @@ bsC_8016D70: @ 8015094 adds r0, r1, r3 strb r4, [r0] ldr r2, _08015130 @ =gUnknown_02024C3C - ldr r5, _08015134 @ =gUnknown_02024C07 + ldr r5, _08015134 @ =gPlayerMonIndex ldrb r0, [r5] lsls r0, 1 adds r0, r2 @@ -15040,7 +15040,7 @@ _08015124: .4byte 0x02000000 _08015128: .4byte 0x00016002 _0801512C: .4byte 0x000160a1 _08015130: .4byte gUnknown_02024C3C -_08015134: .4byte gUnknown_02024C07 +_08015134: .4byte gPlayerMonIndex _08015138: .4byte gUnknown_02024C44 _0801513C: .4byte 0x0001601c _08015140: .4byte gUnknown_02024DEC @@ -15078,15 +15078,15 @@ _0801516C: .4byte _080151C8 .4byte _080151B4 _08015198: - ldr r0, _0801519C @ =gUnknown_02024C08 + ldr r0, _0801519C @ =gEnemyMonIndex b _080151C6 .align 2, 0 -_0801519C: .4byte gUnknown_02024C08 +_0801519C: .4byte gEnemyMonIndex _080151A0: - ldr r0, _080151A4 @ =gUnknown_02024C07 + ldr r0, _080151A4 @ =gPlayerMonIndex b _080151C6 .align 2, 0 -_080151A4: .4byte gUnknown_02024C07 +_080151A4: .4byte gPlayerMonIndex _080151A8: ldr r0, _080151AC @ =gUnknown_02024C0A b _080151C6 @@ -16703,14 +16703,14 @@ sub_8015DFC: @ 8015DFC push {r5-r7} movs r0, 0 mov r9, r0 - ldr r1, _08015EA0 @ =gUnknown_02024C07 + ldr r1, _08015EA0 @ =gPlayerMonIndex mov r2, r9 strb r2, [r1] ldr r0, _08015EA4 @ =gUnknown_02024A68 ldrb r4, [r0] adds r6, r1, 0 mov r10, r0 - ldr r7, _08015EA8 @ =gUnknown_02024C08 + ldr r7, _08015EA8 @ =gEnemyMonIndex ldr r3, _08015EAC @ =0x02000000 mov r12, r3 cmp r9, r4 @@ -16784,9 +16784,9 @@ _08015E96: ldr r0, [r0] mov pc, r0 .align 2, 0 -_08015EA0: .4byte gUnknown_02024C07 +_08015EA0: .4byte gPlayerMonIndex _08015EA4: .4byte gUnknown_02024A68 -_08015EA8: .4byte gUnknown_02024C08 +_08015EA8: .4byte gEnemyMonIndex _08015EAC: .4byte 0x02000000 _08015EB0: .4byte gUnknown_02024C0C _08015EB4: .4byte gBitTable @@ -16891,7 +16891,7 @@ _08015F80: movs r7, 0 ldr r5, _0801601C @ =gUnknown_030041C0 _08015F8A: - ldr r0, _08016020 @ =gUnknown_02024C07 + ldr r0, _08016020 @ =gPlayerMonIndex ldrb r4, [r6] strb r4, [r0] mov r0, r8 @@ -16961,7 +16961,7 @@ _08016010: .4byte 0x0001600e _08016014: .4byte 0x000160fc _08016018: .4byte gUnknown_02024A60 _0801601C: .4byte gUnknown_030041C0 -_08016020: .4byte gUnknown_02024C07 +_08016020: .4byte gPlayerMonIndex _08016024: .4byte gUnknown_02024C7A _08016028: .4byte gUnknown_02024C80 _0801602C: .4byte 0x0000fffe @@ -16981,7 +16981,7 @@ _08016040: mov r8, r0 ldr r5, _080160D0 @ =gUnknown_030041C0 _0801604C: - ldr r0, _080160D4 @ =gUnknown_02024C07 + ldr r0, _080160D4 @ =gPlayerMonIndex ldrb r4, [r7] strb r4, [r0] ldr r1, _080160D8 @ =gUnknown_02024A60 @@ -17049,7 +17049,7 @@ _080160C2: .align 2, 0 _080160CC: .4byte 0x000160fc _080160D0: .4byte gUnknown_030041C0 -_080160D4: .4byte gUnknown_02024C07 +_080160D4: .4byte gPlayerMonIndex _080160D8: .4byte gUnknown_02024A60 _080160DC: .4byte gUnknown_02024C7A _080160E0: .4byte gUnknown_02024C80 @@ -17070,7 +17070,7 @@ _080160F4: mov r8, r1 ldr r5, _080161A4 @ =gUnknown_030041C0 _0801610A: - ldr r0, _080161A8 @ =gUnknown_02024C07 + ldr r0, _080161A8 @ =gPlayerMonIndex ldrb r4, [r7] strb r4, [r0] mov r2, r10 @@ -17150,7 +17150,7 @@ _0801618A: _0801619C: .4byte 0x000160fc _080161A0: .4byte gUnknown_02024A60 _080161A4: .4byte gUnknown_030041C0 -_080161A8: .4byte gUnknown_02024C07 +_080161A8: .4byte gPlayerMonIndex _080161AC: .4byte gUnknown_02024C80 _080161B0: .4byte gUnknown_02024C7A _080161B4: .4byte 0x0000feff @@ -17166,7 +17166,7 @@ _080161C8: bhi _08016236 ldr r7, _08016254 @ =gUnknown_02024A60 adds r5, r1, 0 - ldr r6, _08016258 @ =gUnknown_02024C07 + ldr r6, _08016258 @ =gPlayerMonIndex _080161D8: ldrb r4, [r5] strb r4, [r6] @@ -17234,7 +17234,7 @@ _0801623E: .align 2, 0 _08016250: .4byte 0x000160fc _08016254: .4byte gUnknown_02024A60 -_08016258: .4byte gUnknown_02024C07 +_08016258: .4byte gPlayerMonIndex _0801625C: .4byte gUnknown_02024C7A _08016260: .4byte gUnknown_02024C80 _08016264: .4byte 0x0000ffdf @@ -17276,7 +17276,7 @@ _08016288: ldrh r0, [r0, 0x28] cmp r0, 0 beq _080162CA - ldr r0, _08016314 @ =gUnknown_02024C08 + ldr r0, _08016314 @ =gEnemyMonIndex strb r2, [r0] ldr r0, _08016318 @ =gUnknown_081D939A bl b_call_bc_move_exec @@ -17321,7 +17321,7 @@ _08016304: .4byte gUnknown_02024A60 _08016308: .4byte gUnknown_02024DDC _0801630C: .4byte gUnknown_02024A7A _08016310: .4byte gBattleMons -_08016314: .4byte gUnknown_02024C08 +_08016314: .4byte gEnemyMonIndex _08016318: .4byte gUnknown_081D939A _0801631C: .4byte 0x02000000 _08016320: .4byte 0x0001600e @@ -17619,7 +17619,7 @@ _08016578: .4byte gUnknown_02024C6C _0801657C: .4byte 0x01000020 _08016580: ldr r3, _080165B4 @ =gUnknown_02024A60 - ldr r4, _080165B8 @ =gUnknown_02024C07 + ldr r4, _080165B8 @ =gPlayerMonIndex ldr r1, _080165BC @ =gUnknown_02024A7A adds r5, r7, r2 ldrb r0, [r5] @@ -17644,7 +17644,7 @@ _08016580: bl _08017088 .align 2, 0 _080165B4: .4byte gUnknown_02024A60 -_080165B8: .4byte gUnknown_02024C07 +_080165B8: .4byte gPlayerMonIndex _080165BC: .4byte gUnknown_02024A7A _080165C0: .4byte gUnknown_02024C0C _080165C4: .4byte gBitTable @@ -17830,7 +17830,7 @@ _08016730: ldrh r0, [r0, 0x28] cmp r0, 0 beq _0801679C - ldr r0, _080167B0 @ =gUnknown_02024C08 + ldr r0, _080167B0 @ =gEnemyMonIndex strb r5, [r0] ldr r2, _080167B4 @ =gBattleMoveDamage ldrb r0, [r6] @@ -17868,7 +17868,7 @@ _0801679C: .align 2, 0 _080167A8: .4byte gUnknown_02024C98 _080167AC: .4byte gBattleMons -_080167B0: .4byte gUnknown_02024C08 +_080167B0: .4byte gEnemyMonIndex _080167B4: .4byte gBattleMoveDamage _080167B8: .4byte 0x02000000 _080167BC: .4byte 0x000160a4 @@ -18374,7 +18374,7 @@ _08016BD2: cmp r0, r1 bcc _08016BB2 _08016BE0: - ldr r2, _08016BF8 @ =gUnknown_02024C07 + ldr r2, _08016BF8 @ =gPlayerMonIndex ldr r1, _08016BFC @ =gUnknown_02024A68 ldrb r0, [r2] ldrb r1, [r1] @@ -18385,7 +18385,7 @@ _08016BE0: b _0801707E .align 2, 0 _08016BF4: .4byte gBattleMons -_08016BF8: .4byte gUnknown_02024C07 +_08016BF8: .4byte gPlayerMonIndex _08016BFC: .4byte gUnknown_02024A68 _08016C00: ldr r5, _08016C38 @ =gUnknown_02024A60 @@ -19130,10 +19130,10 @@ _080171C6: strb r0, [r6, 0x3] movs r0, 0xFF strb r0, [r6, 0x4] - ldr r3, _08017224 @ =gUnknown_02024C08 + ldr r3, _08017224 @ =gEnemyMonIndex ldrb r0, [r4] strb r0, [r3] - ldr r1, _08017228 @ =gUnknown_02024C07 + ldr r1, _08017228 @ =gPlayerMonIndex mov r0, r12 adds r0, 0x4 ldrb r2, [r4] @@ -19159,8 +19159,8 @@ _080171C6: b _08017364 .align 2, 0 _08017220: .4byte gUnknown_02024D1E -_08017224: .4byte gUnknown_02024C08 -_08017228: .4byte gUnknown_02024C07 +_08017224: .4byte gEnemyMonIndex +_08017228: .4byte gPlayerMonIndex _0801722C: .4byte gBattleMoveDamage _08017230: .4byte gUnknown_02024D68 _08017234: .4byte 0x0000ffff @@ -19197,7 +19197,7 @@ _0801726A: ldr r4, _080172AC @ =gUnknown_030041C0 ldr r7, _080172B0 @ =gUnknown_02024CA8 _08017272: - ldr r2, _080172B4 @ =gUnknown_02024C07 + ldr r2, _080172B4 @ =gPlayerMonIndex ldr r1, _080172B8 @ =gUnknown_02024A7A ldrb r0, [r3] adds r0, r1 @@ -19225,7 +19225,7 @@ _080172A4: .4byte gUnknown_02024A68 _080172A8: .4byte gUnknown_02024A60 _080172AC: .4byte gUnknown_030041C0 _080172B0: .4byte gUnknown_02024CA8 -_080172B4: .4byte gUnknown_02024C07 +_080172B4: .4byte gPlayerMonIndex _080172B8: .4byte gUnknown_02024A7A _080172BC: .4byte gUnknown_02024C0C _080172C0: .4byte gBitTable @@ -19459,7 +19459,7 @@ _08017490: mov r9, r1 ldr r0, _08017520 @ =gUnknown_02024C09 mov r12, r0 - ldr r1, _08017524 @ =gUnknown_02024C08 + ldr r1, _08017524 @ =gEnemyMonIndex mov r8, r1 mov r10, r9 ldr r5, _08017508 @ =0x0001605a @@ -19524,7 +19524,7 @@ _08017514: .4byte gUnknown_02024C0C _08017518: .4byte gBitTable _0801751C: .4byte 0x02000000 _08017520: .4byte gUnknown_02024C09 -_08017524: .4byte gUnknown_02024C08 +_08017524: .4byte gEnemyMonIndex _08017528: .4byte gBattleMons _0801752C: .4byte 0x00016113 _08017530: .4byte gUnknown_02024A6A @@ -19573,7 +19573,7 @@ _0801757C: strb r0, [r1] _0801758E: ldr r7, _080175E0 @ =gUnknown_02024C09 - ldr r6, _080175E4 @ =gUnknown_02024C08 + ldr r6, _080175E4 @ =gEnemyMonIndex ldr r1, _080175E8 @ =0x02000000 mov r8, r1 ldr r3, _080175D8 @ =0x0001605a @@ -19614,7 +19614,7 @@ _080175C4: _080175D8: .4byte 0x0001605a _080175DC: .4byte 0x00016059 _080175E0: .4byte gUnknown_02024C09 -_080175E4: .4byte gUnknown_02024C08 +_080175E4: .4byte gEnemyMonIndex _080175E8: .4byte 0x02000000 _080175EC: .4byte gBattleMons _080175F0: .4byte gBitTable @@ -19829,7 +19829,7 @@ _08017768: .4byte _08017F9E _080177A4: ldr r1, _080177D0 @ =gBattleMons - ldr r3, _080177D4 @ =gUnknown_02024C07 + ldr r3, _080177D4 @ =gPlayerMonIndex ldrb r2, [r3] movs r0, 0x58 muls r2, r0 @@ -19850,13 +19850,13 @@ _080177A4: bl _08017F94 .align 2, 0 _080177D0: .4byte gBattleMons -_080177D4: .4byte gUnknown_02024C07 +_080177D4: .4byte gPlayerMonIndex _080177D8: .4byte 0xfdffffff _080177DC: .4byte gUnknown_02024C98 _080177E0: .4byte 0xffffbfff _080177E4: ldr r7, _0801784C @ =gBattleMons - ldr r4, _08017850 @ =gUnknown_02024C07 + ldr r4, _08017850 @ =gPlayerMonIndex ldrb r1, [r4] movs r5, 0x58 adds r0, r1, 0 @@ -19908,7 +19908,7 @@ _08017804: b _08017D90 .align 2, 0 _0801784C: .4byte gBattleMons -_08017850: .4byte gUnknown_02024C07 +_08017850: .4byte gPlayerMonIndex _08017854: .4byte 0xf7ffffff _08017858: .4byte gUnknown_02024D1E _0801785C: .4byte gUnknown_02024C10 @@ -19942,7 +19942,7 @@ _08017890: str r0, [r2] _08017894: ldr r2, _080178D8 @ =gBattleMons - ldr r0, _080178DC @ =gUnknown_02024C07 + ldr r0, _080178DC @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -19978,7 +19978,7 @@ _080178BE: b _08017D90 .align 2, 0 _080178D8: .4byte gBattleMons -_080178DC: .4byte gUnknown_02024C07 +_080178DC: .4byte gPlayerMonIndex _080178E0: .4byte gUnknown_02024BE6 _080178E4: .4byte gUnknown_02024C10 _080178E8: .4byte gUnknown_081D94EE @@ -20005,7 +20005,7 @@ _08017918: .4byte gUnknown_02024C10 _0801791C: .4byte gUnknown_081D94FB _08017920: ldr r1, _0801797C @ =gBattleMons - ldr r7, _08017980 @ =gUnknown_02024C07 + ldr r7, _08017980 @ =gPlayerMonIndex ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -20050,7 +20050,7 @@ _0801793C: b _080179C8 .align 2, 0 _0801797C: .4byte gBattleMons -_08017980: .4byte gUnknown_02024C07 +_08017980: .4byte gPlayerMonIndex _08017984: .4byte gBattleMoves _08017988: .4byte gUnknown_02024BE6 _0801798C: .4byte gUnknown_02024C10 @@ -20089,7 +20089,7 @@ _080179D0: .4byte gUnknown_081D9552 _080179D4: .4byte gUnknown_02024D1E _080179D8: ldr r1, _08017A30 @ =gBattleMons - ldr r0, _08017A34 @ =gUnknown_02024C07 + ldr r0, _08017A34 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -20135,7 +20135,7 @@ _08017A02: b _08017D90 .align 2, 0 _08017A30: .4byte gBattleMons -_08017A34: .4byte gUnknown_02024C07 +_08017A34: .4byte gPlayerMonIndex _08017A38: .4byte gUnknown_02024CA8 _08017A3C: .4byte gUnknown_02024C6C _08017A40: .4byte gUnknown_02024D1E @@ -20144,7 +20144,7 @@ _08017A48: .4byte gUnknown_081D9977 _08017A4C: .4byte gBattleMoveFlags _08017A50: ldr r1, _08017AA4 @ =gBattleMons - ldr r3, _08017AA8 @ =gUnknown_02024C07 + ldr r3, _08017AA8 @ =gPlayerMonIndex ldrb r2, [r3] movs r0, 0x58 muls r0, r2 @@ -20187,7 +20187,7 @@ _08017A9C: b _08017D96 .align 2, 0 _08017AA4: .4byte gBattleMons -_08017AA8: .4byte gUnknown_02024C07 +_08017AA8: .4byte gPlayerMonIndex _08017AAC: .4byte 0xffbfffff _08017AB0: .4byte gUnknown_02024CA8 _08017AB4: .4byte gUnknown_02024C10 @@ -20197,7 +20197,7 @@ _08017AC0: .4byte 0x02000000 _08017AC4: .4byte 0x000160e7 _08017AC8: ldr r1, _08017B08 @ =gBattleMons - ldr r3, _08017B0C @ =gUnknown_02024C07 + ldr r3, _08017B0C @ =gPlayerMonIndex ldrb r2, [r3] movs r0, 0x58 muls r0, r2 @@ -20229,13 +20229,13 @@ _08017AE2: b _08017D7E .align 2, 0 _08017B08: .4byte gBattleMons -_08017B0C: .4byte gUnknown_02024C07 +_08017B0C: .4byte gPlayerMonIndex _08017B10: .4byte gUnknown_02024D28 _08017B14: .4byte gUnknown_02024C10 _08017B18: .4byte gUnknown_081D9573 _08017B1C: ldr r0, _08017B74 @ =gUnknown_02024CA8 - ldr r3, _08017B78 @ =gUnknown_02024C07 + ldr r3, _08017B78 @ =gPlayerMonIndex ldrb r2, [r3] lsls r1, r2, 3 subs r1, r2 @@ -20280,7 +20280,7 @@ _08017B3C: b _08017D90 .align 2, 0 _08017B74: .4byte gUnknown_02024CA8 -_08017B78: .4byte gUnknown_02024C07 +_08017B78: .4byte gPlayerMonIndex _08017B7C: .4byte gUnknown_02024BE6 _08017B80: .4byte gUnknown_02024D28 _08017B84: .4byte 0x02000000 @@ -20290,7 +20290,7 @@ _08017B90: .4byte gUnknown_081D9139 _08017B94: .4byte gUnknown_02024C6C _08017B98: ldr r0, _08017BF4 @ =gUnknown_02024CA8 - ldr r4, _08017BF8 @ =gUnknown_02024C07 + ldr r4, _08017BF8 @ =gPlayerMonIndex ldrb r3, [r4] lsls r1, r3, 3 subs r1, r3 @@ -20337,7 +20337,7 @@ _08017BEC: b _08017D96 .align 2, 0 _08017BF4: .4byte gUnknown_02024CA8 -_08017BF8: .4byte gUnknown_02024C07 +_08017BF8: .4byte gPlayerMonIndex _08017BFC: .4byte gBattleMoves _08017C00: .4byte gUnknown_02024BE6 _08017C04: .4byte gUnknown_02024D28 @@ -20347,7 +20347,7 @@ _08017C10: .4byte gUnknown_02024C6C _08017C14: .4byte 0x02000000 _08017C18: .4byte 0x000160e7 _08017C1C: - ldr r4, _08017C4C @ =gUnknown_02024C07 + ldr r4, _08017C4C @ =gPlayerMonIndex ldrb r0, [r4] ldr r1, _08017C50 @ =gUnknown_02024BE6 ldrh r1, [r1] @@ -20371,14 +20371,14 @@ _08017C30: ldr r0, _08017C5C @ =gUnknown_081D9459 b _08017D7E .align 2, 0 -_08017C4C: .4byte gUnknown_02024C07 +_08017C4C: .4byte gPlayerMonIndex _08017C50: .4byte gUnknown_02024BE6 _08017C54: .4byte gUnknown_02024D28 _08017C58: .4byte gUnknown_02024C10 _08017C5C: .4byte gUnknown_081D9459 _08017C60: ldr r7, _08017CAC @ =gBattleMons - ldr r5, _08017CB0 @ =gUnknown_02024C07 + ldr r5, _08017CB0 @ =gPlayerMonIndex ldrb r0, [r5] movs r6, 0x58 muls r0, r6 @@ -20415,13 +20415,13 @@ _08017C7E: b _08017D02 .align 2, 0 _08017CAC: .4byte gBattleMons -_08017CB0: .4byte gUnknown_02024C07 +_08017CB0: .4byte gPlayerMonIndex _08017CB4: .4byte gUnknown_02024D1E _08017CB8: ldr r0, _08017D08 @ =gUnknown_02024D1E movs r4, 0x1 strb r1, [r0, 0x5] - ldr r1, _08017D0C @ =gUnknown_02024C08 + ldr r1, _08017D0C @ =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] ldrb r0, [r5] @@ -20460,7 +20460,7 @@ _08017D02: b _08017D2C .align 2, 0 _08017D08: .4byte gUnknown_02024D1E -_08017D0C: .4byte gUnknown_02024C08 +_08017D0C: .4byte gEnemyMonIndex _08017D10: .4byte gBattleMoveDamage _08017D14: .4byte gUnknown_02024D28 _08017D18: .4byte gUnknown_02024C6C @@ -20479,7 +20479,7 @@ _08017D34: .4byte gUnknown_02024C10 _08017D38: .4byte gUnknown_081D95D4 _08017D3C: ldr r1, _08017DA0 @ =gBattleMons - ldr r4, _08017DA4 @ =gUnknown_02024C07 + ldr r4, _08017DA4 @ =gPlayerMonIndex ldrb r2, [r4] movs r0, 0x58 muls r0, r2 @@ -20532,7 +20532,7 @@ _08017D96: b _08017F9E .align 2, 0 _08017DA0: .4byte gBattleMons -_08017DA4: .4byte gUnknown_02024C07 +_08017DA4: .4byte gPlayerMonIndex _08017DA8: .4byte gUnknown_02024D28 _08017DAC: .4byte gUnknown_02024C10 _08017DB0: .4byte gUnknown_081D9566 @@ -20541,7 +20541,7 @@ _08017DB8: .4byte 0x02000000 _08017DBC: .4byte 0x000160e7 _08017DC0: ldr r1, _08017DFC @ =gBattleMons - ldr r4, _08017E00 @ =gUnknown_02024C07 + ldr r4, _08017E00 @ =gPlayerMonIndex ldrb r2, [r4] movs r0, 0x58 muls r0, r2 @@ -20570,7 +20570,7 @@ _08017DDC: b _08017E34 .align 2, 0 _08017DFC: .4byte gBattleMons -_08017E00: .4byte gUnknown_02024C07 +_08017E00: .4byte gPlayerMonIndex _08017E04: .4byte 0x02000000 _08017E08: .4byte 0x00016003 _08017E0C: @@ -20611,7 +20611,7 @@ _08017E54: .4byte gUnknown_081D95FB _08017E58: .4byte 0x02000000 _08017E5C: ldr r1, _08017E98 @ =gBattleMons - ldr r6, _08017E9C @ =gUnknown_02024C07 + ldr r6, _08017E9C @ =gPlayerMonIndex ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -20642,7 +20642,7 @@ _08017E7A: b _08017F38 .align 2, 0 _08017E98: .4byte gBattleMons -_08017E9C: .4byte gUnknown_02024C07 +_08017E9C: .4byte gPlayerMonIndex _08017EA0: .4byte 0xffffff00 _08017EA4: .4byte gUnknown_02024C10 _08017EA8: .4byte gUnknown_081D90A7 @@ -20667,7 +20667,7 @@ _08017EAC: lsls r0, 1 mov r1, r10 str r0, [r1] - ldr r4, _08017F18 @ =gUnknown_02024C08 + ldr r4, _08017F18 @ =gEnemyMonIndex ldr r1, _08017F1C @ =gUnknown_02024C74 ldrb r0, [r6] adds r0, r1 @@ -20698,7 +20698,7 @@ _08017EFE: _08017F0C: .4byte 0xffffefff _08017F10: .4byte gUnknown_02024BF4 _08017F14: .4byte gUnknown_02024BE6 -_08017F18: .4byte gUnknown_02024C08 +_08017F18: .4byte gEnemyMonIndex _08017F1C: .4byte gUnknown_02024C74 _08017F20: .4byte gUnknown_02024C0C _08017F24: .4byte gBitTable @@ -20719,7 +20719,7 @@ _08017F40: .4byte gUnknown_02024C10 _08017F44: .4byte gUnknown_081D90F1 _08017F48: ldr r1, _08017FEC @ =gBattleMons - ldr r0, _08017FF0 @ =gUnknown_02024C07 + ldr r0, _08017FF0 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -20775,7 +20775,7 @@ _08017FAC: cmp r1, 0x2 bne _08017FD8 ldr r4, _08018010 @ =gUnknown_02024A60 - ldr r0, _08017FF0 @ =gUnknown_02024C07 + ldr r0, _08017FF0 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r4] ldrb r1, [r4] @@ -20803,7 +20803,7 @@ _08017FD8: bx r1 .align 2, 0 _08017FEC: .4byte gBattleMons -_08017FF0: .4byte gUnknown_02024C07 +_08017FF0: .4byte gPlayerMonIndex _08017FF4: .4byte gBattleMoves _08017FF8: .4byte gUnknown_02024BE6 _08017FFC: .4byte gUnknown_02024C10 @@ -21235,7 +21235,7 @@ sub_8018324: @ 8018324 lsrs r4, 16 movs r0, 0 mov r9, r0 - ldr r5, _08018380 @ =gUnknown_02024C07 + ldr r5, _08018380 @ =gPlayerMonIndex ldr r1, _08018384 @ =gUnknown_02024A68 ldrb r0, [r5] ldrb r1, [r1] @@ -21259,7 +21259,7 @@ _08018360: ldr r0, _0801838C @ =gPlayerParty b _080183A0 .align 2, 0 -_08018380: .4byte gUnknown_02024C07 +_08018380: .4byte gPlayerMonIndex _08018384: .4byte gUnknown_02024A68 _08018388: .4byte gUnknown_02024A6A _0801838C: .4byte gPlayerParty @@ -21274,7 +21274,7 @@ _08018390: ldr r0, _080183D4 @ =gEnemyParty _080183A0: adds r7, r1, r0 - ldr r5, _080183D8 @ =gUnknown_02024C08 + ldr r5, _080183D8 @ =gEnemyMonIndex ldr r1, _080183DC @ =gUnknown_02024A68 ldrb r0, [r5] ldrb r1, [r1] @@ -21300,7 +21300,7 @@ _080183B2: .align 2, 0 _080183D0: .4byte gUnknown_02024A6A _080183D4: .4byte gEnemyParty -_080183D8: .4byte gUnknown_02024C08 +_080183D8: .4byte gEnemyMonIndex _080183DC: .4byte gUnknown_02024A68 _080183E0: .4byte gPlayerParty _080183E4: @@ -21436,7 +21436,7 @@ _080184C8: .4byte _08019F44 .4byte _08019CD4 _08018518: - ldr r2, _0801854C @ =gUnknown_02024C07 + ldr r2, _0801854C @ =gPlayerMonIndex ldr r0, _08018550 @ =gUnknown_02024A68 ldrb r1, [r2] adds r5, r0, 0 @@ -21466,7 +21466,7 @@ _0801853E: _08018548: bl _08019F76 .align 2, 0 -_0801854C: .4byte gUnknown_02024C07 +_0801854C: .4byte gPlayerMonIndex _08018550: .4byte gUnknown_02024A68 _08018554: cmp r0, 0x16 @@ -21796,7 +21796,7 @@ _08018814: bne _08018828 bl _08019F76 _08018828: - ldr r0, _08018848 @ =gUnknown_02024C07 + ldr r0, _08018848 @ =gPlayerMonIndex mov r3, r10 strb r3, [r0] mov r3, r8 @@ -21812,7 +21812,7 @@ _08018840: bl _08019F76 .align 2, 0 _08018844: .4byte gBattleMons -_08018848: .4byte gUnknown_02024C07 +_08018848: .4byte gPlayerMonIndex _0801884C: cmp r5, 0x36 bne _08018852 @@ -22077,7 +22077,7 @@ _08018A76: bl _08019F76 _08018A86: ldr r1, _08018AC4 @ =gBattleMons - ldr r0, _08018AC8 @ =gUnknown_02024C07 + ldr r0, _08018AC8 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22106,7 +22106,7 @@ _08018AAC: _08018ABC: .4byte gUnknown_081FA724 _08018AC0: .4byte 0x0000ffff _08018AC4: .4byte gBattleMons -_08018AC8: .4byte gUnknown_02024C07 +_08018AC8: .4byte gPlayerMonIndex _08018ACC: .4byte gUnknown_02024C6C _08018AD0: .4byte gUnknown_02024C10 _08018AD4: .4byte gUnknown_081D98F3 @@ -22144,7 +22144,7 @@ _08018AFE: b _08018C6A _08018B10: ldr r1, _08018B2C @ =gUnknown_02024D28 - ldr r0, _08018B30 @ =gUnknown_02024C07 + ldr r0, _08018B30 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -22158,7 +22158,7 @@ _08018B10: .align 2, 0 _08018B28: .4byte gBattleMoves _08018B2C: .4byte gUnknown_02024D28 -_08018B30: .4byte gUnknown_02024C07 +_08018B30: .4byte gPlayerMonIndex _08018B34: .4byte gUnknown_02024C10 _08018B38: .4byte gUnknown_081D9843 _08018B3C: @@ -22187,7 +22187,7 @@ _08018B56: b _08018C6A _08018B68: ldr r1, _08018B84 @ =gUnknown_02024D28 - ldr r0, _08018B88 @ =gUnknown_02024C07 + ldr r0, _08018B88 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -22201,7 +22201,7 @@ _08018B68: .align 2, 0 _08018B80: .4byte gBattleMoves _08018B84: .4byte gUnknown_02024D28 -_08018B88: .4byte gUnknown_02024C07 +_08018B88: .4byte gPlayerMonIndex _08018B8C: .4byte gUnknown_02024C10 _08018B90: .4byte gUnknown_081D9843 _08018B94: @@ -22243,7 +22243,7 @@ _08018BA8: ldr r0, _08018BFC @ =gUnknown_02024D1E strb r3, [r0, 0x5] ldr r1, _08018C00 @ =gUnknown_02024D28 - ldr r0, _08018C04 @ =gUnknown_02024C07 + ldr r0, _08018C04 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -22259,7 +22259,7 @@ _08018BF4: .4byte gBattleMons _08018BF8: .4byte 0x02017100 _08018BFC: .4byte gUnknown_02024D1E _08018C00: .4byte gUnknown_02024D28 -_08018C04: .4byte gUnknown_02024C07 +_08018C04: .4byte gPlayerMonIndex _08018C08: .4byte gUnknown_02024C10 _08018C0C: .4byte gUnknown_081D987C _08018C10: @@ -22282,7 +22282,7 @@ _08018C30: ldr r0, _08018C4C @ =gUnknown_02024D1E strb r4, [r0, 0x5] ldr r1, _08018C50 @ =gUnknown_02024D28 - ldr r0, _08018C54 @ =gUnknown_02024C07 + ldr r0, _08018C54 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -22296,7 +22296,7 @@ _08018C30: .align 2, 0 _08018C4C: .4byte gUnknown_02024D1E _08018C50: .4byte gUnknown_02024D28 -_08018C54: .4byte gUnknown_02024C07 +_08018C54: .4byte gPlayerMonIndex _08018C58: .4byte gUnknown_02024C10 _08018C5C: .4byte gUnknown_081D987C _08018C60: @@ -22324,7 +22324,7 @@ _08018C74: cmp r0, r2 bne _08018CD0 ldr r1, _08018CB0 @ =gUnknown_02024D28 - ldr r0, _08018CB4 @ =gUnknown_02024C07 + ldr r0, _08018CB4 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -22341,7 +22341,7 @@ _08018CA4: .4byte gUnknown_02024C10 _08018CA8: .4byte gUnknown_081D987B _08018CAC: .4byte gBattleMons _08018CB0: .4byte gUnknown_02024D28 -_08018CB4: .4byte gUnknown_02024C07 +_08018CB4: .4byte gPlayerMonIndex _08018CB8: .4byte gUnknown_081D9866 _08018CBC: ldr r1, _08018CC8 @ =gUnknown_02024C10 @@ -22456,7 +22456,7 @@ _08018DE4: bl _08019F76 _08018DF8: ldr r2, _08018E7C @ =gUnknown_02024D68 - ldr r0, _08018E80 @ =gUnknown_02024C08 + ldr r0, _08018E80 @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -22519,7 +22519,7 @@ _08018E52: _08018E74: .4byte gBattleMoveFlags _08018E78: .4byte gBattleMoves _08018E7C: .4byte gUnknown_02024D68 -_08018E80: .4byte gUnknown_02024C08 +_08018E80: .4byte gEnemyMonIndex _08018E84: .4byte gBattleMons _08018E88: .4byte gUnknown_030041C0 _08018E8C: .4byte gUnknown_02024C10 @@ -22534,7 +22534,7 @@ _08018E94: bl _08019F76 _08018EA4: ldr r1, _08018F30 @ =gBattleMons - ldr r0, _08018F34 @ =gUnknown_02024C07 + ldr r0, _08018F34 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22554,7 +22554,7 @@ _08018EBA: bl _08019F76 _08018ECC: ldr r2, _08018F3C @ =gUnknown_02024D68 - ldr r0, _08018F40 @ =gUnknown_02024C08 + ldr r0, _08018F40 @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -22602,10 +22602,10 @@ _08018F1C: .align 2, 0 _08018F2C: .4byte gBattleMoveFlags _08018F30: .4byte gBattleMons -_08018F34: .4byte gUnknown_02024C07 +_08018F34: .4byte gPlayerMonIndex _08018F38: .4byte gUnknown_02024D28 _08018F3C: .4byte gUnknown_02024D68 -_08018F40: .4byte gUnknown_02024C08 +_08018F40: .4byte gEnemyMonIndex _08018F44: .4byte gBattleMoves _08018F48: .4byte gBattleMoveDamage _08018F4C: .4byte gUnknown_02024C10 @@ -22620,7 +22620,7 @@ _08018F54: bl _08019F76 _08018F64: ldr r1, _08019024 @ =gBattleMons - ldr r0, _08019028 @ =gUnknown_02024C07 + ldr r0, _08019028 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22640,7 +22640,7 @@ _08018F7A: bl _08019F76 _08018F8C: ldr r2, _08019030 @ =gUnknown_02024D68 - ldr r0, _08019034 @ =gUnknown_02024C08 + ldr r0, _08019034 @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -22713,10 +22713,10 @@ _08019000: .align 2, 0 _08019020: .4byte gBattleMoveFlags _08019024: .4byte gBattleMons -_08019028: .4byte gUnknown_02024C07 +_08019028: .4byte gPlayerMonIndex _0801902C: .4byte gUnknown_02024D28 _08019030: .4byte gUnknown_02024D68 -_08019034: .4byte gUnknown_02024C08 +_08019034: .4byte gEnemyMonIndex _08019038: .4byte gBattleMoves _0801903C: .4byte gUnknown_02024D1E _08019040: .4byte gUnknown_02024C10 @@ -22732,7 +22732,7 @@ _0801904C: bl _08019F76 _0801905C: ldr r1, _08019100 @ =gBattleMons - ldr r0, _08019104 @ =gUnknown_02024C07 + ldr r0, _08019104 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22752,7 +22752,7 @@ _08019072: bl _08019F76 _08019084: ldr r2, _0801910C @ =gUnknown_02024D68 - ldr r0, _08019110 @ =gUnknown_02024C08 + ldr r0, _08019110 @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -22810,10 +22810,10 @@ _080190DC: .align 2, 0 _080190FC: .4byte gBattleMoveFlags _08019100: .4byte gBattleMons -_08019104: .4byte gUnknown_02024C07 +_08019104: .4byte gPlayerMonIndex _08019108: .4byte gUnknown_02024D28 _0801910C: .4byte gUnknown_02024D68 -_08019110: .4byte gUnknown_02024C08 +_08019110: .4byte gEnemyMonIndex _08019114: .4byte gBattleMoves _08019118: .4byte gUnknown_02024D1E _0801911C: .4byte gUnknown_02024C10 @@ -22829,7 +22829,7 @@ _08019128: bl _08019F76 _08019138: ldr r1, _080191DC @ =gBattleMons - ldr r0, _080191E0 @ =gUnknown_02024C07 + ldr r0, _080191E0 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22849,7 +22849,7 @@ _0801914E: bl _08019F76 _08019160: ldr r2, _080191E8 @ =gUnknown_02024D68 - ldr r0, _080191EC @ =gUnknown_02024C08 + ldr r0, _080191EC @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -22907,10 +22907,10 @@ _080191B8: .align 2, 0 _080191D8: .4byte gBattleMoveFlags _080191DC: .4byte gBattleMons -_080191E0: .4byte gUnknown_02024C07 +_080191E0: .4byte gPlayerMonIndex _080191E4: .4byte gUnknown_02024D28 _080191E8: .4byte gUnknown_02024D68 -_080191EC: .4byte gUnknown_02024C08 +_080191EC: .4byte gEnemyMonIndex _080191F0: .4byte gBattleMoves _080191F4: .4byte gUnknown_02024D1E _080191F8: .4byte gUnknown_02024C10 @@ -22926,7 +22926,7 @@ _08019204: bl _08019F76 _08019214: ldr r1, _080192B8 @ =gBattleMons - ldr r0, _080192BC @ =gUnknown_02024C07 + ldr r0, _080192BC @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -22958,7 +22958,7 @@ _0801923C: bl _08019F76 _08019254: ldr r2, _080192C8 @ =gUnknown_02024D68 - ldr r0, _080192CC @ =gUnknown_02024C08 + ldr r0, _080192CC @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -23004,11 +23004,11 @@ _08019294: .align 2, 0 _080192B4: .4byte gBattleMoveFlags _080192B8: .4byte gBattleMons -_080192BC: .4byte gUnknown_02024C07 +_080192BC: .4byte gPlayerMonIndex _080192C0: .4byte gUnknown_02024D28 _080192C4: .4byte gBattleMoves _080192C8: .4byte gUnknown_02024D68 -_080192CC: .4byte gUnknown_02024C08 +_080192CC: .4byte gEnemyMonIndex _080192D0: .4byte gUnknown_02024D1E _080192D4: .4byte gUnknown_02024C10 _080192D8: .4byte gUnknown_081D9950 @@ -23023,7 +23023,7 @@ _080192E0: bl _08019F76 _080192F0: ldr r5, _08019424 @ =gBattleMons - ldr r7, _08019428 @ =gUnknown_02024C07 + ldr r7, _08019428 @ =gPlayerMonIndex ldrb r1, [r7] movs r6, 0x58 adds r0, r1, 0 @@ -23056,7 +23056,7 @@ _0801931A: bl _08019F76 _08019332: ldr r3, _08019434 @ =gUnknown_02024D68 - ldr r0, _08019438 @ =gUnknown_02024C08 + ldr r0, _08019438 @ =gEnemyMonIndex mov r8, r0 ldrb r1, [r0] lsls r0, r1, 2 @@ -23169,11 +23169,11 @@ _080193F6: .align 2, 0 _08019420: .4byte gBattleMoveFlags _08019424: .4byte gBattleMons -_08019428: .4byte gUnknown_02024C07 +_08019428: .4byte gPlayerMonIndex _0801942C: .4byte gUnknown_02024D28 _08019430: .4byte gBattleMoves _08019434: .4byte gUnknown_02024D68 -_08019438: .4byte gUnknown_02024C08 +_08019438: .4byte gEnemyMonIndex _0801943C: .4byte gBitTable _08019440: .4byte gUnknown_02024C10 _08019444: .4byte gUnknown_081D9943 @@ -23618,7 +23618,7 @@ _08019838: ldrb r0, [r2] adds r0, 0x40 strb r0, [r1, 0x3] - ldr r0, _08019870 @ =gUnknown_02024C08 + ldr r0, _08019870 @ =gEnemyMonIndex ldrb r1, [r0] ldr r5, _08019874 @ =0x00016003 adds r0, r7, r5 @@ -23638,7 +23638,7 @@ _08019860: .4byte gUnknown_02024C6C _08019864: .4byte 0xffffbfff _08019868: .4byte 0x000160ca _0801986C: .4byte gUnknown_02024D1E -_08019870: .4byte gUnknown_02024C08 +_08019870: .4byte gEnemyMonIndex _08019874: .4byte 0x00016003 _08019878: .4byte gUnknown_02024C10 _0801987C: .4byte gUnknown_081D9953 @@ -23675,7 +23675,7 @@ _080198B4: ldr r1, _080198E8 @ =gUnknown_02024D1E ldrb r0, [r2] strb r0, [r1, 0x3] - ldr r0, _080198EC @ =gUnknown_02024C07 + ldr r0, _080198EC @ =gPlayerMonIndex ldrb r1, [r0] ldr r5, _080198F0 @ =0x00016003 adds r0, r7, r5 @@ -23695,7 +23695,7 @@ _080198DC: .4byte gUnknown_02024C6C _080198E0: .4byte 0xffffbfff _080198E4: .4byte 0x000160ca _080198E8: .4byte gUnknown_02024D1E -_080198EC: .4byte gUnknown_02024C07 +_080198EC: .4byte gPlayerMonIndex _080198F0: .4byte 0x00016003 _080198F4: .4byte gUnknown_02024C10 _080198F8: .4byte gUnknown_081D9953 @@ -24671,7 +24671,7 @@ _0801A084: _0801A098: mov r9, r0 ldr r1, _0801A0C0 @ =gBattleMons - ldr r0, _0801A0C4 @ =gUnknown_02024C07 + ldr r0, _0801A0C4 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -24691,7 +24691,7 @@ _0801A098: b _0801A0E2 .align 2, 0 _0801A0C0: .4byte gBattleMons -_0801A0C4: .4byte gUnknown_02024C07 +_0801A0C4: .4byte gPlayerMonIndex _0801A0C8: .4byte gEnigmaBerries _0801A0CC: ldr r0, [sp, 0x14] @@ -24706,7 +24706,7 @@ _0801A0CC: _0801A0E2: str r0, [sp, 0x10] ldr r2, _0801A118 @ =gBattleMons - ldr r0, _0801A11C @ =gUnknown_02024C08 + ldr r0, _0801A11C @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -24731,7 +24731,7 @@ _0801A10C: mov pc, r0 .align 2, 0 _0801A118: .4byte gBattleMons -_0801A11C: .4byte gUnknown_02024C08 +_0801A11C: .4byte gEnemyMonIndex _0801A120: .4byte _0801A124 .align 2, 0 _0801A124: @@ -24796,7 +24796,7 @@ _0801A198: ldr r0, _0801A1C4 @ =gUnknown_02024C0B strb r7, [r0] ldr r1, _0801A1C8 @ =gUnknown_02024A60 - ldr r0, _0801A1CC @ =gUnknown_02024C07 + ldr r0, _0801A1CC @ =gPlayerMonIndex strb r7, [r0] strb r7, [r1] ldr r0, _0801A1D0 @ =gUnknown_081D9A5E @@ -24808,7 +24808,7 @@ _0801A1BC: .4byte 0x02000000 _0801A1C0: .4byte 0x00016003 _0801A1C4: .4byte gUnknown_02024C0B _0801A1C8: .4byte gUnknown_02024A60 -_0801A1CC: .4byte gUnknown_02024C07 +_0801A1CC: .4byte gPlayerMonIndex _0801A1D0: .4byte gUnknown_081D9A5E _0801A1D4: ldr r1, _0801A1FC @ =gBattleMons @@ -25076,7 +25076,7 @@ _0801A432: ldr r0, _0801A45C @ =gUnknown_02024C0B strb r7, [r0] ldr r1, _0801A460 @ =gUnknown_02024A60 - ldr r0, _0801A464 @ =gUnknown_02024C07 + ldr r0, _0801A464 @ =gPlayerMonIndex strb r7, [r0] strb r7, [r1] ldr r0, _0801A468 @ =gUnknown_081D9A5E @@ -25088,7 +25088,7 @@ _0801A454: .4byte 0x02000000 _0801A458: .4byte 0x00016003 _0801A45C: .4byte gUnknown_02024C0B _0801A460: .4byte gUnknown_02024A60 -_0801A464: .4byte gUnknown_02024C07 +_0801A464: .4byte gPlayerMonIndex _0801A468: .4byte gUnknown_081D9A5E _0801A46C: movs r0, 0x58 @@ -26236,7 +26236,7 @@ _0801AD62: ldr r0, _0801ADA0 @ =gUnknown_02024C0B strb r7, [r0] ldr r4, _0801ADA4 @ =gUnknown_02024A60 - ldr r0, _0801ADA8 @ =gUnknown_02024C07 + ldr r0, _0801ADA8 @ =gPlayerMonIndex strb r7, [r0] strb r7, [r4] ldr r3, [sp, 0xC] @@ -26255,7 +26255,7 @@ _0801AD98: .4byte 0x02000000 _0801AD9C: .4byte 0x00016003 _0801ADA0: .4byte gUnknown_02024C0B _0801ADA4: .4byte gUnknown_02024A60 -_0801ADA8: .4byte gUnknown_02024C07 +_0801ADA8: .4byte gPlayerMonIndex _0801ADAC: movs r0, 0x58 muls r0, r7 @@ -26831,7 +26831,7 @@ _0801B288: b _0801B3CA _0801B296: ldr r2, _0801B318 @ =gUnknown_02024D68 - ldr r4, _0801B31C @ =gUnknown_02024C08 + ldr r4, _0801B31C @ =gEnemyMonIndex ldrb r1, [r4] lsls r0, r1, 2 adds r0, r1 @@ -26891,7 +26891,7 @@ _0801B2BC: .align 2, 0 _0801B314: .4byte gBattleMoveFlags _0801B318: .4byte gUnknown_02024D68 -_0801B31C: .4byte gUnknown_02024C08 +_0801B31C: .4byte gEnemyMonIndex _0801B320: .4byte gBattleMoves _0801B324: .4byte gUnknown_02024BE6 _0801B328: .4byte gBattleMons @@ -26904,7 +26904,7 @@ _0801B330: cmp r4, 0 bne _0801B3CA ldr r1, _0801B3E0 @ =gUnknown_02024D68 - ldr r5, _0801B3E4 @ =gUnknown_02024C08 + ldr r5, _0801B3E4 @ =gEnemyMonIndex ldrb r2, [r5] lsls r0, r2, 2 adds r0, r2 @@ -26917,7 +26917,7 @@ _0801B330: ldr r0, _0801B3E8 @ =0x0000ffff cmp r1, r0 beq _0801B3CA - ldr r0, _0801B3EC @ =gUnknown_02024C07 + ldr r0, _0801B3EC @ =gPlayerMonIndex ldrb r3, [r0] cmp r3, r2 beq _0801B3CA @@ -26986,9 +26986,9 @@ _0801B3CA: .align 2, 0 _0801B3DC: .4byte gBattleMoveFlags _0801B3E0: .4byte gUnknown_02024D68 -_0801B3E4: .4byte gUnknown_02024C08 +_0801B3E4: .4byte gEnemyMonIndex _0801B3E8: .4byte 0x0000ffff -_0801B3EC: .4byte gUnknown_02024C07 +_0801B3EC: .4byte gPlayerMonIndex _0801B3F0: .4byte gBattleMons _0801B3F4: .4byte gUnknown_02024C04 _0801B3F8: .4byte gUnknown_02024C0B @@ -27322,7 +27322,7 @@ _0801B604: .4byte _0801B900 .4byte _0801B808 _0801B708: - ldr r0, _0801B7E8 @ =gUnknown_02024C07 + ldr r0, _0801B7E8 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 @@ -27347,7 +27347,7 @@ _0801B708: beq _0801B73A b _0801B850 _0801B73A: - ldr r0, _0801B7E8 @ =gUnknown_02024C07 + ldr r0, _0801B7E8 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -27363,7 +27363,7 @@ _0801B74A: bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r6, _0801B7E8 @ =gUnknown_02024C07 + ldr r6, _0801B7E8 @ =gPlayerMonIndex ldrb r2, [r6] cmp r5, r2 beq _0801B74A @@ -27433,7 +27433,7 @@ _0801B7C2: strb r1, [r0] b _0801B900 .align 2, 0 -_0801B7E8: .4byte gUnknown_02024C07 +_0801B7E8: .4byte gPlayerMonIndex _0801B7EC: .4byte gUnknown_02024C80 _0801B7F0: .4byte gBattleMons _0801B7F4: .4byte gUnknown_02024A68 @@ -27442,7 +27442,7 @@ _0801B7FC: .4byte gBitTable _0801B800: .4byte gBattleMoves _0801B804: .4byte gUnknown_02024D68 _0801B808: - ldr r0, _0801B81C @ =gUnknown_02024C07 + ldr r0, _0801B81C @ =gPlayerMonIndex ldrb r0, [r0] bl battle_get_per_side_status adds r1, r0, 0 @@ -27452,9 +27452,9 @@ _0801B808: eors r0, r2 b _0801B8B2 .align 2, 0 -_0801B81C: .4byte gUnknown_02024C07 +_0801B81C: .4byte gPlayerMonIndex _0801B820: - ldr r0, _0801B854 @ =gUnknown_02024C07 + ldr r0, _0801B854 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 @@ -27481,7 +27481,7 @@ _0801B850: adds r5, r4, 0 b _0801B900 .align 2, 0 -_0801B854: .4byte gUnknown_02024C07 +_0801B854: .4byte gPlayerMonIndex _0801B858: .4byte gUnknown_02024C80 _0801B85C: .4byte gBattleMons _0801B860: @@ -27496,7 +27496,7 @@ _0801B860: ands r6, r0 cmp r6, 0 beq _0801B8DC - ldr r0, _0801B898 @ =gUnknown_02024C07 + ldr r0, _0801B898 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -27511,7 +27511,7 @@ _0801B860: b _0801B8B2 .align 2, 0 _0801B894: .4byte gBattleTypeFlags -_0801B898: .4byte gUnknown_02024C07 +_0801B898: .4byte gPlayerMonIndex _0801B89C: movs r0, 0x3 b _0801B8B2 @@ -27545,7 +27545,7 @@ _0801B8B2: _0801B8D4: .4byte gUnknown_02024C0C _0801B8D8: .4byte gBitTable _0801B8DC: - ldr r0, _0801B8F8 @ =gUnknown_02024C07 + ldr r0, _0801B8F8 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_get_per_side_status adds r1, r0, 0 @@ -27558,13 +27558,13 @@ _0801B8DC: lsrs r5, r0, 24 b _0801B900 .align 2, 0 -_0801B8F8: .4byte gUnknown_02024C07 +_0801B8F8: .4byte gPlayerMonIndex _0801B8FC: - ldr r0, _0801B91C @ =gUnknown_02024C07 + ldr r0, _0801B91C @ =gPlayerMonIndex ldrb r5, [r0] _0801B900: ldr r1, _0801B920 @ =0x02000000 - ldr r0, _0801B91C @ =gUnknown_02024C07 + ldr r0, _0801B91C @ =gPlayerMonIndex ldrb r0, [r0] ldr r2, _0801B924 @ =0x00016010 adds r0, r2 @@ -27578,7 +27578,7 @@ _0801B900: pop {r1} bx r1 .align 2, 0 -_0801B91C: .4byte gUnknown_02024C07 +_0801B91C: .4byte gPlayerMonIndex _0801B920: .4byte 0x02000000 _0801B924: .4byte 0x00016010 thumb_func_end sub_801B5C0 @@ -27596,7 +27596,7 @@ sub_801B928: @ 801B928 ands r0, r1 cmp r0, 0 bne _0801B9DA - ldr r7, _0801B9E4 @ =gUnknown_02024C07 + ldr r7, _0801B9E4 @ =gPlayerMonIndex ldrb r0, [r7] bl battle_side_get_owner lsls r0, 24 @@ -27675,7 +27675,7 @@ _0801B9DA: b _0801BC24 .align 2, 0 _0801B9E0: .4byte gBattleTypeFlags -_0801B9E4: .4byte gUnknown_02024C07 +_0801B9E4: .4byte gPlayerMonIndex _0801B9E8: .4byte gBattleMons _0801B9EC: .4byte 0x0000080e _0801B9F0: .4byte 0x00000808 @@ -27726,7 +27726,7 @@ _0801BA4C: adds r1, r5, 0 ands r1, r0 ldr r7, _0801BB04 @ =gBattleMons - ldr r2, _0801BB08 @ =gUnknown_02024C07 + ldr r2, _0801BB08 @ =gPlayerMonIndex mov r9, r2 ldrb r3, [r2] movs r0, 0x58 @@ -27780,7 +27780,7 @@ _0801BA9E: ldr r0, _0801BB10 @ =gUnknown_02024BE4 ldrb r0, [r0] lsls r0, 1 - ldr r1, _0801BB08 @ =gUnknown_02024C07 + ldr r1, _0801BB08 @ =gPlayerMonIndex ldrb r2, [r1] movs r1, 0x58 muls r1, r2 @@ -27804,7 +27804,7 @@ _0801BA9E: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _0801BB34 @ =gUnknown_02024C08 + ldr r1, _0801BB34 @ =gEnemyMonIndex strb r0, [r1] ldr r2, _0801BB38 @ =gUnknown_02024C6C ldr r0, [r2] @@ -27813,7 +27813,7 @@ _0801BA9E: b _0801BC1E .align 2, 0 _0801BB04: .4byte gBattleMons -_0801BB08: .4byte gUnknown_02024C07 +_0801BB08: .4byte gPlayerMonIndex _0801BB0C: .4byte gBitTable _0801BB10: .4byte gUnknown_02024BE4 _0801BB14: .4byte gUnknown_02024BE5 @@ -27824,7 +27824,7 @@ _0801BB24: .4byte 0x02000000 _0801BB28: .4byte 0x0001601c _0801BB2C: .4byte gUnknown_02024C10 _0801BB30: .4byte gUnknown_081D996F -_0801BB34: .4byte gUnknown_02024C08 +_0801BB34: .4byte gEnemyMonIndex _0801BB38: .4byte gUnknown_02024C6C _0801BB3C: subs r0, r2, r6 @@ -27909,7 +27909,7 @@ _0801BBD4: .4byte gUnknown_02024D1E _0801BBD8: .4byte gUnknown_02024C10 _0801BBDC: .4byte gUnknown_081D9977 _0801BBE0: - ldr r4, _0801BC34 @ =gUnknown_02024C07 + ldr r4, _0801BC34 @ =gPlayerMonIndex ldrb r1, [r4] movs r0, 0x58 muls r1, r0 @@ -27929,7 +27929,7 @@ _0801BBE0: bl CalculateBaseDamage ldr r1, _0801BC3C @ =gBattleMoveDamage str r0, [r1] - ldr r1, _0801BC40 @ =gUnknown_02024C08 + ldr r1, _0801BC40 @ =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1] ldr r1, _0801BC44 @ =gUnknown_02024C10 @@ -27952,10 +27952,10 @@ _0801BC24: pop {r1} bx r1 .align 2, 0 -_0801BC34: .4byte gUnknown_02024C07 +_0801BC34: .4byte gPlayerMonIndex _0801BC38: .4byte gBattleMons _0801BC3C: .4byte gBattleMoveDamage -_0801BC40: .4byte gUnknown_02024C08 +_0801BC40: .4byte gEnemyMonIndex _0801BC44: .4byte gUnknown_02024C10 _0801BC48: .4byte gUnknown_081D99A0 _0801BC4C: .4byte gUnknown_02024C6C @@ -27981,7 +27981,7 @@ _0801BC6C: .4byte gUnknown_02024D26 _0801BC70: .4byte gUnknown_02024A7F _0801BC74: ldr r2, _0801BCA4 @ =gBattleMons - ldr r0, _0801BCA8 @ =gUnknown_02024C07 + ldr r0, _0801BCA8 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -28005,7 +28005,7 @@ _0801BC74: b _0801BFF2 .align 2, 0 _0801BCA4: .4byte gBattleMons -_0801BCA8: .4byte gUnknown_02024C07 +_0801BCA8: .4byte gPlayerMonIndex _0801BCAC: .4byte gUnknown_02024C6C _0801BCB0: .4byte gUnknown_02024C10 _0801BCB4: .4byte BattleScript_1D6F62 @@ -28017,7 +28017,7 @@ _0801BCB8: beq _0801BCC6 b _0801BFF4 _0801BCC6: - ldr r0, _0801BD34 @ =gUnknown_02024C08 + ldr r0, _0801BD34 @ =gEnemyMonIndex ldrb r1, [r0] str r2, [sp] movs r0, 0x2 @@ -28032,7 +28032,7 @@ _0801BCDE: ldr r4, _0801BD38 @ =gBattleMons ldr r0, _0801BD3C @ =gUnknown_02024BE4 ldrb r1, [r0] - ldr r3, _0801BD40 @ =gUnknown_02024C07 + ldr r3, _0801BD40 @ =gPlayerMonIndex ldrb r2, [r3] movs r0, 0x58 muls r2, r0 @@ -28072,10 +28072,10 @@ _0801BCDE: strb r0, [r2] b _0801BFF4 .align 2, 0 -_0801BD34: .4byte gUnknown_02024C08 +_0801BD34: .4byte gEnemyMonIndex _0801BD38: .4byte gBattleMons _0801BD3C: .4byte gUnknown_02024BE4 -_0801BD40: .4byte gUnknown_02024C07 +_0801BD40: .4byte gPlayerMonIndex _0801BD44: .4byte gUnknown_02024C6C _0801BD48: .4byte gUnknown_02024BE6 _0801BD4C: .4byte 0x00800200 @@ -28134,7 +28134,7 @@ _0801BDB4: orrs r0, r1 str r0, [r2] ldr r2, _0801BE1C @ =gUnknown_02024D28 - ldr r1, _0801BE20 @ =gUnknown_02024C08 + ldr r1, _0801BE20 @ =gEnemyMonIndex ldrb r3, [r1] lsls r0, r3, 4 adds r0, r2 @@ -28156,7 +28156,7 @@ _0801BDB4: ands r0, r1 cmp r0, 0 beq _0801BE3C - ldr r0, _0801BE2C @ =gUnknown_02024C07 + ldr r0, _0801BE2C @ =gPlayerMonIndex ldrb r0, [r0] ldr r2, _0801BE30 @ =0x00000115 adds r1, r3, 0 @@ -28177,10 +28177,10 @@ _0801BDB4: .align 2, 0 _0801BE18: .4byte gUnknown_02024C6C _0801BE1C: .4byte gUnknown_02024D28 -_0801BE20: .4byte gUnknown_02024C08 +_0801BE20: .4byte gEnemyMonIndex _0801BE24: .4byte gBattleMoves _0801BE28: .4byte gUnknown_02024BE6 -_0801BE2C: .4byte gUnknown_02024C07 +_0801BE2C: .4byte gPlayerMonIndex _0801BE30: .4byte 0x00000115 _0801BE34: .4byte gUnknown_02024C10 _0801BE38: .4byte gUnknown_081D946F @@ -28283,7 +28283,7 @@ _0801BEEA: cmp r3, 0xAE bne _0801BF28 ldr r2, _0801BF88 @ =gBattleMons - ldr r0, _0801BF8C @ =gUnknown_02024C07 + ldr r0, _0801BF8C @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -28305,7 +28305,7 @@ _0801BF28: cmp r0, 0 beq _0801BF4E ldr r1, _0801BF88 @ =gBattleMons - ldr r0, _0801BF8C @ =gUnknown_02024C07 + ldr r0, _0801BF8C @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -28318,7 +28318,7 @@ _0801BF28: cmp r0, 0 beq _0801BFEC _0801BF4E: - ldr r0, _0801BF8C @ =gUnknown_02024C07 + ldr r0, _0801BF8C @ =gPlayerMonIndex ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe ldr r2, _0801BF90 @ =gBattleMoveFlags @@ -28327,7 +28327,7 @@ _0801BF4E: orrs r0, r1 strb r0, [r2] ldr r1, _0801BF94 @ =gUnknown_02024C3C - ldr r3, _0801BF98 @ =gUnknown_02024C08 + ldr r3, _0801BF98 @ =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r1 @@ -28346,14 +28346,14 @@ _0801BF4E: _0801BF80: .4byte gBattleMoves _0801BF84: .4byte gUnknown_02024BE6 _0801BF88: .4byte gBattleMons -_0801BF8C: .4byte gUnknown_02024C07 +_0801BF8C: .4byte gPlayerMonIndex _0801BF90: .4byte gBattleMoveFlags _0801BF94: .4byte gUnknown_02024C3C -_0801BF98: .4byte gUnknown_02024C08 +_0801BF98: .4byte gEnemyMonIndex _0801BF9C: .4byte gUnknown_02024C44 _0801BFA0: .4byte gUnknown_02024D1E _0801BFA4: - ldr r0, _0801BFD4 @ =gUnknown_02024C07 + ldr r0, _0801BFD4 @ =gPlayerMonIndex ldrb r0, [r0] ldr r2, _0801BFD8 @ =0x00000121 adds r1, r3, 0 @@ -28376,7 +28376,7 @@ _0801BFA4: ldr r0, _0801BFE8 @ =gUnknown_081D9487 b _0801BFF2 .align 2, 0 -_0801BFD4: .4byte gUnknown_02024C07 +_0801BFD4: .4byte gPlayerMonIndex _0801BFD8: .4byte 0x00000121 _0801BFDC: .4byte 0x02000000 _0801BFE0: .4byte 0x00016003 @@ -28418,7 +28418,7 @@ mcmd_jump_if_move_not_executed: @ 801C008 cmp r0, 0 beq _0801C068 ldr r1, _0801C05C @ =gUnknown_02024C3C - ldr r3, _0801C060 @ =gUnknown_02024C08 + ldr r3, _0801C060 @ =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r1 @@ -28444,11 +28444,11 @@ mcmd_jump_if_move_not_executed: @ 801C008 _0801C054: .4byte gUnknown_02024C10 _0801C058: .4byte gBattleMoveFlags _0801C05C: .4byte gUnknown_02024C3C -_0801C060: .4byte gUnknown_02024C08 +_0801C060: .4byte gEnemyMonIndex _0801C064: .4byte gUnknown_02024C44 _0801C068: bl b_feature_update_destiny_bond - ldr r0, _0801C090 @ =gUnknown_02024C08 + ldr r0, _0801C090 @ =gEnemyMonIndex ldrb r1, [r0] str r6, [sp] movs r0, 0x3 @@ -28467,7 +28467,7 @@ _0801C086: pop {r0} bx r0 .align 2, 0 -_0801C090: .4byte gUnknown_02024C08 +_0801C090: .4byte gEnemyMonIndex _0801C094: .4byte gUnknown_02024C10 thumb_func_end mcmd_jump_if_move_not_executed @@ -28475,7 +28475,7 @@ _0801C094: .4byte gUnknown_02024C10 atk40_801DBA0: @ 801C098 push {lr} ldr r1, _0801C0E0 @ =gUnknown_02024D28 - ldr r0, _0801C0E4 @ =gUnknown_02024C08 + ldr r0, _0801C0E4 @ =gEnemyMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -28509,7 +28509,7 @@ atk40_801DBA0: @ 801C098 b _0801C100 .align 2, 0 _0801C0E0: .4byte gUnknown_02024D28 -_0801C0E4: .4byte gUnknown_02024C08 +_0801C0E4: .4byte gEnemyMonIndex _0801C0E8: .4byte gBattleMoves _0801C0EC: .4byte gUnknown_02024BE6 _0801C0F0: .4byte gBattleMoveFlags @@ -28533,7 +28533,7 @@ sub_801C108: @ 801C108 lsrs r3, r0, 16 movs r4, 0 ldr r1, _0801C15C @ =gUnknown_02024D28 - ldr r0, _0801C160 @ =gUnknown_02024C08 + ldr r0, _0801C160 @ =gEnemyMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -28572,7 +28572,7 @@ _0801C154: bx r1 .align 2, 0 _0801C15C: .4byte gUnknown_02024D28 -_0801C160: .4byte gUnknown_02024C08 +_0801C160: .4byte gEnemyMonIndex _0801C164: .4byte gBattleMoves _0801C168: .4byte gUnknown_02024BE6 _0801C16C: .4byte gBattleMoveFlags @@ -28586,7 +28586,7 @@ sub_801C174: @ 801C174 lsls r0, 16 lsrs r5, r0, 16 ldr r2, _0801C1D4 @ =gUnknown_02024C98 - ldr r3, _0801C1D8 @ =gUnknown_02024C08 + ldr r3, _0801C1D8 @ =gEnemyMonIndex ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 @@ -28601,7 +28601,7 @@ sub_801C174: @ 801C174 subs r0, r4 lsls r0, 2 adds r0, r1 - ldr r1, _0801C1E0 @ =gUnknown_02024C07 + ldr r1, _0801C1E0 @ =gPlayerMonIndex ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 @@ -28632,9 +28632,9 @@ _0801C1C6: b _0801C290 .align 2, 0 _0801C1D4: .4byte gUnknown_02024C98 -_0801C1D8: .4byte gUnknown_02024C08 +_0801C1D8: .4byte gEnemyMonIndex _0801C1DC: .4byte gUnknown_02024CA8 -_0801C1E0: .4byte gUnknown_02024C07 +_0801C1E0: .4byte gPlayerMonIndex _0801C1E4: .4byte gUnknown_02024C6C _0801C1E8: .4byte gBattleMoveFlags _0801C1EC: @@ -28763,7 +28763,7 @@ atk01_accuracycheck: @ 801C2BC cmp r1, 0x1 bhi _0801C378 ldr r2, _0801C318 @ =gUnknown_02024C98 - ldr r3, _0801C31C @ =gUnknown_02024C08 + ldr r3, _0801C31C @ =gEnemyMonIndex ldrb r4, [r3] lsls r0, r4, 2 adds r0, r2 @@ -28780,7 +28780,7 @@ atk01_accuracycheck: @ 801C2BC subs r0, r4 lsls r0, 2 adds r0, r1 - ldr r1, _0801C328 @ =gUnknown_02024C07 + ldr r1, _0801C328 @ =gPlayerMonIndex ldrb r0, [r0, 0x15] ldrb r1, [r1] cmp r0, r1 @@ -28791,10 +28791,10 @@ atk01_accuracycheck: @ 801C2BC .align 2, 0 _0801C314: .4byte gUnknown_02024C10 _0801C318: .4byte gUnknown_02024C98 -_0801C31C: .4byte gUnknown_02024C08 +_0801C31C: .4byte gEnemyMonIndex _0801C320: .4byte 0x0000ffff _0801C324: .4byte gUnknown_02024CA8 -_0801C328: .4byte gUnknown_02024C07 +_0801C328: .4byte gPlayerMonIndex _0801C32C: ldrb r0, [r3] lsls r0, 2 @@ -28880,7 +28880,7 @@ _0801C3C0: b _0801C632 _0801C3CE: ldr r3, _0801C3FC @ =gBattleMons - ldr r0, _0801C400 @ =gUnknown_02024C08 + ldr r0, _0801C400 @ =gEnemyMonIndex ldrb r0, [r0] movs r2, 0x58 adds r4, r0, 0 @@ -28894,7 +28894,7 @@ _0801C3CE: ands r0, r1 cmp r0, 0 beq _0801C408 - ldr r0, _0801C404 @ =gUnknown_02024C07 + ldr r0, _0801C404 @ =gPlayerMonIndex ldrb r0, [r0] muls r0, r2 adds r0, r3 @@ -28903,10 +28903,10 @@ _0801C3CE: .align 2, 0 _0801C3F8: .4byte gBattleMoves _0801C3FC: .4byte gBattleMons -_0801C400: .4byte gUnknown_02024C08 -_0801C404: .4byte gUnknown_02024C07 +_0801C400: .4byte gEnemyMonIndex +_0801C404: .4byte gPlayerMonIndex _0801C408: - ldr r0, _0801C56C @ =gUnknown_02024C07 + ldr r0, _0801C56C @ =gPlayerMonIndex ldrb r0, [r0] muls r0, r2 adds r0, r3 @@ -28982,7 +28982,7 @@ _0801C482: lsls r0, 16 lsrs r4, r0, 16 ldr r7, _0801C57C @ =gBattleMons - ldr r0, _0801C56C @ =gUnknown_02024C07 + ldr r0, _0801C56C @ =gPlayerMonIndex ldrb r0, [r0] movs r5, 0x58 muls r0, r5 @@ -29019,7 +29019,7 @@ _0801C4C0: lsls r0, 24 cmp r0, 0 bne _0801C518 - ldr r0, _0801C580 @ =gUnknown_02024C08 + ldr r0, _0801C580 @ =gEnemyMonIndex ldrb r0, [r0] muls r0, r5 adds r0, r7 @@ -29042,7 +29042,7 @@ _0801C4C0: lsrs r4, r0, 16 _0801C518: ldr r2, _0801C57C @ =gBattleMons - ldr r0, _0801C56C @ =gUnknown_02024C07 + ldr r0, _0801C56C @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -29063,7 +29063,7 @@ _0801C518: lsls r0, 16 lsrs r4, r0, 16 _0801C544: - ldr r3, _0801C580 @ =gUnknown_02024C08 + ldr r3, _0801C580 @ =gEnemyMonIndex mov r8, r3 ldrb r2, [r3] movs r7, 0x58 @@ -29083,12 +29083,12 @@ _0801C544: ldrb r2, [r0, 0x1A] b _0801C5A4 .align 2, 0 -_0801C56C: .4byte gUnknown_02024C07 +_0801C56C: .4byte gPlayerMonIndex _0801C570: .4byte gBattleMoves _0801C574: .4byte gBattleWeather _0801C578: .4byte gAccuracyStageRatios _0801C57C: .4byte gBattleMons -_0801C580: .4byte gUnknown_02024C08 +_0801C580: .4byte gEnemyMonIndex _0801C584: .4byte gEnigmaBerries _0801C588: ldrh r0, [r1, 0x2E] @@ -29105,7 +29105,7 @@ _0801C588: lsrs r2, r0, 24 _0801C5A4: ldr r0, _0801C608 @ =gUnknown_02024C0B - ldr r1, _0801C60C @ =gUnknown_02024C08 + ldr r1, _0801C60C @ =gEnemyMonIndex ldrb r1, [r1] strb r1, [r0] cmp r5, 0x16 @@ -29155,7 +29155,7 @@ _0801C602: b _0801C624 .align 2, 0 _0801C608: .4byte gUnknown_02024C0B -_0801C60C: .4byte gUnknown_02024C08 +_0801C60C: .4byte gEnemyMonIndex _0801C610: .4byte gBattleMoveFlags _0801C614: .4byte gBattleTypeFlags _0801C618: .4byte gBattleMoves @@ -29197,7 +29197,7 @@ atk02_attackstring: @ 801C648 ands r0, r1 cmp r0, 0 bne _0801C674 - ldr r0, _0801C690 @ =gUnknown_02024C07 + ldr r0, _0801C690 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x4 bl b_std_message @@ -29220,7 +29220,7 @@ _0801C680: .align 2, 0 _0801C688: .4byte gUnknown_02024A64 _0801C68C: .4byte gUnknown_02024C6C -_0801C690: .4byte gUnknown_02024C07 +_0801C690: .4byte gPlayerMonIndex _0801C694: .4byte gUnknown_02024C10 _0801C698: .4byte gUnknown_02024D1E thumb_func_end atk02_attackstring @@ -29241,7 +29241,7 @@ atk03_ppreduce: @ 801C69C b _0801C84E _0801C6B4: ldr r1, _0801C6F0 @ =gUnknown_02024D68 - ldr r2, _0801C6F4 @ =gUnknown_02024C07 + ldr r2, _0801C6F4 @ =gPlayerMonIndex ldrb r3, [r2] lsls r0, r3, 2 adds r0, r3 @@ -29271,7 +29271,7 @@ _0801C6B4: .align 2, 0 _0801C6EC: .4byte gUnknown_02024A64 _0801C6F0: .4byte gUnknown_02024D68 -_0801C6F4: .4byte gUnknown_02024C07 +_0801C6F4: .4byte gPlayerMonIndex _0801C6F8: .4byte gBattleMoves _0801C6FC: .4byte gUnknown_02024BE6 _0801C700: @@ -29303,7 +29303,7 @@ _0801C71C: adds r6, r0 b _0801C756 _0801C736: - ldr r1, _0801C7B8 @ =gUnknown_02024C08 + ldr r1, _0801C7B8 @ =gEnemyMonIndex mov r2, r9 ldrb r0, [r2] ldrb r7, [r1] @@ -29329,7 +29329,7 @@ _0801C756: bne _0801C83C ldr r2, _0801C7BC @ =gBattleMons ldr r3, _0801C7C4 @ =gUnknown_02024BE4 - ldr r1, _0801C7C8 @ =gUnknown_02024C07 + ldr r1, _0801C7C8 @ =gPlayerMonIndex ldrb r5, [r1] movs r0, 0x58 mov r8, r0 @@ -29370,11 +29370,11 @@ _0801C756: strb r0, [r2] b _0801C7D2 .align 2, 0 -_0801C7B8: .4byte gUnknown_02024C08 +_0801C7B8: .4byte gEnemyMonIndex _0801C7BC: .4byte gBattleMons _0801C7C0: .4byte gUnknown_02024C6C _0801C7C4: .4byte gUnknown_02024BE4 -_0801C7C8: .4byte gUnknown_02024C07 +_0801C7C8: .4byte gPlayerMonIndex _0801C7CC: .4byte gUnknown_02024D28 _0801C7D0: strb r4, [r2] @@ -29462,7 +29462,7 @@ _0801C874: .4byte gUnknown_02024C10 atk04_critcalc: @ 801C878 push {r4-r7,lr} ldr r1, _0801C89C @ =gBattleMons - ldr r0, _0801C8A0 @ =gUnknown_02024C07 + ldr r0, _0801C8A0 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -29479,7 +29479,7 @@ atk04_critcalc: @ 801C878 b _0801C8B0 .align 2, 0 _0801C89C: .4byte gBattleMons -_0801C8A0: .4byte gUnknown_02024C07 +_0801C8A0: .4byte gPlayerMonIndex _0801C8A4: .4byte gEnigmaBerries _0801C8A8: bl ItemId_GetHoldEffect @@ -29487,7 +29487,7 @@ _0801C8A8: lsrs r6, r0, 24 _0801C8B0: ldr r1, _0801C93C @ =gUnknown_02024C0B - ldr r3, _0801C940 @ =gUnknown_02024C07 + ldr r3, _0801C940 @ =gPlayerMonIndex ldrb r0, [r3] strb r0, [r1] ldr r4, _0801C944 @ =gBattleMons @@ -29564,7 +29564,7 @@ _0801C930: b _0801C952 .align 2, 0 _0801C93C: .4byte gUnknown_02024C0B -_0801C940: .4byte gUnknown_02024C07 +_0801C940: .4byte gPlayerMonIndex _0801C944: .4byte gBattleMons _0801C948: .4byte gBattleMoves _0801C94C: .4byte gUnknown_02024BE6 @@ -29579,7 +29579,7 @@ _0801C952: bls _0801C960 movs r5, 0x4 _0801C960: - ldr r0, _0801C9BC @ =gUnknown_02024C08 + ldr r0, _0801C9BC @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -29623,7 +29623,7 @@ _0801C960: movs r0, 0x2 b _0801C9D4 .align 2, 0 -_0801C9BC: .4byte gUnknown_02024C08 +_0801C9BC: .4byte gEnemyMonIndex _0801C9C0: .4byte gUnknown_02024C98 _0801C9C4: .4byte gBattleTypeFlags _0801C9C8: .4byte gCriticalHitChance @@ -29653,7 +29653,7 @@ atk05_damagecalc1: @ 801C9EC push {r6,r7} sub sp, 0x10 ldr r4, _0801CABC @ =gUnknown_02024C7A - ldr r6, _0801CAC0 @ =gUnknown_02024C08 + ldr r6, _0801CAC0 @ =gEnemyMonIndex ldrb r0, [r6] bl battle_get_per_side_status movs r1, 0x1 @@ -29661,7 +29661,7 @@ atk05_damagecalc1: @ 801C9EC lsls r1, 1 adds r1, r4 ldrh r3, [r1] - ldr r0, _0801CAC4 @ =gUnknown_02024C07 + ldr r0, _0801CAC4 @ =gPlayerMonIndex mov r8, r0 ldrb r0, [r0] movs r4, 0x58 @@ -29722,7 +29722,7 @@ atk05_damagecalc1: @ 801C9EC str r0, [r4] _0801CA82: ldr r1, _0801CAF0 @ =gUnknown_02024D28 - ldr r0, _0801CAC4 @ =gUnknown_02024C07 + ldr r0, _0801CAC4 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -29751,8 +29751,8 @@ _0801CAA4: bx r0 .align 2, 0 _0801CABC: .4byte gUnknown_02024C7A -_0801CAC0: .4byte gUnknown_02024C08 -_0801CAC4: .4byte gUnknown_02024C07 +_0801CAC0: .4byte gEnemyMonIndex +_0801CAC4: .4byte gPlayerMonIndex _0801CAC8: .4byte gBattleMons _0801CACC: .4byte gUnknown_02024BE6 _0801CAD0: .4byte gUnknown_02024DEC @@ -30034,7 +30034,7 @@ _0801CCFC: mov r8, r0 _0801CD0C: ldr r2, _0801CD98 @ =gBattleMons - ldr r0, _0801CD9C @ =gUnknown_02024C07 + ldr r0, _0801CD9C @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -30062,7 +30062,7 @@ _0801CD2E: str r0, [r4] ldr r3, [sp, 0x4] _0801CD44: - ldr r2, _0801CDA4 @ =gUnknown_02024C08 + ldr r2, _0801CDA4 @ =gEnemyMonIndex ldrb r1, [r2] movs r0, 0x58 muls r0, r1 @@ -30103,9 +30103,9 @@ _0801CD44: .align 2, 0 _0801CD94: .4byte gBattleMoves _0801CD98: .4byte gBattleMons -_0801CD9C: .4byte gUnknown_02024C07 +_0801CD9C: .4byte gPlayerMonIndex _0801CDA0: .4byte gBattleMoveDamage -_0801CDA4: .4byte gUnknown_02024C08 +_0801CDA4: .4byte gEnemyMonIndex _0801CDA8: .4byte byte_2024C06 _0801CDAC: .4byte gBattleMoveFlags _0801CDB0: .4byte gUnknown_02024C3C @@ -30131,7 +30131,7 @@ _0801CDD0: adds r1, r3, 0x1 adds r1, r5 ldr r2, _0801CF0C @ =gBattleMons - ldr r7, _0801CF10 @ =gUnknown_02024C08 + ldr r7, _0801CF10 @ =gEnemyMonIndex ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -30171,7 +30171,7 @@ _0801CE06: _0801CE2C: adds r3, 0x3 ldr r5, _0801CF0C @ =gBattleMons - ldr r4, _0801CF10 @ =gUnknown_02024C08 + ldr r4, _0801CF10 @ =gEnemyMonIndex ldr r2, _0801CF08 @ =gTypeEffectiveness _0801CE34: adds r0, r3, r2 @@ -30195,7 +30195,7 @@ _0801CE38: beq _0801CDCC _0801CE58: ldr r2, _0801CF0C @ =gBattleMons - ldr r5, _0801CF10 @ =gUnknown_02024C08 + ldr r5, _0801CF10 @ =gEnemyMonIndex ldrb r1, [r5] movs r0, 0x58 muls r0, r1 @@ -30204,7 +30204,7 @@ _0801CE58: ldrb r6, [r0] cmp r6, 0x19 bne _0801CED6 - ldr r0, _0801CF14 @ =gUnknown_02024C07 + ldr r0, _0801CF14 @ =gPlayerMonIndex ldrb r0, [r0] ldr r7, _0801CF18 @ =gUnknown_02024BE6 ldrh r1, [r7] @@ -30264,7 +30264,7 @@ _0801CED6: cmp r0, 0 beq _0801CEF4 ldr r2, _0801CF34 @ =gUnknown_02024D28 - ldr r0, _0801CF14 @ =gUnknown_02024C07 + ldr r0, _0801CF14 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 4 adds r1, r2 @@ -30286,8 +30286,8 @@ _0801CEF4: .align 2, 0 _0801CF08: .4byte gTypeEffectiveness _0801CF0C: .4byte gBattleMons -_0801CF10: .4byte gUnknown_02024C08 -_0801CF14: .4byte gUnknown_02024C07 +_0801CF10: .4byte gEnemyMonIndex +_0801CF14: .4byte gPlayerMonIndex _0801CF18: .4byte gUnknown_02024BE6 _0801CF1C: .4byte gBattleMoveFlags _0801CF20: .4byte gBattleMoves @@ -30346,7 +30346,7 @@ _0801CF90: mov r12, r1 _0801CF94: ldr r2, _0801CFC8 @ =gBattleMons - ldr r3, _0801CFCC @ =gUnknown_02024C08 + ldr r3, _0801CFCC @ =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -30371,7 +30371,7 @@ _0801CF94: b _0801D1A4 .align 2, 0 _0801CFC8: .4byte gBattleMons -_0801CFCC: .4byte gUnknown_02024C08 +_0801CFCC: .4byte gEnemyMonIndex _0801CFD0: .4byte byte_2024C06 _0801CFD4: .4byte gUnknown_02024D1E _0801CFD8: @@ -30413,7 +30413,7 @@ _0801CFF2: orrs r0, r1 strb r0, [r2] ldr r1, _0801D1B4 @ =gUnknown_02024D28 - ldr r0, _0801D1B8 @ =gUnknown_02024C07 + ldr r0, _0801D1B8 @ =gPlayerMonIndex ldrb r2, [r0] lsls r2, 4 adds r2, r1 @@ -30449,7 +30449,7 @@ _0801D032: orrs r0, r1 strb r0, [r2] ldr r1, _0801D1B4 @ =gUnknown_02024D28 - ldr r0, _0801D1B8 @ =gUnknown_02024C07 + ldr r0, _0801D1B8 @ =gPlayerMonIndex ldrb r2, [r0] lsls r2, 4 adds r2, r1 @@ -30581,7 +30581,7 @@ _0801D14E: ldrb r4, [r0] cmp r4, 0x19 bne _0801D1A4 - ldr r0, _0801D1B8 @ =gUnknown_02024C07 + ldr r0, _0801D1B8 @ =gPlayerMonIndex ldrb r0, [r0] mov r2, r9 ldrh r1, [r2] @@ -30623,7 +30623,7 @@ _0801D1A4: .align 2, 0 _0801D1B0: .4byte gBattleMoveFlags _0801D1B4: .4byte gUnknown_02024D28 -_0801D1B8: .4byte gUnknown_02024C07 +_0801D1B8: .4byte gPlayerMonIndex _0801D1BC: .4byte gBattleMoves _0801D1C0: .4byte byte_2024C06 _0801D1C4: .4byte gUnknown_02024D1E @@ -30873,7 +30873,7 @@ _0801D388: ldrb r0, [r0] cmp r4, r0 bne _0801D3B0 - ldr r0, _0801D454 @ =gUnknown_02024C08 + ldr r0, _0801D454 @ =gEnemyMonIndex ldrb r0, [r0] muls r0, r3 add r0, r8 @@ -30973,7 +30973,7 @@ _0801D43A: .align 2, 0 _0801D44C: .4byte gTypeEffectiveness _0801D450: .4byte gBattleMons -_0801D454: .4byte gUnknown_02024C08 +_0801D454: .4byte gEnemyMonIndex _0801D458: .4byte gBattleMoves thumb_func_end move_effectiveness_something @@ -31055,7 +31055,7 @@ _0801D4D2: _0801D4EE: cmp r5, r8 bne _0801D510 - ldr r0, _0801D568 @ =gUnknown_02024C08 + ldr r0, _0801D568 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -31118,7 +31118,7 @@ _0801D554: bx r1 .align 2, 0 _0801D564: .4byte gTypeEffectiveness -_0801D568: .4byte gUnknown_02024C08 +_0801D568: .4byte gEnemyMonIndex _0801D56C: .4byte gBattleMons _0801D570: .4byte gBattleMoves thumb_func_end ai_rate_move @@ -31183,7 +31183,7 @@ atk07_damagecalc3: @ 801D5B0 str r0, [r4] _0801D5E2: ldr r7, _0801D60C @ =gBattleMons - ldr r6, _0801D610 @ =gUnknown_02024C08 + ldr r6, _0801D610 @ =gEnemyMonIndex ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -31203,7 +31203,7 @@ _0801D5E2: .align 2, 0 _0801D608: .4byte gBattleMoveDamage _0801D60C: .4byte gBattleMons -_0801D610: .4byte gUnknown_02024C08 +_0801D610: .4byte gEnemyMonIndex _0801D614: .4byte gEnigmaBerries _0801D618: ldrh r0, [r1, 0x2E] @@ -31219,7 +31219,7 @@ _0801D618: lsrs r6, r0, 24 _0801D632: ldr r1, _0801D6F4 @ =gUnknown_02024C0B - ldr r5, _0801D6F8 @ =gUnknown_02024C08 + ldr r5, _0801D6F8 @ =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -31248,7 +31248,7 @@ _0801D632: strb r1, [r0] _0801D670: ldr r2, _0801D700 @ =gBattleMons - ldr r3, _0801D6F8 @ =gUnknown_02024C08 + ldr r3, _0801D6F8 @ =gEnemyMonIndex ldrb r4, [r3] movs r0, 0x58 muls r0, r4 @@ -31316,7 +31316,7 @@ _0801D6C2: b _0801D740 .align 2, 0 _0801D6F4: .4byte gUnknown_02024C0B -_0801D6F8: .4byte gUnknown_02024C08 +_0801D6F8: .4byte gEnemyMonIndex _0801D6FC: .4byte gUnknown_02024D68 _0801D700: .4byte gBattleMons _0801D704: .4byte gBattleMoves @@ -31387,7 +31387,7 @@ atk08_cmd8: @ 801D760 str r0, [r4] _0801D792: ldr r7, _0801D7BC @ =gBattleMons - ldr r6, _0801D7C0 @ =gUnknown_02024C08 + ldr r6, _0801D7C0 @ =gEnemyMonIndex ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -31407,7 +31407,7 @@ _0801D792: .align 2, 0 _0801D7B8: .4byte gBattleMoveDamage _0801D7BC: .4byte gBattleMons -_0801D7C0: .4byte gUnknown_02024C08 +_0801D7C0: .4byte gEnemyMonIndex _0801D7C4: .4byte gEnigmaBerries _0801D7C8: ldrh r0, [r1, 0x2E] @@ -31423,7 +31423,7 @@ _0801D7C8: lsrs r6, r0, 24 _0801D7E2: ldr r1, _0801D888 @ =gUnknown_02024C0B - ldr r5, _0801D88C @ =gUnknown_02024C08 + ldr r5, _0801D88C @ =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -31452,7 +31452,7 @@ _0801D7E2: strb r1, [r0] _0801D820: ldr r4, _0801D894 @ =gBattleMons - ldr r6, _0801D88C @ =gUnknown_02024C08 + ldr r6, _0801D88C @ =gEnemyMonIndex ldrb r2, [r6] movs r7, 0x58 adds r3, r2, 0 @@ -31506,7 +31506,7 @@ _0801D85E: b _0801D8CC .align 2, 0 _0801D888: .4byte gUnknown_02024C0B -_0801D88C: .4byte gUnknown_02024C08 +_0801D88C: .4byte gEnemyMonIndex _0801D890: .4byte gUnknown_02024D68 _0801D894: .4byte gBattleMons _0801D898: .4byte gUnknown_02024D28 @@ -31635,7 +31635,7 @@ _0801D992: cmp r0, 0 bne _0801DA3C ldr r1, _0801DA1C @ =gUnknown_02024A60 - ldr r2, _0801DA20 @ =gUnknown_02024C07 + ldr r2, _0801DA20 @ =gPlayerMonIndex mov r9, r2 ldrb r0, [r2] strb r0, [r1] @@ -31693,7 +31693,7 @@ _0801DA10: .4byte 0x02000000 _0801DA14: .4byte 0x000160a1 _0801DA18: .4byte gBattleMoveFlags _0801DA1C: .4byte gUnknown_02024A60 -_0801DA20: .4byte gUnknown_02024C07 +_0801DA20: .4byte gPlayerMonIndex _0801DA24: .4byte 0x00016002 _0801DA28: .4byte gBattleMovePower _0801DA2C: .4byte gBattleMoveDamage @@ -32078,19 +32078,19 @@ _0801DD24: ldr r1, _0801DD58 @ =gUnknown_02024C74 ldrb r0, [r5] adds r0, r1 - ldr r1, _0801DD5C @ =gUnknown_02024C07 + ldr r1, _0801DD5C @ =gPlayerMonIndex b _0801DD68 .align 2, 0 _0801DD4C: .4byte gUnknown_02024BF4 _0801DD50: .4byte gUnknown_02024A60 _0801DD54: .4byte gUnknown_02024C10 _0801DD58: .4byte gUnknown_02024C74 -_0801DD5C: .4byte gUnknown_02024C07 +_0801DD5C: .4byte gPlayerMonIndex _0801DD60: ldr r1, _0801DD8C @ =gUnknown_02024C74 ldrb r0, [r5] adds r0, r1 - ldr r1, _0801DD90 @ =gUnknown_02024C08 + ldr r1, _0801DD90 @ =gEnemyMonIndex _0801DD68: ldrb r1, [r1] strb r1, [r0] @@ -32112,7 +32112,7 @@ _0801DD6C: b _0801DDAC .align 2, 0 _0801DD8C: .4byte gUnknown_02024C74 -_0801DD90: .4byte gUnknown_02024C08 +_0801DD90: .4byte gEnemyMonIndex _0801DD94: .4byte gBattleMons _0801DD98: .4byte gUnknown_02024BF0 _0801DD9C: @@ -32182,7 +32182,7 @@ _0801DDD4: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DE34 @ =gUnknown_02024C07 + ldr r2, _0801DE34 @ =gPlayerMonIndex b _0801DE40 .align 2, 0 _0801DE20: .4byte gUnknown_02024BF0 @@ -32190,12 +32190,12 @@ _0801DE24: .4byte gUnknown_02024D68 _0801DE28: .4byte gUnknown_02024BE6 _0801DE2C: .4byte gUnknown_02024D28 _0801DE30: .4byte gUnknown_02024C10 -_0801DE34: .4byte gUnknown_02024C07 +_0801DE34: .4byte gPlayerMonIndex _0801DE38: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DE54 @ =gUnknown_02024C08 + ldr r2, _0801DE54 @ =gEnemyMonIndex _0801DE40: ldrb r1, [r2] strb r1, [r0, 0xC] @@ -32208,7 +32208,7 @@ _0801DE40: strb r1, [r0, 0x10] b _0801DEC6 .align 2, 0 -_0801DE54: .4byte gUnknown_02024C08 +_0801DE54: .4byte gEnemyMonIndex _0801DE58: cmp r6, 0x8 bls _0801DEC6 @@ -32244,17 +32244,17 @@ _0801DE5C: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DEA8 @ =gUnknown_02024C07 + ldr r2, _0801DEA8 @ =gPlayerMonIndex b _0801DEB4 .align 2, 0 _0801DEA0: .4byte gUnknown_02024D28 _0801DEA4: .4byte gUnknown_02024C10 -_0801DEA8: .4byte gUnknown_02024C07 +_0801DEA8: .4byte gPlayerMonIndex _0801DEAC: ldrb r0, [r5] lsls r0, 4 adds r0, r3 - ldr r2, _0801DEF4 @ =gUnknown_02024C08 + ldr r2, _0801DEF4 @ =gEnemyMonIndex _0801DEB4: ldrb r1, [r2] strb r1, [r0, 0xD] @@ -32287,7 +32287,7 @@ _0801DEC6: bl dp01_battle_side_mark_buffer_for_execution b _0801DF26 .align 2, 0 -_0801DEF4: .4byte gUnknown_02024C08 +_0801DEF4: .4byte gEnemyMonIndex _0801DEF8: .4byte 0xffefffff _0801DEFC: .4byte gUnknown_02024AA8 _0801DF00: @@ -32343,7 +32343,7 @@ atk0D_critmessage: @ 801DF48 ands r0, r1 cmp r0, 0 bne _0801DF76 - ldr r0, _0801DF90 @ =gUnknown_02024C07 + ldr r0, _0801DF90 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0xD9 bl b_std_message @@ -32362,7 +32362,7 @@ _0801DF7E: _0801DF84: .4byte gUnknown_02024A64 _0801DF88: .4byte gCritMultiplier _0801DF8C: .4byte gBattleMoveFlags -_0801DF90: .4byte gUnknown_02024C07 +_0801DF90: .4byte gPlayerMonIndex _0801DF94: .4byte gUnknown_02024D1E _0801DF98: .4byte gUnknown_02024C10 thumb_func_end atk0D_critmessage @@ -32375,7 +32375,7 @@ atk0E_missmessage: @ 801DF9C cmp r0, 0 bne _0801E05C ldr r4, _0801DFD8 @ =gUnknown_02024A60 - ldr r0, _0801DFDC @ =gUnknown_02024C08 + ldr r0, _0801DFDC @ =gEnemyMonIndex ldrb r0, [r0] strb r0, [r4] ldr r1, _0801DFE0 @ =gBattleMoveFlags @@ -32400,7 +32400,7 @@ atk0E_missmessage: @ 801DF9C .align 2, 0 _0801DFD4: .4byte gUnknown_02024A64 _0801DFD8: .4byte gUnknown_02024A60 -_0801DFDC: .4byte gUnknown_02024C08 +_0801DFDC: .4byte gEnemyMonIndex _0801DFE0: .4byte gBattleMoveFlags _0801DFE4: cmp r0, 0x8 @@ -32564,7 +32564,7 @@ _0801E100: _0801E104: ldr r4, _0801E12C @ =gUnknown_02024C04 ldr r2, _0801E130 @ =gBattleMons - ldr r3, _0801E134 @ =gUnknown_02024C08 + ldr r3, _0801E134 @ =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -32584,7 +32584,7 @@ _0801E104: .align 2, 0 _0801E12C: .4byte gUnknown_02024C04 _0801E130: .4byte gBattleMons -_0801E134: .4byte gUnknown_02024C08 +_0801E134: .4byte gEnemyMonIndex _0801E138: .4byte gUnknown_02024C0B _0801E13C: .4byte gUnknown_02024C10 _0801E140: .4byte gUnknown_081D9AC6 @@ -32639,7 +32639,7 @@ _0801E19C: beq _0801E1E4 ldr r4, _0801E1CC @ =gUnknown_02024C04 ldr r2, _0801E1D0 @ =gBattleMons - ldr r3, _0801E1D4 @ =gUnknown_02024C08 + ldr r3, _0801E1D4 @ =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -32659,7 +32659,7 @@ _0801E19C: .align 2, 0 _0801E1CC: .4byte gUnknown_02024C04 _0801E1D0: .4byte gBattleMons -_0801E1D4: .4byte gUnknown_02024C08 +_0801E1D4: .4byte gEnemyMonIndex _0801E1D8: .4byte gUnknown_02024C0B _0801E1DC: .4byte gUnknown_02024C10 _0801E1E0: .4byte gUnknown_081D9AC6 @@ -32680,7 +32680,7 @@ _0801E1F6: beq _0801E204 _0801E1FA: adds r0, r3, 0 - ldr r1, _0801E214 @ =gUnknown_02024C07 + ldr r1, _0801E214 @ =gPlayerMonIndex ldrb r1, [r1] bl b_std_message _0801E204: @@ -32694,7 +32694,7 @@ _0801E20C: pop {r0} bx r0 .align 2, 0 -_0801E214: .4byte gUnknown_02024C07 +_0801E214: .4byte gPlayerMonIndex _0801E218: .4byte gUnknown_02024C10 thumb_func_end atk0F_resultmessage @@ -32711,7 +32711,7 @@ atk10_printstring: @ 801E21C ldrb r1, [r1, 0x2] lsls r1, 8 orrs r0, r1 - ldr r1, _0801E254 @ =gUnknown_02024C07 + ldr r1, _0801E254 @ =gPlayerMonIndex ldrb r1, [r1] bl b_std_message ldr r0, [r4] @@ -32727,7 +32727,7 @@ _0801E246: .align 2, 0 _0801E24C: .4byte gUnknown_02024A64 _0801E250: .4byte gUnknown_02024C10 -_0801E254: .4byte gUnknown_02024C07 +_0801E254: .4byte gPlayerMonIndex _0801E258: .4byte gUnknown_02024D1E thumb_func_end atk10_printstring @@ -32735,7 +32735,7 @@ _0801E258: .4byte gUnknown_02024D1E atk11_printstring2: @ 801E25C push {r4,r5,lr} ldr r5, _0801E290 @ =gUnknown_02024A60 - ldr r0, _0801E294 @ =gUnknown_02024C07 + ldr r0, _0801E294 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r5] ldr r4, _0801E298 @ =gUnknown_02024C10 @@ -32759,7 +32759,7 @@ atk11_printstring2: @ 801E25C bx r0 .align 2, 0 _0801E290: .4byte gUnknown_02024A60 -_0801E294: .4byte gUnknown_02024C07 +_0801E294: .4byte gPlayerMonIndex _0801E298: .4byte gUnknown_02024C10 _0801E29C: .4byte gUnknown_02024D1E thumb_func_end atk11_printstring2 @@ -32837,7 +32837,7 @@ atk13_printfromtable: @ 801E2FC lsls r0, 1 adds r1, r0 ldrh r0, [r1] - ldr r1, _0801E34C @ =gUnknown_02024C07 + ldr r1, _0801E34C @ =gPlayerMonIndex ldrb r1, [r1] bl b_std_message ldr r0, [r4] @@ -32853,7 +32853,7 @@ _0801E33A: _0801E340: .4byte gUnknown_02024A64 _0801E344: .4byte gUnknown_02024C10 _0801E348: .4byte gUnknown_02024D1E -_0801E34C: .4byte gUnknown_02024C07 +_0801E34C: .4byte gPlayerMonIndex thumb_func_end atk13_printfromtable thumb_func_start atk14_printfromtable2 @@ -32880,7 +32880,7 @@ atk14_printfromtable2: @ 801E350 lsls r0, 1 adds r1, r0 ldr r4, _0801E3AC @ =gUnknown_02024A60 - ldr r0, _0801E3B0 @ =gUnknown_02024C07 + ldr r0, _0801E3B0 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r4] ldrh r1, [r1] @@ -32902,7 +32902,7 @@ _0801E3A0: .4byte gUnknown_02024A64 _0801E3A4: .4byte gUnknown_02024C10 _0801E3A8: .4byte gUnknown_02024D1E _0801E3AC: .4byte gUnknown_02024A60 -_0801E3B0: .4byte gUnknown_02024C07 +_0801E3B0: .4byte gPlayerMonIndex thumb_func_end atk14_printfromtable2 thumb_func_start sub_801E3B4 @@ -32963,7 +32963,7 @@ sub_801E3EC: @ 801E3EC cmp r0, 0 beq _0801E444 ldr r2, _0801E434 @ =gUnknown_02024C0A - ldr r0, _0801E438 @ =gUnknown_02024C07 + ldr r0, _0801E438 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r2] movs r0, 0xBF @@ -32971,21 +32971,21 @@ sub_801E3EC: @ 801E3EC strb r0, [r7, 0x3] movs r6, 0x40 ldr r0, _0801E43C @ =0x02000000 - ldr r1, _0801E440 @ =gUnknown_02024C08 + ldr r1, _0801E440 @ =gEnemyMonIndex b _0801E450 .align 2, 0 _0801E430: .4byte gUnknown_02024D1E _0801E434: .4byte gUnknown_02024C0A -_0801E438: .4byte gUnknown_02024C07 +_0801E438: .4byte gPlayerMonIndex _0801E43C: .4byte 0x02000000 -_0801E440: .4byte gUnknown_02024C08 +_0801E440: .4byte gEnemyMonIndex _0801E444: ldr r2, _0801E538 @ =gUnknown_02024C0A - ldr r0, _0801E53C @ =gUnknown_02024C08 + ldr r0, _0801E53C @ =gEnemyMonIndex ldrb r0, [r0] strb r0, [r2] ldr r0, _0801E540 @ =0x02000000 - ldr r1, _0801E544 @ =gUnknown_02024C07 + ldr r1, _0801E544 @ =gPlayerMonIndex _0801E450: ldrb r1, [r1] ldr r3, _0801E548 @ =0x00016003 @@ -33107,9 +33107,9 @@ _0801E536: b _0801EA14 .align 2, 0 _0801E538: .4byte gUnknown_02024C0A -_0801E53C: .4byte gUnknown_02024C08 +_0801E53C: .4byte gEnemyMonIndex _0801E540: .4byte 0x02000000 -_0801E544: .4byte gUnknown_02024C07 +_0801E544: .4byte gPlayerMonIndex _0801E548: .4byte 0x00016003 _0801E54C: .4byte gBattleMons _0801E550: .4byte gUnknown_02024C6C @@ -34134,7 +34134,7 @@ _0801EDD0: .4byte gUnknown_02024C10 _0801EDD4: .4byte gUnknown_081FAC4C _0801EDD8: .4byte gUnknown_02024D1E _0801EDDC: - ldr r5, _0801EE30 @ =gUnknown_02024C07 + ldr r5, _0801EE30 @ =gPlayerMonIndex ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 @@ -34174,7 +34174,7 @@ _0801EE14: ldr r0, [r0] bl _0801F5F8 .align 2, 0 -_0801EE30: .4byte gUnknown_02024C07 +_0801EE30: .4byte gPlayerMonIndex _0801EE34: .4byte gUnknown_02024D1A _0801EE38: .4byte gBattleMons _0801EE3C: .4byte 0x0000ffff @@ -34294,7 +34294,7 @@ _0801EEE8: ldr r3, _0801EF90 @ =0x00016020 adds r0, r3 adds r0, r2 - ldr r1, _0801EF94 @ =gUnknown_02024C07 + ldr r1, _0801EF94 @ =gPlayerMonIndex ldrb r1, [r1] strb r1, [r0] ldr r4, _0801EF98 @ =gUnknown_02024C10 @@ -34342,7 +34342,7 @@ _0801EF84: .4byte 0x00016004 _0801EF88: .4byte gUnknown_02024BE6 _0801EF8C: .4byte 0x00016005 _0801EF90: .4byte 0x00016020 -_0801EF94: .4byte gUnknown_02024C07 +_0801EF94: .4byte gPlayerMonIndex _0801EF98: .4byte gUnknown_02024C10 _0801EF9C: .4byte gUnknown_081FAC4C _0801EFA0: .4byte gUnknown_02024D1E @@ -34565,7 +34565,7 @@ _0801F178: .4byte gUnknown_02024CA8 _0801F17C: .4byte gUnknown_02024C54 _0801F180: .4byte gUnknown_02024BE6 _0801F184: - ldr r0, _0801F1A0 @ =gUnknown_02024C07 + ldr r0, _0801F1A0 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 @@ -34581,9 +34581,9 @@ _0801F19A: str r0, [r2] b _0801F5DC .align 2, 0 -_0801F1A0: .4byte gUnknown_02024C07 +_0801F1A0: .4byte gPlayerMonIndex _0801F1A4: - ldr r4, _0801F254 @ =gUnknown_02024C07 + ldr r4, _0801F254 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -34626,7 +34626,7 @@ _0801F1D8: ldrb r1, [r0] ldr r3, _0801F268 @ =gBitTable ldr r2, _0801F26C @ =gUnknown_02024A6A - ldr r0, _0801F254 @ =gUnknown_02024C07 + ldr r0, _0801F254 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r2 @@ -34640,7 +34640,7 @@ _0801F1D8: b _0801F5DC _0801F214: ldr r2, _0801F270 @ =gBattleMons - ldr r1, _0801F274 @ =gUnknown_02024C08 + ldr r1, _0801F274 @ =gEnemyMonIndex ldrb r0, [r1] movs r3, 0x58 muls r0, r3 @@ -34670,7 +34670,7 @@ _0801F214: bl sub_81074C4 b _0801F5FA .align 2, 0 -_0801F254: .4byte gUnknown_02024C07 +_0801F254: .4byte gPlayerMonIndex _0801F258: .4byte gBattleTypeFlags _0801F25C: .4byte 0x00000902 _0801F260: .4byte gTrainerBattleOpponent @@ -34678,12 +34678,12 @@ _0801F264: .4byte gUnknown_02024DBC _0801F268: .4byte gBitTable _0801F26C: .4byte gUnknown_02024A6A _0801F270: .4byte gBattleMons -_0801F274: .4byte gUnknown_02024C08 +_0801F274: .4byte gEnemyMonIndex _0801F278: .4byte gUnknown_02024C10 _0801F27C: .4byte gUnknown_081D9913 _0801F280: .4byte byte_2024C06 _0801F284: - ldr r4, _0801F340 @ =gUnknown_02024C07 + ldr r4, _0801F340 @ =gPlayerMonIndex mov r10, r4 ldrb r1, [r4] movs r0, 0x58 @@ -34776,7 +34776,7 @@ _0801F2B6: strb r6, [r0] b _0801F5FA .align 2, 0 -_0801F340: .4byte gUnknown_02024C07 +_0801F340: .4byte gPlayerMonIndex _0801F344: .4byte 0x020160f0 _0801F348: .4byte gUnknown_02024C04 _0801F34C: .4byte gUnknown_02024A60 @@ -34786,7 +34786,7 @@ _0801F358: .4byte 0xfffe9f10 _0801F35C: .4byte 0x000160e8 _0801F360: .4byte 0x000160e9 _0801F364: - ldr r3, _0801F394 @ =gUnknown_02024C08 + ldr r3, _0801F394 @ =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 adds r2, r1, 0 @@ -34805,16 +34805,16 @@ _0801F364: subs r0, r1 lsls r0, 2 adds r0, r2 - ldr r1, _0801F39C @ =gUnknown_02024C07 + ldr r1, _0801F39C @ =gPlayerMonIndex ldrb r1, [r1] strb r1, [r0, 0x14] b _0801F5DC .align 2, 0 -_0801F394: .4byte gUnknown_02024C08 +_0801F394: .4byte gEnemyMonIndex _0801F398: .4byte gUnknown_02024CA8 -_0801F39C: .4byte gUnknown_02024C07 +_0801F39C: .4byte gPlayerMonIndex _0801F3A0: - ldr r0, _0801F3B8 @ =gUnknown_02024C08 + ldr r0, _0801F3B8 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 adds r2, r1, 0 @@ -34827,7 +34827,7 @@ _0801F3A0: lsls r1, 20 b _0801F19A .align 2, 0 -_0801F3B8: .4byte gUnknown_02024C08 +_0801F3B8: .4byte gEnemyMonIndex _0801F3BC: ldr r4, _0801F3CC @ =gUnknown_02024C10 ldr r0, [r4] @@ -34849,7 +34849,7 @@ _0801F3D4: _0801F3E4: .4byte gUnknown_02024C10 _0801F3E8: .4byte gUnknown_081D92C0 _0801F3EC: - ldr r6, _0801F43C @ =gUnknown_02024C08 + ldr r6, _0801F43C @ =gEnemyMonIndex ldrb r0, [r6] movs r2, 0x58 muls r0, r2 @@ -34888,7 +34888,7 @@ _0801F406: ldr r0, _0801F448 @ =gUnknown_081D9635 b _0801F5F8 .align 2, 0 -_0801F43C: .4byte gUnknown_02024C08 +_0801F43C: .4byte gEnemyMonIndex _0801F440: .4byte gUnknown_02024A60 _0801F444: .4byte gUnknown_02024C10 _0801F448: .4byte gUnknown_081D9635 @@ -35107,7 +35107,7 @@ _0801F610: .4byte gUnknown_081D94B0 atk15_seteffectwithchancetarget: @ 801F614 push {r4,lr} ldr r2, _0801F640 @ =gBattleMons - ldr r0, _0801F644 @ =gUnknown_02024C07 + ldr r0, _0801F644 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -35128,7 +35128,7 @@ atk15_seteffectwithchancetarget: @ 801F614 b _0801F660 .align 2, 0 _0801F640: .4byte gBattleMons -_0801F644: .4byte gUnknown_02024C07 +_0801F644: .4byte gPlayerMonIndex _0801F648: .4byte gBattleMoves _0801F64C: .4byte gUnknown_02024BE6 _0801F650: @@ -35369,24 +35369,24 @@ _0801F834: cmp r0, 0x1 bne _0801F85C ldr r1, _0801F84C @ =gUnknown_02024A60 - ldr r0, _0801F850 @ =gUnknown_02024C07 + ldr r0, _0801F850 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r1] - ldr r0, _0801F854 @ =gUnknown_02024C08 + ldr r0, _0801F854 @ =gEnemyMonIndex ldrb r7, [r0] ldr r4, _0801F858 @ =gUnknown_081D8C58 b _0801F86A .align 2, 0 _0801F84C: .4byte gUnknown_02024A60 -_0801F850: .4byte gUnknown_02024C07 -_0801F854: .4byte gUnknown_02024C08 +_0801F850: .4byte gPlayerMonIndex +_0801F854: .4byte gEnemyMonIndex _0801F858: .4byte gUnknown_081D8C58 _0801F85C: ldr r1, _0801F954 @ =gUnknown_02024A60 - ldr r0, _0801F958 @ =gUnknown_02024C08 + ldr r0, _0801F958 @ =gEnemyMonIndex ldrb r0, [r0] strb r0, [r1] - ldr r0, _0801F95C @ =gUnknown_02024C07 + ldr r0, _0801F95C @ =gPlayerMonIndex ldrb r7, [r0] ldr r4, _0801F960 @ =gUnknown_081D8C65 _0801F86A: @@ -35509,8 +35509,8 @@ _0801F914: b _0801F9CC .align 2, 0 _0801F954: .4byte gUnknown_02024A60 -_0801F958: .4byte gUnknown_02024C08 -_0801F95C: .4byte gUnknown_02024C07 +_0801F958: .4byte gEnemyMonIndex +_0801F95C: .4byte gPlayerMonIndex _0801F960: .4byte gUnknown_081D8C65 _0801F964: .4byte gUnknown_02024C0C _0801F968: .4byte gBitTable @@ -35562,7 +35562,7 @@ _0801F9CC: cmp r0, 0 beq _0801FA02 ldr r6, _0801FAEC @ =gBattleMons - ldr r0, _0801FAF0 @ =gUnknown_02024C07 + ldr r0, _0801FAF0 @ =gPlayerMonIndex ldrb r0, [r0] movs r5, 0x58 muls r0, r5 @@ -35583,7 +35583,7 @@ _0801F9CC: str r0, [r4] _0801FA02: ldr r1, _0801FB00 @ =gUnknown_02024C98 - ldr r6, _0801FB04 @ =gUnknown_02024C08 + ldr r6, _0801FB04 @ =gEnemyMonIndex ldrb r0, [r6] lsls r0, 2 adds r0, r1 @@ -35602,7 +35602,7 @@ _0801FA1A: ands r5, r0 cmp r5, 0 bne _0801FB22 - ldr r4, _0801FAF0 @ =gUnknown_02024C07 + ldr r4, _0801FAF0 @ =gPlayerMonIndex mov r8, r4 ldrb r0, [r4] bl battle_side_get_owner @@ -35693,12 +35693,12 @@ _0801FAE0: .4byte gUnknown_030042E0 _0801FAE4: .4byte gUnknown_02024A60 _0801FAE8: .4byte gUnknown_02024C6C _0801FAEC: .4byte gBattleMons -_0801FAF0: .4byte gUnknown_02024C07 +_0801FAF0: .4byte gPlayerMonIndex _0801FAF4: .4byte gUnknown_02024C10 _0801FAF8: .4byte gBattleMoveDamage _0801FAFC: .4byte gUnknown_081D9156 _0801FB00: .4byte gUnknown_02024C98 -_0801FB04: .4byte gUnknown_02024C08 +_0801FB04: .4byte gEnemyMonIndex _0801FB08: .4byte gUnknown_02024BE6 _0801FB0C: .4byte 0x02000000 _0801FB10: .4byte 0x0001608c @@ -35944,7 +35944,7 @@ atk1E_jumpifability: @ 801FCC4 ldrb r0, [r2, 0x1] cmp r0, 0x8 bne _0801FD24 - ldr r0, _0801FD1C @ =gUnknown_02024C07 + ldr r0, _0801FD1C @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] @@ -35966,12 +35966,12 @@ atk1E_jumpifability: @ 801FCC4 b _0801FD80 .align 2, 0 _0801FD18: .4byte gUnknown_02024C10 -_0801FD1C: .4byte gUnknown_02024C07 +_0801FD1C: .4byte gPlayerMonIndex _0801FD20: .4byte byte_2024C06 _0801FD24: cmp r0, 0x9 bne _0801FD5C - ldr r0, _0801FD54 @ =gUnknown_02024C07 + ldr r0, _0801FD54 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] @@ -35992,7 +35992,7 @@ _0801FD24: ldrb r1, [r1] b _0801FD80 .align 2, 0 -_0801FD54: .4byte gUnknown_02024C07 +_0801FD54: .4byte gPlayerMonIndex _0801FD58: .4byte byte_2024C06 _0801FD5C: ldrb r0, [r2, 0x1] @@ -36045,15 +36045,15 @@ sub_801FDB4: @ 801FDB4 ldrb r4, [r0, 0x1] cmp r4, 0x1 bne _0801FDD4 - ldr r0, _0801FDD0 @ =gUnknown_02024C07 + ldr r0, _0801FDD0 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_get_per_side_status b _0801FDDE .align 2, 0 _0801FDCC: .4byte gUnknown_02024C10 -_0801FDD0: .4byte gUnknown_02024C07 +_0801FDD0: .4byte gPlayerMonIndex _0801FDD4: - ldr r0, _0801FE14 @ =gUnknown_02024C08 + ldr r0, _0801FE14 @ =gEnemyMonIndex ldrb r0, [r0] bl battle_get_per_side_status movs r4, 0x1 @@ -36085,7 +36085,7 @@ _0801FDDE: str r5, [r6] b _0801FE26 .align 2, 0 -_0801FE14: .4byte gUnknown_02024C08 +_0801FE14: .4byte gEnemyMonIndex _0801FE18: .4byte gUnknown_02024C10 _0801FE1C: .4byte gUnknown_02024C7A _0801FE20: @@ -38667,15 +38667,15 @@ atk3B_8022C68: @ 802122C cmp r0, 0 bne _0802124C ldr r0, _08021244 @ =gUnknown_02024A60 - ldr r1, _08021248 @ =gUnknown_02024C08 + ldr r1, _08021248 @ =gEnemyMonIndex b _08021250 .align 2, 0 _08021240: .4byte gUnknown_02024C10 _08021244: .4byte gUnknown_02024A60 -_08021248: .4byte gUnknown_02024C08 +_08021248: .4byte gEnemyMonIndex _0802124C: ldr r0, _08021274 @ =gUnknown_02024A60 - ldr r1, _08021278 @ =gUnknown_02024C07 + ldr r1, _08021278 @ =gPlayerMonIndex _08021250: ldrb r1, [r1] strb r1, [r0] @@ -38694,7 +38694,7 @@ _08021250: bx r0 .align 2, 0 _08021274: .4byte gUnknown_02024A60 -_08021278: .4byte gUnknown_02024C07 +_08021278: .4byte gPlayerMonIndex _0802127C: .4byte gBattleMoveDamage _08021280: .4byte gUnknown_02024C10 thumb_func_end atk3B_8022C68 @@ -38884,7 +38884,7 @@ _080213C6: thumb_func_start sub_80213D0 sub_80213D0: @ 80213D0 ldr r1, _080213E4 @ =0x02000000 - ldr r0, _080213E8 @ =gUnknown_02024C07 + ldr r0, _080213E8 @ =gPlayerMonIndex ldrb r0, [r0] ldr r2, _080213EC @ =0x00016060 adds r0, r2 @@ -38894,7 +38894,7 @@ sub_80213D0: @ 80213D0 bx lr .align 2, 0 _080213E4: .4byte 0x02000000 -_080213E8: .4byte gUnknown_02024C07 +_080213E8: .4byte gPlayerMonIndex _080213EC: .4byte 0x00016060 thumb_func_end sub_80213D0 @@ -39446,7 +39446,7 @@ sub_80217F8: @ 80217F8 ldrb r0, [r0, 0x2] str r0, [sp, 0x14] ldr r1, _08021838 @ =gBattleMons - ldr r0, _0802183C @ =gUnknown_02024C07 + ldr r0, _0802183C @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -39464,7 +39464,7 @@ sub_80217F8: @ 80217F8 .align 2, 0 _08021834: .4byte gUnknown_02024C10 _08021838: .4byte gBattleMons -_0802183C: .4byte gUnknown_02024C07 +_0802183C: .4byte gPlayerMonIndex _08021840: .4byte gEnigmaBerries _08021844: ldrh r0, [r1, 0x2E] @@ -39473,7 +39473,7 @@ _08021844: lsrs r0, 24 _0802184E: str r0, [sp, 0x8] - ldr r0, _0802186C @ =gUnknown_02024C07 + ldr r0, _0802186C @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 1 ldr r0, _08021870 @ =0x020160e8 @@ -39488,7 +39488,7 @@ _0802184E: str r2, [sp, 0x4] b _080218D2 .align 2, 0 -_0802186C: .4byte gUnknown_02024C07 +_0802186C: .4byte gPlayerMonIndex _08021870: .4byte 0x020160e8 _08021874: strb r2, [r7] @@ -39582,7 +39582,7 @@ _08021910: .4byte _0802224E _08021958: ldr r5, _08021A08 @ =gBattleMons - ldr r2, _08021A0C @ =gUnknown_02024C08 + ldr r2, _08021A0C @ =gEnemyMonIndex ldrb r4, [r2] movs r6, 0x58 adds r3, r4, 0 @@ -39600,14 +39600,14 @@ _08021958: ldrh r0, [r0, 0x28] cmp r0, 0 beq _080219FE - ldr r0, _08021A10 @ =gUnknown_02024C07 + ldr r0, _08021A10 @ =gPlayerMonIndex ldrb r1, [r0] cmp r1, r4 beq _080219FE adds r0, r1, 0 bl battle_side_get_owner adds r4, r0, 0 - ldr r1, _08021A0C @ =gUnknown_02024C08 + ldr r1, _08021A0C @ =gEnemyMonIndex ldrb r0, [r1] bl battle_side_get_owner lsls r4, 24 @@ -39621,7 +39621,7 @@ _08021958: cmp r0, 0 bne _080219FE ldr r2, _08021A18 @ =gUnknown_02024D28 - ldr r4, _08021A0C @ =gUnknown_02024C08 + ldr r4, _08021A0C @ =gEnemyMonIndex ldrb r3, [r4] lsls r1, r3, 4 adds r0, r2, 0x4 @@ -39669,8 +39669,8 @@ _080219FE: b _08021E00 .align 2, 0 _08021A08: .4byte gBattleMons -_08021A0C: .4byte gUnknown_02024C08 -_08021A10: .4byte gUnknown_02024C07 +_08021A0C: .4byte gEnemyMonIndex +_08021A10: .4byte gPlayerMonIndex _08021A14: .4byte gBattleMoveFlags _08021A18: .4byte gUnknown_02024D28 _08021A1C: .4byte gBattleMoves @@ -39681,7 +39681,7 @@ _08021A2C: .4byte 0x02000000 _08021A30: .4byte 0x0001600c _08021A34: ldr r2, _08021AD0 @ =gBattleMons - ldr r1, _08021AD4 @ =gUnknown_02024C08 + ldr r1, _08021AD4 @ =gEnemyMonIndex ldrb r4, [r1] movs r3, 0x58 mov r12, r3 @@ -39703,7 +39703,7 @@ _08021A54: bne _08021A5E b _08021DFA _08021A5E: - ldr r0, _08021AD8 @ =gUnknown_02024C07 + ldr r0, _08021AD8 @ =gPlayerMonIndex ldrb r0, [r0] cmp r0, r4 bne _08021A68 @@ -39738,7 +39738,7 @@ _08021A92: ands r5, r0 str r5, [r6] ldr r4, _08021AE4 @ =gUnknown_02024A60 - ldr r5, _08021AD4 @ =gUnknown_02024C08 + ldr r5, _08021AD4 @ =gEnemyMonIndex ldrb r0, [r5] strb r0, [r4] ldrb r0, [r5] @@ -39763,15 +39763,15 @@ _08021A92: b _08021DFA .align 2, 0 _08021AD0: .4byte gBattleMons -_08021AD4: .4byte gUnknown_02024C08 -_08021AD8: .4byte gUnknown_02024C07 +_08021AD4: .4byte gEnemyMonIndex +_08021AD8: .4byte gPlayerMonIndex _08021ADC: .4byte gUnknown_02024D68 _08021AE0: .4byte gBattleMoveFlags _08021AE4: .4byte gUnknown_02024A60 _08021AE8: .4byte gUnknown_02024C10 _08021AEC: .4byte gUnknown_081D955D _08021AF0: - ldr r0, _08021B14 @ =gUnknown_02024C08 + ldr r0, _08021B14 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] @@ -39790,11 +39790,11 @@ _08021B0C: adds r1, r2, r5 b _08021E00 .align 2, 0 -_08021B14: .4byte gUnknown_02024C08 +_08021B14: .4byte gEnemyMonIndex _08021B18: .4byte 0x02000000 _08021B1C: .4byte 0x0001600c _08021B20: - ldr r0, _08021B40 @ =gUnknown_02024C08 + ldr r0, _08021B40 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] @@ -39811,7 +39811,7 @@ _08021B3A: mov r10, r0 b _08021DFA .align 2, 0 -_08021B40: .4byte gUnknown_02024C08 +_08021B40: .4byte gEnemyMonIndex _08021B44: movs r0, 0 str r0, [sp] @@ -39839,7 +39839,7 @@ _08021B68: _08021B70: .4byte 0x02000000 _08021B74: .4byte 0x0001600c _08021B78: - ldr r0, _08021B98 @ =gUnknown_02024C07 + ldr r0, _08021B98 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0 str r0, [sp] @@ -39856,7 +39856,7 @@ _08021B92: mov r10, r1 b _08021DFA .align 2, 0 -_08021B98: .4byte gUnknown_02024C07 +_08021B98: .4byte gPlayerMonIndex _08021B9C: ldr r0, _08021C28 @ =gUnknown_02024C6C ldr r0, [r0] @@ -39897,7 +39897,7 @@ _08021BDA: _08021BE0: movs r4, 0 ldr r2, _08021C38 @ =gBattleMons - ldr r3, _08021C3C @ =gUnknown_02024C07 + ldr r3, _08021C3C @ =gPlayerMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -39940,7 +39940,7 @@ _08021C2C: .4byte gUnknown_02024BE8 _08021C30: .4byte 0x0000ffff _08021C34: .4byte gBattleMoveFlags _08021C38: .4byte gBattleMons -_08021C3C: .4byte gUnknown_02024C07 +_08021C3C: .4byte gPlayerMonIndex _08021C40: movs r4, 0 ldr r0, _08021C6C @ =gUnknown_02024A68 @@ -40013,7 +40013,7 @@ _08021CC4: .4byte 0x02000000 _08021CC8: .4byte 0x0001600c _08021CCC: ldr r1, _08021D04 @ =gUnknown_02024C98 - ldr r0, _08021D08 @ =gUnknown_02024C07 + ldr r0, _08021D08 @ =gPlayerMonIndex ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -40042,7 +40042,7 @@ _08021CF0: b _08021DFA .align 2, 0 _08021D04: .4byte gUnknown_02024C98 -_08021D08: .4byte gUnknown_02024C07 +_08021D08: .4byte gPlayerMonIndex _08021D0C: .4byte 0x000400c0 _08021D10: .4byte gUnknown_02024C6C _08021D14: .4byte gUnknown_02024A60 @@ -40054,7 +40054,7 @@ _08021D18: cmp r0, 0 bne _08021D44 ldr r1, _08021D8C @ =gUnknown_02024C98 - ldr r0, _08021D90 @ =gUnknown_02024C07 + ldr r0, _08021D90 @ =gPlayerMonIndex ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -40070,7 +40070,7 @@ _08021D18: beq _08021D7E _08021D44: ldr r4, _08021D98 @ =gUnknown_02024A60 - ldr r5, _08021D90 @ =gUnknown_02024C07 + ldr r5, _08021D90 @ =gPlayerMonIndex ldrb r0, [r5] strb r0, [r4] movs r0, 0 @@ -40104,7 +40104,7 @@ _08021D7E: .align 2, 0 _08021D88: .4byte gBattleMoveFlags _08021D8C: .4byte gUnknown_02024C98 -_08021D90: .4byte gUnknown_02024C07 +_08021D90: .4byte gPlayerMonIndex _08021D94: .4byte 0x000400c0 _08021D98: .4byte gUnknown_02024A60 _08021D9C: .4byte 0xfffbff3f @@ -40113,7 +40113,7 @@ _08021DA4: .4byte 0x02000000 _08021DA8: .4byte 0x0001600c _08021DAC: ldr r2, _08021E0C @ =gUnknown_02024D68 - ldr r1, _08021E10 @ =gUnknown_02024C08 + ldr r1, _08021E10 @ =gEnemyMonIndex ldrb r3, [r1] lsls r4, r3, 2 adds r0, r4, r3 @@ -40141,7 +40141,7 @@ _08021DAC: bl dp01_build_cmdbuf_x33_a_33_33 ldrb r0, [r4] bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08021E10 @ =gUnknown_02024C08 + ldr r0, _08021E10 @ =gEnemyMonIndex ldrb r2, [r0] lsls r2, 2 adds r2, r5 @@ -40161,7 +40161,7 @@ _08021E00: b _0802224E .align 2, 0 _08021E0C: .4byte gUnknown_02024D68 -_08021E10: .4byte gUnknown_02024C08 +_08021E10: .4byte gEnemyMonIndex _08021E14: .4byte gUnknown_02024A68 _08021E18: .4byte gUnknown_02024C98 _08021E1C: .4byte 0x000400c0 @@ -40207,7 +40207,7 @@ _08021E70: movs r0, 0x80 lsls r0, 5 ands r0, r3 - ldr r2, _08021F30 @ =gUnknown_02024C07 + ldr r2, _08021F30 @ =gPlayerMonIndex mov r9, r2 adds r5, r1, 0 cmp r0, 0 @@ -40215,7 +40215,7 @@ _08021E70: ldr r0, _08021F34 @ =gUnknown_02024A60 ldrb r2, [r2] strb r2, [r0] - ldr r1, _08021F38 @ =gUnknown_02024C08 + ldr r1, _08021F38 @ =gEnemyMonIndex ldrb r0, [r1] mov r4, r9 strb r0, [r4] @@ -40303,9 +40303,9 @@ _08021F04: b _08021F82 .align 2, 0 _08021F2C: .4byte gUnknown_02024C6C -_08021F30: .4byte gUnknown_02024C07 +_08021F30: .4byte gPlayerMonIndex _08021F34: .4byte gUnknown_02024A60 -_08021F38: .4byte gUnknown_02024C08 +_08021F38: .4byte gEnemyMonIndex _08021F3C: .4byte 0xffffefff _08021F40: .4byte gBattleMoves _08021F44: .4byte gUnknown_02024BE8 @@ -40332,7 +40332,7 @@ _08021F68: negs r1, r1 strh r1, [r0] _08021F82: - ldr r2, _08021FDC @ =gUnknown_02024C08 + ldr r2, _08021FDC @ =gEnemyMonIndex ldrb r3, [r2] lsls r0, r3, 2 adds r0, r6 @@ -40365,7 +40365,7 @@ _08021FA0: cmp r2, r0 bne _08021FEC ldr r1, _08021FE8 @ =gUnknown_02024C3C - ldr r4, _08021FDC @ =gUnknown_02024C08 + ldr r4, _08021FDC @ =gEnemyMonIndex ldrb r0, [r4] lsls r0, 1 adds r0, r1 @@ -40375,13 +40375,13 @@ _08021FA0: _08021FD0: .4byte gUnknown_02024C34 _08021FD4: .4byte 0x0000ffff _08021FD8: .4byte gUnknown_02024C4C -_08021FDC: .4byte gUnknown_02024C08 +_08021FDC: .4byte gEnemyMonIndex _08021FE0: .4byte gUnknown_02024C5C _08021FE4: .4byte gBattleMoveFlags _08021FE8: .4byte gUnknown_02024C3C _08021FEC: ldr r0, _08022014 @ =gUnknown_02024C3C - ldr r5, _08022018 @ =gUnknown_02024C08 + ldr r5, _08022018 @ =gEnemyMonIndex ldrb r1, [r5] lsls r1, 1 adds r1, r0 @@ -40402,13 +40402,13 @@ _08021FEC: b _08021C22 .align 2, 0 _08022014: .4byte gUnknown_02024C3C -_08022018: .4byte gUnknown_02024C08 +_08022018: .4byte gEnemyMonIndex _0802201C: .4byte gUnknown_02024BE6 _08022020: .4byte 0x0001601c _08022024: .4byte gUnknown_02024C44 _08022028: ldr r0, _08022044 @ =gUnknown_02024C44 - ldr r1, _08022048 @ =gUnknown_02024C08 + ldr r1, _08022048 @ =gEnemyMonIndex ldrb r2, [r1] lsls r2, 1 adds r2, r0 @@ -40422,10 +40422,10 @@ _08022028: b _08022244 .align 2, 0 _08022044: .4byte gUnknown_02024C44 -_08022048: .4byte gUnknown_02024C08 +_08022048: .4byte gEnemyMonIndex _0802204C: ldr r0, _0802205C @ =gUnknown_02024C3C - ldr r2, _08022060 @ =gUnknown_02024C08 + ldr r2, _08022060 @ =gEnemyMonIndex ldrb r1, [r2] lsls r1, 1 adds r1, r0 @@ -40433,13 +40433,13 @@ _0802204C: b _08021C22 .align 2, 0 _0802205C: .4byte gUnknown_02024C3C -_08022060: .4byte gUnknown_02024C08 +_08022060: .4byte gEnemyMonIndex _08022064: .4byte 0x0000ffff _08022068: ldr r0, _0802212C @ =gUnknown_02024C0C ldrb r1, [r0] ldr r6, _08022130 @ =gBitTable - ldr r2, _08022134 @ =gUnknown_02024C07 + ldr r2, _08022134 @ =gPlayerMonIndex ldrb r5, [r2] lsls r0, r5, 2 adds r0, r6 @@ -40477,7 +40477,7 @@ _08022090: ands r0, r1 cmp r0, 0 beq _0802215C - ldr r2, _08022148 @ =gUnknown_02024C08 + ldr r2, _08022148 @ =gEnemyMonIndex ldrb r0, [r2] cmp r5, r0 bne _080220C0 @@ -40502,7 +40502,7 @@ _080220C0: adds r0, r5 add r0, r12 strb r3, [r0] - ldr r0, _08022148 @ =gUnknown_02024C08 + ldr r0, _08022148 @ =gEnemyMonIndex ldrb r1, [r0] lsls r1, 1 ldr r2, _08022154 @ =0x000160ad @@ -40511,7 +40511,7 @@ _080220C0: ldrh r0, [r4] lsrs r0, 8 strb r0, [r1] - ldr r3, _08022148 @ =gUnknown_02024C08 + ldr r3, _08022148 @ =gEnemyMonIndex ldrb r2, [r3] lsls r2, 2 mov r5, r9 @@ -40540,12 +40540,12 @@ _080220C0: .align 2, 0 _0802212C: .4byte gUnknown_02024C0C _08022130: .4byte gBitTable -_08022134: .4byte gUnknown_02024C07 +_08022134: .4byte gPlayerMonIndex _08022138: .4byte 0x000160a6 _0802213C: .4byte gBattleMoves _08022140: .4byte gUnknown_02024BE8 _08022144: .4byte gUnknown_02024C6C -_08022148: .4byte gUnknown_02024C08 +_08022148: .4byte gEnemyMonIndex _0802214C: .4byte gBattleMoveFlags _08022150: .4byte 0x000160ac _08022154: .4byte 0x000160ad @@ -40553,11 +40553,11 @@ _08022158: .4byte 0x00016100 _0802215C: mov r1, r9 ldrb r0, [r1] - ldr r2, _080221B4 @ =gUnknown_02024C08 + ldr r2, _080221B4 @ =gEnemyMonIndex ldrb r2, [r2] cmp r0, r2 beq _08022244 - ldr r3, _080221B4 @ =gUnknown_02024C08 + ldr r3, _080221B4 @ =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 ldr r4, _080221B8 @ =0x000160ac @@ -40565,7 +40565,7 @@ _0802215C: add r0, r12 movs r3, 0 strb r3, [r0] - ldr r5, _080221B4 @ =gUnknown_02024C08 + ldr r5, _080221B4 @ =gEnemyMonIndex ldrb r0, [r5] lsls r0, 1 ldr r1, _080221BC @ =0x000160ad @@ -40595,7 +40595,7 @@ _0802215C: strb r3, [r2] b _08022244 .align 2, 0 -_080221B4: .4byte gUnknown_02024C08 +_080221B4: .4byte gEnemyMonIndex _080221B8: .4byte 0x000160ac _080221BC: .4byte 0x000160ad _080221C0: @@ -40613,7 +40613,7 @@ _080221C0: cmp r0, 0 beq _08022244 ldr r1, _080222B8 @ =gUnknown_02024D28 - ldr r0, _080222BC @ =gUnknown_02024C07 + ldr r0, _080222BC @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -40639,7 +40639,7 @@ _080221C0: ands r4, r2 cmp r4, 0 bne _08022244 - ldr r7, _080222C8 @ =gUnknown_02024C08 + ldr r7, _080222C8 @ =gEnemyMonIndex ldrb r0, [r7] bl battle_get_per_side_status movs r1, 0x2 @@ -40726,10 +40726,10 @@ _0802229E: _080222B0: .4byte gUnknown_02024C6C _080222B4: .4byte gBattleTypeFlags _080222B8: .4byte gUnknown_02024D28 -_080222BC: .4byte gUnknown_02024C07 +_080222BC: .4byte gPlayerMonIndex _080222C0: .4byte gBattleMoves _080222C4: .4byte gUnknown_02024BE6 -_080222C8: .4byte gUnknown_02024C08 +_080222C8: .4byte gEnemyMonIndex _080222CC: .4byte gBattleMons _080222D0: .4byte 0x02000000 _080222D4: .4byte 0x0001600c @@ -40753,7 +40753,7 @@ atk4A_damageflags: @ 80222DC ldrb r0, [r0, 0x2] mov r8, r0 ldr r2, _08022348 @ =gBattleMons - ldr r3, _0802234C @ =gUnknown_02024C08 + ldr r3, _0802234C @ =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -40790,7 +40790,7 @@ atk4A_damageflags: @ 80222DC _08022340: .4byte gBattleMoves _08022344: .4byte gUnknown_02024BE6 _08022348: .4byte gBattleMons -_0802234C: .4byte gUnknown_02024C08 +_0802234C: .4byte gEnemyMonIndex _08022350: .4byte byte_2024C06 _08022354: .4byte gBattleMoveFlags _08022358: .4byte gUnknown_02024C3C @@ -40926,7 +40926,7 @@ _08022432: beq _0802242C _08022452: ldr r2, _08022500 @ =gBattleMons - ldr r0, _08022504 @ =gUnknown_02024C08 + ldr r0, _08022504 @ =gEnemyMonIndex mov r8, r0 ldrb r1, [r0] movs r0, 0x58 @@ -40940,7 +40940,7 @@ _08022452: ands r5, r4 cmp r5, 0 bne _080224CE - ldr r0, _08022508 @ =gUnknown_02024C07 + ldr r0, _08022508 @ =gPlayerMonIndex ldrb r0, [r0] ldr r7, _0802250C @ =gUnknown_02024BE6 ldrh r1, [r7] @@ -40994,7 +40994,7 @@ _080224CE: cmp r0, 0 beq _080224EC ldr r2, _08022524 @ =gUnknown_02024D28 - ldr r0, _08022508 @ =gUnknown_02024C07 + ldr r0, _08022508 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 4 adds r1, r2 @@ -41014,8 +41014,8 @@ _080224EC: bx r0 .align 2, 0 _08022500: .4byte gBattleMons -_08022504: .4byte gUnknown_02024C08 -_08022508: .4byte gUnknown_02024C07 +_08022504: .4byte gEnemyMonIndex +_08022508: .4byte gPlayerMonIndex _0802250C: .4byte gUnknown_02024BE6 _08022510: .4byte gBattleMoves _08022514: .4byte byte_2024C06 @@ -41030,7 +41030,7 @@ _08022528: .4byte gUnknown_02024C10 atk4B_cmd4b: @ 802252C push {r4,lr} ldr r4, _08022568 @ =gUnknown_02024A60 - ldr r0, _0802256C @ =gUnknown_02024C07 + ldr r0, _0802256C @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r4] ldr r2, _08022570 @ =gUnknown_02024C6C @@ -41059,7 +41059,7 @@ _0802255A: bx r0 .align 2, 0 _08022568: .4byte gUnknown_02024A60 -_0802256C: .4byte gUnknown_02024C07 +_0802256C: .4byte gPlayerMonIndex _08022570: .4byte gUnknown_02024C6C _08022574: .4byte gBitTable _08022578: .4byte gUnknown_02024C10 @@ -42909,7 +42909,7 @@ _080234AA: movs r0, 0x6 strb r0, [r1, 0x1] ldr r4, _0802350C @ =gBattleMons - ldr r3, _08023510 @ =gUnknown_02024C07 + ldr r3, _08023510 @ =gPlayerMonIndex ldrb r0, [r3] movs r2, 0x58 muls r0, r2 @@ -42955,7 +42955,7 @@ _080234FE: .align 2, 0 _08023508: .4byte gUnknown_030041C0 _0802350C: .4byte gBattleMons -_08023510: .4byte gUnknown_02024C07 +_08023510: .4byte gPlayerMonIndex _08023514: .4byte gUnknown_03004290 _08023518: .4byte gUnknown_02024A60 _0802351C: .4byte gUnknown_02024260 @@ -43321,7 +43321,7 @@ _08023808: .4byte gUnknown_02024C10 atk54_802511C: @ 802380C push {r4,r5,lr} ldr r5, _0802383C @ =gUnknown_02024A60 - ldr r0, _08023840 @ =gUnknown_02024C07 + ldr r0, _08023840 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r5] ldr r4, _08023844 @ =gUnknown_02024C10 @@ -43342,7 +43342,7 @@ atk54_802511C: @ 802380C bx r0 .align 2, 0 _0802383C: .4byte gUnknown_02024A60 -_08023840: .4byte gUnknown_02024C07 +_08023840: .4byte gPlayerMonIndex _08023844: .4byte gUnknown_02024C10 thumb_func_end atk54_802511C @@ -43350,7 +43350,7 @@ _08023844: .4byte gUnknown_02024C10 sub_8023848: @ 8023848 push {r4,r5,lr} ldr r5, _08023878 @ =gUnknown_02024A60 - ldr r0, _0802387C @ =gUnknown_02024C07 + ldr r0, _0802387C @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r5] ldr r4, _08023880 @ =gUnknown_02024C10 @@ -43371,7 +43371,7 @@ sub_8023848: @ 8023848 bx r0 .align 2, 0 _08023878: .4byte gUnknown_02024A60 -_0802387C: .4byte gUnknown_02024C07 +_0802387C: .4byte gPlayerMonIndex _08023880: .4byte gUnknown_02024C10 thumb_func_end sub_8023848 @@ -44568,10 +44568,10 @@ _08024244: .4byte gUnknown_02024AA4 atk5F_8025B24: @ 8024248 push {lr} ldr r0, _08024270 @ =gUnknown_02024A60 - ldr r2, _08024274 @ =gUnknown_02024C07 + ldr r2, _08024274 @ =gPlayerMonIndex ldrb r3, [r2] strb r3, [r0] - ldr r1, _08024278 @ =gUnknown_02024C08 + ldr r1, _08024278 @ =gEnemyMonIndex ldrb r0, [r1] strb r0, [r2] strb r3, [r1] @@ -44588,8 +44588,8 @@ atk5F_8025B24: @ 8024248 b _08024286 .align 2, 0 _08024270: .4byte gUnknown_02024A60 -_08024274: .4byte gUnknown_02024C07 -_08024278: .4byte gUnknown_02024C08 +_08024274: .4byte gPlayerMonIndex +_08024278: .4byte gEnemyMonIndex _0802427C: .4byte gUnknown_02024C6C _08024280: .4byte 0xffffefff _08024284: @@ -44609,7 +44609,7 @@ _08024294: .4byte gUnknown_02024C10 thumb_func_start atk60_cmd60 atk60_cmd60: @ 8024298 push {lr} - ldr r0, _080242C0 @ =gUnknown_02024C07 + ldr r0, _080242C0 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -44627,7 +44627,7 @@ _080242B2: pop {r0} bx r0 .align 2, 0 -_080242C0: .4byte gUnknown_02024C07 +_080242C0: .4byte gPlayerMonIndex _080242C4: .4byte gUnknown_02024C10 thumb_func_end atk60_cmd60 @@ -45141,7 +45141,7 @@ _080246D4: .4byte gUnknown_02024A76 atk69_8025FE0: @ 80246D8 push {r4-r7,lr} ldr r7, _08024700 @ =gBattleMons - ldr r6, _08024704 @ =gUnknown_02024C08 + ldr r6, _08024704 @ =gEnemyMonIndex ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -45160,7 +45160,7 @@ atk69_8025FE0: @ 80246D8 b _08024726 .align 2, 0 _08024700: .4byte gBattleMons -_08024704: .4byte gUnknown_02024C08 +_08024704: .4byte gEnemyMonIndex _08024708: .4byte gEnigmaBerries _0802470C: ldrh r0, [r1, 0x2E] @@ -45176,7 +45176,7 @@ _0802470C: lsrs r6, r0, 24 _08024726: ldr r1, _080247E8 @ =gUnknown_02024C0B - ldr r5, _080247EC @ =gUnknown_02024C08 + ldr r5, _080247EC @ =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -45205,7 +45205,7 @@ _08024726: strb r1, [r0] _08024764: ldr r2, _080247F4 @ =gBattleMons - ldr r3, _080247EC @ =gUnknown_02024C08 + ldr r3, _080247EC @ =gEnemyMonIndex ldrb r4, [r3] movs r0, 0x58 muls r0, r4 @@ -45273,7 +45273,7 @@ _080247B6: b _08024834 .align 2, 0 _080247E8: .4byte gUnknown_02024C0B -_080247EC: .4byte gUnknown_02024C08 +_080247EC: .4byte gEnemyMonIndex _080247F0: .4byte gUnknown_02024D68 _080247F4: .4byte gBattleMons _080247F8: .4byte gBattleMoves @@ -45376,7 +45376,7 @@ sub_80248C0: @ 80248C0 strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] - ldr r2, _080248F0 @ =gUnknown_02024C07 + ldr r2, _080248F0 @ =gPlayerMonIndex ldrb r0, [r2] strb r0, [r1, 0x2] ldr r3, _080248F4 @ =gUnknown_02024A6A @@ -45394,7 +45394,7 @@ sub_80248C0: @ 80248C0 bx lr .align 2, 0 _080248EC: .4byte gUnknown_030041C0 -_080248F0: .4byte gUnknown_02024C07 +_080248F0: .4byte gPlayerMonIndex _080248F4: .4byte gUnknown_02024A6A _080248F8: .4byte gUnknown_02024C10 thumb_func_end sub_80248C0 @@ -45824,7 +45824,7 @@ atk6E_state0_side_becomes_attacker: @ 8024C64 push {lr} movs r0, 0 bl battle_get_side_with_given_state - ldr r1, _08024C7C @ =gUnknown_02024C07 + ldr r1, _08024C7C @ =gPlayerMonIndex strb r0, [r1] ldr r1, _08024C80 @ =gUnknown_02024C10 ldr r0, [r1] @@ -45833,7 +45833,7 @@ atk6E_state0_side_becomes_attacker: @ 8024C64 pop {r0} bx r0 .align 2, 0 -_08024C7C: .4byte gUnknown_02024C07 +_08024C7C: .4byte gPlayerMonIndex _08024C80: .4byte gUnknown_02024C10 thumb_func_end atk6E_state0_side_becomes_attacker @@ -46150,7 +46150,7 @@ atk75_8026A58: @ 8024EE8 push {lr} sub sp, 0x4 ldr r2, _08024F28 @ =gUnknown_02024E6C - ldr r1, _08024F2C @ =gUnknown_02024C07 + ldr r1, _08024F2C @ =gPlayerMonIndex ldrb r0, [r1] strb r0, [r2] ldr r2, _08024F30 @ =gUnknown_02024A6A @@ -46179,7 +46179,7 @@ atk75_8026A58: @ 8024EE8 bx r0 .align 2, 0 _08024F28: .4byte gUnknown_02024E6C -_08024F2C: .4byte gUnknown_02024C07 +_08024F2C: .4byte gPlayerMonIndex _08024F30: .4byte gUnknown_02024A6A _08024F34: .4byte gEnemyParty _08024F38: .4byte gUnknown_02024C04 @@ -46227,8 +46227,8 @@ _08024F8C: .align 2, 0 _08024F98: .4byte gUnknown_02024A60 _08024F9C: - ldr r1, _08024FD8 @ =gUnknown_02024C07 - ldr r4, _08024FDC @ =gUnknown_02024C08 + ldr r1, _08024FD8 @ =gPlayerMonIndex + ldr r4, _08024FDC @ =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1] ldrb r0, [r1] @@ -46256,18 +46256,18 @@ _08024F9C: strb r2, [r4] b _08025112 .align 2, 0 -_08024FD8: .4byte gUnknown_02024C07 -_08024FDC: .4byte gUnknown_02024C08 +_08024FD8: .4byte gPlayerMonIndex +_08024FDC: .4byte gEnemyMonIndex _08024FE0: .4byte gUnknown_02024C80 _08024FE4: .4byte gBattleMons _08024FE8: - ldr r0, _08024FF4 @ =gUnknown_02024C08 + ldr r0, _08024FF4 @ =gEnemyMonIndex ldr r1, _08024FF8 @ =gUnknown_02024A60 ldrb r1, [r1] strb r1, [r0] b _08025112 .align 2, 0 -_08024FF4: .4byte gUnknown_02024C08 +_08024FF4: .4byte gEnemyMonIndex _08024FF8: .4byte gUnknown_02024A60 _08024FFC: bl sub_8012028 @@ -46281,12 +46281,12 @@ _0802500C: ldrh r0, [r0] movs r1, 0 bl sub_801B5C0 - ldr r1, _08025020 @ =gUnknown_02024C08 + ldr r1, _08025020 @ =gEnemyMonIndex strb r0, [r1] b _08025112 .align 2, 0 _0802501C: .4byte gUnknown_02024BE6 -_08025020: .4byte gUnknown_02024C08 +_08025020: .4byte gEnemyMonIndex _08025024: ldr r2, _08025044 @ =gUnknown_02024C6C ldr r1, _08025048 @ =gBitTable @@ -46428,7 +46428,7 @@ atk77_setprotect: @ 8025130 push {r7} movs r6, 0x1 ldr r2, _080251FC @ =gUnknown_02024C4C - ldr r1, _08025200 @ =gUnknown_02024C07 + ldr r1, _08025200 @ =gPlayerMonIndex ldrb r3, [r1] lsls r0, r3, 1 adds r0, r2 @@ -46529,7 +46529,7 @@ _080251E6: b _08025246 .align 2, 0 _080251FC: .4byte gUnknown_02024C4C -_08025200: .4byte gUnknown_02024C07 +_08025200: .4byte gPlayerMonIndex _08025204: .4byte gUnknown_02024CA8 _08025208: .4byte gUnknown_02024A7E _0802520C: .4byte gUnknown_02024A68 @@ -46540,7 +46540,7 @@ _0802521C: .4byte gUnknown_02024D28 _08025220: .4byte gUnknown_02024D1E _08025224: ldr r2, _08025258 @ =gUnknown_02024CA8 - ldr r0, _0802525C @ =gUnknown_02024C07 + ldr r0, _0802525C @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -46568,7 +46568,7 @@ _08025246: bx r0 .align 2, 0 _08025258: .4byte gUnknown_02024CA8 -_0802525C: .4byte gUnknown_02024C07 +_0802525C: .4byte gPlayerMonIndex _08025260: .4byte gUnknown_02024D1E _08025264: .4byte gBattleMoveFlags _08025268: .4byte gUnknown_02024C10 @@ -46583,7 +46583,7 @@ atk78_faintifabilitynotdamp: @ 802526C ldr r2, [r0] cmp r2, 0 bne _08025370 - ldr r1, _0802532C @ =gUnknown_02024C08 + ldr r1, _0802532C @ =gEnemyMonIndex strb r2, [r1] ldr r0, _08025330 @ =gUnknown_02024A68 ldrb r3, [r0] @@ -46622,7 +46622,7 @@ _080252B8: cmp r0, r1 bne _08025354 ldr r4, _08025338 @ =gUnknown_02024A60 - ldr r7, _0802533C @ =gUnknown_02024C07 + ldr r7, _0802533C @ =gPlayerMonIndex ldrb r0, [r7] strb r0, [r4] ldr r2, _08025340 @ =gBattleMoveDamage @@ -46674,11 +46674,11 @@ _0802531A: b _08025370 .align 2, 0 _08025328: .4byte gUnknown_02024A64 -_0802532C: .4byte gUnknown_02024C08 +_0802532C: .4byte gEnemyMonIndex _08025330: .4byte gUnknown_02024A68 _08025334: .4byte gBattleMons _08025338: .4byte gUnknown_02024A60 -_0802533C: .4byte gUnknown_02024C07 +_0802533C: .4byte gPlayerMonIndex _08025340: .4byte gBattleMoveDamage _08025344: .4byte 0x00007fff _08025348: .4byte gUnknown_02024C10 @@ -46719,7 +46719,7 @@ atk79_setuserhptozero: @ 8025388 cmp r3, 0 bne _080253CC ldr r4, _080253D8 @ =gUnknown_02024A60 - ldr r0, _080253DC @ =gUnknown_02024C07 + ldr r0, _080253DC @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r4] ldr r1, _080253E0 @ =gBattleMons @@ -46752,7 +46752,7 @@ _080253CC: .align 2, 0 _080253D4: .4byte gUnknown_02024A64 _080253D8: .4byte gUnknown_02024A60 -_080253DC: .4byte gUnknown_02024C07 +_080253DC: .4byte gPlayerMonIndex _080253E0: .4byte gBattleMons _080253E4: .4byte gUnknown_02024C10 thumb_func_end atk79_setuserhptozero @@ -46779,11 +46779,11 @@ sub_80253E8: @ 80253E8 adds r7, r3, 0 cmp r0, 0 beq _08025480 - ldr r0, _08025468 @ =gUnknown_02024C08 + ldr r0, _08025468 @ =gEnemyMonIndex ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] - ldr r2, _0802546C @ =gUnknown_02024C07 + ldr r2, _0802546C @ =gPlayerMonIndex lsls r1, 24 lsrs r1, 24 adds r3, r0, 0 @@ -46824,8 +46824,8 @@ _0802543E: .align 2, 0 _08025460: .4byte gUnknown_02024C10 _08025464: .4byte gBattleTypeFlags -_08025468: .4byte gUnknown_02024C08 -_0802546C: .4byte gUnknown_02024C07 +_08025468: .4byte gEnemyMonIndex +_0802546C: .4byte gPlayerMonIndex _08025470: .4byte gUnknown_02024C0C _08025474: .4byte gBitTable _08025478: .4byte gUnknown_02024A68 @@ -46857,10 +46857,10 @@ sub_802548C: @ 802548C lsls r0, 24 orrs r2, r0 ldrb r0, [r1, 0x5] - ldr r3, _080254EC @ =gUnknown_02024C08 + ldr r3, _080254EC @ =gEnemyMonIndex cmp r0, 0x1 bne _080254B4 - ldr r0, _080254F0 @ =gUnknown_02024C07 + ldr r0, _080254F0 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r3] _080254B4: @@ -46892,8 +46892,8 @@ _080254CE: b _08025502 .align 2, 0 _080254E8: .4byte gUnknown_02024C10 -_080254EC: .4byte gUnknown_02024C08 -_080254F0: .4byte gUnknown_02024C07 +_080254EC: .4byte gEnemyMonIndex +_080254F0: .4byte gPlayerMonIndex _080254F4: .4byte gBattleMoveDamage _080254F8: .4byte gBattleMons _080254FC: @@ -46910,7 +46910,7 @@ _08025502: sub_8025508: @ 8025508 push {r4-r7,lr} ldr r3, _0802556C @ =0x02000000 - ldr r4, _08025570 @ =gUnknown_02024C07 + ldr r4, _08025570 @ =gPlayerMonIndex ldrb r2, [r4] lsls r1, r2, 1 ldr r5, _08025574 @ =0x000160ac @@ -46959,7 +46959,7 @@ sub_8025508: @ 8025508 b _0802565C .align 2, 0 _0802556C: .4byte 0x02000000 -_08025570: .4byte gUnknown_02024C07 +_08025570: .4byte gPlayerMonIndex _08025574: .4byte 0x000160ac _08025578: .4byte 0x000160ad _0802557C: .4byte 0x00016100 @@ -47004,7 +47004,7 @@ _080255D8: ldrh r0, [r5] movs r1, 0 bl sub_801B5C0 - ldr r1, _08025608 @ =gUnknown_02024C08 + ldr r1, _08025608 @ =gEnemyMonIndex strb r0, [r1] ldr r4, _0802560C @ =gUnknown_02024C10 ldr r3, _08025610 @ =gUnknown_081D6BBC @@ -47022,7 +47022,7 @@ _080255D8: b _080256C0 .align 2, 0 _08025604: .4byte gUnknown_02024BE6 -_08025608: .4byte gUnknown_02024C08 +_08025608: .4byte gEnemyMonIndex _0802560C: .4byte gUnknown_02024C10 _08025610: .4byte gUnknown_081D6BBC _08025614: .4byte gBattleMoves @@ -47062,7 +47062,7 @@ _0802565C: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _08025694 @ =gUnknown_02024C08 + ldr r1, _08025694 @ =gEnemyMonIndex strb r0, [r1] ldr r5, _08025698 @ =gUnknown_02024C10 ldr r3, _0802569C @ =gUnknown_081D6BBC @@ -47083,7 +47083,7 @@ _08025684: .4byte 0x0000ffff _08025688: .4byte gUnknown_02024C6C _0802568C: .4byte 0xfffffbff _08025690: .4byte gUnknown_02024BE6 -_08025694: .4byte gUnknown_02024C08 +_08025694: .4byte gEnemyMonIndex _08025698: .4byte gUnknown_02024C10 _0802569C: .4byte gUnknown_081D6BBC _080256A0: .4byte gBattleMoves @@ -47158,7 +47158,7 @@ _08025720: .4byte gUnknown_02024C10 thumb_func_start atk7E_setreflect atk7E_setreflect: @ 8025724 push {r4-r6,lr} - ldr r5, _08025754 @ =gUnknown_02024C07 + ldr r5, _08025754 @ =gPlayerMonIndex ldrb r0, [r5] bl battle_get_per_side_status ldr r6, _08025758 @ =gUnknown_02024C7A @@ -47181,7 +47181,7 @@ atk7E_setreflect: @ 8025724 movs r0, 0 b _080257C4 .align 2, 0 -_08025754: .4byte gUnknown_02024C07 +_08025754: .4byte gPlayerMonIndex _08025758: .4byte gUnknown_02024C7A _0802575C: .4byte gBattleMoveFlags _08025760: .4byte gUnknown_02024D1E @@ -47258,7 +47258,7 @@ sub_80257DC: @ 80257DC bne _0802580E ldr r0, _08025820 @ =gUnknown_02024C98 mov r9, r0 - ldr r1, _08025824 @ =gUnknown_02024C08 + ldr r1, _08025824 @ =gEnemyMonIndex mov r8, r1 ldrb r4, [r1] lsls r0, r4, 2 @@ -47282,7 +47282,7 @@ _0802580E: .align 2, 0 _0802581C: .4byte gBattleMoveFlags _08025820: .4byte gUnknown_02024C98 -_08025824: .4byte gUnknown_02024C08 +_08025824: .4byte gEnemyMonIndex _08025828: .4byte gUnknown_02024D1E _0802582C: ldr r1, _08025858 @ =gBattleMons @@ -47311,7 +47311,7 @@ _08025848: _08025858: .4byte gBattleMons _0802585C: .4byte gUnknown_02024D1E _08025860: - ldr r0, _08025890 @ =gUnknown_02024C07 + ldr r0, _08025890 @ =gPlayerMonIndex ldrb r0, [r0] orrs r2, r0 str r2, [r6] @@ -47337,7 +47337,7 @@ _0802587C: pop {r0} bx r0 .align 2, 0 -_08025890: .4byte gUnknown_02024C07 +_08025890: .4byte gPlayerMonIndex _08025894: .4byte gUnknown_02024D1E _08025898: .4byte gUnknown_02024C10 thumb_func_end sub_80257DC @@ -47381,7 +47381,7 @@ _080258CC: str r2, [r3] _080258DE: ldr r2, _080258FC @ =gBattleMons - ldr r0, _08025900 @ =gUnknown_02024C08 + ldr r0, _08025900 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -47396,7 +47396,7 @@ _080258DE: .align 2, 0 _080258F8: .4byte gBattleMoveDamage _080258FC: .4byte gBattleMons -_08025900: .4byte gUnknown_02024C08 +_08025900: .4byte gEnemyMonIndex _08025904: ldr r1, _08025918 @ =gBattleMoveDamage ldr r0, [r1] @@ -47432,8 +47432,8 @@ atk81_setrest: @ 802591C lsls r0, 24 orrs r6, r0 ldr r5, _08025978 @ =gUnknown_02024A60 - ldr r2, _0802597C @ =gUnknown_02024C08 - ldr r0, _08025980 @ =gUnknown_02024C07 + ldr r2, _0802597C @ =gEnemyMonIndex + ldr r0, _08025980 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r2] strb r0, [r5] @@ -47463,8 +47463,8 @@ atk81_setrest: @ 802591C .align 2, 0 _08025974: .4byte gUnknown_02024C10 _08025978: .4byte gUnknown_02024A60 -_0802597C: .4byte gUnknown_02024C08 -_08025980: .4byte gUnknown_02024C07 +_0802597C: .4byte gEnemyMonIndex +_08025980: .4byte gPlayerMonIndex _08025984: .4byte gBattleMoveDamage _08025988: .4byte gBattleMons _0802598C: @@ -47534,7 +47534,7 @@ atk82_jumpifnotfirstturn: @ 80259EC lsls r0, 24 orrs r3, r0 ldr r2, _08025A24 @ =gUnknown_02024CA8 - ldr r0, _08025A28 @ =gUnknown_02024C07 + ldr r0, _08025A28 @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -47549,7 +47549,7 @@ atk82_jumpifnotfirstturn: @ 80259EC .align 2, 0 _08025A20: .4byte gUnknown_02024C10 _08025A24: .4byte gUnknown_02024CA8 -_08025A28: .4byte gUnknown_02024C07 +_08025A28: .4byte gPlayerMonIndex _08025A2C: str r3, [r5] _08025A2E: @@ -47607,7 +47607,7 @@ _08025A70: beq _08025AB0 movs r3, 0 strb r2, [r6] - ldr r1, _08025AAC @ =gUnknown_02024C08 + ldr r1, _08025AAC @ =gEnemyMonIndex ldrb r0, [r1] cmp r0, 0xFF beq _08025AD0 @@ -47621,7 +47621,7 @@ _08025A9C: .4byte gUnknown_02024A68 _08025AA0: .4byte gBattleMons _08025AA4: .4byte 0x02016003 _08025AA8: .4byte gUnknown_02024D1E -_08025AAC: .4byte gUnknown_02024C08 +_08025AAC: .4byte gEnemyMonIndex _08025AB0: adds r3, 0x58 adds r2, 0x1 @@ -47668,7 +47668,7 @@ sub_8025AE0: @ 8025AE0 ldrb r0, [r1, 0x4] lsls r0, 24 orrs r4, r0 - ldr r6, _08025B10 @ =gUnknown_02024C08 + ldr r6, _08025B10 @ =gEnemyMonIndex ldrb r0, [r6] bl sub_8025A44 lsls r0, 24 @@ -47678,7 +47678,7 @@ sub_8025AE0: @ 8025AE0 b _08025B56 .align 2, 0 _08025B0C: .4byte gUnknown_02024C10 -_08025B10: .4byte gUnknown_02024C08 +_08025B10: .4byte gEnemyMonIndex _08025B14: ldr r1, _08025B44 @ =gBattleMons ldrb r3, [r6] @@ -47721,7 +47721,7 @@ _08025B56: sub_8025B5C: @ 8025B5C push {r4,r5,lr} ldr r5, _08025B84 @ =gUnknown_02024CA8 - ldr r4, _08025B88 @ =gUnknown_02024C07 + ldr r4, _08025B88 @ =gPlayerMonIndex ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 @@ -47741,7 +47741,7 @@ sub_8025B5C: @ 8025B5C b _08025BBE .align 2, 0 _08025B84: .4byte gUnknown_02024CA8 -_08025B88: .4byte gUnknown_02024C07 +_08025B88: .4byte gPlayerMonIndex _08025B8C: .4byte gBattleMoveFlags _08025B90: .4byte gUnknown_02024D1E _08025B94: @@ -47799,7 +47799,7 @@ atk86_stockpiletobasedamage: @ 8025BD8 lsls r0, 24 orrs r2, r0 ldr r7, _08025C14 @ =gUnknown_02024CA8 - ldr r6, _08025C18 @ =gUnknown_02024C07 + ldr r6, _08025C18 @ =gPlayerMonIndex ldrb r1, [r6] lsls r0, r1, 3 subs r0, r1 @@ -47813,7 +47813,7 @@ atk86_stockpiletobasedamage: @ 8025BD8 .align 2, 0 _08025C10: .4byte gUnknown_02024C10 _08025C14: .4byte gUnknown_02024CA8 -_08025C18: .4byte gUnknown_02024C07 +_08025C18: .4byte gPlayerMonIndex _08025C1C: ldr r0, _08025CD0 @ =gUnknown_02024D1E ldrb r0, [r0, 0x6] @@ -47822,7 +47822,7 @@ _08025C1C: ldr r0, _08025CD4 @ =gBattleMoveDamage mov r8, r0 ldr r4, _08025CD8 @ =gUnknown_02024C7A - ldr r5, _08025CDC @ =gUnknown_02024C08 + ldr r5, _08025CDC @ =gEnemyMonIndex ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x1 @@ -47884,7 +47884,7 @@ _08025C1C: str r0, [r1] _08025CA8: ldr r2, _08025CF4 @ =gUnknown_02024CA8 - ldr r0, _08025CF8 @ =gUnknown_02024C07 + ldr r0, _08025CF8 @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -47907,14 +47907,14 @@ _08025CC2: _08025CD0: .4byte gUnknown_02024D1E _08025CD4: .4byte gBattleMoveDamage _08025CD8: .4byte gUnknown_02024C7A -_08025CDC: .4byte gUnknown_02024C08 +_08025CDC: .4byte gEnemyMonIndex _08025CE0: .4byte gBattleMons _08025CE4: .4byte gUnknown_02024BE6 _08025CE8: .4byte 0x02000000 _08025CEC: .4byte 0x00016002 _08025CF0: .4byte gUnknown_02024D28 _08025CF4: .4byte gUnknown_02024CA8 -_08025CF8: .4byte gUnknown_02024C07 +_08025CF8: .4byte gPlayerMonIndex _08025CFC: .4byte gUnknown_02024C10 thumb_func_end atk86_stockpiletobasedamage @@ -47937,7 +47937,7 @@ sub_8025D00: @ 8025D00 orrs r2, r0 ldr r0, _08025D44 @ =gUnknown_02024CA8 mov r8, r0 - ldr r6, _08025D48 @ =gUnknown_02024C07 + ldr r6, _08025D48 @ =gPlayerMonIndex ldrb r3, [r6] lsls r0, r3, 3 subs r0, r3 @@ -47954,7 +47954,7 @@ sub_8025D00: @ 8025D00 .align 2, 0 _08025D40: .4byte gUnknown_02024C10 _08025D44: .4byte gUnknown_02024CA8 -_08025D48: .4byte gUnknown_02024C07 +_08025D48: .4byte gPlayerMonIndex _08025D4C: .4byte gUnknown_02024D1E _08025D50: ldr r1, _08025D74 @ =gBattleMons @@ -47968,7 +47968,7 @@ _08025D50: movs r0, 0 strb r0, [r4, 0x9] str r2, [r7] - ldr r1, _08025D78 @ =gUnknown_02024C08 + ldr r1, _08025D78 @ =gEnemyMonIndex ldrb r0, [r6] strb r0, [r1] ldr r1, _08025D7C @ =gUnknown_02024D1E @@ -47977,7 +47977,7 @@ _08025D50: b _08025DD0 .align 2, 0 _08025D74: .4byte gBattleMons -_08025D78: .4byte gUnknown_02024C08 +_08025D78: .4byte gEnemyMonIndex _08025D7C: .4byte gUnknown_02024D1E _08025D80: ldr r5, _08025DDC @ =gBattleMoveDamage @@ -48017,7 +48017,7 @@ _08025D9C: ldr r0, [r7] adds r0, 0x5 str r0, [r7] - ldr r1, _08025DE8 @ =gUnknown_02024C08 + ldr r1, _08025DE8 @ =gEnemyMonIndex ldrb r0, [r6] strb r0, [r1] _08025DD0: @@ -48030,7 +48030,7 @@ _08025DD0: _08025DDC: .4byte gBattleMoveDamage _08025DE0: .4byte 0x02000000 _08025DE4: .4byte 0x00016002 -_08025DE8: .4byte gUnknown_02024C08 +_08025DE8: .4byte gEnemyMonIndex thumb_func_end sub_8025D00 thumb_func_start atk88_negativedamage @@ -48084,14 +48084,14 @@ sub_8025E20: @ 8025E20 cmp r0, 0 beq _08025E54 ldr r0, _08025E4C @ =gUnknown_02024A60 - ldr r1, _08025E50 @ =gUnknown_02024C07 + ldr r1, _08025E50 @ =gPlayerMonIndex b _08025E58 .align 2, 0 _08025E4C: .4byte gUnknown_02024A60 -_08025E50: .4byte gUnknown_02024C07 +_08025E50: .4byte gPlayerMonIndex _08025E54: ldr r0, _08025EF8 @ =gUnknown_02024A60 - ldr r1, _08025EFC @ =gUnknown_02024C08 + ldr r1, _08025EFC @ =gEnemyMonIndex _08025E58: ldrb r1, [r1] strb r1, [r0] @@ -48177,7 +48177,7 @@ _08025EAC: b _08025F74 .align 2, 0 _08025EF8: .4byte gUnknown_02024A60 -_08025EFC: .4byte gUnknown_02024C08 +_08025EFC: .4byte gEnemyMonIndex _08025F00: .4byte gUnknown_030041C0 _08025F04: .4byte gUnknown_02024C80 _08025F08: .4byte gUnknown_02024BE6 @@ -48476,7 +48476,7 @@ _08026156: cmp r0, 0 beq _08026206 movs r1, 0 - ldr r0, _080261A8 @ =gUnknown_02024C08 + ldr r0, _080261A8 @ =gEnemyMonIndex ldrb r0, [r0] ldr r3, _080261AC @ =gUnknown_02024D1E mov r8, r3 @@ -48490,7 +48490,7 @@ _0802619A: .align 2, 0 _080261A0: .4byte gUnknown_02024A60 _080261A4: .4byte gUnknown_03004290 -_080261A8: .4byte gUnknown_02024C08 +_080261A8: .4byte gEnemyMonIndex _080261AC: .4byte gUnknown_02024D1E _080261B0: asrs r6, r0, 28 @@ -48550,7 +48550,7 @@ _08026218: .4byte gUnknown_02024A60 _0802621C: .4byte gUnknown_02024D1E _08026220: movs r1, 0 - ldr r0, _080262B4 @ =gUnknown_02024C08 + ldr r0, _080262B4 @ =gEnemyMonIndex ldrb r0, [r0] ldr r2, _080262B8 @ =gUnknown_02024D1E mov r8, r2 @@ -48630,7 +48630,7 @@ _080262A4: pop {r1} bx r1 .align 2, 0 -_080262B4: .4byte gUnknown_02024C08 +_080262B4: .4byte gEnemyMonIndex _080262B8: .4byte gUnknown_02024D1E _080262BC: .4byte gUnknown_02024A60 _080262C0: .4byte gBattleMoveFlags @@ -48729,7 +48729,7 @@ _08026368: .4byte gBattleMons atk8B_setbide: @ 802636C push {r4,r5,lr} ldr r4, _080263C4 @ =gBattleMons - ldr r3, _080263C8 @ =gUnknown_02024C07 + ldr r3, _080263C8 @ =gPlayerMonIndex ldrb r0, [r3] movs r5, 0x58 adds r2, r0, 0 @@ -48772,7 +48772,7 @@ atk8B_setbide: @ 802636C bx r0 .align 2, 0 _080263C4: .4byte gBattleMons -_080263C8: .4byte gUnknown_02024C07 +_080263C8: .4byte gPlayerMonIndex _080263CC: .4byte gUnknown_02024C54 _080263D0: .4byte gUnknown_02024BE6 _080263D4: .4byte gUnknown_02024BF4 @@ -48783,7 +48783,7 @@ _080263D8: .4byte gUnknown_02024C10 atk8C_confuseifrepeatingattackends: @ 80263DC push {lr} ldr r1, _0802640C @ =gBattleMons - ldr r0, _08026410 @ =gUnknown_02024C07 + ldr r0, _08026410 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -48807,7 +48807,7 @@ _080263FE: bx r0 .align 2, 0 _0802640C: .4byte gBattleMons -_08026410: .4byte gUnknown_02024C07 +_08026410: .4byte gPlayerMonIndex _08026414: .4byte gUnknown_02024D1E _08026418: .4byte gUnknown_02024C10 thumb_func_end atk8C_confuseifrepeatingattackends @@ -48898,14 +48898,14 @@ _080264BC: .4byte gUnknown_02024C10 sub_80264C0: @ 80264C0 push {r4-r7,lr} ldr r6, _080264F4 @ =gBattleMons - ldr r7, _080264F8 @ =gUnknown_02024C07 + ldr r7, _080264F8 @ =gPlayerMonIndex ldrb r0, [r7] movs r5, 0x58 adds r1, r0, 0 muls r1, r5 adds r1, r6 adds r1, 0x2A - ldr r4, _080264FC @ =gUnknown_02024C08 + ldr r4, _080264FC @ =gEnemyMonIndex ldrb r3, [r4] adds r0, r3, 0 muls r0, r5 @@ -48924,8 +48924,8 @@ sub_80264C0: @ 80264C0 b _08026568 .align 2, 0 _080264F4: .4byte gBattleMons -_080264F8: .4byte gUnknown_02024C07 -_080264FC: .4byte gUnknown_02024C08 +_080264F8: .4byte gPlayerMonIndex +_080264FC: .4byte gEnemyMonIndex _08026500: .4byte 0x02000000 _08026504: .4byte 0x00016064 _08026508: .4byte gUnknown_02024A6A @@ -49009,7 +49009,7 @@ sub_8026590: @ 8026590 bne _080265A4 b _0802687C _080265A4: - ldr r5, _0802662C @ =gUnknown_02024C08 + ldr r5, _0802662C @ =gEnemyMonIndex ldrb r0, [r5] bl battle_side_get_owner lsls r0, 24 @@ -49075,7 +49075,7 @@ _0802661A: b _08026678 .align 2, 0 _08026628: .4byte gBattleTypeFlags -_0802662C: .4byte gUnknown_02024C08 +_0802662C: .4byte gEnemyMonIndex _08026630: .4byte gEnemyParty _08026634: .4byte gPlayerParty _08026638: @@ -49171,7 +49171,7 @@ _080266DC: bl __umodsi3 lsls r0, 24 lsrs r6, r0, 24 - ldr r0, _08026714 @ =gUnknown_02024C08 + ldr r0, _08026714 @ =gEnemyMonIndex ldrb r0, [r0] bl sub_803FC34 lsls r0, 24 @@ -49187,12 +49187,12 @@ _080266DC: b _0802671A .align 2, 0 _08026710: .4byte gBattleTypeFlags -_08026714: .4byte gUnknown_02024C08 +_08026714: .4byte gEnemyMonIndex _08026718: adds r5, r6, 0 _0802671A: ldr r4, _0802676C @ =gUnknown_02024A6A - ldr r0, _08026770 @ =gUnknown_02024C08 + ldr r0, _08026770 @ =gEnemyMonIndex ldrb r2, [r0] lsls r1, r2, 1 adds r1, r4 @@ -49230,7 +49230,7 @@ _0802671A: b _08026832 .align 2, 0 _0802676C: .4byte gUnknown_02024A6A -_08026770: .4byte gUnknown_02024C08 +_08026770: .4byte gEnemyMonIndex _08026774: movs r0, 0x1 ands r0, r1 @@ -49245,7 +49245,7 @@ _0802677E: bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080267E0 @ =gUnknown_02024C08 + ldr r0, _080267E0 @ =gEnemyMonIndex ldrb r1, [r0] lsls r0, r1, 1 adds r0, r6 @@ -49282,7 +49282,7 @@ _0802677E: b _08026832 .align 2, 0 _080267DC: .4byte gUnknown_02024A6A -_080267E0: .4byte gUnknown_02024C08 +_080267E0: .4byte gEnemyMonIndex _080267E4: ldr r6, _0802686C @ =gUnknown_02024A6A _080267E6: @@ -49293,7 +49293,7 @@ _080267E6: bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _08026870 @ =gUnknown_02024C08 + ldr r0, _08026870 @ =gEnemyMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r6 @@ -49321,7 +49321,7 @@ _080267E6: beq _080267E6 _08026832: ldr r0, _08026874 @ =0x02000000 - ldr r4, _08026870 @ =gUnknown_02024C08 + ldr r4, _08026870 @ =gEnemyMonIndex ldrb r1, [r4] ldr r2, _08026878 @ =0x00016068 adds r1, r2 @@ -49347,7 +49347,7 @@ _08026850: b _08026880 .align 2, 0 _0802686C: .4byte gUnknown_02024A6A -_08026870: .4byte gUnknown_02024C08 +_08026870: .4byte gEnemyMonIndex _08026874: .4byte 0x02000000 _08026878: .4byte 0x00016068 _0802687C: @@ -49369,7 +49369,7 @@ sub_802688C: @ 802688C push {r5-r7} movs r6, 0 ldr r2, _08026920 @ =gBattleMons - ldr r3, _08026924 @ =gUnknown_02024C07 + ldr r3, _08026924 @ =gPlayerMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -49404,7 +49404,7 @@ _080268CE: mov r10, r0 ldr r5, _08026920 @ =gBattleMons mov r12, r5 - ldr r7, _08026924 @ =gUnknown_02024C07 + ldr r7, _08026924 @ =gPlayerMonIndex ldrb r0, [r7] movs r4, 0x58 adds r5, r0, 0 @@ -49441,7 +49441,7 @@ _0802691A: b _0802692E .align 2, 0 _08026920: .4byte gBattleMons -_08026924: .4byte gUnknown_02024C07 +_08026924: .4byte gPlayerMonIndex _08026928: .4byte gBattleMoves _0802692C: movs r2, 0 @@ -49495,7 +49495,7 @@ _0802697A: bcs _0802697A ldr r4, _080269D0 @ =gBattleMons lsls r1, r3, 1 - ldr r3, _080269D4 @ =gUnknown_02024C07 + ldr r3, _080269D4 @ =gPlayerMonIndex ldrb r2, [r3] movs r0, 0x58 adds r5, r2, 0 @@ -49532,7 +49532,7 @@ _080269C8: .align 2, 0 _080269CC: .4byte gBattleMoves _080269D0: .4byte gBattleMons -_080269D4: .4byte gUnknown_02024C07 +_080269D4: .4byte gPlayerMonIndex _080269D8: movs r2, 0 _080269DA: @@ -49651,7 +49651,7 @@ _08026ABC: .4byte gUnknown_02024C10 thumb_func_start atk92_setlightscreen atk92_setlightscreen: @ 8026AC0 push {r4-r6,lr} - ldr r4, _08026AF0 @ =gUnknown_02024C07 + ldr r4, _08026AF0 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_get_per_side_status ldr r6, _08026AF4 @ =gUnknown_02024C7A @@ -49674,7 +49674,7 @@ atk92_setlightscreen: @ 8026AC0 movs r0, 0 b _08026B60 .align 2, 0 -_08026AF0: .4byte gUnknown_02024C07 +_08026AF0: .4byte gPlayerMonIndex _08026AF4: .4byte gUnknown_02024C7A _08026AF8: .4byte gBattleMoveFlags _08026AFC: .4byte gUnknown_02024D1E @@ -49744,7 +49744,7 @@ sub_8026B78: @ 8026B78 mov r5, r8 push {r5-r7} ldr r7, _08026BA8 @ =gBattleMons - ldr r6, _08026BAC @ =gUnknown_02024C08 + ldr r6, _08026BAC @ =gEnemyMonIndex ldrb r2, [r6] movs r5, 0x58 adds r0, r2, 0 @@ -49763,7 +49763,7 @@ sub_8026B78: @ 8026B78 b _08026BCE .align 2, 0 _08026BA8: .4byte gBattleMons -_08026BAC: .4byte gUnknown_02024C08 +_08026BAC: .4byte gEnemyMonIndex _08026BB0: .4byte gEnigmaBerries _08026BB4: ldrh r0, [r1, 0x2E] @@ -49779,7 +49779,7 @@ _08026BB4: lsrs r6, r0, 24 _08026BCE: ldr r1, _08026C4C @ =gUnknown_02024C0B - ldr r5, _08026C50 @ =gUnknown_02024C08 + ldr r5, _08026C50 @ =gEnemyMonIndex ldrb r0, [r5] strb r0, [r1] cmp r4, 0x27 @@ -49809,7 +49809,7 @@ _08026BCE: _08026C0C: ldr r0, _08026C58 @ =gBattleMons mov r8, r0 - ldr r1, _08026C50 @ =gUnknown_02024C08 + ldr r1, _08026C50 @ =gEnemyMonIndex ldrb r2, [r1] movs r6, 0x58 adds r0, r2, 0 @@ -49832,14 +49832,14 @@ _08026C0C: ldr r1, _08026C64 @ =gUnknown_02024C10 ldr r0, _08026C68 @ =gUnknown_081D9826 str r0, [r1] - ldr r1, _08026C50 @ =gUnknown_02024C08 + ldr r1, _08026C50 @ =gEnemyMonIndex ldrb r0, [r1] movs r1, 0x5 bl sub_81074C4 b _08026E40 .align 2, 0 _08026C4C: .4byte gUnknown_02024C0B -_08026C50: .4byte gUnknown_02024C08 +_08026C50: .4byte gEnemyMonIndex _08026C54: .4byte gUnknown_02024D68 _08026C58: .4byte gBattleMons _08026C5C: .4byte gBattleMoveFlags @@ -49862,7 +49862,7 @@ _08026C6C: adds r2, r0 lsls r2, 2 adds r2, r1 - ldr r7, _08026CEC @ =gUnknown_02024C07 + ldr r7, _08026CEC @ =gPlayerMonIndex ldrb r0, [r7] muls r0, r6 add r0, r10 @@ -49891,7 +49891,7 @@ _08026C6C: muls r1, r6 add r1, r10 adds r1, 0x2A - ldr r2, _08026CF0 @ =gUnknown_02024C08 + ldr r2, _08026CF0 @ =gEnemyMonIndex ldrb r0, [r2] muls r0, r6 add r0, r10 @@ -49908,15 +49908,15 @@ _08026CDC: _08026CE0: .4byte gUnknown_02024C98 _08026CE4: .4byte gBattleMoves _08026CE8: .4byte gUnknown_02024BE6 -_08026CEC: .4byte gUnknown_02024C07 -_08026CF0: .4byte gUnknown_02024C08 +_08026CEC: .4byte gPlayerMonIndex +_08026CF0: .4byte gEnemyMonIndex _08026CF4: ldr r0, _08026D4C @ =gUnknown_02024CA8 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 - ldr r2, _08026D50 @ =gUnknown_02024C07 + ldr r2, _08026D50 @ =gPlayerMonIndex ldrb r0, [r1, 0x15] movs r4, 0 ldrb r3, [r2] @@ -49937,7 +49937,7 @@ _08026D20: cmp r4, 0 beq _08026DE0 ldr r0, _08026D54 @ =gUnknown_02024D28 - ldr r1, _08026D58 @ =gUnknown_02024C08 + ldr r1, _08026D58 @ =gEnemyMonIndex ldrb r2, [r1] lsls r1, r2, 4 adds r1, r0 @@ -49958,9 +49958,9 @@ _08026D20: b _08026DC6 .align 2, 0 _08026D4C: .4byte gUnknown_02024CA8 -_08026D50: .4byte gUnknown_02024C07 +_08026D50: .4byte gPlayerMonIndex _08026D54: .4byte gUnknown_02024D28 -_08026D58: .4byte gUnknown_02024C08 +_08026D58: .4byte gEnemyMonIndex _08026D5C: .4byte gBattleMoveDamage _08026D60: .4byte gBattleMoveFlags _08026D64: @@ -49987,7 +49987,7 @@ _08026D64: orrs r0, r1 strb r0, [r2] ldr r1, _08026DAC @ =gUnknown_02024C04 - ldr r2, _08026DB0 @ =gUnknown_02024C08 + ldr r2, _08026DB0 @ =gEnemyMonIndex ldrb r0, [r2] muls r0, r3 add r0, r10 @@ -49999,7 +49999,7 @@ _08026DA0: .4byte gUnknown_02024D68 _08026DA4: .4byte gBattleMoveDamage _08026DA8: .4byte gBattleMoveFlags _08026DAC: .4byte gUnknown_02024C04 -_08026DB0: .4byte gUnknown_02024C08 +_08026DB0: .4byte gEnemyMonIndex _08026DB4: ldr r1, _08026DD4 @ =gBattleMoveDamage movs r0, 0x58 @@ -50029,14 +50029,14 @@ _08026DE0: movs r1, 0x1 orrs r0, r1 strb r0, [r2] - ldr r0, _08026E14 @ =gUnknown_02024C07 + ldr r0, _08026E14 @ =gPlayerMonIndex ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 add r1, r10 adds r1, 0x2A - ldr r3, _08026E18 @ =gUnknown_02024C08 + ldr r3, _08026E18 @ =gEnemyMonIndex ldrb r0, [r3] muls r0, r2 add r0, r10 @@ -50050,8 +50050,8 @@ _08026DE0: b _08026E24 .align 2, 0 _08026E10: .4byte gBattleMoveFlags -_08026E14: .4byte gUnknown_02024C07 -_08026E18: .4byte gUnknown_02024C08 +_08026E14: .4byte gPlayerMonIndex +_08026E18: .4byte gEnemyMonIndex _08026E1C: .4byte gUnknown_02024D1E _08026E20: ldr r1, _08026E50 @ =gUnknown_02024D1E @@ -50089,7 +50089,7 @@ atk94_gethalfcurrentenemyhp: @ 8026E58 push {lr} ldr r3, _08026E84 @ =gBattleMoveDamage ldr r2, _08026E88 @ =gBattleMons - ldr r0, _08026E8C @ =gUnknown_02024C08 + ldr r0, _08026E8C @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -50111,7 +50111,7 @@ _08026E76: .align 2, 0 _08026E84: .4byte gBattleMoveDamage _08026E88: .4byte gBattleMons -_08026E8C: .4byte gUnknown_02024C08 +_08026E8C: .4byte gEnemyMonIndex _08026E90: .4byte gUnknown_02024C10 thumb_func_end atk94_gethalfcurrentenemyhp @@ -50193,7 +50193,7 @@ _08026F20: movs r0, 0x18 ands r0, r1 adds r4, r2, 0 - ldr r5, _08026F98 @ =gUnknown_02024C07 + ldr r5, _08026F98 @ =gPlayerMonIndex cmp r0, 0 beq _08026FAE ldr r0, _08026F9C @ =gBattleMons @@ -50247,7 +50247,7 @@ _08026F20: b _08026FAC .align 2, 0 _08026F94: .4byte gBattleWeather -_08026F98: .4byte gUnknown_02024C07 +_08026F98: .4byte gPlayerMonIndex _08026F9C: .4byte gBattleMons _08026FA0: .4byte gUnknown_02024C98 _08026FA4: .4byte gBattleMoveDamage @@ -50315,7 +50315,7 @@ _0802701C: ldr r1, _08027050 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] - ldr r5, _08027054 @ =gUnknown_02024C07 + ldr r5, _08027054 @ =gPlayerMonIndex _08027024: ldr r0, _08027058 @ =gUnknown_02024C0C ldrb r1, [r0] @@ -50341,7 +50341,7 @@ _0802703E: bx r0 .align 2, 0 _08027050: .4byte gBattleMoveDamage -_08027054: .4byte gUnknown_02024C07 +_08027054: .4byte gPlayerMonIndex _08027058: .4byte gUnknown_02024C0C _0802705C: .4byte gBitTable _08027060: .4byte gUnknown_02024C10 @@ -50354,7 +50354,7 @@ sub_8027064: @ 8027064 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r4, _08027090 @ =gUnknown_02024C07 + ldr r4, _08027090 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -50370,7 +50370,7 @@ sub_8027064: @ 8027064 ldr r0, _08027098 @ =gPlayerParty b _080270AC .align 2, 0 -_08027090: .4byte gUnknown_02024C07 +_08027090: .4byte gPlayerMonIndex _08027094: .4byte gUnknown_02024A6A _08027098: .4byte gPlayerParty _0802709C: @@ -50384,7 +50384,7 @@ _0802709C: ldr r0, _080270D4 @ =gEnemyParty _080270AC: adds r5, r1, r0 - ldr r4, _080270D8 @ =gUnknown_02024C08 + ldr r4, _080270D8 @ =gEnemyMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -50402,7 +50402,7 @@ _080270AC: .align 2, 0 _080270D0: .4byte gUnknown_02024A6A _080270D4: .4byte gEnemyParty -_080270D8: .4byte gUnknown_02024C08 +_080270D8: .4byte gEnemyMonIndex _080270DC: .4byte gPlayerParty _080270E0: ldr r1, _0802714C @ =gUnknown_02024A6A @@ -50435,7 +50435,7 @@ _080270F0: movs r1, 0 bl GetMonData adds r7, r0, 0 - ldr r5, _08027154 @ =gUnknown_02024C08 + ldr r5, _08027154 @ =gEnemyMonIndex ldrb r0, [r5] movs r6, 0x58 muls r0, r6 @@ -50457,7 +50457,7 @@ _080270F0: .align 2, 0 _0802714C: .4byte gUnknown_02024A6A _08027150: .4byte gEnemyParty -_08027154: .4byte gUnknown_02024C08 +_08027154: .4byte gEnemyMonIndex _08027158: .4byte gBattleMons _0802715C: .4byte gUnknown_02024C10 _08027160: .4byte gUnknown_081D98C9 @@ -50534,7 +50534,7 @@ _080271F8: muls r2, r6 adds r2, r4 ldr r1, _0802722C @ =gBitTable - ldr r0, _08027230 @ =gUnknown_02024C07 + ldr r0, _08027230 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 2 adds r0, r1 @@ -50557,7 +50557,7 @@ _0802721C: bx r0 .align 2, 0 _0802722C: .4byte gBitTable -_08027230: .4byte gUnknown_02024C07 +_08027230: .4byte gPlayerMonIndex _08027234: .4byte gUnknown_02024C10 thumb_func_end sub_8027064 @@ -50603,7 +50603,7 @@ _08027288: .4byte gUnknown_02024A60 _0802728C: .4byte gBattleMons _08027290: ldr r4, _0802732C @ =gUnknown_02024A60 - ldr r5, _08027330 @ =gUnknown_02024C07 + ldr r5, _08027330 @ =gPlayerMonIndex ldrb r0, [r5] strb r0, [r4] ldr r6, _08027334 @ =gUnknown_02024C0C @@ -50678,7 +50678,7 @@ _08027324: bx r0 .align 2, 0 _0802732C: .4byte gUnknown_02024A60 -_08027330: .4byte gUnknown_02024C07 +_08027330: .4byte gPlayerMonIndex _08027334: .4byte gUnknown_02024C0C _08027338: .4byte gBitTable _0802733C: .4byte gBattleMons @@ -50690,7 +50690,7 @@ _08027344: .4byte gUnknown_02024C10 sub_8027348: @ 8027348 push {r4-r6,lr} ldr r6, _08027378 @ =gUnknown_02024C80 - ldr r4, _0802737C @ =gUnknown_02024C07 + ldr r4, _0802737C @ =gPlayerMonIndex ldrb r0, [r4] bl battle_get_per_side_status movs r5, 0x1 @@ -50713,7 +50713,7 @@ sub_8027348: @ 8027348 b _080273C0 .align 2, 0 _08027378: .4byte gUnknown_02024C80 -_0802737C: .4byte gUnknown_02024C07 +_0802737C: .4byte gPlayerMonIndex _08027380: .4byte gBattleMoveFlags _08027384: .4byte gUnknown_02024D1E _08027388: @@ -50761,7 +50761,7 @@ _080273D8: .4byte gUnknown_02024C10 atk9A_setincreasedcriticalchance: @ 80273DC push {lr} ldr r1, _0802740C @ =gBattleMons - ldr r0, _08027410 @ =gUnknown_02024C07 + ldr r0, _08027410 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -50785,7 +50785,7 @@ atk9A_setincreasedcriticalchance: @ 80273DC b _08027424 .align 2, 0 _0802740C: .4byte gBattleMons -_08027410: .4byte gUnknown_02024C07 +_08027410: .4byte gPlayerMonIndex _08027414: .4byte gBattleMoveFlags _08027418: .4byte gUnknown_02024D1E _0802741C: @@ -50819,7 +50819,7 @@ atk9B_transformdataexecution: @ 8027438 adds r0, 0x1 str r0, [r1] ldr r7, _0802749C @ =gBattleMons - ldr r0, _080274A0 @ =gUnknown_02024C08 + ldr r0, _080274A0 @ =gEnemyMonIndex mov r12, r0 ldrb r1, [r0] movs r6, 0x58 @@ -50856,13 +50856,13 @@ _08027490: .4byte gUnknown_02024BE8 _08027494: .4byte 0x0000ffff _08027498: .4byte gUnknown_02024C10 _0802749C: .4byte gBattleMons -_080274A0: .4byte gUnknown_02024C08 +_080274A0: .4byte gEnemyMonIndex _080274A4: .4byte gUnknown_02024C98 _080274A8: .4byte 0x000400c0 _080274AC: .4byte gBattleMoveFlags _080274B0: .4byte gUnknown_02024D1E _080274B4: - ldr r3, _08027588 @ =gUnknown_02024C07 + ldr r3, _08027588 @ =gPlayerMonIndex ldrb r0, [r3] adds r1, r0, 0 muls r1, r6 @@ -50970,7 +50970,7 @@ _08027564: adds r0, r5 b _080275A6 .align 2, 0 -_08027588: .4byte gUnknown_02024C07 +_08027588: .4byte gPlayerMonIndex _0802758C: .4byte gUnknown_02024CA8 _08027590: .4byte gUnknown_030041C0 _08027594: .4byte gUnknown_02024A60 @@ -51011,7 +51011,7 @@ _080275D4: .4byte gUnknown_02024D1E sub_80275D8: @ 80275D8 push {r4-r7,lr} ldr r7, _08027608 @ =gBattleMons - ldr r6, _0802760C @ =gUnknown_02024C07 + ldr r6, _0802760C @ =gPlayerMonIndex ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -51035,7 +51035,7 @@ _080275F2: b _0802766C .align 2, 0 _08027608: .4byte gBattleMons -_0802760C: .4byte gUnknown_02024C07 +_0802760C: .4byte gPlayerMonIndex _08027610: .4byte gBattleMoveDamage _08027614: .4byte gUnknown_02024D1E _08027618: @@ -51151,7 +51151,7 @@ atk9D_copyattack: @ 80276DC adds r7, r1, 0 strh r7, [r0] ldr r5, _0802775C @ =gUnknown_02024C34 - ldr r6, _08027760 @ =gUnknown_02024C08 + ldr r6, _08027760 @ =gEnemyMonIndex ldrb r0, [r6] lsls r0, 1 adds r0, r5 @@ -51161,7 +51161,7 @@ atk9D_copyattack: @ 80276DC cmp r0, 0 bne _08027736 ldr r3, _08027764 @ =gBattleMons - ldr r2, _08027768 @ =gUnknown_02024C07 + ldr r2, _08027768 @ =gPlayerMonIndex ldrb r1, [r2] movs r0, 0x58 adds r4, r1, 0 @@ -51204,9 +51204,9 @@ _08027736: _08027754: .4byte gUnknown_02024BE8 _08027758: .4byte 0x0000ffff _0802775C: .4byte gUnknown_02024C34 -_08027760: .4byte gUnknown_02024C08 +_08027760: .4byte gEnemyMonIndex _08027764: .4byte gBattleMons -_08027768: .4byte gUnknown_02024C07 +_08027768: .4byte gPlayerMonIndex _0802776C: .4byte gUnknown_02024C10 _08027770: movs r2, 0 @@ -51254,7 +51254,7 @@ _080277AA: adds r0, 0xC adds r1, r0 ldr r2, _08027808 @ =gUnknown_02024C34 - ldr r3, _0802780C @ =gUnknown_02024C08 + ldr r3, _0802780C @ =gEnemyMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -51286,7 +51286,7 @@ _080277AA: _08027800: .4byte gUnknown_02024C10 _08027804: .4byte gUnknown_02024BE4 _08027808: .4byte gUnknown_02024C34 -_0802780C: .4byte gUnknown_02024C08 +_0802780C: .4byte gEnemyMonIndex _08027810: .4byte gBattleMoves _08027814: mov r4, r9 @@ -51433,7 +51433,7 @@ _080278F8: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _0802795C @ =gUnknown_02024C08 + ldr r1, _0802795C @ =gEnemyMonIndex strb r0, [r1] pop {r3} mov r8, r3 @@ -51450,14 +51450,14 @@ _0802794C: .4byte gUnknown_02024C6C _08027950: .4byte 0xfffffbff _08027954: .4byte gUnknown_081D6BBC _08027958: .4byte gBattleMoves -_0802795C: .4byte gUnknown_02024C08 +_0802795C: .4byte gEnemyMonIndex thumb_func_end sub_80278B8 thumb_func_start sub_8027960 sub_8027960: @ 8027960 ldr r3, _08027980 @ =gBattleMoveDamage ldr r2, _08027984 @ =gBattleMons - ldr r0, _08027988 @ =gUnknown_02024C07 + ldr r0, _08027988 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -51473,7 +51473,7 @@ sub_8027960: @ 8027960 .align 2, 0 _08027980: .4byte gBattleMoveDamage _08027984: .4byte gBattleMons -_08027988: .4byte gUnknown_02024C07 +_08027988: .4byte gPlayerMonIndex _0802798C: .4byte gUnknown_02024C10 thumb_func_end sub_8027960 @@ -51492,7 +51492,7 @@ _08027994: lsls r3, r0, 1 ldr r4, _080279D4 @ =gBattleMoveDamage ldr r2, _080279D8 @ =gBattleMons - ldr r0, _080279DC @ =gUnknown_02024C07 + ldr r0, _080279DC @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -51515,14 +51515,14 @@ _08027994: .align 2, 0 _080279D4: .4byte gBattleMoveDamage _080279D8: .4byte gBattleMons -_080279DC: .4byte gUnknown_02024C07 +_080279DC: .4byte gPlayerMonIndex _080279E0: .4byte gUnknown_02024C10 thumb_func_end atkA0_psywavedamageeffect thumb_func_start atkA1_counterdamagecalculator atkA1_counterdamagecalculator: @ 80279E4 push {r4-r6,lr} - ldr r4, _08027A54 @ =gUnknown_02024C07 + ldr r4, _08027A54 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -51571,20 +51571,20 @@ atkA1_counterdamagecalculator: @ 80279E4 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027A6C - ldr r0, _08027A68 @ =gUnknown_02024C08 + ldr r0, _08027A68 @ =gEnemyMonIndex strb r1, [r0] b _08027A7C .align 2, 0 -_08027A54: .4byte gUnknown_02024C07 +_08027A54: .4byte gPlayerMonIndex _08027A58: .4byte gUnknown_02024D28 _08027A5C: .4byte gBattleMons _08027A60: .4byte gBattleMoveDamage _08027A64: .4byte gUnknown_02024C80 -_08027A68: .4byte gUnknown_02024C08 +_08027A68: .4byte gEnemyMonIndex _08027A6C: - ldr r2, _08027A88 @ =gUnknown_02024C08 + ldr r2, _08027A88 @ =gEnemyMonIndex ldr r1, _08027A8C @ =gUnknown_02024D28 - ldr r0, _08027A90 @ =gUnknown_02024C07 + ldr r0, _08027A90 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -51597,13 +51597,13 @@ _08027A7C: str r0, [r1] b _08027AC8 .align 2, 0 -_08027A88: .4byte gUnknown_02024C08 +_08027A88: .4byte gEnemyMonIndex _08027A8C: .4byte gUnknown_02024D28 -_08027A90: .4byte gUnknown_02024C07 +_08027A90: .4byte gPlayerMonIndex _08027A94: .4byte gUnknown_02024C10 _08027A98: ldr r2, _08027AD0 @ =gUnknown_02024D68 - ldr r0, _08027AD4 @ =gUnknown_02024C07 + ldr r0, _08027AD4 @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -51632,14 +51632,14 @@ _08027AC8: bx r0 .align 2, 0 _08027AD0: .4byte gUnknown_02024D68 -_08027AD4: .4byte gUnknown_02024C07 +_08027AD4: .4byte gPlayerMonIndex _08027AD8: .4byte gUnknown_02024C10 thumb_func_end atkA1_counterdamagecalculator thumb_func_start atkA2_mirrorcoatdamagecalculator atkA2_mirrorcoatdamagecalculator: @ 8027ADC push {r4-r6,lr} - ldr r4, _08027B4C @ =gUnknown_02024C07 + ldr r4, _08027B4C @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -51689,20 +51689,20 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027B64 - ldr r0, _08027B60 @ =gUnknown_02024C08 + ldr r0, _08027B60 @ =gEnemyMonIndex strb r1, [r0] b _08027B74 .align 2, 0 -_08027B4C: .4byte gUnknown_02024C07 +_08027B4C: .4byte gPlayerMonIndex _08027B50: .4byte gUnknown_02024D28 _08027B54: .4byte gBattleMons _08027B58: .4byte gBattleMoveDamage _08027B5C: .4byte gUnknown_02024C80 -_08027B60: .4byte gUnknown_02024C08 +_08027B60: .4byte gEnemyMonIndex _08027B64: - ldr r2, _08027B80 @ =gUnknown_02024C08 + ldr r2, _08027B80 @ =gEnemyMonIndex ldr r1, _08027B84 @ =gUnknown_02024D28 - ldr r0, _08027B88 @ =gUnknown_02024C07 + ldr r0, _08027B88 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 4 adds r0, r1 @@ -51715,13 +51715,13 @@ _08027B74: str r0, [r1] b _08027BC0 .align 2, 0 -_08027B80: .4byte gUnknown_02024C08 +_08027B80: .4byte gEnemyMonIndex _08027B84: .4byte gUnknown_02024D28 -_08027B88: .4byte gUnknown_02024C07 +_08027B88: .4byte gPlayerMonIndex _08027B8C: .4byte gUnknown_02024C10 _08027B90: ldr r2, _08027BC8 @ =gUnknown_02024D68 - ldr r0, _08027BCC @ =gUnknown_02024C07 + ldr r0, _08027BCC @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 @@ -51750,7 +51750,7 @@ _08027BC0: bx r0 .align 2, 0 _08027BC8: .4byte gUnknown_02024D68 -_08027BCC: .4byte gUnknown_02024C07 +_08027BCC: .4byte gPlayerMonIndex _08027BD0: .4byte gUnknown_02024C10 thumb_func_end atkA2_mirrorcoatdamagecalculator @@ -51762,7 +51762,7 @@ atkA3_disablelastusedattack: @ 8027BD4 push {r6,r7} movs r4, 0 ldr r2, _08027CD4 @ =gBattleMons - ldr r3, _08027CD8 @ =gUnknown_02024C08 + ldr r3, _08027CD8 @ =gEnemyMonIndex ldrb r1, [r3] movs r0, 0x58 muls r0, r1 @@ -51887,7 +51887,7 @@ _08027C28: b _08027D06 .align 2, 0 _08027CD4: .4byte gBattleMons -_08027CD8: .4byte gUnknown_02024C08 +_08027CD8: .4byte gEnemyMonIndex _08027CDC: .4byte gUnknown_02024C34 _08027CE0: .4byte gUnknown_02024CA8 _08027CE4: .4byte gUnknown_030041C0 @@ -51926,7 +51926,7 @@ atkA4_setencore: @ 8027D18 push {r5-r7} movs r5, 0 ldr r3, _08027E0C @ =gBattleMons - ldr r4, _08027E10 @ =gUnknown_02024C08 + ldr r4, _08027E10 @ =gEnemyMonIndex ldrb r1, [r4] movs r0, 0x58 muls r0, r1 @@ -52046,7 +52046,7 @@ _08027D88: b _08027E3A .align 2, 0 _08027E0C: .4byte gBattleMons -_08027E10: .4byte gUnknown_02024C08 +_08027E10: .4byte gEnemyMonIndex _08027E14: .4byte gUnknown_02024C34 _08027E18: .4byte gUnknown_02024CA8 _08027E1C: .4byte gUnknown_02024C10 @@ -52083,7 +52083,7 @@ sub_8027E4C: @ 8027E4C mov r6, r8 push {r6,r7} ldr r7, _08027EEC @ =gBattleMons - ldr r0, _08027EF0 @ =gUnknown_02024C08 + ldr r0, _08027EF0 @ =gEnemyMonIndex mov r8, r0 ldrb r0, [r0] movs r6, 0x58 @@ -52098,7 +52098,7 @@ sub_8027E4C: @ 8027E4C ands r0, r1 cmp r0, 0 bne _08027F18 - ldr r1, _08027EF4 @ =gUnknown_02024C07 + ldr r1, _08027EF4 @ =gPlayerMonIndex mov r12, r1 ldrb r0, [r1] muls r0, r6 @@ -52159,8 +52159,8 @@ sub_8027E4C: @ 8027E4C b _08027F32 .align 2, 0 _08027EEC: .4byte gBattleMons -_08027EF0: .4byte gUnknown_02024C08 -_08027EF4: .4byte gUnknown_02024C07 +_08027EF0: .4byte gEnemyMonIndex +_08027EF4: .4byte gPlayerMonIndex _08027EF8: .4byte gBattleMoveDamage _08027EFC: .4byte 0x02000000 _08027F00: .4byte 0x00016014 @@ -52202,7 +52202,7 @@ sub_8027F44: @ 8027F44 mov r5, r8 push {r5-r7} ldr r1, _08027FA8 @ =gUnknown_02024C3C - ldr r4, _08027FAC @ =gUnknown_02024C07 + ldr r4, _08027FAC @ =gPlayerMonIndex ldrb r0, [r4] lsls r0, 1 adds r2, r0, r1 @@ -52248,7 +52248,7 @@ _08027F8C: b _08028110 .align 2, 0 _08027FA8: .4byte gUnknown_02024C3C -_08027FAC: .4byte gUnknown_02024C07 +_08027FAC: .4byte gPlayerMonIndex _08027FB0: .4byte 0x0000ffff _08027FB4: .4byte gUnknown_02024D28 _08027FB8: .4byte gUnknown_02024C10 @@ -52320,7 +52320,7 @@ _0802802C: ldr r6, _08028120 @ =gTypeEffectiveness adds r3, r4, r6 ldr r1, _08028124 @ =gUnknown_02024C44 - ldr r2, _08028128 @ =gUnknown_02024C07 + ldr r2, _08028128 @ =gPlayerMonIndex ldrb r5, [r2] lsls r0, r5, 1 adds r0, r1 @@ -52438,7 +52438,7 @@ _08028110: .align 2, 0 _08028120: .4byte gTypeEffectiveness _08028124: .4byte gUnknown_02024C44 -_08028128: .4byte gUnknown_02024C07 +_08028128: .4byte gPlayerMonIndex _0802812C: .4byte gBattleMons _08028130: .4byte 0x000003e7 _08028134: .4byte gUnknown_02024C10 @@ -52449,7 +52449,7 @@ _08028138: .4byte 0x0000014f atkA7_setalwayshitflag: @ 802813C push {r4,lr} ldr r4, _08028180 @ =gUnknown_02024C98 - ldr r3, _08028184 @ =gUnknown_02024C08 + ldr r3, _08028184 @ =gEnemyMonIndex ldrb r1, [r3] lsls r1, 2 adds r1, r4 @@ -52471,7 +52471,7 @@ atkA7_setalwayshitflag: @ 802813C subs r0, r1 lsls r0, 2 adds r0, r2 - ldr r1, _0802818C @ =gUnknown_02024C07 + ldr r1, _0802818C @ =gPlayerMonIndex ldrb r1, [r1] strb r1, [r0, 0x15] ldr r1, _08028190 @ =gUnknown_02024C10 @@ -52483,9 +52483,9 @@ atkA7_setalwayshitflag: @ 802813C bx r0 .align 2, 0 _08028180: .4byte gUnknown_02024C98 -_08028184: .4byte gUnknown_02024C08 +_08028184: .4byte gEnemyMonIndex _08028188: .4byte gUnknown_02024CA8 -_0802818C: .4byte gUnknown_02024C07 +_0802818C: .4byte gPlayerMonIndex _08028190: .4byte gUnknown_02024C10 thumb_func_end atkA7_setalwayshitflag @@ -52502,7 +52502,7 @@ atkA8_copymovepermanently: @ 8028194 adds r5, r1, 0 strh r5, [r0] ldr r3, _080282FC @ =gBattleMons - ldr r2, _08028300 @ =gUnknown_02024C07 + ldr r2, _08028300 @ =gPlayerMonIndex ldrb r1, [r2] movs r0, 0x58 adds r4, r1, 0 @@ -52521,7 +52521,7 @@ atkA8_copymovepermanently: @ 8028194 b _08028320 _080281CC: ldr r0, _08028304 @ =gUnknown_02024C2C - ldr r2, _08028308 @ =gUnknown_02024C08 + ldr r2, _08028308 @ =gEnemyMonIndex ldrb r1, [r2] lsls r1, 1 adds r1, r0 @@ -52656,7 +52656,7 @@ _08028282: movs r0, 0x2 strb r0, [r1, 0x1] ldr r3, _08028304 @ =gUnknown_02024C2C - ldr r2, _08028308 @ =gUnknown_02024C08 + ldr r2, _08028308 @ =gEnemyMonIndex ldrb r0, [r2] lsls r0, 1 adds r0, r3 @@ -52679,9 +52679,9 @@ _08028282: _080282F4: .4byte gUnknown_02024BE8 _080282F8: .4byte 0x0000ffff _080282FC: .4byte gBattleMons -_08028300: .4byte gUnknown_02024C07 +_08028300: .4byte gPlayerMonIndex _08028304: .4byte gUnknown_02024C2C -_08028308: .4byte gUnknown_02024C08 +_08028308: .4byte gEnemyMonIndex _0802830C: .4byte gUnknown_02024BE4 _08028310: .4byte gBattleMoves _08028314: .4byte gUnknown_02024A60 @@ -52844,7 +52844,7 @@ sub_8028420: @ 8028420 push {r5-r7} movs r6, 0 movs r5, 0 - ldr r0, _080284B0 @ =gUnknown_02024C07 + ldr r0, _080284B0 @ =gPlayerMonIndex mov r9, r0 movs r1, 0x58 mov r8, r1 @@ -52895,7 +52895,7 @@ _0802848C: adds r5, 0x1 cmp r5, 0x3 ble _0802843E - ldr r0, _080284B0 @ =gUnknown_02024C07 + ldr r0, _080284B0 @ =gPlayerMonIndex ldrb r0, [r0] adds r1, r6, 0 movs r2, 0xFD @@ -52910,7 +52910,7 @@ _0802848C: str r0, [r1] b _08028524 .align 2, 0 -_080284B0: .4byte gUnknown_02024C07 +_080284B0: .4byte gPlayerMonIndex _080284B4: .4byte gUnknown_02024A8C _080284B8: .4byte gBitTable _080284BC: .4byte gUnknown_02024C10 @@ -52930,7 +52930,7 @@ _080284C4: ldr r4, _08028538 @ =gUnknown_02024BEA ldr r2, _0802853C @ =gBattleMons lsls r1, r5, 1 - ldr r0, _08028540 @ =gUnknown_02024C07 + ldr r0, _08028540 @ =gPlayerMonIndex ldrb r3, [r0] movs r0, 0x58 muls r0, r3 @@ -52949,7 +52949,7 @@ _080284C4: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _08028550 @ =gUnknown_02024C08 + ldr r1, _08028550 @ =gEnemyMonIndex strb r0, [r1] ldr r3, _08028554 @ =gUnknown_02024C10 ldr r2, [r3] @@ -52976,18 +52976,18 @@ _08028524: _08028534: .4byte gBitTable _08028538: .4byte gUnknown_02024BEA _0802853C: .4byte gBattleMons -_08028540: .4byte gUnknown_02024C07 +_08028540: .4byte gPlayerMonIndex _08028544: .4byte gUnknown_02024BE4 _08028548: .4byte gUnknown_02024C6C _0802854C: .4byte 0xfffffbff -_08028550: .4byte gUnknown_02024C08 +_08028550: .4byte gEnemyMonIndex _08028554: .4byte gUnknown_02024C10 thumb_func_end sub_8028420 thumb_func_start sub_8028558 sub_8028558: @ 8028558 ldr r1, _0802857C @ =gBattleMons - ldr r0, _08028580 @ =gUnknown_02024C07 + ldr r0, _08028580 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r2, r0 @@ -53005,19 +53005,19 @@ sub_8028558: @ 8028558 bx lr .align 2, 0 _0802857C: .4byte gBattleMons -_08028580: .4byte gUnknown_02024C07 +_08028580: .4byte gPlayerMonIndex _08028584: .4byte gUnknown_02024C10 thumb_func_end sub_8028558 thumb_func_start b_feature_update_destiny_bond b_feature_update_destiny_bond: @ 8028588 push {r4,r5,lr} - ldr r0, _080285D8 @ =gUnknown_02024C07 + ldr r0, _080285D8 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 lsrs r5, r0, 24 - ldr r4, _080285DC @ =gUnknown_02024C08 + ldr r4, _080285DC @ =gEnemyMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -53051,8 +53051,8 @@ _080285D2: pop {r0} bx r0 .align 2, 0 -_080285D8: .4byte gUnknown_02024C07 -_080285DC: .4byte gUnknown_02024C08 +_080285D8: .4byte gPlayerMonIndex +_080285DC: .4byte gEnemyMonIndex _080285E0: .4byte gBattleMons _080285E4: .4byte gUnknown_02024C6C thumb_func_end b_feature_update_destiny_bond @@ -53075,7 +53075,7 @@ _080285FC: .4byte gUnknown_02024C10 atkAC_remaininghptopower: @ 8028600 push {lr} ldr r2, _08028654 @ =gBattleMons - ldr r0, _08028658 @ =gUnknown_02024C07 + ldr r0, _08028658 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -53117,7 +53117,7 @@ _0802863A: bx r0 .align 2, 0 _08028654: .4byte gBattleMons -_08028658: .4byte gUnknown_02024C07 +_08028658: .4byte gPlayerMonIndex _0802865C: .4byte gUnknown_081FAD26 _08028660: .4byte gUnknown_02024DEC _08028664: .4byte gUnknown_02024C10 @@ -53132,7 +53132,7 @@ sub_8028668: @ 8028668 push {r5-r7} sub sp, 0x4 ldr r4, _080287F8 @ =gUnknown_02024C34 - ldr r1, _080287FC @ =gUnknown_02024C08 + ldr r1, _080287FC @ =gEnemyMonIndex ldrb r2, [r1] lsls r0, r2, 1 adds r0, r4 @@ -53316,7 +53316,7 @@ _080287D2: adds r0, 0x5 str r0, [r1] ldr r1, _0802880C @ =gBattleMons - ldr r0, _080287FC @ =gUnknown_02024C08 + ldr r0, _080287FC @ =gEnemyMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -53331,7 +53331,7 @@ _080287D2: b _08028842 .align 2, 0 _080287F8: .4byte gUnknown_02024C34 -_080287FC: .4byte gUnknown_02024C08 +_080287FC: .4byte gEnemyMonIndex _08028800: .4byte 0x0000ffff _08028804: .4byte gUnknown_02024C98 _08028808: .4byte 0x000400c0 @@ -53387,7 +53387,7 @@ sub_8028858: @ 8028858 _08028872: ldr r5, _080288B0 @ =gUnknown_02024D1E strb r7, [r5, 0x5] - ldr r6, _080288B4 @ =gUnknown_02024C07 + ldr r6, _080288B4 @ =gPlayerMonIndex ldrb r0, [r6] bl battle_side_get_owner lsls r0, 24 @@ -53417,7 +53417,7 @@ _0802888C: .align 2, 0 _080288AC: .4byte gUnknown_02024BE6 _080288B0: .4byte gUnknown_02024D1E -_080288B4: .4byte gUnknown_02024C07 +_080288B4: .4byte gPlayerMonIndex _080288B8: .4byte gEnemyParty _080288BC: .4byte gPlayerParty _080288C0: .4byte gBattleMons @@ -53431,7 +53431,7 @@ _080288C4: strb r0, [r5, 0x5] _080288D4: ldr r4, _08028934 @ =gUnknown_02024A60 - ldr r0, _08028938 @ =gUnknown_02024C07 + ldr r0, _08028938 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_get_per_side_status movs r6, 0x2 @@ -53477,7 +53477,7 @@ _080288D4: b _08028964 .align 2, 0 _08028934: .4byte gUnknown_02024A60 -_08028938: .4byte gUnknown_02024C07 +_08028938: .4byte gPlayerMonIndex _0802893C: .4byte 0x02000000 _08028940: .4byte 0x00016003 _08028944: .4byte gBattleTypeFlags @@ -53518,7 +53518,7 @@ _0802896A: cmp r5, r0 beq _08028A1E ldr r2, _080289B4 @ =gUnknown_02024A6A - ldr r0, _080289B8 @ =gUnknown_02024C07 + ldr r0, _080289B8 @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 1 adds r0, r2 @@ -53532,7 +53532,7 @@ _0802896A: _080289AC: .4byte gUnknown_02024D1E _080289B0: .4byte gBattleMons _080289B4: .4byte gUnknown_02024A6A -_080289B8: .4byte gUnknown_02024C07 +_080289B8: .4byte gPlayerMonIndex _080289BC: ldr r0, _080289F4 @ =gBattleTypeFlags ldrh r1, [r0] @@ -53593,7 +53593,7 @@ _08028A26: strb r0, [r1, 0x5] movs r7, 0x3F ldr r2, _08028AB8 @ =gBattleMons - ldr r1, _08028ABC @ =gUnknown_02024C07 + ldr r1, _08028ABC @ =gPlayerMonIndex ldrb r0, [r1] movs r6, 0x58 muls r0, r6 @@ -53632,7 +53632,7 @@ _08028A26: str r2, [r0] _08028A7E: ldr r4, _08028AC0 @ =gUnknown_02024A60 - ldr r0, _08028ABC @ =gUnknown_02024C07 + ldr r0, _08028ABC @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r4] add r1, sp, 0x4 @@ -53658,7 +53658,7 @@ _08028A7E: .align 2, 0 _08028AB4: .4byte gUnknown_02024D1E _08028AB8: .4byte gBattleMons -_08028ABC: .4byte gUnknown_02024C07 +_08028ABC: .4byte gPlayerMonIndex _08028AC0: .4byte gUnknown_02024A60 _08028AC4: .4byte gBattleTypeFlags _08028AC8: .4byte gUnknown_02024C0C @@ -53670,7 +53670,7 @@ _08028AD0: .4byte gUnknown_02024C10 sub_8028AD4: @ 8028AD4 push {r4-r7,lr} ldr r7, _08028B24 @ =gBattleMons - ldr r0, _08028B28 @ =gUnknown_02024C08 + ldr r0, _08028B28 @ =gEnemyMonIndex ldrb r3, [r0] movs r6, 0x58 adds r1, r3, 0 @@ -53710,7 +53710,7 @@ _08028B06: b _08028B5C .align 2, 0 _08028B24: .4byte gBattleMons -_08028B28: .4byte gUnknown_02024C08 +_08028B28: .4byte gEnemyMonIndex _08028B2C: .4byte gUnknown_02024C98 _08028B30: .4byte 0x000400c0 _08028B34: .4byte gUnknown_02024C10 @@ -53718,7 +53718,7 @@ _08028B38: orrs r2, r5 str r2, [r4] ldr r1, _08028B64 @ =gBattleMoveDamage - ldr r0, _08028B68 @ =gUnknown_02024C07 + ldr r0, _08028B68 @ =gPlayerMonIndex ldrb r0, [r0] muls r0, r6 adds r0, r7 @@ -53740,14 +53740,14 @@ _08028B5C: bx r0 .align 2, 0 _08028B64: .4byte gBattleMoveDamage -_08028B68: .4byte gUnknown_02024C07 +_08028B68: .4byte gPlayerMonIndex _08028B6C: .4byte gUnknown_02024C10 thumb_func_end sub_8028AD4 thumb_func_start sub_8028B70 sub_8028B70: @ 8028B70 push {r4,lr} - ldr r4, _08028BC4 @ =gUnknown_02024C07 + ldr r4, _08028BC4 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner movs r1, 0x1 @@ -53787,7 +53787,7 @@ sub_8028B70: @ 8028B70 str r1, [r3] b _08028BEE .align 2, 0 -_08028BC4: .4byte gUnknown_02024C07 +_08028BC4: .4byte gPlayerMonIndex _08028BC8: .4byte gUnknown_02024C80 _08028BCC: .4byte gUnknown_02024D68 _08028BD0: .4byte gUnknown_02024C10 @@ -53817,7 +53817,7 @@ _08028BF8: .4byte gUnknown_02024C10 thumb_func_start sub_8028BFC sub_8028BFC: @ 8028BFC ldr r1, _08028C20 @ =gBattleMons - ldr r0, _08028C24 @ =gUnknown_02024C08 + ldr r0, _08028C24 @ =gEnemyMonIndex ldrb r2, [r0] movs r0, 0x58 muls r2, r0 @@ -53835,7 +53835,7 @@ sub_8028BFC: @ 8028BFC bx lr .align 2, 0 _08028C20: .4byte gBattleMons -_08028C24: .4byte gUnknown_02024C08 +_08028C24: .4byte gEnemyMonIndex _08028C28: .4byte gUnknown_02024C10 thumb_func_end sub_8028BFC @@ -53849,7 +53849,7 @@ atkB2_setperishsong: @ 8028C2C movs r3, 0 ldr r0, _08028C70 @ =gUnknown_02024A68 adds r7, r0, 0 - ldr r0, _08028C74 @ =gUnknown_02024C07 + ldr r0, _08028C74 @ =gPlayerMonIndex mov r8, r0 ldrb r1, [r7] cmp r6, r1 @@ -53879,7 +53879,7 @@ _08028C6C: b _08028C8C .align 2, 0 _08028C70: .4byte gUnknown_02024A68 -_08028C74: .4byte gUnknown_02024C07 +_08028C74: .4byte gPlayerMonIndex _08028C78: .4byte gBattleMons _08028C7C: .4byte gUnknown_02024CA8 _08028C80: .4byte gUnknown_02024C98 @@ -53948,7 +53948,7 @@ atkB3_rolloutdamagecalculation: @ 8028CE4 ands r0, r1 cmp r0, 0 beq _08028D18 - ldr r0, _08028D0C @ =gUnknown_02024C07 + ldr r0, _08028D0C @ =gPlayerMonIndex ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe ldr r1, _08028D10 @ =gUnknown_02024C10 @@ -53957,12 +53957,12 @@ atkB3_rolloutdamagecalculation: @ 8028CE4 b _08028E30 .align 2, 0 _08028D08: .4byte gBattleMoveFlags -_08028D0C: .4byte gUnknown_02024C07 +_08028D0C: .4byte gPlayerMonIndex _08028D10: .4byte gUnknown_02024C10 _08028D14: .4byte BattleScript_1D6F74 _08028D18: ldr r2, _08028E3C @ =gBattleMons - ldr r1, _08028E40 @ =gUnknown_02024C07 + ldr r1, _08028E40 @ =gPlayerMonIndex ldrb r3, [r1] movs r5, 0x58 adds r0, r3, 0 @@ -54115,7 +54115,7 @@ _08028E30: bx r0 .align 2, 0 _08028E3C: .4byte gBattleMons -_08028E40: .4byte gUnknown_02024C07 +_08028E40: .4byte gPlayerMonIndex _08028E44: .4byte gUnknown_02024CA8 _08028E48: .4byte gUnknown_02024BE6 _08028E4C: .4byte gUnknown_02024C54 @@ -54129,7 +54129,7 @@ _08028E5C: .4byte gUnknown_02024C10 atkB4_jumpifconfusedandattackmaxed: @ 8028E60 push {r4,r5,lr} ldr r5, _08028EB0 @ =gBattleMons - ldr r0, _08028EB4 @ =gUnknown_02024C08 + ldr r0, _08028EB4 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 adds r3, r1, 0 @@ -54168,7 +54168,7 @@ atkB4_jumpifconfusedandattackmaxed: @ 8028E60 b _08028EC2 .align 2, 0 _08028EB0: .4byte gBattleMons -_08028EB4: .4byte gUnknown_02024C08 +_08028EB4: .4byte gEnemyMonIndex _08028EB8: .4byte gUnknown_02024C10 _08028EBC: ldr r0, [r4] @@ -54190,7 +54190,7 @@ sub_8028EC8: @ 8028EC8 cmp r0, 0 beq _08028F04 ldr r2, _08028EF4 @ =gUnknown_02024CA8 - ldr r0, _08028EF8 @ =gUnknown_02024C07 + ldr r0, _08028EF8 @ =gPlayerMonIndex ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 @@ -54205,12 +54205,12 @@ sub_8028EC8: @ 8028EC8 .align 2, 0 _08028EF0: .4byte gBattleMoveFlags _08028EF4: .4byte gUnknown_02024CA8 -_08028EF8: .4byte gUnknown_02024C07 +_08028EF8: .4byte gPlayerMonIndex _08028EFC: .4byte gUnknown_02024C10 _08028F00: .4byte BattleScript_1D6F74 _08028F04: ldr r5, _08028F64 @ =gUnknown_02024CA8 - ldr r4, _08028F68 @ =gUnknown_02024C07 + ldr r4, _08028F68 @ =gPlayerMonIndex ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 @@ -54262,7 +54262,7 @@ _08028F5C: bx r0 .align 2, 0 _08028F64: .4byte gUnknown_02024CA8 -_08028F68: .4byte gUnknown_02024C07 +_08028F68: .4byte gPlayerMonIndex _08028F6C: .4byte gUnknown_02024DEC _08028F70: .4byte gBattleMoves _08028F74: .4byte gUnknown_02024BE6 @@ -54284,7 +54284,7 @@ atkB6_happinesstodamagecalculation: @ 8028F7C bne _08028FBC ldr r4, _08028FB0 @ =gUnknown_02024DEC ldr r2, _08028FB4 @ =gBattleMons - ldr r0, _08028FB8 @ =gUnknown_02024C07 + ldr r0, _08028FB8 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -54297,11 +54297,11 @@ _08028FA8: .4byte gBattleMoves _08028FAC: .4byte gUnknown_02024BE6 _08028FB0: .4byte gUnknown_02024DEC _08028FB4: .4byte gBattleMons -_08028FB8: .4byte gUnknown_02024C07 +_08028FB8: .4byte gPlayerMonIndex _08028FBC: ldr r4, _08028FF0 @ =gUnknown_02024DEC ldr r2, _08028FF4 @ =gBattleMons - ldr r0, _08028FF8 @ =gUnknown_02024C07 + ldr r0, _08028FF8 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -54327,7 +54327,7 @@ _08028FD2: .align 2, 0 _08028FF0: .4byte gUnknown_02024DEC _08028FF4: .4byte gBattleMons -_08028FF8: .4byte gUnknown_02024C07 +_08028FF8: .4byte gPlayerMonIndex _08028FFC: .4byte gUnknown_02024C10 thumb_func_end atkB6_happinesstodamagecalculation @@ -54366,7 +54366,7 @@ _08029038: .4byte gUnknown_02024DEC _0802903C: ldr r3, _08029068 @ =gBattleMoveDamage ldr r2, _0802906C @ =gBattleMons - ldr r0, _08029070 @ =gUnknown_02024C08 + ldr r0, _08029070 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -54391,12 +54391,12 @@ _0802905E: .align 2, 0 _08029068: .4byte gBattleMoveDamage _0802906C: .4byte gBattleMons -_08029070: .4byte gUnknown_02024C08 +_08029070: .4byte gEnemyMonIndex _08029074: .4byte gUnknown_02024C10 _08029078: .4byte BattleScript_1D6F44 _0802907C: ldr r2, _08029098 @ =gBattleMons - ldr r0, _0802909C @ =gUnknown_02024C08 + ldr r0, _0802909C @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -54410,7 +54410,7 @@ _0802907C: b _080290AC .align 2, 0 _08029098: .4byte gBattleMons -_0802909C: .4byte gUnknown_02024C08 +_0802909C: .4byte gEnemyMonIndex _080290A0: .4byte gUnknown_02024C10 _080290A4: .4byte BattleScript_1D83B5 _080290A8: @@ -54429,7 +54429,7 @@ _080290B8: .4byte BattleScript_1D839B thumb_func_start sub_80290BC sub_80290BC: @ 80290BC push {r4-r6,lr} - ldr r4, _080290F0 @ =gUnknown_02024C07 + ldr r4, _080290F0 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_get_per_side_status ldr r6, _080290F4 @ =gUnknown_02024C7A @@ -54453,7 +54453,7 @@ sub_80290BC: @ 80290BC strb r0, [r1, 0x5] b _08029132 .align 2, 0 -_080290F0: .4byte gUnknown_02024C07 +_080290F0: .4byte gPlayerMonIndex _080290F4: .4byte gUnknown_02024C7A _080290F8: .4byte gBattleMoveFlags _080290FC: .4byte gUnknown_02024D1E @@ -54584,7 +54584,7 @@ _080291E4: strb r3, [r1, 0x4] movs r0, 0xFF strb r0, [r1, 0x5] - ldr r1, _08029258 @ =gUnknown_02024C08 + ldr r1, _08029258 @ =gEnemyMonIndex strb r2, [r1] ldr r0, _0802925C @ =gUnknown_02024A68 ldrb r3, [r0] @@ -54594,7 +54594,7 @@ _080291E4: cmp r2, r3 bcs _0802923C adds r4, r6, 0 - ldr r0, _08029264 @ =gUnknown_02024C07 + ldr r0, _08029264 @ =gPlayerMonIndex ldrb r5, [r0] ldr r1, _08029268 @ =gBitTable mov r12, r1 @@ -54631,10 +54631,10 @@ _0802923C: .align 2, 0 _08029250: .4byte gUnknown_02024DEC _08029254: .4byte gUnknown_030041C0 -_08029258: .4byte gUnknown_02024C08 +_08029258: .4byte gEnemyMonIndex _0802925C: .4byte gUnknown_02024A68 _08029260: .4byte gUnknown_02024C10 -_08029264: .4byte gUnknown_02024C07 +_08029264: .4byte gPlayerMonIndex _08029268: .4byte gBitTable _0802926C: .4byte gUnknown_02024C0C thumb_func_end atkB9_magnitudedamagecalculation @@ -54650,7 +54650,7 @@ sub_8029270: @ 8029270 ldrb r0, [r0] cmp r0, 0x1 bne _080292A0 - ldr r0, _08029298 @ =gUnknown_02024C07 + ldr r0, _08029298 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -54660,12 +54660,12 @@ sub_8029270: @ 8029270 b _080292BA .align 2, 0 _08029294: .4byte gUnknown_02024C0E -_08029298: .4byte gUnknown_02024C07 +_08029298: .4byte gPlayerMonIndex _0802929C: movs r0, 0 b _080292BA _080292A0: - ldr r0, _080292B4 @ =gUnknown_02024C07 + ldr r0, _080292B4 @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -54674,22 +54674,22 @@ _080292A0: movs r0, 0x3 b _080292BA .align 2, 0 -_080292B4: .4byte gUnknown_02024C07 +_080292B4: .4byte gPlayerMonIndex _080292B8: movs r0, 0x2 _080292BA: bl battle_get_side_with_given_state - ldr r1, _0802937C @ =gUnknown_02024C08 + ldr r1, _0802937C @ =gEnemyMonIndex strb r0, [r1] ldr r0, _08029380 @ =gUnknown_02024C18 - ldr r1, _0802937C @ =gUnknown_02024C08 + ldr r1, _0802937C @ =gEnemyMonIndex mov r9, r1 ldrb r3, [r1] adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _080293BC - ldr r5, _08029384 @ =gUnknown_02024C07 + ldr r5, _08029384 @ =gPlayerMonIndex ldr r0, _08029388 @ =0x02000000 ldr r2, _0802938C @ =0x00016010 adds r1, r3, r2 @@ -54778,9 +54778,9 @@ _0802935A: str r0, [r7] b _080293D6 .align 2, 0 -_0802937C: .4byte gUnknown_02024C08 +_0802937C: .4byte gEnemyMonIndex _08029380: .4byte gUnknown_02024C18 -_08029384: .4byte gUnknown_02024C07 +_08029384: .4byte gPlayerMonIndex _08029388: .4byte 0x02000000 _0802938C: .4byte 0x00016010 _08029390: .4byte gBattleMons @@ -54869,7 +54869,7 @@ _0802943C: .4byte gUnknown_02024C10 atkBC_maxattackhalvehp: @ 8029440 push {r4,r5,lr} ldr r5, _0802948C @ =gBattleMons - ldr r4, _08029490 @ =gUnknown_02024C07 + ldr r4, _08029490 @ =gPlayerMonIndex ldrb r0, [r4] movs r3, 0x58 muls r0, r3 @@ -54908,7 +54908,7 @@ _08029480: b _080294B6 .align 2, 0 _0802948C: .4byte gBattleMons -_08029490: .4byte gUnknown_02024C07 +_08029490: .4byte gPlayerMonIndex _08029494: .4byte gBattleMoveDamage _08029498: .4byte gUnknown_02024C10 _0802949C: @@ -54938,10 +54938,10 @@ atkBD_copyfoestats: @ 80294C0 push {r4-r7,lr} movs r2, 0 ldr r7, _080294F8 @ =gUnknown_02024C10 - ldr r6, _080294FC @ =gUnknown_02024C07 + ldr r6, _080294FC @ =gPlayerMonIndex movs r4, 0x58 ldr r3, _08029500 @ =gUnknown_02024A98 - ldr r5, _08029504 @ =gUnknown_02024C08 + ldr r5, _08029504 @ =gEnemyMonIndex _080294CE: ldrb r0, [r6] adds r1, r0, 0 @@ -54965,16 +54965,16 @@ _080294CE: bx r0 .align 2, 0 _080294F8: .4byte gUnknown_02024C10 -_080294FC: .4byte gUnknown_02024C07 +_080294FC: .4byte gPlayerMonIndex _08029500: .4byte gUnknown_02024A98 -_08029504: .4byte gUnknown_02024C08 +_08029504: .4byte gEnemyMonIndex thumb_func_end atkBD_copyfoestats thumb_func_start atkBE_breakfree atkBE_breakfree: @ 8029508 push {r4,r5,lr} ldr r1, _08029570 @ =gBattleMons - ldr r5, _08029574 @ =gUnknown_02024C07 + ldr r5, _08029574 @ =gPlayerMonIndex ldrb r2, [r5] movs r0, 0x58 muls r0, r2 @@ -54989,7 +54989,7 @@ atkBE_breakfree: @ 8029508 ldr r0, _08029578 @ =0xffff1fff ands r1, r0 str r1, [r3] - ldr r1, _0802957C @ =gUnknown_02024C08 + ldr r1, _0802957C @ =gEnemyMonIndex ldr r2, _08029580 @ =0x02000000 ldrb r0, [r5] ldr r3, _08029584 @ =0x00016020 @@ -55024,9 +55024,9 @@ atkBE_breakfree: @ 8029508 b _0802963E .align 2, 0 _08029570: .4byte gBattleMons -_08029574: .4byte gUnknown_02024C07 +_08029574: .4byte gPlayerMonIndex _08029578: .4byte 0xffff1fff -_0802957C: .4byte gUnknown_02024C08 +_0802957C: .4byte gEnemyMonIndex _08029580: .4byte 0x02000000 _08029584: .4byte 0x00016020 _08029588: .4byte gUnknown_030041C0 @@ -55119,7 +55119,7 @@ _08029648: .4byte gUnknown_02024C10 thumb_func_start sub_802964C sub_802964C: @ 802964C ldr r1, _08029670 @ =gBattleMons - ldr r0, _08029674 @ =gUnknown_02024C07 + ldr r0, _08029674 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r2, r0 @@ -55137,7 +55137,7 @@ sub_802964C: @ 802964C bx lr .align 2, 0 _08029670: .4byte gBattleMons -_08029674: .4byte gUnknown_02024C07 +_08029674: .4byte gPlayerMonIndex _08029678: .4byte gUnknown_02024C10 thumb_func_end sub_802964C @@ -55145,8 +55145,8 @@ _08029678: .4byte gUnknown_02024C10 atkC0_recoverbasedonsunlight: @ 802967C push {r4-r7,lr} sub sp, 0x4 - ldr r1, _080296E8 @ =gUnknown_02024C08 - ldr r5, _080296EC @ =gUnknown_02024C07 + ldr r1, _080296E8 @ =gEnemyMonIndex + ldr r5, _080296EC @ =gPlayerMonIndex ldrb r0, [r5] strb r0, [r1] ldr r7, _080296F0 @ =gBattleMons @@ -55185,7 +55185,7 @@ atkC0_recoverbasedonsunlight: @ 802967C _080296CE: ldr r3, _080296F8 @ =gBattleMoveDamage ldr r2, _080296F0 @ =gBattleMons - ldr r0, _080296EC @ =gUnknown_02024C07 + ldr r0, _080296EC @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -55196,8 +55196,8 @@ _080296CE: adds r1, r3, 0 b _08029736 .align 2, 0 -_080296E8: .4byte gUnknown_02024C08 -_080296EC: .4byte gUnknown_02024C07 +_080296E8: .4byte gEnemyMonIndex +_080296EC: .4byte gPlayerMonIndex _080296F0: .4byte gBattleMons _080296F4: .4byte gBattleWeather _080296F8: .4byte gBattleMoveDamage @@ -55280,7 +55280,7 @@ sub_8029784: @ 8029784 mov r5, r8 push {r5-r7} ldr r2, _08029894 @ =gBattleMons - ldr r0, _08029898 @ =gUnknown_02024C07 + ldr r0, _08029898 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 adds r4, r1, 0 @@ -55411,7 +55411,7 @@ _08029876: bx r0 .align 2, 0 _08029894: .4byte gBattleMons -_08029898: .4byte gUnknown_02024C07 +_08029898: .4byte gPlayerMonIndex _0802989C: .4byte gUnknown_02024DEC _080298A0: .4byte 0x02000000 _080298A4: .4byte 0x0001601c @@ -55423,7 +55423,7 @@ atkC2_selectnexttarget: @ 80298AC push {r4-r7,lr} mov r7, r8 push {r7} - ldr r0, _08029908 @ =gUnknown_02024C08 + ldr r0, _08029908 @ =gEnemyMonIndex movs r1, 0 strb r1, [r0] ldr r1, _0802990C @ =gUnknown_02024A68 @@ -55434,7 +55434,7 @@ atkC2_selectnexttarget: @ 80298AC cmp r1, 0 beq _080298F6 adds r3, r6, 0 - ldr r0, _08029914 @ =gUnknown_02024C07 + ldr r0, _08029914 @ =gPlayerMonIndex ldrb r5, [r0] ldr r0, _08029918 @ =gBitTable mov r12, r0 @@ -55470,10 +55470,10 @@ _080298F6: pop {r0} bx r0 .align 2, 0 -_08029908: .4byte gUnknown_02024C08 +_08029908: .4byte gEnemyMonIndex _0802990C: .4byte gUnknown_02024A68 _08029910: .4byte gUnknown_02024C10 -_08029914: .4byte gUnknown_02024C07 +_08029914: .4byte gPlayerMonIndex _08029918: .4byte gBitTable _0802991C: .4byte gUnknown_02024C0C thumb_func_end atkC2_selectnexttarget @@ -55488,7 +55488,7 @@ atkC3_setfutureattack: @ 8029920 sub sp, 0x10 ldr r0, _08029958 @ =gUnknown_02024DBC mov r8, r0 - ldr r7, _0802995C @ =gUnknown_02024C08 + ldr r7, _0802995C @ =gEnemyMonIndex ldrb r1, [r7] adds r0, r1, r0 ldrb r6, [r0] @@ -55510,7 +55510,7 @@ atkC3_setfutureattack: @ 8029920 b _08029A2E .align 2, 0 _08029958: .4byte gUnknown_02024DBC -_0802995C: .4byte gUnknown_02024C08 +_0802995C: .4byte gEnemyMonIndex _08029960: .4byte gUnknown_02024C10 _08029964: lsls r1, 1 @@ -55525,7 +55525,7 @@ _08029964: adds r0, 0x4 ldrb r4, [r7] adds r0, r4 - ldr r5, _08029A08 @ =gUnknown_02024C07 + ldr r5, _08029A08 @ =gPlayerMonIndex ldrb r1, [r5] strb r1, [r0] ldrb r0, [r7] @@ -55593,7 +55593,7 @@ _080299F2: b _08029A26 .align 2, 0 _08029A04: .4byte gUnknown_02024BE6 -_08029A08: .4byte gUnknown_02024C07 +_08029A08: .4byte gPlayerMonIndex _08029A0C: .4byte gUnknown_02024C7A _08029A10: .4byte gBattleMons _08029A14: .4byte gUnknown_02024D28 @@ -55628,7 +55628,7 @@ atkC4_802B910: @ 8029A48 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, _08029A8C @ =gUnknown_02024C07 + ldr r0, _08029A8C @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -55638,7 +55638,7 @@ atkC4_802B910: @ 8029A48 ldr r7, _08029A94 @ =gPlayerParty _08029A62: ldr r2, _08029A98 @ =gBattleMons - ldr r0, _08029A9C @ =gUnknown_02024C08 + ldr r0, _08029A9C @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -55658,11 +55658,11 @@ _08029A62: ldrb r0, [r2, 0x4] b _08029C40 .align 2, 0 -_08029A8C: .4byte gUnknown_02024C07 +_08029A8C: .4byte gPlayerMonIndex _08029A90: .4byte gEnemyParty _08029A94: .4byte gPlayerParty _08029A98: .4byte gBattleMons -_08029A9C: .4byte gUnknown_02024C08 +_08029A9C: .4byte gEnemyMonIndex _08029AA0: .4byte gUnknown_02024C10 _08029AA4: ldr r6, _08029BE0 @ =gUnknown_02024D1E @@ -55725,7 +55725,7 @@ _08029B08: strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r6, _08029BE8 @ =gUnknown_02024C07 + ldr r6, _08029BE8 @ =gPlayerMonIndex ldrb r0, [r6] strb r0, [r1, 0x2] strb r2, [r1, 0x3] @@ -55778,7 +55778,7 @@ _08029B08: muls r0, r1 str r0, [r2] ldr r3, _08029C00 @ =gBattleMons - ldr r1, _08029C04 @ =gUnknown_02024C08 + ldr r1, _08029C04 @ =gEnemyMonIndex ldrb r2, [r1] movs r1, 0x58 muls r1, r2 @@ -55820,14 +55820,14 @@ _08029BD4: .align 2, 0 _08029BE0: .4byte gUnknown_02024D1E _08029BE4: .4byte gUnknown_030041C0 -_08029BE8: .4byte gUnknown_02024C07 +_08029BE8: .4byte gPlayerMonIndex _08029BEC: .4byte gUnknown_02024C10 _08029BF0: .4byte gBattleMoveDamage _08029BF4: .4byte gBaseStats _08029BF8: .4byte gBattleMoves _08029BFC: .4byte gUnknown_02024BE6 _08029C00: .4byte gBattleMons -_08029C04: .4byte gUnknown_02024C08 +_08029C04: .4byte gEnemyMonIndex _08029C08: .4byte gUnknown_02024D28 _08029C0C: mov r0, r8 @@ -55895,7 +55895,7 @@ _08029C70: bne _08029CC4 _08029C7C: ldr r2, _08029C90 @ =gUnknown_02024C98 - ldr r0, _08029C94 @ =gUnknown_02024C07 + ldr r0, _08029C94 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -55905,10 +55905,10 @@ _08029C7C: .align 2, 0 _08029C8C: .4byte 0x00000123 _08029C90: .4byte gUnknown_02024C98 -_08029C94: .4byte gUnknown_02024C07 +_08029C94: .4byte gPlayerMonIndex _08029C98: ldr r2, _08029CA8 @ =gUnknown_02024C98 - ldr r0, _08029CAC @ =gUnknown_02024C07 + ldr r0, _08029CAC @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -55917,10 +55917,10 @@ _08029C98: b _08029CC0 .align 2, 0 _08029CA8: .4byte gUnknown_02024C98 -_08029CAC: .4byte gUnknown_02024C07 +_08029CAC: .4byte gPlayerMonIndex _08029CB0: ldr r2, _08029CD0 @ =gUnknown_02024C98 - ldr r0, _08029CD4 @ =gUnknown_02024C07 + ldr r0, _08029CD4 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -55939,7 +55939,7 @@ _08029CC4: bx r0 .align 2, 0 _08029CD0: .4byte gUnknown_02024C98 -_08029CD4: .4byte gUnknown_02024C07 +_08029CD4: .4byte gPlayerMonIndex _08029CD8: .4byte gUnknown_02024C10 thumb_func_end atkC5_hidepreattack @@ -55966,7 +55966,7 @@ _08029CF4: bne _08029D4E _08029D00: ldr r2, _08029D18 @ =gUnknown_02024C98 - ldr r0, _08029D1C @ =gUnknown_02024C07 + ldr r0, _08029D1C @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -55977,10 +55977,10 @@ _08029D00: .align 2, 0 _08029D14: .4byte 0x00000123 _08029D18: .4byte gUnknown_02024C98 -_08029D1C: .4byte gUnknown_02024C07 +_08029D1C: .4byte gPlayerMonIndex _08029D20: ldr r2, _08029D34 @ =gUnknown_02024C98 - ldr r0, _08029D38 @ =gUnknown_02024C07 + ldr r0, _08029D38 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -55990,10 +55990,10 @@ _08029D20: b _08029D4A .align 2, 0 _08029D34: .4byte gUnknown_02024C98 -_08029D38: .4byte gUnknown_02024C07 +_08029D38: .4byte gPlayerMonIndex _08029D3C: ldr r2, _08029D5C @ =gUnknown_02024C98 - ldr r0, _08029D60 @ =gUnknown_02024C07 + ldr r0, _08029D60 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -56011,7 +56011,7 @@ _08029D4E: bx r0 .align 2, 0 _08029D5C: .4byte gUnknown_02024C98 -_08029D60: .4byte gUnknown_02024C07 +_08029D60: .4byte gPlayerMonIndex _08029D64: .4byte 0xfffbffff _08029D68: .4byte gUnknown_02024C10 thumb_func_end atkC6_unhidepostattack @@ -56027,7 +56027,7 @@ atkC7_setminimize: @ 8029D6C cmp r0, 0 beq _08029D90 ldr r2, _08029DA0 @ =gUnknown_02024C98 - ldr r0, _08029DA4 @ =gUnknown_02024C07 + ldr r0, _08029DA4 @ =gPlayerMonIndex ldrb r1, [r0] lsls r1, 2 adds r1, r2 @@ -56046,7 +56046,7 @@ _08029D90: .align 2, 0 _08029D9C: .4byte gUnknown_02024C6C _08029DA0: .4byte gUnknown_02024C98 -_08029DA4: .4byte gUnknown_02024C07 +_08029DA4: .4byte gPlayerMonIndex _08029DA8: .4byte gUnknown_02024C10 thumb_func_end atkC7_setminimize @@ -56098,7 +56098,7 @@ _08029E00: .4byte gUnknown_02024C10 atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 push {r4,lr} ldr r2, _08029E48 @ =gBattleMons - ldr r0, _08029E4C @ =gUnknown_02024C08 + ldr r0, _08029E4C @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -56132,12 +56132,12 @@ atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 b _08029E84 .align 2, 0 _08029E48: .4byte gBattleMons -_08029E4C: .4byte gUnknown_02024C08 +_08029E4C: .4byte gEnemyMonIndex _08029E50: .4byte gUnknown_02024D1E _08029E54: .4byte gUnknown_02024C10 _08029E58: ldr r4, _08029E8C @ =gUnknown_02024A60 - ldr r0, _08029E90 @ =gUnknown_02024C07 + ldr r0, _08029E90 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r4] ldr r2, _08029E94 @ =gBattleMoveDamage @@ -56162,7 +56162,7 @@ _08029E84: bx r0 .align 2, 0 _08029E8C: .4byte gUnknown_02024A60 -_08029E90: .4byte gUnknown_02024C07 +_08029E90: .4byte gPlayerMonIndex _08029E94: .4byte gBattleMoveDamage _08029E98: .4byte 0x00007fff _08029E9C: .4byte gUnknown_02024C10 @@ -56171,7 +56171,7 @@ _08029E9C: .4byte gUnknown_02024C10 thumb_func_start atkCA_setforcedtarget atkCA_setforcedtarget: @ 8029EA0 push {r4,r5,lr} - ldr r4, _08029EE0 @ =gUnknown_02024C07 + ldr r4, _08029EE0 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner ldr r5, _08029EE4 @ =gUnknown_02024C80 @@ -56201,7 +56201,7 @@ atkCA_setforcedtarget: @ 8029EA0 pop {r0} bx r0 .align 2, 0 -_08029EE0: .4byte gUnknown_02024C07 +_08029EE0: .4byte gPlayerMonIndex _08029EE4: .4byte gUnknown_02024C80 _08029EE8: .4byte gUnknown_02024C10 thumb_func_end atkCA_setforcedtarget @@ -56210,7 +56210,7 @@ _08029EE8: .4byte gUnknown_02024C10 atkCB_setcharge: @ 8029EEC push {r4,lr} ldr r0, _08029F40 @ =gUnknown_02024C98 - ldr r3, _08029F44 @ =gUnknown_02024C07 + ldr r3, _08029F44 @ =gPlayerMonIndex ldrb r1, [r3] lsls r1, 2 adds r1, r0 @@ -56252,7 +56252,7 @@ atkCB_setcharge: @ 8029EEC bx r0 .align 2, 0 _08029F40: .4byte gUnknown_02024C98 -_08029F44: .4byte gUnknown_02024C07 +_08029F44: .4byte gPlayerMonIndex _08029F48: .4byte gUnknown_02024CA8 _08029F4C: .4byte gUnknown_02024C10 thumb_func_end atkCB_setcharge @@ -56276,7 +56276,7 @@ atkCC_callterrainattack: @ 8029F50 ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _08029FB4 @ =gUnknown_02024C08 + ldr r1, _08029FB4 @ =gEnemyMonIndex strb r0, [r1] ldr r3, _08029FB8 @ =gUnknown_081D6BBC ldr r2, _08029FBC @ =gBattleMoves @@ -56303,7 +56303,7 @@ _08029FA4: .4byte 0xfffffbff _08029FA8: .4byte gUnknown_02024BE6 _08029FAC: .4byte gNaturePowerMoves _08029FB0: .4byte gBattleTerrain -_08029FB4: .4byte gUnknown_02024C08 +_08029FB4: .4byte gEnemyMonIndex _08029FB8: .4byte gUnknown_081D6BBC _08029FBC: .4byte gBattleMoves _08029FC0: .4byte gUnknown_02024C10 @@ -56314,7 +56314,7 @@ atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 push {r4-r6,lr} sub sp, 0x4 ldr r1, _0802A010 @ =gBattleMons - ldr r3, _0802A014 @ =gUnknown_02024C07 + ldr r3, _0802A014 @ =gPlayerMonIndex ldrb r0, [r3] movs r6, 0x58 muls r0, r6 @@ -56349,7 +56349,7 @@ atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 b _0802A03A .align 2, 0 _0802A010: .4byte gBattleMons -_0802A014: .4byte gUnknown_02024C07 +_0802A014: .4byte gPlayerMonIndex _0802A018: .4byte gUnknown_02024C10 _0802A01C: .4byte gUnknown_02024A60 _0802A020: @@ -56379,7 +56379,7 @@ _0802A044: .4byte gUnknown_02024C10 atkCE_settorment: @ 802A048 push {lr} ldr r1, _0802A080 @ =gBattleMons - ldr r0, _0802A084 @ =gUnknown_02024C08 + ldr r0, _0802A084 @ =gEnemyMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -56406,7 +56406,7 @@ atkCE_settorment: @ 802A048 b _0802A098 .align 2, 0 _0802A080: .4byte gBattleMons -_0802A084: .4byte gUnknown_02024C08 +_0802A084: .4byte gEnemyMonIndex _0802A088: .4byte gUnknown_02024C10 _0802A08C: orrs r1, r2 @@ -56426,7 +56426,7 @@ _0802A09C: .4byte gUnknown_02024C10 atkCF_jumpifnodamage: @ 802A0A0 push {lr} ldr r2, _0802A0CC @ =gUnknown_02024D28 - ldr r0, _0802A0D0 @ =gUnknown_02024C07 + ldr r0, _0802A0D0 @ =gPlayerMonIndex ldrb r0, [r0] lsls r1, r0, 4 adds r0, r2, 0x4 @@ -56448,7 +56448,7 @@ _0802A0C0: b _0802A0F2 .align 2, 0 _0802A0CC: .4byte gUnknown_02024D28 -_0802A0D0: .4byte gUnknown_02024C07 +_0802A0D0: .4byte gPlayerMonIndex _0802A0D4: .4byte gUnknown_02024C10 _0802A0D8: ldr r3, _0802A0F8 @ =gUnknown_02024C10 @@ -56475,7 +56475,7 @@ _0802A0F8: .4byte gUnknown_02024C10 atkD0_settaunt: @ 802A0FC push {r4,lr} ldr r4, _0802A140 @ =gUnknown_02024CA8 - ldr r3, _0802A144 @ =gUnknown_02024C08 + ldr r3, _0802A144 @ =gEnemyMonIndex ldrb r0, [r3] lsls r1, r0, 3 subs r1, r0 @@ -56509,7 +56509,7 @@ atkD0_settaunt: @ 802A0FC b _0802A166 .align 2, 0 _0802A140: .4byte gUnknown_02024CA8 -_0802A144: .4byte gUnknown_02024C08 +_0802A144: .4byte gEnemyMonIndex _0802A148: .4byte gUnknown_02024C10 _0802A14C: ldr r3, _0802A16C @ =gUnknown_02024C10 @@ -56536,7 +56536,7 @@ _0802A16C: .4byte gUnknown_02024C10 thumb_func_start sub_802A170 sub_802A170: @ 802A170 push {r4,lr} - ldr r4, _0802A1D8 @ =gUnknown_02024C07 + ldr r4, _0802A1D8 @ =gPlayerMonIndex ldrb r0, [r4] bl battle_get_per_side_status movs r1, 0x2 @@ -56544,7 +56544,7 @@ sub_802A170: @ 802A170 lsls r0, 24 lsrs r0, 24 bl battle_get_side_with_given_state - ldr r3, _0802A1DC @ =gUnknown_02024C08 + ldr r3, _0802A1DC @ =gEnemyMonIndex strb r0, [r3] ldr r0, _0802A1E0 @ =gBattleTypeFlags ldrh r1, [r0] @@ -56585,8 +56585,8 @@ sub_802A170: @ 802A170 str r0, [r1] b _0802A20E .align 2, 0 -_0802A1D8: .4byte gUnknown_02024C07 -_0802A1DC: .4byte gUnknown_02024C08 +_0802A1D8: .4byte gPlayerMonIndex +_0802A1DC: .4byte gEnemyMonIndex _0802A1E0: .4byte gBattleTypeFlags _0802A1E4: .4byte gUnknown_02024C0C _0802A1E8: .4byte gBitTable @@ -56622,7 +56622,7 @@ sub_802A218: @ 802A218 mov r5, r8 push {r5-r7} sub sp, 0x4 - ldr r0, _0802A30C @ =gUnknown_02024C07 + ldr r0, _0802A30C @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner lsls r0, 24 @@ -56642,7 +56642,7 @@ sub_802A218: @ 802A218 cmp r1, r0 bne _0802A2EE _0802A24C: - ldr r4, _0802A30C @ =gUnknown_02024C07 + ldr r4, _0802A30C @ =gPlayerMonIndex ldrb r0, [r4] bl battle_side_get_owner lsls r0, 24 @@ -56678,7 +56678,7 @@ _0802A24C: _0802A290: ldr r0, _0802A328 @ =gBattleMons mov r9, r0 - ldr r1, _0802A30C @ =gUnknown_02024C07 + ldr r1, _0802A30C @ =gPlayerMonIndex ldrb r4, [r1] movs r2, 0x58 mov r8, r2 @@ -56690,7 +56690,7 @@ _0802A290: adds r1, r3, 0 cmp r1, 0 bne _0802A2BE - ldr r0, _0802A32C @ =gUnknown_02024C08 + ldr r0, _0802A32C @ =gEnemyMonIndex ldrb r0, [r0] mov r2, r8 muls r2, r0 @@ -56702,7 +56702,7 @@ _0802A290: _0802A2BE: cmp r1, 0xAF beq _0802A2EE - ldr r7, _0802A32C @ =gUnknown_02024C08 + ldr r7, _0802A32C @ =gEnemyMonIndex ldrb r0, [r7] mov r1, r8 muls r1, r0 @@ -56740,7 +56740,7 @@ _0802A2EE: str r1, [r3] b _0802A49A .align 2, 0 -_0802A30C: .4byte gUnknown_02024C07 +_0802A30C: .4byte gPlayerMonIndex _0802A310: .4byte gBattleTypeFlags _0802A314: .4byte 0x00000902 _0802A318: .4byte gTrainerBattleOpponent @@ -56748,7 +56748,7 @@ _0802A31C: .4byte gUnknown_02024DBC _0802A320: .4byte gBitTable _0802A324: .4byte gUnknown_02024A6A _0802A328: .4byte gBattleMons -_0802A32C: .4byte gUnknown_02024C08 +_0802A32C: .4byte gEnemyMonIndex _0802A330: .4byte gUnknown_02024C10 _0802A334: adds r0, r2, 0 @@ -56783,7 +56783,7 @@ _0802A36C: ldrh r5, [r5, 0x2E] mov r10, r5 strh r1, [r6] - ldr r3, _0802A45C @ =gUnknown_02024C07 + ldr r3, _0802A45C @ =gPlayerMonIndex ldrb r0, [r3] mov r1, r8 muls r1, r0 @@ -56799,7 +56799,7 @@ _0802A36C: mov r3, r10 strh r3, [r0, 0x2E] ldr r5, _0802A460 @ =gUnknown_02024A60 - ldr r1, _0802A45C @ =gUnknown_02024C07 + ldr r1, _0802A45C @ =gPlayerMonIndex ldrb r0, [r1] strb r0, [r5] str r6, [sp] @@ -56808,7 +56808,7 @@ _0802A36C: movs r2, 0 movs r3, 0x2 bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r2, _0802A45C @ =gUnknown_02024C07 + ldr r2, _0802A45C @ =gPlayerMonIndex ldrb r0, [r2] bl dp01_battle_side_mark_buffer_for_execution ldrb r0, [r7] @@ -56844,7 +56844,7 @@ _0802A36C: adds r0, r4 movs r3, 0 strb r3, [r0] - ldr r3, _0802A45C @ =gUnknown_02024C07 + ldr r3, _0802A45C @ =gPlayerMonIndex ldrb r0, [r3] lsls r0, 1 adds r0, r2 @@ -56893,7 +56893,7 @@ _0802A36C: b _0802A498 .align 2, 0 _0802A458: .4byte 0x020160f0 -_0802A45C: .4byte gUnknown_02024C07 +_0802A45C: .4byte gPlayerMonIndex _0802A460: .4byte gUnknown_02024A60 _0802A464: .4byte 0xfffe9f10 _0802A468: .4byte 0x000160e8 @@ -56934,7 +56934,7 @@ _0802A4AC: .4byte gUnknown_02024D1E sub_802A4B0: @ 802A4B0 push {r4,lr} ldr r3, _0802A4F0 @ =gBattleMons - ldr r4, _0802A4F4 @ =gUnknown_02024C08 + ldr r4, _0802A4F4 @ =gEnemyMonIndex ldrb r0, [r4] movs r2, 0x58 muls r0, r2 @@ -56946,7 +56946,7 @@ sub_802A4B0: @ 802A4B0 beq _0802A504 cmp r0, 0x19 beq _0802A504 - ldr r0, _0802A4F8 @ =gUnknown_02024C07 + ldr r0, _0802A4F8 @ =gPlayerMonIndex ldrb r0, [r0] muls r0, r2 adds r0, r3 @@ -56966,8 +56966,8 @@ sub_802A4B0: @ 802A4B0 b _0802A51E .align 2, 0 _0802A4F0: .4byte gBattleMons -_0802A4F4: .4byte gUnknown_02024C08 -_0802A4F8: .4byte gUnknown_02024C07 +_0802A4F4: .4byte gEnemyMonIndex +_0802A4F8: .4byte gPlayerMonIndex _0802A4FC: .4byte byte_2024C06 _0802A500: .4byte gUnknown_02024C10 _0802A504: @@ -57007,7 +57007,7 @@ atkD4_802C408: @ 802A528 _0802A53C: .4byte gUnknown_02024C10 _0802A540: ldr r1, _0802A56C @ =gUnknown_02024DBC - ldr r4, _0802A570 @ =gUnknown_02024C07 + ldr r4, _0802A570 @ =gPlayerMonIndex adds r0, r1, 0 adds r0, 0x20 ldrb r5, [r4] @@ -57030,7 +57030,7 @@ _0802A540: b _0802A5F2 .align 2, 0 _0802A56C: .4byte gUnknown_02024DBC -_0802A570: .4byte gUnknown_02024C07 +_0802A570: .4byte gPlayerMonIndex _0802A574: .4byte gUnknown_02024A6A _0802A578: ldr r1, _0802A5DC @ =gUnknown_030041C0 @@ -57038,7 +57038,7 @@ _0802A578: strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] - ldr r4, _0802A5E0 @ =gUnknown_02024C08 + ldr r4, _0802A5E0 @ =gEnemyMonIndex ldrb r0, [r4] strb r0, [r1, 0x2] ldr r0, _0802A5E4 @ =gUnknown_02024DBC @@ -57087,7 +57087,7 @@ _0802A5C4: b _0802A5F4 .align 2, 0 _0802A5DC: .4byte gUnknown_030041C0 -_0802A5E0: .4byte gUnknown_02024C08 +_0802A5E0: .4byte gEnemyMonIndex _0802A5E4: .4byte gUnknown_02024DBC _0802A5E8: .4byte gBattleMoveDamage _0802A5EC: .4byte gBattleMons @@ -57105,7 +57105,7 @@ _0802A5F4: sub_802A5FC: @ 802A5FC push {lr} ldr r1, _0802A634 @ =gUnknown_02024C98 - ldr r0, _0802A638 @ =gUnknown_02024C07 + ldr r0, _0802A638 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -57132,7 +57132,7 @@ sub_802A5FC: @ 802A5FC b _0802A64C .align 2, 0 _0802A634: .4byte gUnknown_02024C98 -_0802A638: .4byte gUnknown_02024C07 +_0802A638: .4byte gPlayerMonIndex _0802A63C: .4byte gUnknown_02024C10 _0802A640: orrs r1, r3 @@ -57152,7 +57152,7 @@ _0802A650: .4byte gUnknown_02024C10 atkD6_doubledamagedealtifdamaged: @ 802A654 push {lr} ldr r3, _0802A6A4 @ =gUnknown_02024D28 - ldr r0, _0802A6A8 @ =gUnknown_02024C07 + ldr r0, _0802A6A8 @ =gPlayerMonIndex ldrb r0, [r0] lsls r2, r0, 4 adds r0, r3, 0x4 @@ -57161,7 +57161,7 @@ atkD6_doubledamagedealtifdamaged: @ 802A654 cmp r0, 0 beq _0802A674 adds r0, r2, r3 - ldr r1, _0802A6AC @ =gUnknown_02024C08 + ldr r1, _0802A6AC @ =gEnemyMonIndex ldrb r0, [r0, 0xC] ldrb r1, [r1] cmp r0, r1 @@ -57174,7 +57174,7 @@ _0802A674: cmp r0, 0 beq _0802A696 adds r0, r2, r3 - ldr r1, _0802A6AC @ =gUnknown_02024C08 + ldr r1, _0802A6AC @ =gEnemyMonIndex ldrb r0, [r0, 0xD] ldrb r1, [r1] cmp r0, r1 @@ -57194,8 +57194,8 @@ _0802A696: bx r0 .align 2, 0 _0802A6A4: .4byte gUnknown_02024D28 -_0802A6A8: .4byte gUnknown_02024C07 -_0802A6AC: .4byte gUnknown_02024C08 +_0802A6A8: .4byte gPlayerMonIndex +_0802A6AC: .4byte gEnemyMonIndex _0802A6B0: .4byte 0x02000000 _0802A6B4: .4byte 0x0001601f _0802A6B8: .4byte gUnknown_02024C10 @@ -57205,7 +57205,7 @@ _0802A6B8: .4byte gUnknown_02024C10 sub_802A6BC: @ 802A6BC push {r4,lr} ldr r1, _0802A700 @ =gUnknown_02024C98 - ldr r0, _0802A704 @ =gUnknown_02024C08 + ldr r0, _0802A704 @ =gEnemyMonIndex ldrb r3, [r0] lsls r0, r3, 2 adds r4, r0, r1 @@ -57240,7 +57240,7 @@ _0802A6E4: b _0802A720 .align 2, 0 _0802A700: .4byte gUnknown_02024C98 -_0802A704: .4byte gUnknown_02024C08 +_0802A704: .4byte gEnemyMonIndex _0802A708: .4byte gBattleMons _0802A70C: .4byte gUnknown_02024C10 _0802A710: @@ -57264,12 +57264,12 @@ _0802A728: .4byte gUnknown_02024C10 atkD8_setdamagetohealthdifference: @ 802A72C push {lr} ldr r2, _0802A768 @ =gBattleMons - ldr r0, _0802A76C @ =gUnknown_02024C08 + ldr r0, _0802A76C @ =gEnemyMonIndex ldrb r0, [r0] movs r1, 0x58 muls r0, r1 adds r3, r0, r2 - ldr r0, _0802A770 @ =gUnknown_02024C07 + ldr r0, _0802A770 @ =gPlayerMonIndex ldrb r0, [r0] muls r0, r1 adds r1, r0, r2 @@ -57293,8 +57293,8 @@ atkD8_setdamagetohealthdifference: @ 802A72C b _0802A78A .align 2, 0 _0802A768: .4byte gBattleMons -_0802A76C: .4byte gUnknown_02024C08 -_0802A770: .4byte gUnknown_02024C07 +_0802A76C: .4byte gEnemyMonIndex +_0802A770: .4byte gPlayerMonIndex _0802A774: .4byte gUnknown_02024C10 _0802A778: ldr r2, _0802A790 @ =gBattleMoveDamage @@ -57330,7 +57330,7 @@ atkD9_scaledamagebyhealthratio: @ 802A798 adds r0, r2 ldrb r3, [r0, 0x1] ldr r2, _0802A7F0 @ =gBattleMons - ldr r0, _0802A7F4 @ =gUnknown_02024C07 + ldr r0, _0802A7F4 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -57358,7 +57358,7 @@ _0802A7E4: .4byte gUnknown_02024DEC _0802A7E8: .4byte gBattleMoves _0802A7EC: .4byte gUnknown_02024BE6 _0802A7F0: .4byte gBattleMons -_0802A7F4: .4byte gUnknown_02024C07 +_0802A7F4: .4byte gPlayerMonIndex _0802A7F8: .4byte gUnknown_02024C10 thumb_func_end atkD9_scaledamagebyhealthratio @@ -57366,7 +57366,7 @@ _0802A7F8: .4byte gUnknown_02024C10 atkDA_abilityswap: @ 802A7FC push {r4-r6,lr} ldr r5, _0802A860 @ =gBattleMons - ldr r0, _0802A864 @ =gUnknown_02024C07 + ldr r0, _0802A864 @ =gPlayerMonIndex ldrb r0, [r0] movs r4, 0x58 muls r0, r4 @@ -57376,7 +57376,7 @@ atkDA_abilityswap: @ 802A7FC ldrb r1, [r2] cmp r1, 0 bne _0802A824 - ldr r0, _0802A868 @ =gUnknown_02024C08 + ldr r0, _0802A868 @ =gEnemyMonIndex ldrb r0, [r0] muls r0, r4 adds r0, r5 @@ -57387,7 +57387,7 @@ atkDA_abilityswap: @ 802A7FC _0802A824: cmp r1, 0x19 beq _0802A844 - ldr r6, _0802A868 @ =gUnknown_02024C08 + ldr r6, _0802A868 @ =gEnemyMonIndex ldrb r0, [r6] muls r0, r4 adds r0, r5 @@ -57418,8 +57418,8 @@ _0802A844: b _0802A88A .align 2, 0 _0802A860: .4byte gBattleMons -_0802A864: .4byte gUnknown_02024C07 -_0802A868: .4byte gUnknown_02024C08 +_0802A864: .4byte gPlayerMonIndex +_0802A868: .4byte gEnemyMonIndex _0802A86C: .4byte gBattleMoveFlags _0802A870: .4byte gUnknown_02024C10 _0802A874: @@ -57451,7 +57451,7 @@ atkDB_imprisoneffect: @ 802A894 movs r0, 0 mov r8, r0 ldr r1, _0802A8B8 @ =gUnknown_02024C98 - ldr r0, _0802A8BC @ =gUnknown_02024C07 + ldr r0, _0802A8BC @ =gPlayerMonIndex ldrb r2, [r0] lsls r0, r2, 2 adds r0, r1 @@ -57464,7 +57464,7 @@ atkDB_imprisoneffect: @ 802A894 b _0802A95E .align 2, 0 _0802A8B8: .4byte gUnknown_02024C98 -_0802A8BC: .4byte gUnknown_02024C07 +_0802A8BC: .4byte gPlayerMonIndex _0802A8C0: ldr r0, _0802A8E0 @ =gUnknown_02024C98 mov r2, r9 @@ -57497,7 +57497,7 @@ _0802A8F2: cmp r8, r0 beq _0802A948 movs r4, 0 - ldr r7, _0802A984 @ =gUnknown_02024C07 + ldr r7, _0802A984 @ =gPlayerMonIndex mov r9, r7 ldr r0, _0802A988 @ =gBattleMons mov r12, r0 @@ -57573,7 +57573,7 @@ _0802A978: pop {r0} bx r0 .align 2, 0 -_0802A984: .4byte gUnknown_02024C07 +_0802A984: .4byte gPlayerMonIndex _0802A988: .4byte gBattleMons _0802A98C: .4byte gUnknown_02024A68 _0802A990: .4byte gUnknown_02024C10 @@ -57583,7 +57583,7 @@ _0802A990: .4byte gUnknown_02024C10 atkDC_setgrudge: @ 802A994 push {lr} ldr r1, _0802A9CC @ =gUnknown_02024C98 - ldr r0, _0802A9D0 @ =gUnknown_02024C07 + ldr r0, _0802A9D0 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -57610,7 +57610,7 @@ atkDC_setgrudge: @ 802A994 b _0802A9E4 .align 2, 0 _0802A9CC: .4byte gUnknown_02024C98 -_0802A9D0: .4byte gUnknown_02024C07 +_0802A9D0: .4byte gPlayerMonIndex _0802A9D4: .4byte gUnknown_02024C10 _0802A9D8: orrs r1, r3 @@ -57643,7 +57643,7 @@ atkDD_weightdamagecalculation: @ 802A9EC adds r7, r1, 0 adds r4, r6, 0 _0802AA08: - ldr r0, _0802AA5C @ =gUnknown_02024C08 + ldr r0, _0802AA5C @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -57682,7 +57682,7 @@ _0802AA36: _0802AA50: .4byte gWeightDamage _0802AA54: .4byte 0x0000ffff _0802AA58: .4byte gBattleMons -_0802AA5C: .4byte gUnknown_02024C08 +_0802AA5C: .4byte gEnemyMonIndex _0802AA60: .4byte gUnknown_02024DEC _0802AA64: ldr r1, _0802AA7C @ =gUnknown_02024DEC @@ -57713,7 +57713,7 @@ atkDE_asistattackselect: @ 802AA84 sub sp, 0x8 movs r0, 0 mov r10, r0 - ldr r0, _0802AB9C @ =gUnknown_02024C07 + ldr r0, _0802AB9C @ =gPlayerMonIndex ldrb r0, [r0] bl battle_get_per_side_status movs r1, 0x1 @@ -57728,7 +57728,7 @@ _0802AAAC: movs r2, 0 _0802AAAE: ldr r1, _0802ABA8 @ =gUnknown_02024A6A - ldr r0, _0802AB9C @ =gUnknown_02024C07 + ldr r0, _0802AB9C @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -57838,7 +57838,7 @@ _0802AB54: ldrh r0, [r4] movs r1, 0 bl sub_801B5C0 - ldr r1, _0802ABC4 @ =gUnknown_02024C08 + ldr r1, _0802ABC4 @ =gEnemyMonIndex strb r0, [r1] ldr r1, _0802ABC8 @ =gUnknown_02024C10 ldr r0, [r1] @@ -57846,7 +57846,7 @@ _0802AB54: str r0, [r1] b _0802ABE6 .align 2, 0 -_0802AB9C: .4byte gUnknown_02024C07 +_0802AB9C: .4byte gPlayerMonIndex _0802ABA0: .4byte gPlayerParty _0802ABA4: .4byte gEnemyParty _0802ABA8: .4byte gUnknown_02024A6A @@ -57856,7 +57856,7 @@ _0802ABB4: .4byte gUnknown_081FACFE _0802ABB8: .4byte gUnknown_02024C6C _0802ABBC: .4byte 0xfffffbff _0802ABC0: .4byte gUnknown_02024BEA -_0802ABC4: .4byte gUnknown_02024C08 +_0802ABC4: .4byte gEnemyMonIndex _0802ABC8: .4byte gUnknown_02024C10 _0802ABCC: ldr r3, _0802ABF8 @ =gUnknown_02024C10 @@ -57888,8 +57888,8 @@ _0802ABF8: .4byte gUnknown_02024C10 thumb_func_start atkDF_setmagiccoat atkDF_setmagiccoat: @ 802ABFC push {lr} - ldr r1, _0802AC44 @ =gUnknown_02024C08 - ldr r3, _0802AC48 @ =gUnknown_02024C07 + ldr r1, _0802AC44 @ =gEnemyMonIndex + ldr r3, _0802AC48 @ =gPlayerMonIndex ldrb r0, [r3] strb r0, [r1] ldr r2, _0802AC4C @ =gUnknown_02024D68 @@ -57924,8 +57924,8 @@ atkDF_setmagiccoat: @ 802ABFC str r1, [r3] b _0802AC74 .align 2, 0 -_0802AC44: .4byte gUnknown_02024C08 -_0802AC48: .4byte gUnknown_02024C07 +_0802AC44: .4byte gEnemyMonIndex +_0802AC48: .4byte gPlayerMonIndex _0802AC4C: .4byte gUnknown_02024D68 _0802AC50: .4byte gUnknown_02024A7E _0802AC54: .4byte gUnknown_02024A68 @@ -57955,7 +57955,7 @@ _0802AC7C: .4byte gUnknown_02024C10 atkE0_setstealstatchange: @ 802AC80 push {lr} ldr r2, _0802ACC4 @ =gUnknown_02024D68 - ldr r3, _0802ACC8 @ =gUnknown_02024C07 + ldr r3, _0802ACC8 @ =gPlayerMonIndex ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 @@ -57988,7 +57988,7 @@ atkE0_setstealstatchange: @ 802AC80 b _0802ACEE .align 2, 0 _0802ACC4: .4byte gUnknown_02024D68 -_0802ACC8: .4byte gUnknown_02024C07 +_0802ACC8: .4byte gPlayerMonIndex _0802ACCC: .4byte gUnknown_02024A7E _0802ACD0: .4byte gUnknown_02024A68 _0802ACD4: .4byte gUnknown_02024C10 @@ -58041,7 +58041,7 @@ atkE1_802CBE4: @ 802ACFC strb r0, [r2, 0x2] movs r0, 0xFF strb r0, [r2, 0x3] - ldr r2, _0802ADB0 @ =gUnknown_02024C08 + ldr r2, _0802ADB0 @ =gEnemyMonIndex ldr r1, _0802ADB4 @ =gUnknown_02024A68 ldrb r0, [r2] ldrb r1, [r1] @@ -58078,7 +58078,7 @@ _0802AD66: cmp r0, r1 bcc _0802AD44 _0802AD7A: - ldr r0, _0802ADB0 @ =gUnknown_02024C08 + ldr r0, _0802ADB0 @ =gEnemyMonIndex ldrb r0, [r0] ldrb r2, [r2] cmp r0, r2 @@ -58103,7 +58103,7 @@ _0802ADA0: .4byte 0x02000000 _0802ADA4: .4byte 0x000160dd _0802ADA8: .4byte gUnknown_030041C0 _0802ADAC: .4byte gBattleMons -_0802ADB0: .4byte gUnknown_02024C08 +_0802ADB0: .4byte gEnemyMonIndex _0802ADB4: .4byte gUnknown_02024A68 _0802ADB8: .4byte gBitTable _0802ADBC: .4byte gUnknown_02024C0C @@ -58534,7 +58534,7 @@ atkE8_settypebasedhalvers: @ 802B108 cmp r0, 0xC9 bne _0802B158 ldr r1, _0802B14C @ =gUnknown_02024C98 - ldr r0, _0802B150 @ =gUnknown_02024C07 + ldr r0, _0802B150 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -58554,11 +58554,11 @@ atkE8_settypebasedhalvers: @ 802B108 _0802B144: .4byte gBattleMoves _0802B148: .4byte gUnknown_02024BE6 _0802B14C: .4byte gUnknown_02024C98 -_0802B150: .4byte gUnknown_02024C07 +_0802B150: .4byte gPlayerMonIndex _0802B154: .4byte gUnknown_02024D1E _0802B158: ldr r1, _0802B18C @ =gUnknown_02024C98 - ldr r0, _0802B190 @ =gUnknown_02024C07 + ldr r0, _0802B190 @ =gPlayerMonIndex ldrb r0, [r0] lsls r0, 2 adds r2, r0, r1 @@ -58586,7 +58586,7 @@ _0802B180: b _0802B1B6 .align 2, 0 _0802B18C: .4byte gUnknown_02024C98 -_0802B190: .4byte gUnknown_02024C07 +_0802B190: .4byte gPlayerMonIndex _0802B194: .4byte gUnknown_02024D1E _0802B198: .4byte gUnknown_02024C10 _0802B19C: @@ -58719,7 +58719,7 @@ atkEA_recycleitem: @ 802B28C push {r4-r7,lr} sub sp, 0x4 ldr r7, _0802B2F0 @ =gUnknown_02024A60 - ldr r0, _0802B2F4 @ =gUnknown_02024C07 + ldr r0, _0802B2F4 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r7] ldrb r2, [r7] @@ -58765,7 +58765,7 @@ atkEA_recycleitem: @ 802B28C b _0802B322 .align 2, 0 _0802B2F0: .4byte gUnknown_02024A60 -_0802B2F4: .4byte gUnknown_02024C07 +_0802B2F4: .4byte gPlayerMonIndex _0802B2F8: .4byte 0x020160cc _0802B2FC: .4byte gBattleMons _0802B300: .4byte gUnknown_02024C04 @@ -58800,7 +58800,7 @@ atkEB_settypetoterrain: @ 802B330 push {r7} ldr r0, _0802B3A0 @ =gBattleMons mov r8, r0 - ldr r7, _0802B3A4 @ =gUnknown_02024C07 + ldr r7, _0802B3A4 @ =gPlayerMonIndex ldrb r0, [r7] movs r6, 0x58 muls r0, r6 @@ -58853,7 +58853,7 @@ atkEB_settypetoterrain: @ 802B330 b _0802B3D2 .align 2, 0 _0802B3A0: .4byte gBattleMons -_0802B3A4: .4byte gUnknown_02024C07 +_0802B3A4: .4byte gPlayerMonIndex _0802B3A8: .4byte gTerrainToType _0802B3AC: .4byte gBattleTerrain _0802B3B0: .4byte gUnknown_030041C0 @@ -58885,7 +58885,7 @@ _0802B3DC: .4byte gUnknown_02024C10 thumb_func_start sub_802B3E0 sub_802B3E0: @ 802B3E0 push {r4,r5,lr} - ldr r5, _0802B45C @ =gUnknown_02024C07 + ldr r5, _0802B45C @ =gPlayerMonIndex ldrb r0, [r5] bl battle_get_per_side_status movs r1, 0x2 @@ -58945,7 +58945,7 @@ sub_802B3E0: @ 802B3E0 strb r0, [r5] b _0802B4AA .align 2, 0 -_0802B45C: .4byte gUnknown_02024C07 +_0802B45C: .4byte gPlayerMonIndex _0802B460: .4byte gUnknown_02024A60 _0802B464: .4byte gBattleTypeFlags _0802B468: .4byte gUnknown_02024C0C @@ -58984,10 +58984,10 @@ _0802B4B0: .4byte gUnknown_02024C10 sub_802B4B4: @ 802B4B4 push {r4,r5,lr} ldr r1, _0802B4DC @ =gUnknown_02024C0A - ldr r3, _0802B4E0 @ =gUnknown_02024C07 + ldr r3, _0802B4E0 @ =gPlayerMonIndex ldrb r0, [r3] strb r0, [r1] - ldr r2, _0802B4E4 @ =gUnknown_02024C08 + ldr r2, _0802B4E4 @ =gEnemyMonIndex lsls r0, 24 lsrs r0, 24 adds r4, r1, 0 @@ -59003,8 +59003,8 @@ sub_802B4B4: @ 802B4B4 b _0802B4FA .align 2, 0 _0802B4DC: .4byte gUnknown_02024C0A -_0802B4E0: .4byte gUnknown_02024C07 -_0802B4E4: .4byte gUnknown_02024C08 +_0802B4E0: .4byte gPlayerMonIndex +_0802B4E4: .4byte gEnemyMonIndex _0802B4E8: .4byte 0x02000000 _0802B4EC: .4byte 0x00016003 _0802B4F0: @@ -59034,7 +59034,7 @@ _0802B518: .4byte gUnknown_02024C10 thumb_func_start sub_802B51C sub_802B51C: @ 802B51C push {r4,lr} - ldr r0, _0802B56C @ =gUnknown_02024C07 + ldr r0, _0802B56C @ =gPlayerMonIndex ldrb r0, [r0] bl battle_side_get_owner movs r1, 0x1 @@ -59073,7 +59073,7 @@ _0802B544: adds r0, r3 b _0802B598 .align 2, 0 -_0802B56C: .4byte gUnknown_02024C07 +_0802B56C: .4byte gPlayerMonIndex _0802B570: .4byte gUnknown_02024C80 _0802B574: .4byte gUnknown_02024C7A _0802B578: .4byte 0x0000fffe @@ -59115,10 +59115,10 @@ sub_802B5B8: @ 802B5B8 b _0802B94E _0802B5C6: ldr r5, _0802B5FC @ =gUnknown_02024A60 - ldr r0, _0802B600 @ =gUnknown_02024C07 + ldr r0, _0802B600 @ =gPlayerMonIndex ldrb r0, [r0] strb r0, [r5] - ldr r6, _0802B604 @ =gUnknown_02024C08 + ldr r6, _0802B604 @ =gEnemyMonIndex movs r1, 0x1 eors r0, r1 strb r0, [r6] @@ -59139,8 +59139,8 @@ _0802B5C6: .align 2, 0 _0802B5F8: .4byte gUnknown_02024A64 _0802B5FC: .4byte gUnknown_02024A60 -_0802B600: .4byte gUnknown_02024C07 -_0802B604: .4byte gUnknown_02024C08 +_0802B600: .4byte gPlayerMonIndex +_0802B604: .4byte gEnemyMonIndex _0802B608: .4byte gBattleTypeFlags _0802B60C: .4byte gUnknown_02024C10 _0802B610: .4byte gUnknown_081D9F35 @@ -59229,7 +59229,7 @@ _0802B6B0: .4byte _0802B72E _0802B6CC: ldr r2, _0802B6F4 @ =gBattleMons - ldr r0, _0802B6F8 @ =gUnknown_02024C08 + ldr r0, _0802B6F8 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -59250,7 +59250,7 @@ _0802B6CC: b _0802B72E .align 2, 0 _0802B6F4: .4byte gBattleMons -_0802B6F8: .4byte gUnknown_02024C08 +_0802B6F8: .4byte gEnemyMonIndex _0802B6FC: bl sav1_map_get_light_level lsls r0, 24 @@ -59262,7 +59262,7 @@ _0802B6FC: b _0802B78E _0802B70E: ldr r2, _0802B734 @ =gBattleMons - ldr r0, _0802B738 @ =gUnknown_02024C08 + ldr r0, _0802B738 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -59282,10 +59282,10 @@ _0802B72E: b _0802B78E .align 2, 0 _0802B734: .4byte gBattleMons -_0802B738: .4byte gUnknown_02024C08 +_0802B738: .4byte gEnemyMonIndex _0802B73C: ldr r2, _0802B764 @ =gBattleMons - ldr r0, _0802B768 @ =gUnknown_02024C08 + ldr r0, _0802B768 @ =gEnemyMonIndex ldrb r1, [r0] movs r0, 0x58 muls r0, r1 @@ -59305,7 +59305,7 @@ _0802B760: b _0802B78E .align 2, 0 _0802B764: .4byte gBattleMons -_0802B768: .4byte gUnknown_02024C08 +_0802B768: .4byte gEnemyMonIndex _0802B76C: ldr r0, _0802B780 @ =gUnknown_030042E0 ldrb r0, [r0, 0x13] @@ -59330,7 +59330,7 @@ _0802B78E: movs r1, 0xA bl __divsi3 ldr r5, _0802B7F8 @ =gBattleMons - ldr r1, _0802B7FC @ =gUnknown_02024C08 + ldr r1, _0802B7FC @ =gEnemyMonIndex ldrb r1, [r1] movs r7, 0x58 adds r4, r1, 0 @@ -59378,7 +59378,7 @@ _0802B7DC: .align 2, 0 _0802B7F4: .4byte gBallCatchBonuses _0802B7F8: .4byte gBattleMons -_0802B7FC: .4byte gUnknown_02024C08 +_0802B7FC: .4byte gEnemyMonIndex _0802B800: .4byte gUnknown_02024C04 _0802B804: .4byte gUnknown_030042E0 _0802B808: @@ -59405,7 +59405,7 @@ _0802B81C: ldr r0, _0802B86C @ =gUnknown_081D9EC2 str r0, [r1] ldr r1, _0802B870 @ =gUnknown_02024A6A - ldr r0, _0802B874 @ =gUnknown_02024C08 + ldr r0, _0802B874 @ =gEnemyMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -59429,7 +59429,7 @@ _0802B864: .4byte gUnknown_02024A60 _0802B868: .4byte gUnknown_02024C10 _0802B86C: .4byte gUnknown_081D9EC2 _0802B870: .4byte gUnknown_02024A6A -_0802B874: .4byte gUnknown_02024C08 +_0802B874: .4byte gEnemyMonIndex _0802B878: .4byte gEnemyParty _0802B87C: .4byte gUnknown_02024C04 _0802B880: @@ -59482,7 +59482,7 @@ _0802B8CC: ldr r0, _0802B924 @ =gUnknown_081D9EC2 str r0, [r1] ldr r1, _0802B928 @ =gUnknown_02024A6A - ldr r0, _0802B92C @ =gUnknown_02024C08 + ldr r0, _0802B92C @ =gEnemyMonIndex ldrb r0, [r0] lsls r0, 1 adds r0, r1 @@ -59510,7 +59510,7 @@ _0802B91C: .4byte gUnknown_02024A60 _0802B920: .4byte gUnknown_02024C10 _0802B924: .4byte gUnknown_081D9EC2 _0802B928: .4byte gUnknown_02024A6A -_0802B92C: .4byte gUnknown_02024C08 +_0802B92C: .4byte gEnemyMonIndex _0802B930: .4byte gEnemyParty _0802B934: .4byte gUnknown_02024D1E _0802B938: @@ -59545,7 +59545,7 @@ sub_802B960: @ 802B960 push {r5,r6} ldr r0, _0802B9C8 @ =gUnknown_02024A6A mov r9, r0 - ldr r5, _0802B9CC @ =gUnknown_02024C07 + ldr r5, _0802B9CC @ =gPlayerMonIndex ldrb r0, [r5] movs r4, 0x1 eors r0, r4 @@ -59591,7 +59591,7 @@ sub_802B960: @ 802B960 bx r0 .align 2, 0 _0802B9C8: .4byte gUnknown_02024A6A -_0802B9CC: .4byte gUnknown_02024C07 +_0802B9CC: .4byte gPlayerMonIndex _0802B9D0: .4byte gEnemyParty _0802B9D4: .4byte gUnknown_030042E0 _0802B9D8: .4byte gBattleMons @@ -59602,7 +59602,7 @@ _0802B9DC: .4byte gUnknown_02024C10 sub_802B9E0: @ 802B9E0 push {r4-r6,lr} ldr r4, _0802BA20 @ =gBattleMons - ldr r6, _0802BA24 @ =gUnknown_02024C08 + ldr r6, _0802BA24 @ =gEnemyMonIndex ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -59632,7 +59632,7 @@ sub_802B9E0: @ 802B9E0 b _0802BA82 .align 2, 0 _0802BA20: .4byte gBattleMons -_0802BA24: .4byte gUnknown_02024C08 +_0802BA24: .4byte gEnemyMonIndex _0802BA28: .4byte gUnknown_02024C10 _0802BA2C: ldrb r0, [r6] @@ -59726,7 +59726,7 @@ _0802BAC6: cmp r0, 0 bne _0802BBC4 ldr r4, _0802BB08 @ =gBattleMons - ldr r6, _0802BB0C @ =gUnknown_02024C08 + ldr r6, _0802BB0C @ =gEnemyMonIndex ldrb r0, [r6] movs r5, 0x58 muls r0, r5 @@ -59751,7 +59751,7 @@ _0802BAC6: .align 2, 0 _0802BB04: .4byte gPaletteFade _0802BB08: .4byte gBattleMons -_0802BB0C: .4byte gUnknown_02024C08 +_0802BB0C: .4byte gEnemyMonIndex _0802BB10: ldr r0, _0802BB7C @ =gPaletteFade ldrb r1, [r0, 0x7] @@ -60072,7 +60072,7 @@ _0802BD84: b _0802BEDA _0802BD92: ldr r7, _0802BE38 @ =gUnknown_02024A6A - ldr r0, _0802BE3C @ =gUnknown_02024C07 + ldr r0, _0802BE3C @ =gPlayerMonIndex mov r10, r0 ldrb r0, [r0] movs r4, 0x1 @@ -60149,7 +60149,7 @@ _0802BD92: .align 2, 0 _0802BE34: .4byte gPaletteFade _0802BE38: .4byte gUnknown_02024A6A -_0802BE3C: .4byte gUnknown_02024C07 +_0802BE3C: .4byte gPlayerMonIndex _0802BE40: .4byte gEnemyParty _0802BE44: .4byte 0x02016079 _0802BE48: .4byte sub_800F808 @@ -60167,7 +60167,7 @@ _0802BE50: cmp r0, 0 bne _0802BEDA ldr r2, _0802BE94 @ =gUnknown_02024A6A - ldr r0, _0802BE98 @ =gUnknown_02024C07 + ldr r0, _0802BE98 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x1 eors r0, r1 @@ -60187,7 +60187,7 @@ _0802BE88: .4byte gMain _0802BE8C: .4byte sub_800F808 _0802BE90: .4byte gPaletteFade _0802BE94: .4byte gUnknown_02024A6A -_0802BE98: .4byte gUnknown_02024C07 +_0802BE98: .4byte gPlayerMonIndex _0802BE9C: .4byte gEnemyParty _0802BEA0: .4byte 0x02016079 _0802BEA4: @@ -60233,7 +60233,7 @@ _0802BEEC: .4byte gUnknown_02024C10 thumb_func_start sub_802BEF0 sub_802BEF0: @ 802BEF0 ldr r2, _0802BF10 @ =gBattleMons - ldr r0, _0802BF14 @ =gUnknown_02024C07 + ldr r0, _0802BF14 @ =gPlayerMonIndex ldrb r1, [r0] movs r0, 0x58 muls r1, r0 @@ -60250,7 +60250,7 @@ sub_802BEF0: @ 802BEF0 bx lr .align 2, 0 _0802BF10: .4byte gBattleMons -_0802BF14: .4byte gUnknown_02024C07 +_0802BF14: .4byte gPlayerMonIndex _0802BF18: .4byte gBattleMoveDamage _0802BF1C: .4byte gUnknown_02024C10 thumb_func_end sub_802BEF0 @@ -60258,7 +60258,7 @@ _0802BF1C: .4byte gUnknown_02024C10 thumb_func_start sub_802BF20 sub_802BF20: @ 802BF20 ldr r1, _0802BF3C @ =gBattleMons - ldr r0, _0802BF40 @ =gUnknown_02024C07 + ldr r0, _0802BF40 @ =gPlayerMonIndex ldrb r2, [r0] movs r0, 0x58 muls r0, r2 @@ -60273,7 +60273,7 @@ sub_802BF20: @ 802BF20 bx lr .align 2, 0 _0802BF3C: .4byte gBattleMons -_0802BF40: .4byte gUnknown_02024C07 +_0802BF40: .4byte gPlayerMonIndex _0802BF44: .4byte gUnknown_02024C10 thumb_func_end sub_802BF20 @@ -78510,7 +78510,7 @@ _08035474: ands r0, r1 cmp r0, 0 beq _08035494 - ldr r1, _080354EC @ =gUnknown_02024C08 + ldr r1, _080354EC @ =gEnemyMonIndex ldrb r0, [r6] strb r0, [r1] _08035494: @@ -78526,7 +78526,7 @@ _08035494: beq _080354CE movs r0, 0 bl battle_get_side_with_given_state - ldr r5, _080354EC @ =gUnknown_02024C08 + ldr r5, _080354EC @ =gEnemyMonIndex strb r0, [r5] ldr r0, _080354F0 @ =gUnknown_02024C0C ldrb r1, [r0] @@ -78542,7 +78542,7 @@ _08035494: bl battle_get_side_with_given_state strb r0, [r5] _080354CE: - ldr r0, _080354EC @ =gUnknown_02024C08 + ldr r0, _080354EC @ =gEnemyMonIndex ldrb r0, [r0] lsls r0, 8 orrs r4, r0 @@ -78555,7 +78555,7 @@ _080354E0: b _0803558A .align 2, 0 _080354E8: .4byte gBattleMoves -_080354EC: .4byte gUnknown_02024C08 +_080354EC: .4byte gEnemyMonIndex _080354F0: .4byte gUnknown_02024C0C _080354F4: .4byte gBitTable _080354F8: diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s index 9c7b3847b..a553802e8 100644 --- a/asm/rotating_gate.s +++ b/asm/rotating_gate.s @@ -428,7 +428,7 @@ sub_80C7C94: @ 80C7C94 adds r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 - bl sub_80E6034 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x1 @@ -451,7 +451,7 @@ _080C7CDA: adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 - bl sub_80E6034 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x1 diff --git a/constants/map_constants.inc b/constants/map_constants.inc index d7a8a323e..6d92c5e65 100644 --- a/constants/map_constants.inc +++ b/constants/map_constants.inc @@ -461,3 +461,4 @@ new_map_group map_group Route124_DivingTreasureHuntersHouse @ 33.0 + diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc index dcb3ab287..438fed6b6 100644 --- a/constants/misc_constants.inc +++ b/constants/misc_constants.inc @@ -33,3 +33,13 @@ .equiv FEMALE, 1 .equiv GAME_LANGUAGE, 2 + + .equiv ENEMY_TYPE1, 0 + .equiv ENEMY_TYPE2, 1 + .equiv PLAYER_TYPE1, 2 + .equiv PLAYER_TYPE2, 3 + .equiv CURRENT_MOVE, 4 + + .equiv LESS_THAN, 0 + .equiv GREATER_THAN, 1 + .equiv EQUAL, 2 diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index dce46a908..855221507 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -52,18 +52,18 @@ AI_CheckBadMove: @ 81DA09C jump AI_CheckBadMove_CheckSoundproof CheckIfVoltAbsorbCancelsElectric: @ 81DA0CE - get_type 4 - if_type TYPE_ELECTRIC, Score_Down12 + get_type CURRENT_MOVE + if_arg_equal TYPE_ELECTRIC, Score_Down12 jump AI_CheckBadMove_CheckSoundproof CheckIfWaterAbsorbCancelsWater: @ 81DA0DB - get_type 4 - if_type TYPE_WATER, Score_Down12 + get_type CURRENT_MOVE + if_arg_equal TYPE_WATER, Score_Down12 jump AI_CheckBadMove_CheckSoundproof CheckIfFlashFireCancelsFire: @ 81DA0E8 - get_type 4 - if_type TYPE_FIRE, Score_Down12 + get_type CURRENT_MOVE + if_arg_equal TYPE_FIRE, Score_Down12 jump AI_CheckBadMove_CheckSoundproof CheckIfWonderGuardCancelsMove: @ 81DA0F5 @@ -71,8 +71,8 @@ CheckIfWonderGuardCancelsMove: @ 81DA0F5 jump Score_Down10 CheckIfLevitateCancelsGroundMove: @ 81DA100 - get_type 4 - if_type TYPE_GROUND, Score_Down10 + get_type CURRENT_MOVE + if_arg_equal TYPE_GROUND, Score_Down10 AI_CheckBadMove_CheckSoundproof: @ 81DA108 get_ability TARGET @@ -325,10 +325,10 @@ AI_CBM_Roar: @ 81DA572 end AI_CBM_Toxic: @ 81DA583 - get_type 0 + get_type ENEMY_TYPE1 if_equal TYPE_STEEL, Score_Down10 if_equal TYPE_POISON, Score_Down10 - get_type 2 + get_type PLAYER_TYPE1 if_equal TYPE_STEEL, Score_Down10 if_equal TYPE_POISON, Score_Down10 get_ability TARGET @@ -393,9 +393,9 @@ AI_CBM_Substitute: @ 81DA641 AI_CBM_LeechSeed: @ 81DA653 if_status3 TARGET, S_LEECH_SEED, Score_Down10 - get_type 0 + get_type ENEMY_TYPE1 if_equal TYPE_GRASS, Score_Down10 - get_type 2 + get_type PLAYER_TYPE1 if_equal TYPE_GRASS, Score_Down10 end @@ -754,7 +754,7 @@ AI_CV_Sleep: @ 81DAB44 jump AI_CV_Sleep_End AI_CV_SleepEncourageSlpDamage: @ 81DAB57 - if_random 128, AI_CV_Sleep_End + if_random_less_than 128, AI_CV_Sleep_End score +1 AI_CV_Sleep_End: @ 81DAB5F @@ -766,7 +766,7 @@ AI_CV_Absorb: @ 81DAB60 jump AI_CV_Absorb_End AI_CV_AbsorbEncourageMaybe: @ 81DAB71 - if_random 50, AI_CV_Absorb_End + if_random_less_than 50, AI_CV_Absorb_End score -3 AI_CV_Absorb_End: @ 81DAB79 @@ -776,28 +776,28 @@ AI_CV_SelfKO: @ 81DAB7A if_stat_level_less_than TARGET, EVASION, 7, AI_CV_SelfKO_Encourage1 score -1 if_stat_level_less_than TARGET, EVASION, 10, AI_CV_SelfKO_Encourage1 - if_random 128, AI_CV_SelfKO_Encourage1 + if_random_less_than 128, AI_CV_SelfKO_Encourage1 score -1 AI_CV_SelfKO_Encourage1: @ 81DAB94 if_hp_less_than USER, 80, AI_CV_SelfKO_Encourage2 if_would_go_first USER, AI_CV_SelfKO_Encourage2 - if_random 50, AI_CV_SelfKO_End + if_random_less_than 50, AI_CV_SelfKO_End jump Score_Down3 AI_CV_SelfKO_Encourage2: @ 81DABAC if_hp_more_than USER, 50, AI_CV_SelfKO_Encourage4 - if_random 128, AI_CV_SelfKO_Encourage3 + if_random_less_than 128, AI_CV_SelfKO_Encourage3 score +1 AI_CV_SelfKO_Encourage3: @ 81DABBB if_hp_more_than USER, 30, AI_CV_SelfKO_End - if_random 50, AI_CV_SelfKO_End + if_random_less_than 50, AI_CV_SelfKO_End score +1 jump AI_CV_SelfKO_End AI_CV_SelfKO_Encourage4: @ 81DABCF - if_random 50, AI_CV_SelfKO_End + if_random_less_than 50, AI_CV_SelfKO_End score -1 AI_CV_SelfKO_End: @ 81DABD7 @@ -818,14 +818,14 @@ AI_CV_MirrorMove: @ 81DABEC if_would_go_first USER, AI_CV_MirrorMove2 get_move TARGET if_not_in_words AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove2 - if_random 128, AI_CV_MirrorMove_End + if_random_less_than 128, AI_CV_MirrorMove_End score +2 jump AI_CV_MirrorMove_End AI_CV_MirrorMove2: @ 81DAC0A get_move TARGET if_in_words AI_CV_MirrorMove_EncouragedMovesToMirror, AI_CV_MirrorMove_End - if_random 80, AI_CV_MirrorMove_End + if_random_less_than 80, AI_CV_MirrorMove_End score -1 AI_CV_MirrorMove_End: @ 81DAC1D @@ -876,19 +876,19 @@ AI_CV_MirrorMove_EncouragedMovesToMirror: @ 81DAC20 AI_CV_AttackUp: @ 81DAC70 if_stat_level_less_than USER, ATTACK, 9, AI_CV_AttackUp2 - if_random 100, AI_CV_AttackUp3 + if_random_less_than 100, AI_CV_AttackUp3 score -1 jump AI_CV_AttackUp3 AI_CV_AttackUp2: @ 81DAC85 if_hp_not_equal USER, 100, AI_CV_AttackUp3 - if_random 128, AI_CV_AttackUp3 + if_random_less_than 128, AI_CV_AttackUp3 score +2 AI_CV_AttackUp3: @ 81DAC94 if_hp_more_than USER, 70, AI_CV_AttackUp_End if_hp_less_than USER, 40, AI_CV_AttackUp_ScoreDown2 - if_random 40, AI_CV_AttackUp_End + if_random_less_than 40, AI_CV_AttackUp_End AI_CV_AttackUp_ScoreDown2: @ 81DACA8 score -2 @@ -898,31 +898,31 @@ AI_CV_AttackUp_End: @ 81DACAA AI_CV_DefenseUp: @ 81DACAB if_stat_level_less_than USER, DEFENSE, 9, AI_CV_DefenseUp2 - if_random 100, AI_CV_DefenseUp3 + if_random_less_than 100, AI_CV_DefenseUp3 score -1 jump AI_CV_DefenseUp3 AI_CV_DefenseUp2: @ 81DACC0 if_hp_not_equal USER, 100, AI_CV_DefenseUp3 - if_random 128, AI_CV_DefenseUp3 + if_random_less_than 128, AI_CV_DefenseUp3 score +2 AI_CV_DefenseUp3: @ 81DACCF if_hp_less_than USER, 70, AI_CV_DefenseUp4 - if_random 200, AI_CV_DefenseUp_End + if_random_less_than 200, AI_CV_DefenseUp_End AI_CV_DefenseUp4: @ 81DACDC if_hp_less_than USER, 40, AI_CV_DefenseUp_ScoreDown2 get_move TARGET - get_move_power + get_move_power_from_result if_equal 0, AI_CV_DefenseUp5 get_move TARGET - get_move_type + get_move_type_from_result if_not_in_bytes AI_CV_DefenseUp_PhysicalTypes, AI_CV_DefenseUp_ScoreDown2 - if_random 60, AI_CV_DefenseUp_End + if_random_less_than 60, AI_CV_DefenseUp_End AI_CV_DefenseUp5: @ 81DACFE - if_random 60, AI_CV_DefenseUp_End + if_random_less_than 60, AI_CV_DefenseUp_End AI_CV_DefenseUp_ScoreDown2: @ 81DAD04 score -2 @@ -948,7 +948,7 @@ AI_CV_SpeedUp: @ 81DAD11 jump AI_CV_SpeedUp_End AI_CV_SpeedUp2: @ 81DAD1E - if_random 70, AI_CV_SpeedUp_End + if_random_less_than 70, AI_CV_SpeedUp_End score +3 AI_CV_SpeedUp_End: @ 81DAD26 @@ -956,19 +956,19 @@ AI_CV_SpeedUp_End: @ 81DAD26 AI_CV_SpAtkUp: @ 81DAD27 if_stat_level_less_than USER, SP_ATTACK, 9, AI_CV_SpAtkUp2 - if_random 100, AI_CV_SpAtkUp3 + if_random_less_than 100, AI_CV_SpAtkUp3 score -1 jump AI_CV_SpAtkUp3 AI_CV_SpAtkUp2: @ 81DAD3C if_hp_not_equal USER, 100, AI_CV_SpAtkUp3 - if_random 128, AI_CV_SpAtkUp3 + if_random_less_than 128, AI_CV_SpAtkUp3 score +2 AI_CV_SpAtkUp3: @ 81DAD4B if_hp_more_than USER, 70, AI_CV_SpAtkUp_End if_hp_less_than USER, 40, AI_CV_SpAtkUp_ScoreDown2 - if_random 70, AI_CV_SpAtkUp_End + if_random_less_than 70, AI_CV_SpAtkUp_End AI_CV_SpAtkUp_ScoreDown2: @ 81DAD5F score -2 @@ -978,31 +978,31 @@ AI_CV_SpAtkUp_End: @ 81DAD61 AI_CV_SpDefUp: @ 81DAD62 if_stat_level_less_than USER, SP_DEFENSE, 9, AI_CV_SpDefUp2 - if_random 100, AI_CV_SpDefUp3 + if_random_less_than 100, AI_CV_SpDefUp3 score -1 jump AI_CV_SpDefUp3 AI_CV_SpDefUp2: @ 81DAD77 if_hp_not_equal USER, 100, AI_CV_SpDefUp3 - if_random 128, AI_CV_SpDefUp3 + if_random_less_than 128, AI_CV_SpDefUp3 score +2 AI_CV_SpDefUp3: @ 81DAD86 if_hp_less_than USER, 70, AI_CV_SpDefUp4 - if_random 200, AI_CV_SpDefUp_End + if_random_less_than 200, AI_CV_SpDefUp_End AI_CV_SpDefUp4: @ 81DAD93 if_hp_less_than USER, 40, AI_CV_SpDefUp_ScoreDown2 get_move TARGET - get_move_power + get_move_power_from_result if_equal 0, AI_CV_SpDefUp5 get_move TARGET - get_move_type + get_move_type_from_result if_in_bytes AI_CV_SpDefUp_PhysicalTypes, AI_CV_SpDefUp_ScoreDown2 - if_random 60, AI_CV_SpDefUp_End + if_random_less_than 60, AI_CV_SpDefUp_End AI_CV_SpDefUp5: @ 81DADB5 - if_random 60, AI_CV_SpDefUp_End + if_random_less_than 60, AI_CV_SpDefUp_End AI_CV_SpDefUp_ScoreDown2: @ 81DADBB score -2 @@ -1024,7 +1024,7 @@ AI_CV_SpDefUp_PhysicalTypes: @ 81DADBE AI_CV_AccuracyUp: @ 81DADC8 if_stat_level_less_than USER, ACCURACY, 9, AI_CV_AccuracyUp2 - if_random 50, AI_CV_AccuracyUp2 + if_random_less_than 50, AI_CV_AccuracyUp2 score -2 AI_CV_AccuracyUp2: @ 81DADD8 @@ -1036,36 +1036,36 @@ AI_CV_AccuracyUp_End: @ 81DADE1 AI_CV_EvasionUp: @ 81DADE2 if_hp_less_than USER, 90, AI_CV_EvasionUp2 - if_random 100, AI_CV_EvasionUp2 + if_random_less_than 100, AI_CV_EvasionUp2 score +3 AI_CV_EvasionUp2: @ 81DADF1 if_stat_level_less_than USER, EVASION, 9, AI_CV_EvasionUp3 - if_random 128, AI_CV_EvasionUp3 + if_random_less_than 128, AI_CV_EvasionUp3 score -1 AI_CV_EvasionUp3: @ 81DAE01 if_not_status TARGET, TOX, AI_CV_EvasionUp5 if_hp_more_than USER, 50, AI_CV_EvasionUp4 - if_random 80, AI_CV_EvasionUp5 + if_random_less_than 80, AI_CV_EvasionUp5 AI_CV_EvasionUp4: @ 81DAE18 - if_random 50, AI_CV_EvasionUp5 + if_random_less_than 50, AI_CV_EvasionUp5 score +3 AI_CV_EvasionUp5: @ 81DAE20 if_not_status3 TARGET, S_LEECH_SEED, AI_CV_EvasionUp6 - if_random 70, AI_CV_EvasionUp6 + if_random_less_than 70, AI_CV_EvasionUp6 score +3 AI_CV_EvasionUp6: @ 81DAE32 if_not_status3 USER, S_ROOTED, AI_CV_EvasionUp7 - if_random 128, AI_CV_EvasionUp7 + if_random_less_than 128, AI_CV_EvasionUp7 score +2 AI_CV_EvasionUp7: @ 81DAE44 if_not_status2 TARGET, S_CURSED, AI_CV_EvasionUp8 - if_random 70, AI_CV_EvasionUp8 + if_random_less_than 70, AI_CV_EvasionUp8 score +3 AI_CV_EvasionUp8: @ 81DAE56 @@ -1073,7 +1073,7 @@ AI_CV_EvasionUp8: @ 81DAE56 if_stat_level_equal USER, EVASION, 6, AI_CV_EvasionUp_End if_hp_less_than USER, 40, AI_CV_EvasionUp_ScoreDown2 if_hp_less_than TARGET, 40, AI_CV_EvasionUp_ScoreDown2 - if_random 70, AI_CV_EvasionUp_End + if_random_less_than 70, AI_CV_EvasionUp_End AI_CV_EvasionUp_ScoreDown2: @ 81DAE79 score -2 @@ -1092,7 +1092,7 @@ AI_CV_AlwaysHit_ScoreUp1: @ 81DAEA1 score +1 AI_CV_AlwaysHit2: @ 81DAEA3 - if_random 100, AI_CV_AlwaysHit_End + if_random_less_than 100, AI_CV_AlwaysHit_End score +1 AI_CV_AlwaysHit_End: @ 81DAEAB @@ -1106,7 +1106,7 @@ AI_CV_AttackDown: @ 81DAEAC AI_CV_AttackDown2: @ 81DAEBF if_stat_level_more_than TARGET, ATTACK, 3, AI_CV_AttackDown3 - if_random 50, AI_CV_AttackDown3 + if_random_less_than 50, AI_CV_AttackDown3 score -2 AI_CV_AttackDown3: @ 81DAECF @@ -1114,11 +1114,11 @@ AI_CV_AttackDown3: @ 81DAECF score -2 AI_CV_AttackDown4: @ 81DAED8 - get_type 0 + get_type ENEMY_TYPE1 if_in_bytes AI_CV_AttackDown_UnknownTypeList, AI_CV_AttackDown_End - get_type 2 + get_type PLAYER_TYPE1 if_in_bytes AI_CV_AttackDown_UnknownTypeList, AI_CV_AttackDown_End - if_random 50, AI_CV_AttackDown_End + if_random_less_than 50, AI_CV_AttackDown_End score -2 AI_CV_AttackDown_End: @ 81DAEF6 @@ -1139,7 +1139,7 @@ AI_CV_DefenseDown: @ 81DAEFE if_stat_level_more_than TARGET, DEFENSE, 3, AI_CV_DefenseDown3 AI_CV_DefenseDown2: @ 81DAF0D - if_random 50, AI_CV_DefenseDown3 + if_random_less_than 50, AI_CV_DefenseDown3 score -2 AI_CV_DefenseDown3: @ 81DAF15 @@ -1161,7 +1161,7 @@ AI_CV_SpeedDown: @ 81DAF35 jump AI_CV_SpeedDown_End AI_CV_SpeedDown2: @ 81DAF42 - if_random 70, AI_CV_SpeedDown_End + if_random_less_than 70, AI_CV_SpeedDown_End score +2 AI_CV_SpeedDown_End: @ 81DAF4A @@ -1175,7 +1175,7 @@ AI_CV_SpAtkDown: @ 81DAF4B AI_CV_SpAtkDown2: @ 81DAF5E if_stat_level_more_than TARGET, SP_ATTACK, 3, AI_CV_SpAtkDown3 - if_random 50, AI_CV_SpAtkDown3 + if_random_less_than 50, AI_CV_SpAtkDown3 score -2 AI_CV_SpAtkDown3: @ 81DAF6E @@ -1183,11 +1183,11 @@ AI_CV_SpAtkDown3: @ 81DAF6E score -2 AI_CV_SpAtkDown4: @ 81DAF77 - get_type 0 + get_type ENEMY_TYPE1 if_in_bytes AI_CV_SpAtkDown_SpecialTypeList, AI_CV_SpAtkDown_End - get_type 2 + get_type PLAYER_TYPE1 if_in_bytes AI_CV_SpAtkDown_SpecialTypeList, AI_CV_SpAtkDown_End - if_random 50, AI_CV_SpAtkDown_End + if_random_less_than 50, AI_CV_SpAtkDown_End score -2 AI_CV_SpAtkDown_End: @ 81DAF95 @@ -1209,7 +1209,7 @@ AI_CV_SpDefDown: @ 81DAF9F if_stat_level_more_than TARGET, SP_DEFENSE, 3, AI_CV_SpDefDown3 AI_CV_SpDefDown2: @ 81DAFAE - if_random 50, AI_CV_SpDefDown3 + if_random_less_than 50, AI_CV_SpDefDown3 score -2 AI_CV_SpDefDown3: @ 81DAFB6 @@ -1224,32 +1224,32 @@ AI_CV_AccuracyDown: @ 81DAFC0 if_hp_more_than TARGET, 70, AI_CV_AccuracyDown3 AI_CV_AccuracyDown2: @ 81DAFCE - if_random 100, AI_CV_AccuracyDown3 + if_random_less_than 100, AI_CV_AccuracyDown3 score -1 AI_CV_AccuracyDown3: @ 81DAFD6 if_stat_level_more_than USER, ACCURACY, 4, AI_CV_AccuracyDown4 - if_random 80, AI_CV_AccuracyDown4 + if_random_less_than 80, AI_CV_AccuracyDown4 score -2 AI_CV_AccuracyDown4: @ 81DAFE6 if_not_status TARGET, TOX, AI_CV_AccuracyDown5 - if_random 70, AI_CV_AccuracyDown5 + if_random_less_than 70, AI_CV_AccuracyDown5 score +2 AI_CV_AccuracyDown5: @ 81DAFF8 if_not_status3 TARGET, S_LEECH_SEED, AI_CV_AccuracyDown6 - if_random 70, AI_CV_AccuracyDown6 + if_random_less_than 70, AI_CV_AccuracyDown6 score +2 AI_CV_AccuracyDown6: @ 81DB00A if_not_status3 USER, S_ROOTED, AI_CV_AccuracyDown7 - if_random 128, AI_CV_AccuracyDown7 + if_random_less_than 128, AI_CV_AccuracyDown7 score +1 AI_CV_AccuracyDown7: @ 81DB01C if_not_status2 TARGET, S_CURSED, AI_CV_AccuracyDown8 - if_random 70, AI_CV_AccuracyDown8 + if_random_less_than 70, AI_CV_AccuracyDown8 score +2 AI_CV_AccuracyDown8: @ 81DB02E @@ -1257,7 +1257,7 @@ AI_CV_AccuracyDown8: @ 81DB02E if_stat_level_equal TARGET, ACCURACY, 6, AI_CV_AccuracyDown_End if_hp_less_than USER, 40, AI_CV_AccuracyDown_ScoreDown2 if_hp_less_than TARGET, 40, AI_CV_AccuracyDown_ScoreDown2 - if_random 70, AI_CV_AccuracyDown_End + if_random_less_than 70, AI_CV_AccuracyDown_End AI_CV_AccuracyDown_ScoreDown2: @ 81DB051 score -2 @@ -1270,7 +1270,7 @@ AI_CV_EvasionDown: @ 81DB054 if_stat_level_more_than TARGET, EVASION, 3, AI_CV_EvasionDown3 AI_CV_EvasionDown2: @ 81DB063 - if_random 50, AI_CV_EvasionDown3 + if_random_less_than 50, AI_CV_EvasionDown3 score -2 AI_CV_EvasionDown3: @ 81DB06B @@ -1294,7 +1294,7 @@ AI_CV_Haze: @ 81DB075 jump AI_CV_Haze3 AI_CV_Haze2: @ 81DB0CA - if_random 50, AI_CV_Haze3 + if_random_less_than 50, AI_CV_Haze3 score -3 AI_CV_Haze3: @ 81DB0D2 @@ -1308,12 +1308,12 @@ AI_CV_Haze3: @ 81DB0D2 if_stat_level_less_than USER, SP_ATTACK, 4, AI_CV_Haze4 if_stat_level_less_than USER, SP_DEFENSE, 4, AI_CV_Haze4 if_stat_level_less_than USER, ACCURACY, 4, AI_CV_Haze4 - if_random 50, AI_CV_Haze_End + if_random_less_than 50, AI_CV_Haze_End score -1 jump AI_CV_Haze_End AI_CV_Haze4: @ 81DB12F - if_random 50, AI_CV_Haze_End + if_random_less_than 50, AI_CV_Haze_End score +3 AI_CV_Haze_End: @ 81DB137 @@ -1336,7 +1336,7 @@ AI_CV_Roar: @ 81DB142 jump AI_CV_Roar_End AI_CV_Roar2: @ 81DB171 - if_random 128, AI_CV_Roar_End + if_random_less_than 128, AI_CV_Roar_End score +2 AI_CV_Roar_End: @ 81DB179 @@ -1349,7 +1349,7 @@ AI_CV_Conversion: @ 81DB17A AI_CV_Conversion2: @ 81DB183 get_turn_count if_equal 0, AI_CV_Conversion_End - if_random 200, Score_Down2 + if_random_less_than 200, Score_Down2 AI_CV_Conversion_End: @ 81DB190 end @@ -1373,7 +1373,7 @@ AI_CV_Heal: @ 81DB1AB AI_CV_Heal2: @ unreferenced if_hp_less_than USER, 50, AI_CV_Heal5 if_hp_more_than USER, 80, AI_CV_Heal3 - if_random 70, AI_CV_Heal5 + if_random_less_than 70, AI_CV_Heal5 AI_CV_Heal3: @ 81DB1D3 score -3 @@ -1381,16 +1381,16 @@ AI_CV_Heal3: @ 81DB1D3 AI_CV_Heal4: @ 81DB1DA if_hp_less_than USER, 70, AI_CV_Heal5 - if_random 30, AI_CV_Heal5 + if_random_less_than 30, AI_CV_Heal5 score -3 jump AI_CV_Heal_End AI_CV_Heal5: @ 81DB1EE if_not_move_effect TARGET, EFFECT_SNATCH, AI_CV_Heal6 - if_random 100, AI_CV_Heal_End + if_random_less_than 100, AI_CV_Heal_End AI_CV_Heal6: @ 81DB1FB - if_random 20, AI_CV_Heal_End + if_random_less_than 20, AI_CV_Heal_End score +2 AI_CV_Heal_End: @ 81DB203 @@ -1399,12 +1399,12 @@ AI_CV_Heal_End: @ 81DB203 AI_CV_Toxic: @ 81DB204 if_user_cant_damage AI_CV_Toxic3 if_hp_more_than USER, 50, AI_CV_Toxic2 - if_random 50, AI_CV_Toxic2 + if_random_less_than 50, AI_CV_Toxic2 score -3 AI_CV_Toxic2: @ 81DB218 if_hp_more_than TARGET, 50, AI_CV_Toxic3 - if_random 50, AI_CV_Toxic3 + if_random_less_than 50, AI_CV_Toxic3 score -3 AI_CV_Toxic3: @ 81DB227 @@ -1413,7 +1413,7 @@ AI_CV_Toxic3: @ 81DB227 jump AI_CV_Toxic_End AI_CV_Toxic4: @ 81DB23A - if_random 60, AI_CV_Toxic_End + if_random_less_than 60, AI_CV_Toxic_End score +2 AI_CV_Toxic_End: @ 81DB242 @@ -1421,11 +1421,11 @@ AI_CV_Toxic_End: @ 81DB242 AI_CV_LightScreen: @ 81DB243 if_hp_less_than USER, 50, AI_CV_LightScreen_ScoreDown2 - get_type 0 + get_type ENEMY_TYPE1 if_in_bytes AI_CV_LightScreen_SpecialTypeList, AI_CV_LightScreen_End - get_type 2 + get_type PLAYER_TYPE1 if_in_bytes AI_CV_LightScreen_SpecialTypeList, AI_CV_LightScreen_End - if_random 50, AI_CV_LightScreen_End + if_random_less_than 50, AI_CV_LightScreen_End AI_CV_LightScreen_ScoreDown2: @ 81DB266 score -2 @@ -1453,7 +1453,7 @@ AI_CV_Rest: @ 81DB272 AI_CV_Rest2: @ 81DB286 if_hp_less_than USER, 40, AI_CV_Rest6 if_hp_more_than USER, 50, AI_CV_Rest3 - if_random 70, AI_CV_Rest6 + if_random_less_than 70, AI_CV_Rest6 AI_CV_Rest3: @ 81DB29A score -3 @@ -1462,7 +1462,7 @@ AI_CV_Rest3: @ 81DB29A AI_CV_Rest4: @ 81DB2A1 if_hp_less_than USER, 60, AI_CV_Rest6 if_hp_more_than USER, 70, AI_CV_Rest5 - if_random 50, AI_CV_Rest6 + if_random_less_than 50, AI_CV_Rest6 AI_CV_Rest5: @ 81DB2B5 score -3 @@ -1470,10 +1470,10 @@ AI_CV_Rest5: @ 81DB2B5 AI_CV_Rest6: @ 81DB2BC if_not_move_effect TARGET, EFFECT_SNATCH, AI_CV_Rest7 - if_random 50, AI_CV_Rest_End + if_random_less_than 50, AI_CV_Rest_End AI_CV_Rest7: @ 81DB2C9 - if_random 10, AI_CV_Rest_End + if_random_less_than 10, AI_CV_Rest_End score +3 AI_CV_Rest_End: @ 81DB2D1 @@ -1497,7 +1497,7 @@ AI_CV_Trap: @ 81DB2DD jump AI_CV_Trap_End AI_CV_Trap2: @ 81DB30A - if_random 128, AI_CV_Trap_End + if_random_less_than 128, AI_CV_Trap_End score +1 AI_CV_Trap_End: @ 81DB312 @@ -1508,22 +1508,22 @@ AI_CV_HighCrit: @ 81DB313 if_damage_bonus 20, AI_CV_HighCrit_End if_damage_bonus 80, AI_CV_HighCrit2 if_damage_bonus 160, AI_CV_HighCrit2 - if_random 128, AI_CV_HighCrit_End + if_random_less_than 128, AI_CV_HighCrit_End AI_CV_HighCrit2: @ 81DB331 - if_random 128, AI_CV_HighCrit_End + if_random_less_than 128, AI_CV_HighCrit_End score +1 AI_CV_HighCrit_End: @ 81DB339 end AI_CV_Flatter: @ 81DB33A - if_random 128, AI_CV_Confuse + if_random_less_than 128, AI_CV_Confuse score +1 AI_CV_Confuse: @ 81DB342 if_hp_more_than TARGET, 70, AI_CV_Confuse_End - if_random 128, AI_CV_Confuse2 + if_random_less_than 128, AI_CV_Confuse2 score -1 AI_CV_Confuse2: @ 81DB351 @@ -1537,11 +1537,11 @@ AI_CV_Confuse_End: @ 81DB363 AI_CV_Reflect: @ 81DB364 if_hp_less_than USER, 50, AI_CV_Reflect_ScoreDown2 - get_type 0 + get_type ENEMY_TYPE1 if_in_bytes AI_CV_Reflect_PhysicalTypeList, AI_CV_Reflect_End - get_type 2 + get_type PLAYER_TYPE1 if_in_bytes AI_CV_Reflect_PhysicalTypeList, AI_CV_Reflect_End - if_random 50, AI_CV_Reflect_End + if_random_less_than 50, AI_CV_Reflect_End AI_CV_Reflect_ScoreDown2: @ 81DB387 score -2 @@ -1578,7 +1578,7 @@ AI_CV_Paralyze: @ 81DB3A5 jump AI_CV_Paralyze_End AI_CV_Paralyze2: @ 81DB3B9 - if_random 20, AI_CV_Paralyze_End + if_random_less_than 20, AI_CV_Paralyze_End score +3 AI_CV_Paralyze_End: @ 81DB3C1 @@ -1588,10 +1588,10 @@ AI_CV_VitalThrow: @ 81DB3C2 if_would_go_first USER, AI_CV_VitalThrow_End if_hp_more_than USER, 60, AI_CV_VitalThrow_End if_hp_less_than USER, 40, AI_CV_VitalThrow2 - if_random 180, AI_CV_VitalThrow_End + if_random_less_than 180, AI_CV_VitalThrow_End AI_CV_VitalThrow2: @ 81DB3DC - if_random 50, AI_CV_VitalThrow_End + if_random_less_than 50, AI_CV_VitalThrow_End score -1 AI_CV_VitalThrow_End: @ 81DB3E4 @@ -1601,21 +1601,21 @@ AI_CV_Substitute: @ 81DB3E5 if_hp_more_than USER, 90, AI_CV_Substitute4 if_hp_more_than USER, 70, AI_CV_Substitute3 if_hp_more_than USER, 50, AI_CV_Substitute2 - if_random 100, AI_CV_Substitute2 + if_random_less_than 100, AI_CV_Substitute2 score -1 AI_CV_Substitute2: @ 81DB402 - if_random 100, AI_CV_Substitute3 + if_random_less_than 100, AI_CV_Substitute3 score -1 AI_CV_Substitute3: @ 81DB40A - if_random 100, AI_CV_Substitute4 + if_random_less_than 100, AI_CV_Substitute4 score -1 AI_CV_Substitute4: @ 81DB412 if_would_go_first USER, AI_CV_Substitute_End get_move TARGET - get_move_effect + get_move_effect_from_result if_equal EFFECT_SLEEP, AI_CV_Substitute5 if_equal EFFECT_TOXIC, AI_CV_Substitute5 if_equal EFFECT_POISON, AI_CV_Substitute5 @@ -1637,7 +1637,7 @@ AI_CV_Substitute7: @ 81DB468 if_status3 TARGET, S_LEECH_SEED, AI_CV_Substitute_End AI_CV_Substitute8: @ 81DB472 - if_random 100, AI_CV_Substitute_End + if_random_less_than 100, AI_CV_Substitute_End score +1 AI_CV_Substitute_End: @ 81DB47A @@ -1662,13 +1662,13 @@ AI_CV_Recharge_End: @ 81DB4A2 AI_CV_Disable: @ 81DB4A3 if_would_go_first USER, AI_CV_Disable_End get_move TARGET - get_move_power + get_move_power_from_result if_equal 0, AI_CV_Disable2 score +1 jump AI_CV_Disable_End AI_CV_Disable2: @ 81DB4B9 - if_random 100, AI_CV_Disable_End + if_random_less_than 100, AI_CV_Disable_End score -1 AI_CV_Disable_End: @ 81DB4C1 @@ -1679,41 +1679,41 @@ AI_CV_Counter: @ 81DB4C2 if_status2 TARGET, S_INFATUATED, AI_CV_Counter_ScoreDown1 if_status2 TARGET, S_CONFUSED, AI_CV_Counter_ScoreDown1 if_hp_more_than USER, 30, AI_CV_Counter2 - if_random 10, AI_CV_Counter2 + if_random_less_than 10, AI_CV_Counter2 score -1 AI_CV_Counter2: @ 81DB4EF if_hp_more_than USER, 50, AI_CV_Counter3 - if_random 100, AI_CV_Counter3 + if_random_less_than 100, AI_CV_Counter3 score -1 AI_CV_Counter3: @ 81DB4FE get_move TARGET - get_move_power + get_move_power_from_result if_equal 0, AI_CV_Counter5 if_not_taunted AI_CV_Counter4 - if_random 100, AI_CV_Counter4 + if_random_less_than 100, AI_CV_Counter4 score +1 AI_CV_Counter4: @ 81DB514 get_move TARGET - get_move_type + get_move_type_from_result if_not_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_ScoreDown1 - if_random 100, AI_CV_Counter_End + if_random_less_than 100, AI_CV_Counter_End score +1 jump AI_CV_Counter_End AI_CV_Counter5: @ 81DB52D if_not_taunted AI_CV_Counter6 - if_random 100, AI_CV_Counter6 + if_random_less_than 100, AI_CV_Counter6 score +1 AI_CV_Counter6: @ 81DB53A - get_type 0 + get_type ENEMY_TYPE1 if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_End - get_type 2 + get_type PLAYER_TYPE1 if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_End - if_random 50, AI_CV_Counter_End + if_random_less_than 50, AI_CV_Counter_End AI_CV_Counter_ScoreDown1: @ 81DB556 score -1 @@ -1737,11 +1737,11 @@ AI_CV_Encore: @ 81DB563 if_last_move_did_damage TARGET, 0, AI_CV_Encore2 if_would_go_first USER, AI_CV_Encore_ScoreDown2 get_move TARGET - get_move_effect + get_move_effect_from_result if_not_in_bytes AI_CV_Encore_EncouragedMovesToEncore, AI_CV_Encore_ScoreDown2 AI_CV_Encore2: @ 81DB57C - if_random 30, AI_CV_Encore_End + if_random_less_than 30, AI_CV_Encore_End score +3 jump AI_CV_Encore_End @@ -1839,7 +1839,7 @@ AI_CV_Snore: @ 81DB5F7 end AI_CV_LockOn: @ 81DB5FA - if_random 128, AI_CV_LockOn_End + if_random_less_than 128, AI_CV_LockOn_End score +2 AI_CV_LockOn_End: @ 81DB602 @@ -1853,17 +1853,17 @@ AI_CV_DestinyBond: @ 81DB606 score -1 if_would_go_first USER, AI_CV_DestinyBond_End if_hp_more_than USER, 70, AI_CV_DestinyBond_End - if_random 128, AI_CV_DestinyBond2 + if_random_less_than 128, AI_CV_DestinyBond2 score +1 AI_CV_DestinyBond2: @ 81DB61D if_hp_more_than USER, 50, AI_CV_DestinyBond_End - if_random 128, AI_CV_DestinyBond3 + if_random_less_than 128, AI_CV_DestinyBond3 score +1 AI_CV_DestinyBond3: @ 81DB62C if_hp_more_than USER, 30, AI_CV_DestinyBond_End - if_random 100, AI_CV_DestinyBond_End + if_random_less_than 100, AI_CV_DestinyBond_End score +2 AI_CV_DestinyBond_End: @ 81DB63B @@ -1885,7 +1885,7 @@ AI_CV_Flail_ScoreUp1: @ 81DB66F score +1 AI_CV_Flail3: @ 81DB671 - if_random 100, AI_CV_Flail_End + if_random_less_than 100, AI_CV_Flail_End score +1 jump AI_CV_Flail_End @@ -1906,7 +1906,7 @@ AI_CV_HealBell_End: @ 81DB697 AI_CV_Thief: @ 81DB698 get_hold_effect TARGET if_not_in_bytes AI_CV_Thief_EncourageItemsToSteal, AI_CV_Thief_ScoreDown2 - if_random 50, AI_CV_Thief_End + if_random_less_than 50, AI_CV_Thief_End score +1 jump AI_CV_Thief_End @@ -1927,22 +1927,22 @@ AI_CV_Thief_EncourageItemsToSteal: @ 81DB6B3 .byte -1 AI_CV_Curse: @ 81DB6BB - get_type 1 + get_type ENEMY_TYPE2 if_equal TYPE_GHOST, AI_CV_Curse4 - get_type 3 + get_type PLAYER_TYPE2 if_equal TYPE_GHOST, AI_CV_Curse4 if_stat_level_more_than USER, DEFENSE, 9, AI_CV_Curse_End - if_random 128, AI_CV_Curse2 + if_random_less_than 128, AI_CV_Curse2 score +1 AI_CV_Curse2: @ 81DB6DB if_stat_level_more_than USER, DEFENSE, 7, AI_CV_Curse_End - if_random 128, AI_CV_Curse3 + if_random_less_than 128, AI_CV_Curse3 score +1 AI_CV_Curse3: @ 81DB6EB if_stat_level_more_than USER, DEFENSE, 6, AI_CV_Curse_End - if_random 128, AI_CV_Curse_End + if_random_less_than 128, AI_CV_Curse_End score +1 jump AI_CV_Curse_End @@ -1971,7 +1971,7 @@ AI_CV_Protect: @ 81DB70A if_status3 TARGET, S_LEECH_SEED, AI_CV_Protect_ScoreUp2 if_status3 TARGET, S_YAWN, AI_CV_Protect_ScoreUp2 get_move TARGET - get_move_effect + get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_ScoreUp2 jump AI_CV_Protect2 @@ -1982,13 +1982,13 @@ AI_CV_Protect2: @ 81DB7A8 get_protect_count USER if_equal 0, AI_CV_Protect_End score -1 - if_random 128, AI_CV_Protect_End + if_random_less_than 128, AI_CV_Protect_End score -1 jump AI_CV_Protect_End AI_CV_Protect3: @ 81DB7BF get_move TARGET - get_move_effect + get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Protect_End AI_CV_Protect_ScoreDown2: @ 81DB7C8 @@ -1998,19 +1998,19 @@ AI_CV_Protect_End: @ 81DB7CA end AI_CV_Foresight: @ 81DB7CB - get_type 1 + get_type ENEMY_TYPE2 if_equal TYPE_GHOST, AI_CV_Foresight2 - get_type 3 + get_type PLAYER_TYPE2 if_equal TYPE_GHOST, AI_CV_Foresight2 if_stat_level_more_than USER, EVASION, 8, AI_CV_Foresight3 score -2 jump AI_CV_Foresight_End AI_CV_Foresight2: @ 81DB7EA - if_random 80, AI_CV_Foresight_End + if_random_less_than 80, AI_CV_Foresight_End AI_CV_Foresight3: @ 81DB7F0 - if_random 80, AI_CV_Foresight_End + if_random_less_than 80, AI_CV_Foresight_End score +2 AI_CV_Foresight_End: @ 81DB7F8 @@ -2025,7 +2025,7 @@ AI_CV_Endure2: @ 81DB807 jump AI_CV_Endure_End AI_CV_Endure3: @ 81DB80E - if_random 70, AI_CV_Endure_End + if_random_less_than 70, AI_CV_Endure_End score +1 AI_CV_Endure_End: @ 81DB816 @@ -2048,7 +2048,7 @@ AI_CV_BatonPass3: @ 81DB856 if_hp_more_than USER, 70, AI_CV_BatonPass_End AI_CV_BatonPass4: @ 81DB85D - if_random 80, AI_CV_BatonPass_End + if_random_less_than 80, AI_CV_BatonPass_End score +2 jump AI_CV_BatonPass_End @@ -2077,18 +2077,18 @@ AI_CV_BatonPass_End: @ 81DB8B2 AI_CV_Pursuit: @ 81DB8B3 is_first_turn USER if_not_equal 0, AI_CV_Pursuit_End - get_type 0 + get_type ENEMY_TYPE1 if_equal TYPE_GHOST, AI_CV_Pursuit2 - get_type 0 + get_type ENEMY_TYPE1 if_equal TYPE_PSYCHIC, AI_CV_Pursuit2 - get_type 2 + get_type PLAYER_TYPE1 if_equal TYPE_GHOST, AI_CV_Pursuit2 - get_type 2 + get_type PLAYER_TYPE1 if_equal TYPE_PSYCHIC, AI_CV_Pursuit2 jump AI_CV_Pursuit_End AI_CV_Pursuit2: @ 81DB8E0 - if_random 128, AI_CV_Pursuit_End + if_random_less_than 128, AI_CV_Pursuit_End score +1 AI_CV_Pursuit_End: @ 81DB8E8 @@ -2161,14 +2161,14 @@ AI_CV_PsychUp2: @ 81DB98D if_stat_level_less_than USER, SP_ATTACK, 7, AI_CV_PsychUp3 if_stat_level_less_than USER, SP_DEFENSE, 7, AI_CV_PsychUp3 if_stat_level_less_than USER, EVASION, 7, AI_CV_PsychUp_ScoreUp1 - if_random 50, AI_CV_PsychUp_End + if_random_less_than 50, AI_CV_PsychUp_End jump AI_CV_PsychUp_ScoreDown2 AI_CV_PsychUp_ScoreUp1: @ 81DB9C0 score +1 AI_CV_PsychUp3: @ 81DB9C2 - if_random 128, AI_CV_PsychUp_End + if_random_less_than 128, AI_CV_PsychUp_End score +1 AI_CV_PsychUp_ScoreDown2: @ 81DB9CA @@ -2182,41 +2182,41 @@ AI_CV_MirrorCoat: @ 81DB9CD if_status2 TARGET, S_INFATUATED, AI_CV_MirrorCoat_ScoreDown1 if_status2 TARGET, S_CONFUSED, AI_CV_MirrorCoat_ScoreDown1 if_hp_more_than USER, 30, AI_CV_MirrorCoat2 - if_random 10, AI_CV_MirrorCoat2 + if_random_less_than 10, AI_CV_MirrorCoat2 score -1 AI_CV_MirrorCoat2: @ 81DB9FA if_hp_more_than USER, 50, AI_CV_MirrorCoat3 - if_random 100, AI_CV_MirrorCoat3 + if_random_less_than 100, AI_CV_MirrorCoat3 score -1 AI_CV_MirrorCoat3: @ 81DBA09 get_move TARGET - get_move_power + get_move_power_from_result if_equal 0, AI_CV_MirrorCoat5 if_not_taunted AI_CV_MirrorCoat4 - if_random 100, AI_CV_MirrorCoat4 + if_random_less_than 100, AI_CV_MirrorCoat4 score +1 AI_CV_MirrorCoat4: @ 81DBA1F get_move TARGET - get_move_type + get_move_type_from_result if_not_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_ScoreDown1 - if_random 100, AI_CV_MirrorCoat_End + if_random_less_than 100, AI_CV_MirrorCoat_End score +1 jump AI_CV_MirrorCoat_End AI_CV_MirrorCoat5: @ 81DBA38 if_not_taunted AI_CV_MirrorCoat6 - if_random 100, AI_CV_MirrorCoat6 + if_random_less_than 100, AI_CV_MirrorCoat6 score +1 AI_CV_MirrorCoat6: @ 81DBA45 - get_type 0 + get_type ENEMY_TYPE1 if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_End - get_type 2 + get_type PLAYER_TYPE1 if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_End - if_random 50, AI_CV_MirrorCoat_End + if_random_less_than 50, AI_CV_MirrorCoat_End AI_CV_MirrorCoat_ScoreDown1: @ 81DBA61 score -1 @@ -2264,27 +2264,27 @@ AI_CV_Fly2: @ 81DBA9F jump AI_CV_Fly5 AI_CV_Fly3: @ 81DBACF - get_type 1 + get_type ENEMY_TYPE2 if_in_bytes AI_CV_Fly_TypesToEncourage, AI_CV_Fly6 - get_type 3 + get_type PLAYER_TYPE2 if_in_bytes AI_CV_Fly_TypesToEncourage, AI_CV_Fly6 jump AI_CV_Fly5 AI_CV_Fly4: @ 81DBAEA - get_type 1 + get_type ENEMY_TYPE2 if_equal TYPE_ICE, AI_CV_Fly6 - get_type 3 + get_type PLAYER_TYPE2 if_equal TYPE_ICE, AI_CV_Fly6 AI_CV_Fly5: @ 81DBAFA if_would_go_first USER, AI_CV_Fly_End get_move TARGET - get_move_effect + get_move_effect_from_result if_not_equal EFFECT_LOCK_ON, AI_CV_Fly6 jump AI_CV_Fly_End AI_CV_Fly6: @ 81DBB0E - if_random 80, AI_CV_Fly_End + if_random_less_than 80, AI_CV_Fly_End score +1 AI_CV_Fly_End: @ 81DBB16 @@ -2303,7 +2303,7 @@ AI_CV_FakeOut: @ 81DBB1B AI_CV_SpitUp: @ 81DBB1E get_stockpile_count USER if_less_than 2, AI_CV_SpitUp_End - if_random 80, AI_CV_SpitUp_End + if_random_less_than 80, AI_CV_SpitUp_End score +2 AI_CV_SpitUp_End: @ 81DBB2E @@ -2342,7 +2342,7 @@ AI_CV_FocusPunch: @ 81DBB65 if_status2 TARGET, S_CONFUSED, AI_CV_FocusPunch3 is_first_turn USER if_not_equal 0, AI_CV_FocusPunch_End - if_random 100, AI_CV_FocusPunch_End + if_random_less_than 100, AI_CV_FocusPunch_End score +1 jump AI_CV_FocusPunch_End @@ -2351,7 +2351,7 @@ AI_CV_FocusPunch2: @ 81DBBA4 jump AI_CV_FocusPunch_End AI_CV_FocusPunch3: @ 81DBBAB - if_random 100, AI_CV_FocusPunch_End + if_random_less_than 100, AI_CV_FocusPunch_End AI_CV_FocusPunch_ScoreUp1: @ 81DBBB1 score +1 @@ -2387,7 +2387,7 @@ AI_CV_Trick3: @ 81DBBE1 AI_CV_Trick4: @ 81DBBF3 get_hold_effect TARGET if_in_bytes AI_CV_Trick_EffectsToEncourage, AI_CV_Trick2 - if_random 50, AI_CV_Trick_End + if_random_less_than 50, AI_CV_Trick_End score +2 AI_CV_Trick_End: @ 81DBC06 @@ -2418,7 +2418,7 @@ AI_CV_ChangeSelfAbility2: @ 81DBC27 jump AI_CV_ChangeSelfAbility_End AI_CV_ChangeSelfAbility3: @ 81DBC2E - if_random 50, AI_CV_ChangeSelfAbility_End + if_random_less_than 50, AI_CV_ChangeSelfAbility_End score +2 AI_CV_ChangeSelfAbility_End: @ 81DBC36 @@ -2462,21 +2462,21 @@ AI_CV_Superpower_End: @ 81DBC77 AI_CV_MagicCoat: @ 81DBC78 if_hp_more_than TARGET, 30, AI_CV_MagicCoat2 - if_random 100, AI_CV_MagicCoat2 + if_random_less_than 100, AI_CV_MagicCoat2 score -1 AI_CV_MagicCoat2: @ 81DBC87 is_first_turn USER if_equal 0, AI_CV_MagicCoat4 - if_random 150, AI_CV_MagicCoat_End + if_random_less_than 150, AI_CV_MagicCoat_End score +1 jump AI_CV_MagicCoat_End AI_CV_MagicCoat3: @ unreferenced - if_random 50, AI_CV_MagicCoat_End + if_random_less_than 50, AI_CV_MagicCoat_End AI_CV_MagicCoat4: @ 81DBCA2 - if_random 30, AI_CV_MagicCoat_End + if_random_less_than 30, AI_CV_MagicCoat_End score -1 AI_CV_MagicCoat_End: @ 81DBCAA @@ -2485,7 +2485,7 @@ AI_CV_MagicCoat_End: @ 81DBCAA AI_CV_Recycle: @ 81DBCAB get_item USER if_not_in_bytes AI_CV_Recycle_ItemsToEncourage, AI_CV_Recycle_ScoreDown2 - if_random 50, AI_CV_Recycle_End + if_random_less_than 50, AI_CV_Recycle_End score +1 jump AI_CV_Recycle_End @@ -2505,7 +2505,7 @@ AI_CV_Revenge: @ 81DBCCA if_status TARGET, SLP, AI_CV_Revenge_ScoreDown2 if_status2 TARGET, S_INFATUATED, AI_CV_Revenge_ScoreDown2 if_status2 TARGET, S_CONFUSED, AI_CV_Revenge_ScoreDown2 - if_random 180, AI_CV_Revenge_ScoreDown2 + if_random_less_than 180, AI_CV_Revenge_ScoreDown2 score +2 jump AI_CV_Revenge_End @@ -2529,7 +2529,7 @@ AI_CV_KnockOff: @ 81DBD0A if_hp_less_than TARGET, 30, AI_CV_KnockOff_End is_first_turn USER if_more_than 0, AI_CV_KnockOff_End - if_random 180, AI_CV_KnockOff_End + if_random_less_than 180, AI_CV_KnockOff_End score +1 AI_CV_KnockOff_End: @ 81DBD21 @@ -2572,7 +2572,7 @@ AI_CV_Eruption_End: @ 81DBD75 AI_CV_Imprison: @ 81DBD76 is_first_turn USER if_more_than 0, AI_CV_Imprison_End - if_random 100, AI_CV_Imprison_End + if_random_less_than 100, AI_CV_Imprison_End score +2 AI_CV_Imprison_End: @ 81DBD86 @@ -2591,11 +2591,11 @@ AI_CV_Refresh_End: @ 81DBD95 AI_CV_Snatch: @ 81DBD96 is_first_turn USER if_equal 1, AI_CV_Snatch3 - if_random 30, AI_CV_Snatch_End + if_random_less_than 30, AI_CV_Snatch_End if_would_go_first USER, AI_CV_Snatch2 if_hp_not_equal USER, 100, AI_CV_Snatch5 if_hp_less_than TARGET, 70, AI_CV_Snatch5 - if_random 60, AI_CV_Snatch_End + if_random_less_than 60, AI_CV_Snatch_End jump AI_CV_Snatch5 AI_CV_Snatch2: @ 81DBDC3 @@ -2605,17 +2605,17 @@ AI_CV_Snatch2: @ 81DBDC3 jump AI_CV_Snatch4 AI_CV_Snatch3: @ 81DBDDD - if_random 150, AI_CV_Snatch_End + if_random_less_than 150, AI_CV_Snatch_End score +2 jump AI_CV_Snatch_End AI_CV_Snatch4: @ 81DBDEA - if_random 230, AI_CV_Snatch5 + if_random_less_than 230, AI_CV_Snatch5 score +1 jump AI_CV_Snatch_End AI_CV_Snatch5: @ 81DBDF7 - if_random 30, AI_CV_Snatch_End + if_random_less_than 30, AI_CV_Snatch_End score -2 AI_CV_Snatch_End: @ 81DBDFF @@ -2623,9 +2623,9 @@ AI_CV_Snatch_End: @ 81DBDFF AI_CV_MudSport: @ 81DBE00 if_hp_less_than USER, 50, AI_CV_MudSport_ScoreDown1 - get_type 0 + get_type ENEMY_TYPE1 if_equal TYPE_ELECTRIC, AI_CV_MudSport2 - get_type 2 + get_type PLAYER_TYPE1 if_equal TYPE_ELECTRIC, AI_CV_MudSport2 jump AI_CV_MudSport_ScoreDown1 @@ -2657,9 +2657,9 @@ AI_CV_Overheat_End: @ 81DBE4D AI_CV_WaterSport: @ 81DBE4E if_hp_less_than USER, 50, AI_CV_WaterSport_ScoreDown1 - get_type 0 + get_type ENEMY_TYPE1 if_equal TYPE_FIRE, AI_CV_WaterSport2 - get_type 2 + get_type PLAYER_TYPE1 if_equal TYPE_FIRE, AI_CV_WaterSport2 jump AI_CV_WaterSport_ScoreDown1 @@ -2676,12 +2676,12 @@ AI_CV_WaterSport_End: @ 81DBE73 AI_CV_DragonDance: @ 81DBE74 if_would_go_first USER, AI_CV_DragonDance2 if_hp_more_than USER, 50, AI_CV_DragonDance_End - if_random 70, AI_CV_DragonDance_End + if_random_less_than 70, AI_CV_DragonDance_End score -1 jump AI_CV_DragonDance_End AI_CV_DragonDance2: @ 81DBE8E - if_random 128, AI_CV_DragonDance_End + if_random_less_than 128, AI_CV_DragonDance_End score +1 AI_CV_DragonDance_End: @ 81DBE96 @@ -2709,7 +2709,7 @@ AI_SetupFirstTurn: @ 81DBEB5 if_not_equal 0, AI_SetupFirstTurn_End get_effect if_not_in_bytes AI_SetupFirstTurn_SetupEffectsToEncourage, AI_SetupFirstTurn_End - if_random 80, AI_SetupFirstTurn_End + if_random_less_than 80, AI_SetupFirstTurn_End score +2 AI_SetupFirstTurn_End: @ 81DBECE @@ -2776,7 +2776,7 @@ AI_SetupFirstTurn_SetupEffectsToEncourage: @ 81DBECF AI_PreferStrongestMove: @ 81DBF07 is_most_powerful_move if_not_equal 0, AI_PreferStrongestMove_End - if_random 100, AI_PreferStrongestMove_End + if_random_less_than 100, AI_PreferStrongestMove_End score +2 AI_PreferStrongestMove_End: @ 81DBF16 @@ -2785,7 +2785,7 @@ AI_PreferStrongestMove_End: @ 81DBF16 AI_Risky: @ 81DBF17 get_effect if_not_in_bytes AI_Risky_EffectsToEncourage, AI_Risky_End - if_random 128, AI_Risky_End + if_random_less_than 128, AI_Risky_End score +2 AI_Risky_End: @ 81DBF29 @@ -2819,10 +2819,10 @@ AI_PreferBatonPass: @ 81DBF3E is_most_powerful_move if_not_equal 0, AI_PreferBatonPass_End if_move_effect USER, EFFECT_BATON_PASS, AI_PreferBatonPass_GoForBatonPass - if_random 80, AI_Risky_End + if_random_less_than 80, AI_Risky_End AI_PreferBatonPass_GoForBatonPass: @ 81DBF5A - if_random 20, AI_Risky_End + if_random_less_than 20, AI_Risky_End score +3 AI_PreferBatonPass_End: @ 81DBF62 @@ -2849,7 +2849,7 @@ AI_HPAware_UserHasMediumHP: @ 81DBF90 jump AI_HPAware_ConsiderTarget AI_HPAware_TryToDiscourage: @ 81DBF9F - if_random 50, AI_HPAware_ConsiderTarget + if_random_less_than 50, AI_HPAware_ConsiderTarget score -2 AI_HPAware_ConsiderTarget: @ 81DBFA7 @@ -2870,7 +2870,7 @@ AI_HPAware_TargetHasMediumHP: @ 81DBFD3 jump AI_HPAware_End AI_HPAware_TargetTryToDiscourage: @ 81DBFE2 - if_random 50, AI_HPAware_End + if_random_less_than 50, AI_HPAware_End score -2 AI_HPAware_End: @ 81DBFEA @@ -3121,7 +3121,7 @@ AI_Roaming_End: @ 81DC0FD end AI_Safari: @ 81DC0FE - if_random_2 AI_Safari_Flee + if_random_100 AI_Safari_Flee watch AI_Safari_Flee: @ 81DC104 diff --git a/data/battle_setup.s b/data/battle_setup.s deleted file mode 100644 index eb790edf4..000000000 --- a/data/battle_setup.s +++ /dev/null @@ -1,77 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gBattleTransitionTable_Wild:: @ 839ACF8 - .byte 8, 9, 5, 10, 0, 10, 7, 6 - -gBattleTransitionTable_Trainer:: @ 839AD00 - .byte 4, 11, 2, 3, 0, 10, 1, 6 - - .align 2 -gTrainerBattleSpecs_0:: @ 839AD08 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 5 - .4byte gTrainerBattleEndScript, 5 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_1:: @ 839AD50 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 5 - .4byte gTrainerBattleEndScript, 2 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_2:: @ 839AD98 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 2 - .4byte gTrainerBattleEndScript, 5 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_3:: @ 839ADE0 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 5 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 5 - .4byte gTrainerBattleEndScript, 5 - .4byte gTrainerBattleScriptReturnAddress, 6 - - .align 2 -gTrainerBattleSpecs_4:: @ 839AE28 - .4byte gTrainerBattleMode, 0 - .4byte gTrainerBattleOpponent, 1 - .4byte gTrainerMapObjectLocalId, 1 - .4byte gTrainerIntroSpeech, 2 - .4byte gTrainerDefeatSpeech, 2 - .4byte gTrainerVictorySpeech, 5 - .4byte gTrainerCannotBattleSpeech, 2 - .4byte gTrainerBattleEndScript, 2 - .4byte gTrainerBattleScriptReturnAddress, 6 - -@ 839AE70 - .include "data/trainer_eye_trainers.inc" - - .align 2 -gBadgeFlags:: @ 839B1F0 - .2byte 0x0807, 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e diff --git a/data/berries.inc b/data/berries.inc deleted file mode 100644 index 7d7d3edd1..000000000 --- a/data/berries.inc +++ /dev/null @@ -1,689 +0,0 @@ - .align 2 -gBerries:: @ 83CD2CC - .string "CHERI$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 20 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Cheri - .4byte gBerryDescriptionPart2_Cheri - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "CHESTO$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 80 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Chesto - .4byte gBerryDescriptionPart2_Chesto - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "PECHA$", 7 - .byte BERRY_FIRMNESS_VERY_SOFT - .2byte 40 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Pecha - .4byte gBerryDescriptionPart2_Pecha - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "RAWST$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 32 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Rawst - .4byte gBerryDescriptionPart2_Rawst - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "ASPEAR$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 50 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Aspear - .4byte gBerryDescriptionPart2_Aspear - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "LEPPA$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 28 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Leppa - .4byte gBerryDescriptionPart2_Leppa - .byte 4 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "ORAN$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 35 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Oran - .4byte gBerryDescriptionPart2_Oran - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "PERSIM$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 47 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Persim - .4byte gBerryDescriptionPart2_Persim - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "LUM$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 34 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Lum - .4byte gBerryDescriptionPart2_Lum - .byte 12 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "SITRUS$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 95 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Sitrus - .4byte gBerryDescriptionPart2_Sitrus - .byte 6 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "FIGY$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 100 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Figy - .4byte gBerryDescriptionPart2_Figy - .byte 6 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "WIKI$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 115 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Wiki - .4byte gBerryDescriptionPart2_Wiki - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "MAGO$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 126 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Mago - .4byte gBerryDescriptionPart2_Mago - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "AGUAV$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 64 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Aguav - .4byte gBerryDescriptionPart2_Aguav - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "IAPAPA$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 223 @ size (in millimeters) - .byte 3 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Iapapa - .4byte gBerryDescriptionPart2_Iapapa - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 25 @ smoothness - .byte 0 @ padding - - .string "RAZZ$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 120 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Razz - .4byte gBerryDescriptionPart2_Razz - .byte 1 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "BLUK$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 108 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Bluk - .4byte gBerryDescriptionPart2_Bluk - .byte 1 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "NANAB$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 77 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Nanab - .4byte gBerryDescriptionPart2_Nanab - .byte 1 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "WEPEAR$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 74 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Wepear - .4byte gBerryDescriptionPart2_Wepear - .byte 1 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "PINAP$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 80 @ size (in millimeters) - .byte 6 @ max yield - .byte 3 @ min yield - .4byte gBerryDescriptionPart1_Pinap - .4byte gBerryDescriptionPart2_Pinap - .byte 1 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "POMEG$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 135 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Pomeg - .4byte gBerryDescriptionPart2_Pomeg - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "KELPSY$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 150 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Kelpsy - .4byte gBerryDescriptionPart2_Kelpsy - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "QUALOT$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 110 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Qualot - .4byte gBerryDescriptionPart2_Qualot - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "HONDEW$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 162 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Hondew - .4byte gBerryDescriptionPart2_Hondew - .byte 3 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "GREPA$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 149 @ size (in millimeters) - .byte 6 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Grepa - .4byte gBerryDescriptionPart2_Grepa - .byte 3 @ stage duration (in hours) - .byte 0 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 20 @ smoothness - .byte 0 @ padding - - .string "TAMATO$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 200 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Tamato - .4byte gBerryDescriptionPart2_Tamato - .byte 6 @ stage duration (in hours) - .byte 20 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "CORNN$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 75 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Cornn - .4byte gBerryDescriptionPart2_Cornn - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 20 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "MAGOST$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 140 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Magost - .4byte gBerryDescriptionPart2_Magost - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 20 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "RABUTA$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 226 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Rabuta - .4byte gBerryDescriptionPart2_Rabuta - .byte 6 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 20 @ bitter - .byte 10 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "NOMEL$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 285 @ size (in millimeters) - .byte 4 @ max yield - .byte 2 @ min yield - .4byte gBerryDescriptionPart1_Nomel - .4byte gBerryDescriptionPart2_Nomel - .byte 6 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 20 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "SPELON$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 133 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Spelon - .4byte gBerryDescriptionPart2_Spelon - .byte 18 @ stage duration (in hours) - .byte 40 @ spicy - .byte 10 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "PAMTRE$", 7 - .byte BERRY_FIRMNESS_VERY_SOFT - .2byte 244 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Pamtre - .4byte gBerryDescriptionPart2_Pamtre - .byte 18 @ stage duration (in hours) - .byte 0 @ spicy - .byte 40 @ dry - .byte 10 @ sweet - .byte 0 @ bitter - .byte 0 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "WATMEL$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 250 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Watmel - .4byte gBerryDescriptionPart2_Watmel - .byte 18 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 40 @ sweet - .byte 10 @ bitter - .byte 0 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "DURIN$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 280 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Durin - .4byte gBerryDescriptionPart2_Durin - .byte 18 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 40 @ bitter - .byte 10 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "BELUE$", 7 - .byte BERRY_FIRMNESS_VERY_SOFT - .2byte 300 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Belue - .4byte gBerryDescriptionPart2_Belue - .byte 18 @ stage duration (in hours) - .byte 10 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 40 @ sour - .byte 70 @ smoothness - .byte 0 @ padding - - .string "LIECHI$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 111 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Liechi - .4byte gBerryDescriptionPart2_Liechi - .byte 24 @ stage duration (in hours) - .byte 40 @ spicy - .byte 0 @ dry - .byte 40 @ sweet - .byte 0 @ bitter - .byte 10 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "GANLON$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 33 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Ganlon - .4byte gBerryDescriptionPart2_Ganlon - .byte 24 @ stage duration (in hours) - .byte 0 @ spicy - .byte 40 @ dry - .byte 0 @ sweet - .byte 40 @ bitter - .byte 0 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "SALAC$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 95 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Salac - .4byte gBerryDescriptionPart2_Salac - .byte 24 @ stage duration (in hours) - .byte 0 @ spicy - .byte 0 @ dry - .byte 40 @ sweet - .byte 0 @ bitter - .byte 40 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "PETAYA$", 7 - .byte BERRY_FIRMNESS_VERY_HARD - .2byte 237 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Petaya - .4byte gBerryDescriptionPart2_Petaya - .byte 24 @ stage duration (in hours) - .byte 40 @ spicy - .byte 0 @ dry - .byte 0 @ sweet - .byte 40 @ bitter - .byte 0 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "APICOT$", 7 - .byte BERRY_FIRMNESS_HARD - .2byte 75 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Apicot - .4byte gBerryDescriptionPart2_Apicot - .byte 24 @ stage duration (in hours) - .byte 0 @ spicy - .byte 40 @ dry - .byte 0 @ sweet - .byte 0 @ bitter - .byte 40 @ sour - .byte 80 @ smoothness - .byte 0 @ padding - - .string "LANSAT$", 7 - .byte BERRY_FIRMNESS_SOFT - .2byte 97 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Lansat - .4byte gBerryDescriptionPart2_Lansat - .byte 24 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "STARF$", 7 - .byte BERRY_FIRMNESS_SUPER_HARD - .2byte 153 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Starf - .4byte gBerryDescriptionPart2_Starf - .byte 24 @ stage duration (in hours) - .byte 10 @ spicy - .byte 10 @ dry - .byte 10 @ sweet - .byte 10 @ bitter - .byte 10 @ sour - .byte 30 @ smoothness - .byte 0 @ padding - - .string "ENIGMA$", 7 - .byte BERRY_FIRMNESS_UNKNOWN - .2byte 0 @ size (in millimeters) - .byte 2 @ max yield - .byte 1 @ min yield - .4byte gBerryDescriptionPart1_Enigma - .4byte gBerryDescriptionPart2_Enigma - .byte 24 @ stage duration (in hours) - .byte 40 @ spicy - .byte 40 @ dry - .byte 40 @ sweet - .byte 40 @ bitter - .byte 40 @ sour - .byte 40 @ smoothness - .byte 0 @ padding diff --git a/data/berry.s b/data/berry.s deleted file mode 100644 index 091af4105..000000000 --- a/data/berry.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 83CC740 - .include "data/text/berry_descriptions.inc" - -@ 83CD2CC - .include "data/berries.inc" - - .align 2 -gBlankBerryTree:: @ 83CD780 - .4byte 0, 0 diff --git a/data/clock_hand_coords.inc b/data/clock_hand_coords.inc deleted file mode 100644 index 476ffb788..000000000 --- a/data/clock_hand_coords.inc +++ /dev/null @@ -1,361 +0,0 @@ -gClockHandCoords:: @ 83F7B58 - .byte 0, -24 @ 0 - .byte 1, -25 @ 1 - .byte 1, -25 @ 2 - .byte 2, -25 @ 3 - .byte 2, -25 @ 4 - .byte 2, -25 @ 5 - .byte 3, -24 @ 6 - .byte 3, -25 @ 7 - .byte 4, -25 @ 8 - .byte 4, -25 @ 9 - .byte 4, -25 @ 10 - .byte 5, -25 @ 11 - .byte 5, -25 @ 12 - .byte 6, -24 @ 13 - .byte 6, -24 @ 14 - .byte 6, -24 @ 15 - .byte 7, -24 @ 16 - .byte 7, -24 @ 17 - .byte 7, -24 @ 18 - .byte 8, -24 @ 19 - .byte 8, -24 @ 20 - .byte 9, -24 @ 21 - .byte 9, -24 @ 22 - .byte 10, -23 @ 23 - .byte 10, -23 @ 24 - .byte 11, -22 @ 25 - .byte 11, -22 @ 26 - .byte 11, -22 @ 27 - .byte 12, -22 @ 28 - .byte 12, -21 @ 29 - .byte 13, -21 @ 30 - .byte 13, -21 @ 31 - .byte 13, -21 @ 32 - .byte 14, -21 @ 33 - .byte 14, -21 @ 34 - .byte 14, -20 @ 35 - .byte 14, -20 @ 36 - .byte 15, -20 @ 37 - .byte 15, -19 @ 38 - .byte 16, -19 @ 39 - .byte 16, -19 @ 40 - .byte 16, -19 @ 41 - .byte 16, -18 @ 42 - .byte 16, -18 @ 43 - .byte 17, -18 @ 44 - .byte 17, -17 @ 45 - .byte 17, -17 @ 46 - .byte 18, -17 @ 47 - .byte 18, -17 @ 48 - .byte 18, -16 @ 49 - .byte 18, -16 @ 50 - .byte 19, -16 @ 51 - .byte 19, -15 @ 52 - .byte 19, -15 @ 53 - .byte 20, -15 @ 54 - .byte 20, -14 @ 55 - .byte 20, -14 @ 56 - .byte 20, -13 @ 57 - .byte 20, -13 @ 58 - .byte 21, -13 @ 59 - .byte 21, -13 @ 60 - .byte 21, -12 @ 61 - .byte 22, -12 @ 62 - .byte 22, -12 @ 63 - .byte 22, -11 @ 64 - .byte 22, -11 @ 65 - .byte 22, -10 @ 66 - .byte 23, -10 @ 67 - .byte 23, -9 @ 68 - .byte 23, -9 @ 69 - .byte 23, -9 @ 70 - .byte 23, -9 @ 71 - .byte 23, -8 @ 72 - .byte 23, -8 @ 73 - .byte 23, -7 @ 74 - .byte 23, -7 @ 75 - .byte 23, -6 @ 76 - .byte 24, -6 @ 77 - .byte 24, -6 @ 78 - .byte 25, -5 @ 79 - .byte 25, -5 @ 80 - .byte 24, -4 @ 81 - .byte 25, -4 @ 82 - .byte 24, -3 @ 83 - .byte 25, -3 @ 84 - .byte 25, -3 @ 85 - .byte 25, -2 @ 86 - .byte 25, -2 @ 87 - .byte 24, -1 @ 88 - .byte 25, -1 @ 89 - .byte 24, 0 @ 90 - .byte 24, 0 @ 91 - .byte 24, 0 @ 92 - .byte 24, 1 @ 93 - .byte 24, 1 @ 94 - .byte 25, 2 @ 95 - .byte 24, 2 @ 96 - .byte 25, 2 @ 97 - .byte 24, 3 @ 98 - .byte 24, 3 @ 99 - .byte 25, 4 @ 100 - .byte 24, 4 @ 101 - .byte 24, 5 @ 102 - .byte 24, 5 @ 103 - .byte 24, 5 @ 104 - .byte 24, 6 @ 105 - .byte 23, 6 @ 106 - .byte 23, 6 @ 107 - .byte 23, 7 @ 108 - .byte 23, 8 @ 109 - .byte 23, 8 @ 110 - .byte 23, 8 @ 111 - .byte 23, 9 @ 112 - .byte 23, 9 @ 113 - .byte 23, 10 @ 114 - .byte 22, 10 @ 115 - .byte 22, 10 @ 116 - .byte 22, 11 @ 117 - .byte 22, 11 @ 118 - .byte 22, 11 @ 119 - .byte 22, 12 @ 120 - .byte 21, 12 @ 121 - .byte 21, 12 @ 122 - .byte 21, 13 @ 123 - .byte 20, 13 @ 124 - .byte 20, 13 @ 125 - .byte 19, 13 @ 126 - .byte 19, 13 @ 127 - .byte 19, 14 @ 128 - .byte 19, 14 @ 129 - .byte 19, 15 @ 130 - .byte 19, 15 @ 131 - .byte 18, 15 @ 132 - .byte 18, 16 @ 133 - .byte 17, 16 @ 134 - .byte 17, 16 @ 135 - .byte 17, 17 @ 136 - .byte 17, 17 @ 137 - .byte 16, 17 @ 138 - .byte 16, 18 @ 139 - .byte 16, 18 @ 140 - .byte 15, 18 @ 141 - .byte 14, 18 @ 142 - .byte 15, 19 @ 143 - .byte 14, 19 @ 144 - .byte 14, 19 @ 145 - .byte 13, 19 @ 146 - .byte 13, 20 @ 147 - .byte 13, 20 @ 148 - .byte 13, 20 @ 149 - .byte 12, 20 @ 150 - .byte 12, 20 @ 151 - .byte 12, 21 @ 152 - .byte 11, 21 @ 153 - .byte 11, 21 @ 154 - .byte 11, 21 @ 155 - .byte 10, 21 @ 156 - .byte 10, 22 @ 157 - .byte 10, 22 @ 158 - .byte 9, 22 @ 159 - .byte 9, 22 @ 160 - .byte 8, 22 @ 161 - .byte 7, 22 @ 162 - .byte 7, 23 @ 163 - .byte 7, 23 @ 164 - .byte 6, 23 @ 165 - .byte 6, 23 @ 166 - .byte 5, 23 @ 167 - .byte 5, 23 @ 168 - .byte 5, 24 @ 169 - .byte 4, 24 @ 170 - .byte 4, 24 @ 171 - .byte 4, 24 @ 172 - .byte 3, 24 @ 173 - .byte 2, 24 @ 174 - .byte 2, 24 @ 175 - .byte 1, 24 @ 176 - .byte 1, 24 @ 177 - .byte 0, 24 @ 178 - .byte 0, 24 @ 179 - .byte -1, 23 @ 180 - .byte 0, 24 @ 181 - .byte 0, 24 @ 182 - .byte -1, 24 @ 183 - .byte -1, 24 @ 184 - .byte -2, 24 @ 185 - .byte -2, 24 @ 186 - .byte -3, 24 @ 187 - .byte -3, 24 @ 188 - .byte -4, 24 @ 189 - .byte -4, 24 @ 190 - .byte -5, 24 @ 191 - .byte -5, 23 @ 192 - .byte -5, 23 @ 193 - .byte -6, 23 @ 194 - .byte -6, 23 @ 195 - .byte -7, 23 @ 196 - .byte -7, 23 @ 197 - .byte -7, 23 @ 198 - .byte -8, 23 @ 199 - .byte -8, 22 @ 200 - .byte -9, 22 @ 201 - .byte -9, 22 @ 202 - .byte -10, 22 @ 203 - .byte -10, 22 @ 204 - .byte -10, 21 @ 205 - .byte -11, 21 @ 206 - .byte -11, 21 @ 207 - .byte -11, 21 @ 208 - .byte -11, 20 @ 209 - .byte -12, 20 @ 210 - .byte -12, 20 @ 211 - .byte -13, 20 @ 212 - .byte -13, 20 @ 213 - .byte -13, 19 @ 214 - .byte -14, 19 @ 215 - .byte -14, 19 @ 216 - .byte -14, 19 @ 217 - .byte -14, 18 @ 218 - .byte -15, 18 @ 219 - .byte -15, 18 @ 220 - .byte -15, 17 @ 221 - .byte -16, 17 @ 222 - .byte -16, 17 @ 223 - .byte -17, 17 @ 224 - .byte -17, 16 @ 225 - .byte -17, 16 @ 226 - .byte -18, 16 @ 227 - .byte -17, 15 @ 228 - .byte -18, 15 @ 229 - .byte -18, 15 @ 230 - .byte -19, 15 @ 231 - .byte -19, 14 @ 232 - .byte -19, 14 @ 233 - .byte -19, 13 @ 234 - .byte -19, 13 @ 235 - .byte -20, 13 @ 236 - .byte -20, 12 @ 237 - .byte -20, 12 @ 238 - .byte -21, 12 @ 239 - .byte -21, 12 @ 240 - .byte -21, 11 @ 241 - .byte -21, 11 @ 242 - .byte -21, 10 @ 243 - .byte -21, 10 @ 244 - .byte -21, 9 @ 245 - .byte -22, 9 @ 246 - .byte -22, 9 @ 247 - .byte -22, 8 @ 248 - .byte -22, 8 @ 249 - .byte -22, 7 @ 250 - .byte -23, 7 @ 251 - .byte -23, 7 @ 252 - .byte -23, 6 @ 253 - .byte -23, 6 @ 254 - .byte -23, 5 @ 255 - .byte -24, 5 @ 256 - .byte -23, 4 @ 257 - .byte -23, 4 @ 258 - .byte -24, 4 @ 259 - .byte -24, 4 @ 260 - .byte -24, 3 @ 261 - .byte -24, 3 @ 262 - .byte -24, 2 @ 263 - .byte -24, 2 @ 264 - .byte -24, 1 @ 265 - .byte -24, 1 @ 266 - .byte -24, 1 @ 267 - .byte -24, 0 @ 268 - .byte -25, 0 @ 269 - .byte -24, -1 @ 270 - .byte -25, -1 @ 271 - .byte -24, -1 @ 272 - .byte -24, -2 @ 273 - .byte -24, -2 @ 274 - .byte -24, -3 @ 275 - .byte -24, -3 @ 276 - .byte -24, -4 @ 277 - .byte -24, -4 @ 278 - .byte -24, -4 @ 279 - .byte -24, -5 @ 280 - .byte -24, -5 @ 281 - .byte -24, -6 @ 282 - .byte -24, -6 @ 283 - .byte -23, -6 @ 284 - .byte -23, -7 @ 285 - .byte -23, -7 @ 286 - .byte -23, -8 @ 287 - .byte -23, -8 @ 288 - .byte -23, -9 @ 289 - .byte -23, -9 @ 290 - .byte -22, -9 @ 291 - .byte -22, -9 @ 292 - .byte -22, -10 @ 293 - .byte -22, -10 @ 294 - .byte -21, -10 @ 295 - .byte -21, -11 @ 296 - .byte -22, -11 @ 297 - .byte -22, -12 @ 298 - .byte -21, -12 @ 299 - .byte -21, -13 @ 300 - .byte -21, -13 @ 301 - .byte -20, -13 @ 302 - .byte -21, -14 @ 303 - .byte -20, -14 @ 304 - .byte -20, -14 @ 305 - .byte -19, -14 @ 306 - .byte -19, -15 @ 307 - .byte -19, -15 @ 308 - .byte -18, -16 @ 309 - .byte -18, -16 @ 310 - .byte -18, -16 @ 311 - .byte -18, -17 @ 312 - .byte -18, -17 @ 313 - .byte -17, -17 @ 314 - .byte -17, -18 @ 315 - .byte -17, -18 @ 316 - .byte -16, -18 @ 317 - .byte -16, -18 @ 318 - .byte -16, -19 @ 319 - .byte -16, -19 @ 320 - .byte -15, -19 @ 321 - .byte -15, -19 @ 322 - .byte -15, -20 @ 323 - .byte -14, -20 @ 324 - .byte -14, -20 @ 325 - .byte -14, -21 @ 326 - .byte -13, -21 @ 327 - .byte -13, -21 @ 328 - .byte -13, -21 @ 329 - .byte -12, -21 @ 330 - .byte -12, -22 @ 331 - .byte -11, -22 @ 332 - .byte -11, -22 @ 333 - .byte -11, -22 @ 334 - .byte -10, -22 @ 335 - .byte -10, -22 @ 336 - .byte -9, -22 @ 337 - .byte -9, -23 @ 338 - .byte -9, -23 @ 339 - .byte -8, -23 @ 340 - .byte -8, -23 @ 341 - .byte -7, -23 @ 342 - .byte -7, -23 @ 343 - .byte -7, -24 @ 344 - .byte -6, -24 @ 345 - .byte -6, -24 @ 346 - .byte -5, -24 @ 347 - .byte -5, -24 @ 348 - .byte -4, -24 @ 349 - .byte -4, -24 @ 350 - .byte -4, -24 @ 351 - .byte -4, -25 @ 352 - .byte -3, -25 @ 353 - .byte -2, -25 @ 354 - .byte -2, -24 @ 355 - .byte -2, -24 @ 356 - .byte -1, -25 @ 357 - .byte -1, -25 @ 358 - .byte 0, -25 @ 359 diff --git a/data/contest_painting.s b/data/contest_painting.s deleted file mode 100644 index 071661cb4..000000000 --- a/data/contest_painting.s +++ /dev/null @@ -1,102 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gPictureFramePalettes:: @ 83EF198 - .incbin "graphics/picture_frame/bg0.gbapal" - .incbin "graphics/picture_frame/bg1.gbapal" - .incbin "graphics/picture_frame/bg2.gbapal" - .incbin "graphics/picture_frame/bg3.gbapal" - .incbin "graphics/picture_frame/bg4.gbapal" - .incbin "graphics/picture_frame/bg5.gbapal" - .space 10 * 32 - - .align 2 -gPictureFrameTiles_0:: @ 83EF398 - .incbin "graphics/picture_frame/frame0.4bpp.rl" - - .align 2 -gPictureFrameTiles_1:: @ 83F041C - .incbin "graphics/picture_frame/frame1.4bpp.rl" - - .align 2 -gPictureFrameTiles_2:: @ 83F104C - .incbin "graphics/picture_frame/frame2.4bpp.rl" - - .align 2 -gPictureFrameTiles_3:: @ 83F1B84 - .incbin "graphics/picture_frame/frame3.4bpp.rl" - - .align 2 -gPictureFrameTiles_4:: @ 83F2B3C - .incbin "graphics/picture_frame/frame4.4bpp.rl" - - .align 2 -gPictureFrameTiles_5:: @ 83F3C6C - .incbin "graphics/picture_frame/frame5.4bpp.rl" - - .align 2 -gPictureFrameTilemap_0:: @ 83F4260 - .incbin "graphics/picture_frame/frame0_map.bin.rl" - - .align 2 -gPictureFrameTilemap_1:: @ 83F476C - .incbin "graphics/picture_frame/frame1_map.bin.rl" - - .align 2 -gPictureFrameTilemap_2:: @ 83F4C78 - .incbin "graphics/picture_frame/frame2_map.bin.rl" - - .align 2 -gPictureFrameTilemap_3:: @ 83F5184 - .incbin "graphics/picture_frame/frame3_map.bin.rl" - - .align 2 -gPictureFrameTilemap_4:: @ 83F5690 - .incbin "graphics/picture_frame/frame4_map.bin.rl" - - .align 2 -gPictureFrameTilemap_5:: @ 83F5B9C - .incbin "graphics/picture_frame/frame5_map.bin.rl" - - .align 2 -gUnknown_083F60AC:: @ 83F60AC - .4byte OtherText_Cool - .4byte OtherText_Beauty2 - .4byte OtherText_Cute - .4byte OtherText_Smart - .4byte OtherText_Tough - - .align 2 -gUnknown_083F60C0:: @ 83F60C0 - .4byte OtherText_NonstopSuperCool, OtherText_Terminator6 - .4byte OtherText_GoodLookingPoke, OtherText_Terminator7 - .4byte OtherText_MarvelousGreat, OtherText_Terminator8 - - .4byte OtherText_CenturyLastVenus, OtherText_Terminator9 - .4byte OtherText_Terminator10, OtherText_DazzlingSlime - .4byte OtherText_PokeCenterIdol, OtherText_Terminator11 - - .4byte OtherText_LovelyAndSweet, OtherText_Terminator12 - .4byte OtherText_ThePretty, OtherText_WinningPortrait - .4byte OtherText_GiveUsWink, OtherText_Terminator13 - - .4byte OtherText_SmartnessMaestro, OtherText_Terminator15 - .4byte OtherText_ChosenPokeAmong, OtherText_Terminator15 - .4byte OtherText_TheExcellent, OtherText_ItsMomentOfElegance - - .4byte OtherText_PowerfullyMuscular, OtherText_Terminator16 - .4byte OtherText_StrongErEst, OtherText_Terminator17 - .4byte OtherText_MightyTough, OtherText_Exclamation - - .align 2 -gOamData_83F6138:: @ 83F6138 - .2byte 0x3000 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gUnknown_083F6140:: @ 83F6140 - .space 4 diff --git a/data/credits.s b/data/credits.s index 72fbde4f2..e5f5188d3 100644 --- a/data/credits.s +++ b/data/credits.s @@ -3,12 +3,6 @@ .section .rodata -gUnknown_0840B7BC:: @ 840B7BC - .incbin "graphics/credits/palette_1.gbapal" - -gUnknown_0840B7FC:: @ 840B7FC - .incbin "graphics/credits/ampersand.4bpp" - gUnknown_0840B83C:: @ 840B83C .incbin "baserom.gba", 0x0040b83c, 0xf diff --git a/data/heal_location.s b/data/heal_location.s deleted file mode 100644 index 101bec24f..000000000 --- a/data/heal_location.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gHealLocations:: @ 83E5A20 - heal_location LittlerootTown_BrendansHouse_2F, 4, 2 - heal_location LittlerootTown_MaysHouse_2F, 4, 2 - heal_location PetalburgCity, 20, 17 - heal_location SlateportCity, 19, 20 - heal_location MauvilleCity, 22, 6 - heal_location RustboroCity, 16, 39 - heal_location FortreeCity, 5, 7 - heal_location LilycoveCity, 24, 15 - heal_location MossdeepCity, 28, 17 - heal_location SootopolisCity, 43, 32 - heal_location EverGrandeCity, 27, 49 - heal_location LittlerootTown, 5, 9 - heal_location LittlerootTown, 14, 9 - heal_location OldaleTown, 6, 17 - heal_location DewfordTown, 2, 11 - heal_location LavaridgeTown, 9, 7 - heal_location FallarborTown, 14, 8 - heal_location VerdanturfTown, 16, 4 - heal_location PacifidlogTown, 8, 16 - heal_location EverGrandeCity, 18, 6 - heal_location BattleTower_Outside, 14, 9 - heal_location SouthernIsland_Exterior, 15, 20 diff --git a/data/intro.s b/data/intro.s deleted file mode 100644 index 11cf7d2e5..000000000 --- a/data/intro.s +++ /dev/null @@ -1,514 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -Palette_406340:: @ 8406340 - .incbin "baserom.gba", 0x406340, 0x20 - - .align 2 -Palette_406360:: @ 8406360 - .incbin "baserom.gba", 0x406360, 0x20 - - .align 2 -gIntroTiles:: - .incbin "graphics/intro/intro.4bpp.lz" - - .align 2 -gIntro1BGPals:: @ 8406974 - .incbin "graphics/intro/intro1_bgpal1.gbapal" - .incbin "graphics/intro/intro1_bgpal2.gbapal" - .incbin "graphics/intro/intro1_bgpal3.gbapal" - .incbin "graphics/intro/intro1_bgpal4.gbapal" - .incbin "graphics/intro/intro1_bgpal5.gbapal" - .incbin "graphics/intro/intro1_bgpal6.gbapal" - .incbin "graphics/intro/intro1_bgpal7.gbapal" - .incbin "graphics/intro/intro1_bgpal8.gbapal" - .incbin "graphics/intro/intro1_bgpal9.gbapal" - .incbin "graphics/intro/intro1_bgpal10.gbapal" - .incbin "graphics/intro/intro1_bgpal11.gbapal" - .incbin "graphics/intro/intro1_bgpal12.gbapal" - .incbin "graphics/intro/intro1_bgpal13.gbapal" - .incbin "graphics/intro/intro1_bgpal14.gbapal" - .incbin "graphics/intro/intro1_bgpal15.gbapal" - .incbin "graphics/intro/intro1_bgpal16.gbapal" - - .align 2 -gIntro1BG0_Tilemap:: @ 8406B74 - .incbin "graphics/intro/intro1_bg0_map.bin.lz" - - .align 2 -gIntro1BG1_Tilemap:: @ 8406F28 - .incbin "graphics/intro/intro1_bg1_map.bin.lz" - - .align 2 -gIntro1BG2_Tilemap:: @ 840725C - .incbin "graphics/intro/intro1_bg2_map.bin.lz" - - .align 2 -gIntro1BG3_Tilemap:: @ 840754C - .incbin "graphics/intro/intro1_bg3_map.bin.lz" - - .align 2 -gIntro1BGLeavesGfx:: @ 8407764 - .incbin "graphics/intro/introgfx.4bpp.lz" - - .align 2 -gIntro3PokeballPal:: @ 84098D4 - .incbin "graphics/intro/intro3_pokeball.gbapal" - - .align 2 -gIntro3Pokeball_Tilemap:: @ 8409AD4 - .incbin "graphics/intro/intro3_pokeball_map.bin.lz" - - .align 2 -gIntro3Pokeball_Gfx:: @ 8409C04 - .incbin "graphics/intro/intro3_pokeball.8bpp.lz" - - .align 2 -gIntro3Streaks_Pal:: @ 840A758 - .incbin "graphics/intro/intro3_streaks.gbapal" - - .align 2 -gIntro3Streaks_Gfx:: @ 840A778 - .incbin "graphics/intro/intro3_streaks.4bpp.lz" - - .align 2 -gIntro3Streaks_Tilemap:: @ 840A7E4 - .incbin "graphics/intro/intro3_streaks_map.bin.lz" - - .align 2 -gIntro3Misc1Palette:: - .incbin "graphics/intro/intro3_misc1.gbapal" - - .align 2 -gIntro3Misc2Palette:: - .incbin "graphics/intro/intro3_misc2.gbapal" - - .align 2 -gIntro3MiscTiles:: - .incbin "graphics/intro/intro3_misc.4bpp.lz" - - .align 2 -gIntro1EonPalette:: - .incbin "graphics/intro/intro1_eon.gbapal" - - .align 2 -gIntro1EonTiles:: - .incbin "graphics/intro/intro1_eon.4bpp.lz" - - .align 2 -gOamData_840ADE8:: @ 840ADE8 - .2byte 0x00A0 - .2byte 0x8000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_840ADF0:: @ 840ADF0 - obj_image_anim_frame 16, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840ADF8:: @ 840ADF8 - obj_image_anim_frame 24, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AE00:: @ 840AE00 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AE08:: @ 840AE08 - obj_image_anim_frame 48, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840AE10:: @ 840AE10 - .4byte gSpriteAnim_840ADF0 - .4byte gSpriteAnim_840ADF8 - .4byte gSpriteAnim_840AE00 - .4byte gSpriteAnim_840AE08 - - .align 2 -gSpriteTemplate_840AE20:: @ 840AE20 - spr_template 2000, 2000, gOamData_840ADE8, gSpriteAnimTable_840AE10, NULL, gDummySpriteAffineAnimTable, sub_813D208 - - .align 2 -Unknown_40AE38: @ 840AE38 - .incbin "baserom.gba", 0x40ae38, 0x14 - - .align 2 -Unknown_40AE4C: @ 840AE4C - .incbin "baserom.gba", 0x40ae4c, 0x14 - - .align 2 -Unknown_40AE60: @ 840AE60 - .incbin "baserom.gba", 0x40ae60, 0x10 - - .align 2 -Unknown_40AE70: @ 840AE70 - .incbin "baserom.gba", 0x40ae70, 0x10 - - .align 2 -gUnknown_0840AE80:: @ 840AE80 - .4byte Unknown_40AE38 - .4byte Unknown_40AE4C - .4byte Unknown_40AE60 - .4byte Unknown_40AE70 - - .align 2 -gOamData_840AE90:: @ 840AE90 - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gOamData_840AE98:: @ 840AE98 - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_840AEA0:: @ 840AEA0 - .2byte 0x80A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_840AEA8:: @ 840AEA8 - obj_image_anim_frame 80, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEB0:: @ 840AEB0 - obj_image_anim_frame 84, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEB8:: @ 840AEB8 - obj_image_anim_frame 88, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEC0:: @ 840AEC0 - obj_image_anim_frame 92, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEC8:: @ 840AEC8 - obj_image_anim_frame 96, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AED0:: @ 840AED0 - obj_image_anim_frame 100, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AED8:: @ 840AED8 - obj_image_anim_frame 104, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEE0:: @ 840AEE0 - obj_image_anim_frame 112, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEE8:: @ 840AEE8 - obj_image_anim_frame 113, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEF0:: @ 840AEF0 - obj_image_anim_frame 114, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AEF8:: @ 840AEF8 - obj_image_anim_frame 115, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AF00:: @ 840AF00 - obj_image_anim_frame 116, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AF08:: @ 840AF08 - obj_image_anim_frame 117, 8 - obj_image_anim_end - - .align 2 -gSpriteAnim_840AF10:: @ 840AF10 - obj_image_anim_frame 128, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840AF18:: @ 840AF18 - .4byte gSpriteAnim_840AEA8 - .4byte gSpriteAnim_840AEB0 - .4byte gSpriteAnim_840AEB8 - .4byte gSpriteAnim_840AEC0 - .4byte gSpriteAnim_840AEC8 - .4byte gSpriteAnim_840AED0 - .4byte gSpriteAnim_840AED8 - - .align 2 -gSpriteAnimTable_840AF34:: @ 840AF34 - .4byte gSpriteAnim_840AEE0 - .4byte gSpriteAnim_840AEE8 - .4byte gSpriteAnim_840AEF0 - .4byte gSpriteAnim_840AEF8 - .4byte gSpriteAnim_840AF00 - .4byte gSpriteAnim_840AF08 - - .align 2 -gSpriteAnimTable_840AF4C:: @ 840AF4C - .4byte gSpriteAnim_840AF10 - -gUnknown_0840AF50:: @ 840AF50 - .incbin "baserom.gba", 0x0040af50, 0x24 - -gUnknown_0840AF74:: @ 840AF74 - .incbin "baserom.gba", 0x0040af74, 0x20 - - .align 2 -gSpriteTemplate_840AF94:: @ 840AF94 - spr_template 2000, 2001, gOamData_840AE90, gSpriteAnimTable_840AF18, NULL, gDummySpriteAffineAnimTable, sub_813D908 - - .align 2 -gSpriteTemplate_840AFAC:: @ 840AFAC - spr_template 2000, 2001, gOamData_840AE98, gSpriteAnimTable_840AF34, NULL, gDummySpriteAffineAnimTable, sub_813D908 - - .align 2 -gSpriteTemplate_840AFC4:: @ 840AFC4 - spr_template 2000, 2001, gOamData_840AEA0, gSpriteAnimTable_840AF4C, NULL, gDummySpriteAffineAnimTable, sub_813D908 - - .align 2 -gOamData_840AFDC:: @ 840AFDC - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_840AFE4:: @ 840AFE4 - obj_image_anim_frame 0, 10 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_840AFEC:: @ 840AFEC - .4byte gSpriteAnim_840AFE4 - - .align 2 -gSpriteTemplate_840AFF0:: @ 840AFF0 - spr_template 2002, 2002, gOamData_840AFDC, gSpriteAnimTable_840AFEC, NULL, gDummySpriteAffineAnimTable, sub_813DA64 - - .align 2 -gUnknown_0840B008:: @ 840B008 - obj_tiles gIntroTiles, 0x1400, 2000 - .space 8 - - .align 2 -gUnknown_0840B018:: @ 840B018 - obj_tiles gIntro1EonTiles, 0x400, 2002 - .space 8 - - .align 2 -gUnknown_0840B028:: @ 840B028 - obj_pal Palette_406340, 2000 - obj_pal Palette_406360, 2001 - obj_pal gIntro1EonPalette, 2002 - .space 8 - -gUnknown_0840B048:: @ 840B048 - .incbin "baserom.gba", 0x40b048, 0x8 - -gUnknown_0840B050:: @ 840B050 - .incbin "baserom.gba", 0x40b050, 0x8 - -gUnknown_0840B058:: @ 840B058 - .incbin "baserom.gba", 0x40b058, 0xc - - .align 2 -gUnknown_0840B064:: @ 840B064 - .4byte gUnknown_0840B048 - .4byte gUnknown_0840B050 - .4byte gUnknown_0840B058 - - .align 2 -gOamData_840B070:: @ 840B070 - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B078:: @ 840B078 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B080:: @ 840B080 - .4byte gSpriteAnim_840B078 - - .align 2 -gSpriteTemplate_840B084:: @ 840B084 - spr_template 2002, 2002, gOamData_840B070, gSpriteAnimTable_840B080, NULL, gDummySpriteAffineAnimTable, sub_813E30C - - .align 2 -gOamData_840B09C:: @ 840B09C - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B0A4:: @ 840B0A4 - obj_image_anim_frame 1, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B0AC:: @ 840B0AC - .4byte gSpriteAnim_840B0A4 - - .align 2 -gSpriteTemplate_840B0B0:: @ 840B0B0 - spr_template 2003, 2003, gOamData_840B09C, gSpriteAnimTable_840B0AC, NULL, gDummySpriteAffineAnimTable, sub_813E4B8 - - .align 2 -gOamData_840B0C8:: @ 840B0C8 - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B0D0:: @ 840B0D0 - obj_image_anim_frame 14, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B0D8:: @ 840B0D8 - .4byte gSpriteAnim_840B0D0 - - .align 2 -gSpriteTemplate_840B0DC:: @ 840B0DC - spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E5E0 - - .align 2 -gSpriteTemplate_840B0F4:: @ 840B0F4 - spr_template 2003, 2004, gOamData_840B0C8, gSpriteAnimTable_840B0D8, NULL, gDummySpriteAffineAnimTable, sub_813E6C0 - - .align 2 -gOamData_840B10C:: @ 840B10C - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B114:: @ 840B114 - obj_image_anim_frame 6, 8 - obj_image_anim_frame 6, 8, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_840B120:: @ 840B120 - .4byte gSpriteAnim_840B114 - - .align 2 -gSpriteTemplate_840B124:: @ 840B124 - spr_template 2003, 2004, gOamData_840B10C, gSpriteAnimTable_840B120, NULL, gDummySpriteAffineAnimTable, sub_813E804 - - .align 2 -gOamData_840B13C:: @ 840B13C - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B144:: @ 840B144 - obj_image_anim_frame 10, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B14C:: @ 840B14C - .4byte gSpriteAnim_840B144 - - .align 2 -gSpriteTemplate_840B150:: @ 840B150 - spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813E980 - -gUnknown_0840B168:: @ 840B168 - .incbin "baserom.gba", 0x0040b168, 0x8 - - .align 2 -gSpriteTemplate_840B170:: @ 840B170 - spr_template 2003, 2004, gOamData_840B13C, gSpriteAnimTable_840B14C, NULL, gDummySpriteAffineAnimTable, sub_813EA60 - -gUnknown_0840B188:: @ 840B188 - .incbin "baserom.gba", 0x0040b188, 0x14 - - .align 2 -gOamData_840B19C:: @ 840B19C - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B1A4:: @ 840B1A4 - obj_image_anim_frame 2, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B1AC:: @ 840B1AC - .4byte gSpriteAnim_840B1A4 - - .align 2 -gSpriteTemplate_840B1B0:: @ 840B1B0 - spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EBBC - - .align 2 -gSpriteTemplate_840B1C8:: @ 840B1C8 - spr_template 2003, 2004, gOamData_840B19C, gSpriteAnimTable_840B1AC, NULL, gDummySpriteAffineAnimTable, sub_813EC90 - - .align 2 -gOamData_840B1E0:: @ 840B1E0 - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_840B1E8:: @ 840B1E8 - obj_image_anim_frame 16, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_840B1F0:: @ 840B1F0 - .4byte gSpriteAnim_840B1E8 - - .align 2 -gSpriteTemplate_840B1F4:: @ 840B1F4 - spr_template 2003, 2003, gOamData_840B1E0, gSpriteAnimTable_840B1F0, NULL, gDummySpriteAffineAnimTable, sub_813EDFC - - .align 2 -gIntro3PokeballGfx_Table:: @ 840B20C - obj_tiles gInterfaceGfx_PokeBall, 0x100, 2002 - .space 8 - - .align 2 -gIntro3MiscGfx_Table:: @ 840B21C - obj_tiles gIntro3MiscTiles, 0xa00, 2003 - .space 8 - - .align 2 -gInterfacePokeballPal_Table:: @ 840B22C - obj_pal gInterfacePal_PokeBall, 2002 - .space 8 - - .align 2 -gIntro3MiscPal_Table:: @ 840B23C - obj_pal gIntro3Misc1Palette, 2003 - obj_pal gIntro3Misc2Palette, 2004 - .space 8 - - .incbin "baserom.gba", 0x0040b254, 0x4 diff --git a/data/naming_screen.s b/data/naming_screen.s index b799df2bb..60aba1345 100644 --- a/data/naming_screen.s +++ b/data/naming_screen.s @@ -4,113 +4,6 @@ .section .rodata .align 2 -gUnknown_083CE2F0:: @ 83CE2F0 - .4byte sub_80B7660 - .4byte sub_80B7650 - .4byte sub_80B7650 - .4byte sub_80B7670 - .4byte sub_80B7670 - .4byte sub_80B7660 - - .align 2 -gUnknown_083CE308:: @ 83CE308 - .4byte VRAM + 0xE000 - .4byte VRAM + 0xE800 - - .align 2 -gUnknown_083CE310:: @ 83CE310 - .4byte sub_80B7844 - .4byte sub_80B7838 - .4byte sub_80B7838 - .4byte sub_80B7850 - .4byte sub_80B7850 - .4byte sub_80B7844 - - .align 2 -gUnknown_083CE328:: @ 83CE328 - .4byte gWindowConfig_81E6EDC - .4byte gWindowConfig_81E6EF8 - .4byte gWindowConfig_81E6EA4 - .4byte gWindowConfig_81E6EC0 - .4byte gWindowConfig_81E6EA4 - .4byte gWindowConfig_81E6EC0 - .4byte gWindowConfig_81E6F14 - .4byte gWindowConfig_81E6F30 - .4byte gWindowConfig_81E6F14 - .4byte gWindowConfig_81E6F30 - .4byte gWindowConfig_81E6EDC - .4byte gWindowConfig_81E6EF8 - - .align 2 -gUnknown_083CE358:: @ 83CE358 - .4byte nullsub_61 - .4byte nullsub_61 - .4byte sub_80B78F8 - .4byte sub_80B78F8 - - .align 2 -gUnknown_083CE368:: @ 83CE368 - .4byte nullsub_62 - .4byte sub_80B7924 - -gUnknown_083CE370:: @ 83CE370 - .string "♂$" - - .align 2 -Unknown_83CE374: - .byte 0, 7, 1, 0, 0, 0, 0, 0 - .4byte OtherText_YourName - - .align 2 -Unknown_83CE380: - .byte 0, 8, 2, 0, 0, 0, 0, 0 - .4byte OtherText_BoxName - - .align 2 -Unknown_83CE38C: - .byte 0, 10, 3, 1, 0, 0, 0, 0 - .4byte OtherText_PokeName - - .align 2 -gUnknown_083CE398:: @ 83CE398 - .4byte Unknown_83CE374 - .4byte Unknown_83CE380 - .4byte Unknown_83CE38C - .4byte Unknown_83CE38C - -gUnknown_083CE3A8:: @ 83CE3A8 - .string " A B C D E F . $" - .string " G H I J K L , $" - .string " M N O P Q R S $" - .string " T U V W X Y Z $" - .string " a b c d e f . $" - .string " g h i j k l , $" - .string " m n o p q r s $" - .string " t u v w x y z $" - .string " 0 1 2 3 4 $" - .string " 5 6 7 8 9 $" - .string " ! ? ♂ ♀ / - $" - .string " … “ ” ‘ ’ $" - - .align 2 -gOamData_83CE498:: @ 83CE498 - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_83CE4A0:: @ 83CE4A0 - .2byte 0x0000 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gOamData_83CE4A8:: @ 83CE4A8 - .2byte 0x4000 - .2byte 0x8000 - .2byte 0x0000 - - .align 2 gSubspriteTable_83CE4B0:: @ 83CE4B0 subsprite -20, -16, 1, 0, 32x8 subsprite 12, -16, 1, 4, 8x8 diff --git a/data/starter_choose.s b/data/starter_choose.s deleted file mode 100644 index 4c549b449..000000000 --- a/data/starter_choose.s +++ /dev/null @@ -1,173 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gBirchBagGrassPal:: @ 83F62EC - .incbin "graphics/misc/birch_bag.gbapal" - .incbin "graphics/misc/birch_grass.gbapal" - - .align 2 -gBirchBallarrow_Pal:: - .incbin "graphics/misc/birch_ballarrow.gbapal" - - .align 2 -gBirchCircle_Pal:: - .incbin "graphics/misc/birch_circle.gbapal" - - .align 2 -gBirchBagTilemap:: @ 83F636C - .incbin "graphics/misc/birch_bag_map.bin.lz" - - .align 2 -gBirchGrassTilemap:: @ 83F64F8 - .incbin "graphics/misc/birch_grass_map.bin.lz" - - .align 2 -gBirchHelpGfx:: @ 83F66F0 - .incbin "graphics/misc/birch_help.4bpp.lz" - - .align 2 -gBirchBallarrow_Gfx:: - .incbin "graphics/misc/birch_ballarrow.4bpp.lz" - - .align 2 -gBirchCircle_Gfx:: - .incbin "graphics/misc/birch_circle.4bpp.lz" - -gStarterChoose_PokeballCoords:: @ 83F76B8 - .byte 60, 64 - .byte 120, 88 - .byte 180, 64 - -gStarterChoose_LabelCoords:: @ 83F76BE - .byte 0, 9 - .byte 16, 10 - .byte 8, 4 - - .align 1 -gStarterMons:: @ 83F76C4 - .2byte SPECIES_TREECKO - .2byte SPECIES_TORCHIC - .2byte SPECIES_MUDKIP - .2byte 0 - - .align 2 -gOamData_83F76CC:: @ 83F76CC - .2byte 0x00A0 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gOamData_83F76D4:: @ 83F76D4 - .2byte 0x00A0 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gOamData_83F76DC:: @ 83F76DC - .2byte 0x03A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_083F76E4:: @ 83F76E4 - .byte 60, 32 - .byte 120, 56 - .byte 180, 32 - .byte 0, 0 - - .align 2 -gSpriteAnim_83F76EC:: @ 83F76EC - obj_image_anim_frame 48, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F76F4:: @ 83F76F4 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F76FC:: @ 83F76FC - obj_image_anim_frame 16, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 0, 32 - obj_image_anim_frame 16, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 16, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83F7744:: @ 83F7744 - obj_image_anim_frame 0, 8 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83F774C:: @ 83F774C - .4byte gSpriteAnim_83F76EC - - .align 2 -gSpriteAnimTable_83F7750:: @ 83F7750 - .4byte gSpriteAnim_83F76F4 - .4byte gSpriteAnim_83F76FC - - .align 2 -gSpriteAnimTable_83F7758:: @ 83F7758 - .4byte gSpriteAnim_83F7744 - - .align 2 -gSpriteAffineAnim_83F775C:: @ 83F775C - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83F7774:: @ 83F7774 - obj_rot_scal_anim_frame 0x14, 0x14, 0, 0 - obj_rot_scal_anim_frame 0x14, 0x14, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83F778C:: @ 83F778C - .4byte gSpriteAffineAnim_83F775C - - .align 2 -gSpriteAffineAnimTable_83F7790:: @ 83F7790 - .4byte gSpriteAffineAnim_83F7774 - -gUnknown_083F7794:: @ 83F7794 - obj_tiles gBirchBallarrow_Gfx, 0x0800, 0x1000 - .space 8 - -gUnknown_083F77A4:: @ 83F77A4 - obj_tiles gBirchCircle_Gfx, 0x0800, 0x1001 - .space 8 - -gUnknown_083F77B4:: @ 83F77B4 - obj_pal gBirchBallarrow_Pal, 0x1000 - obj_pal gBirchCircle_Pal, 0x1001 - .space 8 - - .align 2 -gSpriteTemplate_83F77CC:: @ 83F77CC - spr_template 4096, 4096, gOamData_83F76CC, gSpriteAnimTable_83F774C, NULL, gDummySpriteAffineAnimTable, sub_810A62C - - .align 2 -gSpriteTemplate_83F77E4:: @ 83F77E4 - spr_template 4096, 4096, gOamData_83F76D4, gSpriteAnimTable_83F7750, NULL, gDummySpriteAffineAnimTable, sub_810A68C - - .align 2 -gSpriteTemplate_83F77FC:: @ 83F77FC - spr_template 4097, 4097, gOamData_83F76DC, gSpriteAnimTable_83F7758, NULL, gSpriteAffineAnimTable_83F7790, StarterPokemonSpriteAnimCallback diff --git a/data/text/berry_descriptions.inc b/data/text/berry_descriptions.inc deleted file mode 100644 index ace0cff17..000000000 --- a/data/text/berry_descriptions.inc +++ /dev/null @@ -1,257 +0,0 @@ -gBerryDescriptionPart1_Cheri: @ 83CC740 - .string "Blooms with delicate pretty flowers.$" - -gBerryDescriptionPart2_Cheri: @ 83CC765 - .string "The bright red BERRY is very spicy.$" - -gBerryDescriptionPart1_Chesto: @ 83CC789 - .string "The BERRY’s thick skin and fruit are$" - -gBerryDescriptionPart2_Chesto: @ 83CC7AE - .string "very tough. It is dry-tasting all over.$" - -gBerryDescriptionPart1_Pecha: @ 83CC7D6 - .string "Very sweet and delicious.$" - -gBerryDescriptionPart2_Pecha: @ 83CC7F0 - .string "Also very tender - handle with care.$" - -gBerryDescriptionPart1_Rawst: @ 83CC815 - .string "If the leaves grow long and curly,$" - -gBerryDescriptionPart2_Rawst: @ 83CC838 - .string "the BERRY seems to grow very bitter.$" - -gBerryDescriptionPart1_Aspear: @ 83CC85D - .string "The hard BERRY is dense with a rich$" - -gBerryDescriptionPart2_Aspear: @ 83CC881 - .string "juice. It is quite sour.$" - -gBerryDescriptionPart1_Leppa: @ 83CC89A - .string "Grows slower than CHERI and others.$" - -gBerryDescriptionPart2_Leppa: @ 83CC8BE - .string "The smaller the BERRY, the tastier.$" - -gBerryDescriptionPart1_Oran: @ 83CC8E2 - .string "A peculiar BERRY with a mix of flavors.$" - -gBerryDescriptionPart2_Oran: @ 83CC90A - .string "BERRIES grow in half a day.$" - -gBerryDescriptionPart1_Persim: @ 83CC926 - .string "Loves sunlight. The BERRY’s color$" - -gBerryDescriptionPart2_Persim: @ 83CC948 - .string "grows vivid when exposed to the sun.$" - -gBerryDescriptionPart1_Lum: @ 83CC96D - .string "Slow to grow. If raised with loving$" - -gBerryDescriptionPart2_Lum: @ 83CC991 - .string "care, it may grow two BERRIES.$" - -gBerryDescriptionPart1_Sitrus: @ 83CC9B0 - .string "Closely related to ORAN. The large$" - -gBerryDescriptionPart2_Sitrus: @ 83CC9D3 - .string "BERRY has a well-rounded flavor.$" - -gBerryDescriptionPart1_Figy: @ 83CC9F4 - .string "The BERRY, which looks chewed up,$" - -gBerryDescriptionPart2_Figy: @ 83CCA16 - .string "brims with spicy substances.$" - -gBerryDescriptionPart1_Wiki: @ 83CCA33 - .string "The BERRY is said to have grown lumpy$" - -gBerryDescriptionPart2_Wiki: @ 83CCA59 - .string "to help POKéMON grip it.$" - -gBerryDescriptionPart1_Mago: @ 83CCA72 - .string "The BERRY turns curvy as it grows.$" - -gBerryDescriptionPart2_Mago: @ 83CCA95 - .string "The curvier, the sweeter and tastier.$" - -gBerryDescriptionPart1_Aguav: @ 83CCABB - .string "The flower is dainty. It is rare in its$" - -gBerryDescriptionPart2_Aguav: @ 83CCAE3 - .string "ability to grow without light.$" - -gBerryDescriptionPart1_Iapapa: @ 83CCB02 - .string "The BERRY is very big and sour.$" - -gBerryDescriptionPart2_Iapapa: @ 83CCB22 - .string "It takes at least a day to grow.$" - -gBerryDescriptionPart1_Razz: @ 83CCB43 - .string "The red BERRY tastes slightly spicy.$" - -gBerryDescriptionPart2_Razz: @ 83CCB68 - .string "It grows quickly in just four hours.$" - -gBerryDescriptionPart1_Bluk: @ 83CCB8D - .string "The BERRY is blue on the outside, but$" - -gBerryDescriptionPart2_Bluk: @ 83CCBB3 - .string "it blackens the mouth when eaten.$" - -gBerryDescriptionPart1_Nanab: @ 83CCBD5 - .string "This BERRY was the seventh$" - -gBerryDescriptionPart2_Nanab: @ 83CCBF0 - .string "discovered in the world. It is sweet.$" - -gBerryDescriptionPart1_Wepear: @ 83CCC16 - .string "The flower is small and white. It has a$" - -gBerryDescriptionPart2_Wepear: @ 83CCC3E - .string "delicate balance of bitter and sour.$" - -gBerryDescriptionPart1_Pinap: @ 83CCC63 - .string "Weak against wind and cold.$" - -gBerryDescriptionPart2_Pinap: @ 83CCC7F - .string "The fruit is spicy and the skin, sour.$" - -gBerryDescriptionPart1_Pomeg: @ 83CCCA6 - .string "However much it is watered,$" - -gBerryDescriptionPart2_Pomeg: @ 83CCCC2 - .string "it only grows up to six BERRIES.$" - -gBerryDescriptionPart1_Kelpsy: @ 83CCCE3 - .string "A rare variety shaped like a root.$" - -gBerryDescriptionPart2_Kelpsy: @ 83CCD06 - .string "Grows a very large flower.$" - -gBerryDescriptionPart1_Qualot: @ 83CCD21 - .string "Loves water. Grows strong even in$" - -gBerryDescriptionPart2_Qualot: @ 83CCD43 - .string "locations with constant rainfall.$" - -gBerryDescriptionPart1_Hondew: @ 83CCD65 - .string "A BERRY that is very valuable and$" - -gBerryDescriptionPart2_Hondew: @ 83CCD87 - .string "rarely seen. It is very delicious.$" - -gBerryDescriptionPart1_Grepa: @ 83CCDAA - .string "Despite its tenderness and round$" - -gBerryDescriptionPart2_Grepa: @ 83CCDCB - .string "shape, the BERRY is unimaginably sour.$" - -gBerryDescriptionPart1_Tamato: @ 83CCDF2 - .string "The BERRY is lip-bendingly spicy.$" - -gBerryDescriptionPart2_Tamato: @ 83CCE14 - .string "It takes time to grow.$" - -gBerryDescriptionPart1_Cornn: @ 83CCE2B - .string "A BERRY from an ancient era. May not$" - -gBerryDescriptionPart2_Cornn: @ 83CCE50 - .string "grow unless planted in quantity.$" - -gBerryDescriptionPart1_Magost: @ 83CCE71 - .string "A BERRY that is widely said to have$" - -gBerryDescriptionPart2_Magost: @ 83CCE95 - .string "a finely balanced flavor.$" - -gBerryDescriptionPart1_Rabuta: @ 83CCEAF - .string "A rare variety that is overgrown with$" - -gBerryDescriptionPart2_Rabuta: @ 83CCED5 - .string "hair. It is quite bitter.$" - -gBerryDescriptionPart1_Nomel: @ 83CCEEF - .string "Quite sour. Just one bite makes it$" - -gBerryDescriptionPart2_Nomel: @ 83CCF12 - .string "impossible to taste for three days.$" - -gBerryDescriptionPart1_Spelon: @ 83CCF36 - .string "The vividly red BERRY is very spicy.$" - -gBerryDescriptionPart2_Spelon: @ 83CCF5B - .string "Its warts secrete a spicy substance.$" - -gBerryDescriptionPart1_Pamtre: @ 83CCF80 - .string "Drifts on the sea from somewhere.$" - -gBerryDescriptionPart2_Pamtre: @ 83CCFA2 - .string "It is thought to grow elsewhere.$" - -gBerryDescriptionPart1_Watmel: @ 83CCFC3 - .string "A huge BERRY, with some over 20$" - -gBerryDescriptionPart2_Watmel: @ 83CCFE3 - .string "inches discovered. Exceedingly sweet.$" - -gBerryDescriptionPart1_Durin: @ 83CD009 - .string "Bitter to even look at. It is so$" - -gBerryDescriptionPart2_Durin: @ 83CD02A - .string "bitter, no one has ever eaten it as is.$" - -gBerryDescriptionPart1_Belue: @ 83CD052 - .string "It is glossy and looks delicious, but$" - -gBerryDescriptionPart2_Belue: @ 83CD078 - .string "it is awfully sour. Takes time to grow.$" - -gBerryDescriptionPart1_Liechi: @ 83CD0A0 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Liechi: @ 83CD0C5 - .string "contain the power of the sea.$" - -gBerryDescriptionPart1_Ganlon: @ 83CD0E3 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Ganlon: @ 83CD108 - .string "contain the power of the land.$" - -gBerryDescriptionPart1_Salac: @ 83CD127 - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Salac: @ 83CD14C - .string "contain the power of the sky.$" - -gBerryDescriptionPart1_Petaya: @ 83CD16A - .string "A mysterious BERRY. It is rumored to$" - -gBerryDescriptionPart2_Petaya: @ 83CD18F - .string "contain the power of all living things.$" - -gBerryDescriptionPart1_Apicot: @ 83CD1B7 - .string "A very mystifying BERRY. No telling$" - -gBerryDescriptionPart2_Apicot: @ 83CD1DB - .string "what may happen or how it can be used.$" - -gBerryDescriptionPart1_Lansat: @ 83CD202 - .string "Said to be a legendary BERRY.$" - -gBerryDescriptionPart2_Lansat: @ 83CD220 - .string "Holding it supposedly brings joy.$" - -gBerryDescriptionPart1_Starf: @ 83CD242 - .string "So strong, it was abandoned at the$" - -gBerryDescriptionPart2_Starf: @ 83CD265 - .string "world’s edge. Considered a mirage.$" - -gBerryDescriptionPart1_Enigma: @ 83CD288 - .string "A completely enigmatic BERRY.$" - -gBerryDescriptionPart2_Enigma: @ 83CD2A6 - .string "Appears to have the power of stars.$" diff --git a/data/title_screen.s b/data/title_screen.s deleted file mode 100644 index 7c818eeb2..000000000 --- a/data/title_screen.s +++ /dev/null @@ -1,215 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_08393210:: @ 8393210 - .ifdef SAPPHIRE - .incbin "graphics/title_screen/kyogre_dark.gbapal" - .incbin "graphics/title_screen/kyogre_glow.gbapal" - .else - .incbin "graphics/title_screen/groudon_dark.gbapal" - .incbin "graphics/title_screen/groudon_glow.gbapal" - .endif - - .align 2 -gUnknown_08393250:: @ 8393250 - .ifdef SAPPHIRE - .incbin "graphics/title_screen/kyogre.4bpp.lz" - .else - .incbin "graphics/title_screen/groudon.4bpp.lz" - .endif - - .align 2 -gUnknown_083939EC:: @ 83939EC - .ifdef SAPPHIRE - .incbin "graphics/title_screen/kyogre_map.bin.lz" - .else - .incbin "graphics/title_screen/groudon_map.bin.lz" - .endif - - .align 2 -gUnknown_08393BF8:: @ 8393BF8 - .ifdef SAPPHIRE - .incbin "graphics/title_screen/water_map.bin.lz" - .else - .incbin "graphics/title_screen/lava_map.bin.lz" - .endif - - .align 2 -LogoShineTiles: @ 8393D14 - .incbin "graphics/title_screen/logo_shine.4bpp.lz" - - .align 1 -gUnknown_08393E64:: @ 8393E64 - .2byte 0x10 - .2byte 0x110 - .2byte 0x210 - .2byte 0x310 - .2byte 0x410 - .2byte 0x510 - .2byte 0x610 - .2byte 0x710 - .2byte 0x810 - .2byte 0x910 - .2byte 0xA10 - .2byte 0xB10 - .2byte 0xC10 - .2byte 0xD10 - .2byte 0xE10 - .2byte 0xF10 - .2byte 0x100F - .2byte 0x100E - .2byte 0x100D - .2byte 0x100C - .2byte 0x100B - .2byte 0x100A - .2byte 0x1009 - .2byte 0x1008 - .2byte 0x1007 - .2byte 0x1006 - .2byte 0x1005 - .2byte 0x1004 - .2byte 0x1003 - .2byte 0x1002 - .2byte 0x1001 - .2byte 0x1000 - - .align 2 -gOamData_8393EA4:: @ 8393EA4 - .2byte 0x60A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_8393EAC:: @ 8393EAC - .2byte 0x60A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_8393EB4:: @ 8393EB4 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393EBC:: @ 8393EBC - obj_image_anim_frame 64, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8393EC4:: @ 8393EC4 - .4byte gSpriteAnim_8393EB4 - - .align 2 -gSpriteAnimTable_8393EC8:: @ 8393EC8 - .4byte gSpriteAnim_8393EBC - - .align 2 -gSpriteTemplate_8393ECC:: @ 8393ECC - spr_template 1000, 1000, gOamData_8393EA4, gSpriteAnimTable_8393EC4, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerLeft - - .align 2 -gSpriteTemplate_8393EE4:: @ 8393EE4 - spr_template 1000, 1000, gOamData_8393EAC, gSpriteAnimTable_8393EC8, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerRight - - .align 2 -gUnknown_08393EFC:: @ 8393EFC - obj_tiles gVersionTiles, 0x1000, 1000 - null_obj_tiles - - .align 2 -gOamData_8393F0C:: @ 8393F0C - .2byte 0x40A0 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_8393F14:: @ 8393F14 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F1C:: @ 8393F1C - obj_image_anim_frame 4, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F24:: @ 8393F24 - obj_image_anim_frame 8, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F2C:: @ 8393F2C - obj_image_anim_frame 12, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F34:: @ 8393F34 - obj_image_anim_frame 16, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F3C:: @ 8393F3C - obj_image_anim_frame 20, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F44:: @ 8393F44 - obj_image_anim_frame 24, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_8393F4C:: @ 8393F4C - obj_image_anim_frame 28, 4 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8393F54:: @ 8393F54 - .4byte gSpriteAnim_8393F14 - .4byte gSpriteAnim_8393F1C - .4byte gSpriteAnim_8393F24 - .4byte gSpriteAnim_8393F2C - .4byte gSpriteAnim_8393F34 - .4byte gSpriteAnim_8393F3C - .4byte gSpriteAnim_8393F44 - .4byte gSpriteAnim_8393F4C - - .align 2 -gSpriteTemplate_8393F74:: @ 8393F74 - spr_template 1001, 1001, gOamData_8393F0C, gSpriteAnimTable_8393F54, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PressStartCopyrightBanner - - .align 2 -gUnknown_08393F8C:: @ 8393F8C - obj_tiles gTitleScreenPressStart_Gfx, 0x520, 1001 - null_obj_tiles - - .align 2 -gUnknown_08393F9C:: @ 8393F9C - obj_pal gTitleScreenLogoShinePalette, 1001 - obj_pal 0x0, 0x0 - - .align 2 -gOamData_8393FAC:: @ 8393FAC - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_8393FB4:: @ 8393FB4 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8393FBC:: @ 8393FBC - .4byte gSpriteAnim_8393FB4 - - .align 2 -gSpriteTemplate_8393FC0:: @ 8393FC0 - spr_template 1002, 1001, gOamData_8393FAC, gSpriteAnimTable_8393FBC, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PokemonLogoShine - - .align 2 -gUnknown_08393FD8:: @ 8393FD8 - obj_tiles LogoShineTiles, 0x800, 1002 - null_obj_tiles diff --git a/data/trainer_eye_trainers.inc b/data/trainer_eye_trainers.inc deleted file mode 100644 index 3628ea598..000000000 --- a/data/trainer_eye_trainers.inc +++ /dev/null @@ -1,58 +0,0 @@ - .align 2 -gTrainerEyeTrainers:: @ 839AE70 - trainer_eye_trainer ROSE_1, ROSE_2, ROSE_3, ROSE_4, ROSE_5, Route118 - trainer_eye_trainer DUSTY_1, DUSTY_2, DUSTY_3, DUSTY_4, DUSTY_5, Route111 - trainer_eye_trainer LOLA_1, LOLA_2, LOLA_3, LOLA_4, LOLA_5, Route109 - trainer_eye_trainer RICKY_1, RICKY_2, RICKY_3, RICKY_4, RICKY_5, Route109 - trainer_eye_trainer RITA_AND_SAM_1, RITA_AND_SAM_2, RITA_AND_SAM_3, RITA_AND_SAM_4, RITA_AND_SAM_5, Route124 - trainer_eye_trainer BROOKE_1, BROOKE_2, BROOKE_3, BROOKE_4, BROOKE_5, Route111 - trainer_eye_trainer WILTON_1, WILTON_2, WILTON_3, WILTON_4, WILTON_5, Route111 - trainer_eye_trainer VALERIE_1, VALERIE_2, VALERIE_3, VALERIE_4, VALERIE_5, MtPyre_6F - trainer_eye_trainer CINDY_1, CINDY_3, CINDY_4, CINDY_5, CINDY_6, Route104 - trainer_eye_trainer JESSICA_1, JESSICA_2, JESSICA_3, JESSICA_4, JESSICA_5, Route121 - trainer_eye_trainer WINSTON_1, WINSTON_2, WINSTON_3, WINSTON_4, WINSTON_5, Route104 - trainer_eye_trainer STEVE_1, STEVE_2, STEVE_3, STEVE_4, STEVE_5, Route114 - trainer_eye_trainer TONY_1, TONY_2, TONY_3, TONY_4, TONY_5, Route107 - trainer_eye_trainer NOB_1, NOB_2, NOB_3, NOB_4, NOB_5, Route115 - trainer_eye_trainer DALTON_1, DALTON_2, DALTON_3, DALTON_4, DALTON_5, Route118 - trainer_eye_trainer BERNIE_1, BERNIE_2, BERNIE_3, BERNIE_4, BERNIE_5, Route114 - trainer_eye_trainer ETHAN_1, ETHAN_2, ETHAN_3, ETHAN_4, ETHAN_5, JaggedPass - trainer_eye_trainer JOHN_AND_JAY_1, JOHN_AND_JAY_2, JOHN_AND_JAY_3, JOHN_AND_JAY_4, JOHN_AND_JAY_5, MeteorFalls_1F_2R - trainer_eye_trainer BRANDON_1, BRANDON_2, BRANDON_3, BRANDON_4, BRANDON_5, Route120 - trainer_eye_trainer CAMERON_1, CAMERON_2, CAMERON_3, CAMERON_4, CAMERON_5, Route123 - trainer_eye_trainer JACKI_1, JACKI_2, JACKI_3, JACKI_4, JACKI_5, Route123 - trainer_eye_trainer WALTER_1, WALTER_2, WALTER_3, WALTER_4, WALTER_5, Route121 - trainer_eye_trainer KAREN_1, KAREN_2, KAREN_3, KAREN_4, KAREN_5, Route116 - trainer_eye_trainer JERRY_1, JERRY_2, JERRY_3, JERRY_4, JERRY_5, Route116 - trainer_eye_trainer ANNA_AND_MEG_1, ANNA_AND_MEG_2, ANNA_AND_MEG_3, ANNA_AND_MEG_4, ANNA_AND_MEG_5, Route117 - trainer_eye_trainer ISABEL_1, ISABEL_2, ISABEL_3, ISABEL_4, ISABEL_5, Route110 - trainer_eye_trainer MIGUEL_1, MIGUEL_2, MIGUEL_3, MIGUEL_4, MIGUEL_5, Route103 - trainer_eye_trainer TIMOTHY_1, TIMOTHY_2, TIMOTHY_3, TIMOTHY_4, TIMOTHY_5, Route115 - trainer_eye_trainer SHELBY_1, SHELBY_2, SHELBY_3, SHELBY_4, SHELBY_5, MtChimney - trainer_eye_trainer CALVIN_1, CALVIN_2, CALVIN_3, CALVIN_4, CALVIN_5, Route102 - trainer_eye_trainer ELLIOT_1, ELLIOT_2, ELLIOT_3, ELLIOT_4, ELLIOT_5, Route106 - trainer_eye_trainer ABIGAIL_1, ABIGAIL_2, ABIGAIL_3, ABIGAIL_4, ABIGAIL_5, Route110 - trainer_eye_trainer BENJAMIN_1, BENJAMIN_2, BENJAMIN_3, BENJAMIN_4, BENJAMIN_5, Route110 - trainer_eye_trainer ISAIAH_1, ISAIAH_2, ISAIAH_3, ISAIAH_4, ISAIAH_5, Route128 - trainer_eye_trainer KATELYN_1, KATELYN_2, KATELYN_3, KATELYN_4, KATELYN_5, Route128 - trainer_eye_trainer MARIA_1, MARIA_2, MARIA_3, MARIA_4, MARIA_5, Route117 - trainer_eye_trainer DYLAN_1, DYLAN_2, DYLAN_3, DYLAN_4, DYLAN_5, Route117 - trainer_eye_trainer NICOLAS_1, NICOLAS_2, NICOLAS_3, NICOLAS_4, NICOLAS_5, MeteorFalls_1F_2R - trainer_eye_trainer ROBERT_1, ROBERT_2, ROBERT_3, ROBERT_4, ROBERT_5, Route120 - trainer_eye_trainer LAO_1, LAO_2, LAO_3, LAO_4, LAO_5, Route113 - trainer_eye_trainer CYNDY_1, CYNDY_2, CYNDY_3, CYNDY_4, CYNDY_5, Route115 - trainer_eye_trainer MADELINE_1, MADELINE_2, MADELINE_3, MADELINE_4, MADELINE_5, Route113 - trainer_eye_trainer JENNY_1, JENNY_2, JENNY_3, JENNY_4, JENNY_5, Route124 - trainer_eye_trainer DIANA_1, DIANA_2, DIANA_3, DIANA_4, DIANA_5, JaggedPass - trainer_eye_trainer AMY_AND_LIV_1, AMY_AND_LIV_2, AMY_AND_LIV_4, AMY_AND_LIV_5, AMY_AND_LIV_6, Route103 - trainer_eye_trainer ERNEST_1, ERNEST_2, ERNEST_3, ERNEST_4, ERNEST_5, Route125 - trainer_eye_trainer EDWIN_1, EDWIN_2, EDWIN_3, EDWIN_4, EDWIN_5, Route110 - trainer_eye_trainer LYDIA_1, LYDIA_2, LYDIA_3, LYDIA_4, LYDIA_5, Route117 - trainer_eye_trainer ISAAC_1, ISAAC_2, ISAAC_3, ISAAC_4, ISAAC_5, Route117 - trainer_eye_trainer CATHERINE_1, CATHERINE_2, CATHERINE_3, CATHERINE_4, CATHERINE_5, Route119 - trainer_eye_trainer JACKSON_1, JACKSON_2, JACKSON_3, JACKSON_4, JACKSON_5, Route119 - trainer_eye_trainer HALEY_1, HALEY_2, HALEY_3, HALEY_4, HALEY_5, Route104 - trainer_eye_trainer JAMES_1, JAMES_2, JAMES_3, JAMES_4, JAMES_5, PetalburgWoods - trainer_eye_trainer TRENT_1, TRENT_2, TRENT_3, TRENT_4, TRENT_5, Route112 - trainer_eye_trainer LOIS_AND_HAL_1, LOIS_AND_HAL_2, LOIS_AND_HAL_3, LOIS_AND_HAL_4, LOIS_AND_HAL_5, AbandonedShip_Rooms2_1F - trainer_eye_trainer WALLY_3, WALLY_4, WALLY_5, WALLY_6, NONE, VictoryRoad_1F diff --git a/data/wallclock.s b/data/wallclock.s deleted file mode 100644 index 15ab36097..000000000 --- a/data/wallclock.s +++ /dev/null @@ -1,86 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -ClockGfx_Misc: @ 83F7814 - .incbin "graphics/misc/clock_misc.4bpp.lz" - - .align 2 -gUnknown_083F7A90:: @ 83F7A90 - obj_tiles ClockGfx_Misc, 0x2000, 0x1000 - .space 8 - - .align 2 -gUnknown_083F7AA0:: @ 83F7AA0 - obj_pal gMiscClockMale_Pal, 0x1000 - obj_pal gMiscClockFemale_Pal, 0x1001 - .space 8 - - .align 2 -gOamData_83F7AB8:: @ 83F7AB8 - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_83F7AC0:: @ 83F7AC0 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F7AC8:: @ 83F7AC8 - obj_image_anim_frame 64, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83F7AD0:: @ 83F7AD0 - .4byte gSpriteAnim_83F7AC0 - - .align 2 -gSpriteAnimTable_83F7AD4:: @ 83F7AD4 - .4byte gSpriteAnim_83F7AC8 - - .align 2 -gSpriteTemplate_83F7AD8:: @ 83F7AD8 - spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD0, NULL, gDummySpriteAffineAnimTable, sub_810B05C - - .align 2 -gSpriteTemplate_83F7AF0:: @ 83F7AF0 - spr_template 4096, 4096, gOamData_83F7AB8, gSpriteAnimTable_83F7AD4, NULL, gDummySpriteAffineAnimTable, sub_810B0F4 - - .align 2 -gOamData_83F7B08:: @ 83F7B08 - .2byte 0x00A0 - .2byte 0x4000 - .2byte 0x0800 - - .align 2 -gSpriteAnim_83F7B10:: @ 83F7B10 - obj_image_anim_frame 132, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83F7B18:: @ 83F7B18 - obj_image_anim_frame 128, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83F7B20:: @ 83F7B20 - .4byte gSpriteAnim_83F7B10 - - .align 2 -gSpriteAnimTable_83F7B24:: @ 83F7B24 - .4byte gSpriteAnim_83F7B18 - - .align 2 -gSpriteTemplate_83F7B28:: @ 83F7B28 - spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B20, NULL, gDummySpriteAffineAnimTable, sub_810B18C - - .align 2 -gSpriteTemplate_83F7B40:: @ 83F7B40 - spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B24, NULL, gDummySpriteAffineAnimTable, sub_810B230 - -@ 83F7B58 - .include "data/clock_hand_coords.inc" diff --git a/data/wild_mons.inc b/data/wild_mons.inc index b30bc847d..01ebd8a16 100644 --- a/data/wild_mons.inc +++ b/data/wild_mons.inc @@ -1,3104 +1,3 @@ - .macro wild_mon_difference species1, species2 - .ifdef SAPPHIRE - .equiv SPECIES_\species1\()_\species2, SPECIES_\species2 - .equiv SPECIES_\species2\()_\species1, SPECIES_\species1 - .else - .equiv SPECIES_\species1\()_\species2, SPECIES_\species1 - .equiv SPECIES_\species2\()_\species1, SPECIES_\species2 - .endif - .endm - - wild_mon_difference SEEDOT, LOTAD - wild_mon_difference NUZLEAF, LOMBRE - wild_mon_difference MAWILE, SABLEYE - wild_mon_difference ZANGOOSE, SEVIPER - wild_mon_difference SOLROCK, LUNATONE - wild_mon_difference DUSKULL, SHUPPET - wild_mon_difference DUSCLOPS, BANETTE - wild_mon_difference KOFFING, GRIMER - wild_mon_difference MINUN, PLUSLE - wild_mon_difference ILLUMISE, VOLBEAT - - .align 2 -PetalburgCity_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon MARILL, 5, 10 - - .align 2 -PetalburgCity_WaterMonsInfo: - .4byte 1 @ encounter rate - .4byte PetalburgCity_WaterMons - - .align 2 -PetalburgCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 - - .align 2 -PetalburgCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte PetalburgCity_FishingMons - - .align 2 -SlateportCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -SlateportCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SlateportCity_WaterMons - - .align 2 -SlateportCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SlateportCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SlateportCity_FishingMons - - .align 2 -LilycoveCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -LilycoveCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte LilycoveCity_WaterMons - - .align 2 -LilycoveCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon STARYU, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -LilycoveCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte LilycoveCity_FishingMons - - .align 2 -MossdeepCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -MossdeepCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MossdeepCity_WaterMons - - .align 2 -MossdeepCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -MossdeepCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte MossdeepCity_FishingMons - - .align 2 -SootopolisCity_WaterMons: - wild_mon MAGIKARP, 5, 35 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 15, 25 - wild_mon MAGIKARP, 25, 30 - wild_mon MAGIKARP, 25, 30 - - .align 2 -SootopolisCity_WaterMonsInfo: - .4byte 1 @ encounter rate - .4byte SootopolisCity_WaterMons - - .align 2 -SootopolisCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - .ifdef SAPPHIRE - wild_mon TENTACOOL, 5, 10 - .else - wild_mon MAGIKARP, 10, 15 - .endif - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 30, 35 - wild_mon MAGIKARP, 30, 35 - wild_mon GYARADOS, 35, 40 - wild_mon GYARADOS, 35, 45 - wild_mon GYARADOS, 5, 45 - - .align 2 -SootopolisCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SootopolisCity_FishingMons - - .align 2 -EverGrandeCity_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -EverGrandeCity_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte EverGrandeCity_WaterMons - - .align 2 -EverGrandeCity_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon LUVDISC, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon LUVDISC, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon CORSOLA, 30, 35 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -EverGrandeCity_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte EverGrandeCity_FishingMons - - .align 2 -MeteorFalls_1F_1R_LandMons: - wild_mon ZUBAT, 16 - wild_mon ZUBAT, 17 - wild_mon ZUBAT, 18 - wild_mon ZUBAT, 15 - wild_mon ZUBAT, 14 - wild_mon SOLROCK_LUNATONE, 16 - wild_mon SOLROCK_LUNATONE, 18 - wild_mon SOLROCK_LUNATONE, 14 - wild_mon ZUBAT, 19 - wild_mon ZUBAT, 20 - wild_mon ZUBAT, 19 - wild_mon ZUBAT, 20 - - .align 2 -MeteorFalls_1F_1R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_1F_1R_LandMons - - .align 2 -MeteorFalls_1F_1R_WaterMons: - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_1F_1R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_1F_1R_WaterMons - - .align 2 -MeteorFalls_1F_1R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -MeteorFalls_1F_1R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_1F_1R_FishingMons - - .align 2 -MeteorFalls_1F_2R_LandMons: - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK_LUNATONE, 35 - wild_mon SOLROCK_LUNATONE, 33 - wild_mon SOLROCK_LUNATONE, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK_LUNATONE, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - - .align 2 -MeteorFalls_1F_2R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_1F_2R_LandMons - - .align 2 -MeteorFalls_1F_2R_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_1F_2R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_1F_2R_WaterMons - - .align 2 -MeteorFalls_1F_2R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -MeteorFalls_1F_2R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_1F_2R_FishingMons - - .align 2 -MeteorFalls_B1F_1R_LandMons: - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK_LUNATONE, 35 - wild_mon SOLROCK_LUNATONE, 33 - wild_mon SOLROCK_LUNATONE, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK_LUNATONE, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - - .align 2 -MeteorFalls_B1F_1R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_B1F_1R_LandMons - - .align 2 -MeteorFalls_B1F_1R_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_B1F_1R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_B1F_1R_WaterMons - - .align 2 -MeteorFalls_B1F_1R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -MeteorFalls_B1F_1R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_B1F_1R_FishingMons - - .align 2 -MeteorFalls_B1F_2R_LandMons: - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon BAGON, 30 - wild_mon SOLROCK_LUNATONE, 35 - wild_mon BAGON, 35 - wild_mon SOLROCK_LUNATONE, 37 - wild_mon BAGON, 25 - wild_mon SOLROCK_LUNATONE, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - - .align 2 -MeteorFalls_B1F_2R_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MeteorFalls_B1F_2R_LandMons - - .align 2 -MeteorFalls_B1F_2R_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK_LUNATONE, 25, 35 - wild_mon SOLROCK_LUNATONE, 15, 25 - wild_mon SOLROCK_LUNATONE, 5, 15 - - .align 2 -MeteorFalls_B1F_2R_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte MeteorFalls_B1F_2R_WaterMons - - .align 2 -MeteorFalls_B1F_2R_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -MeteorFalls_B1F_2R_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte MeteorFalls_B1F_2R_FishingMons - - .align 2 -RusturfTunnel_LandMons: - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - - .align 2 -RusturfTunnel_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte RusturfTunnel_LandMons - - .align 2 -GraniteCave_1F_LandMons: - wild_mon ZUBAT, 7 - wild_mon MAKUHITA, 8 - wild_mon MAKUHITA, 7 - wild_mon ZUBAT, 8 - wild_mon MAKUHITA, 9 - wild_mon ABRA, 8 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 6 - wild_mon GEODUDE, 7 - wild_mon GEODUDE, 8 - wild_mon GEODUDE, 6 - wild_mon GEODUDE, 9 - - .align 2 -GraniteCave_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_1F_LandMons - - .align 2 -GraniteCave_B1F_LandMons: - wild_mon ZUBAT, 9 - wild_mon ARON, 10 - wild_mon ARON, 9 - wild_mon ARON, 11 - wild_mon ZUBAT, 10 - wild_mon ABRA, 9 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 11 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 9 - wild_mon MAWILE_SABLEYE, 11 - - .align 2 -GraniteCave_B1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_B1F_LandMons - - .align 2 -GraniteCave_B2F_LandMons: - wild_mon ZUBAT, 10 - wild_mon ARON, 11 - wild_mon ARON, 10 - wild_mon ZUBAT, 11 - wild_mon ARON, 12 - wild_mon ABRA, 10 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 11 - wild_mon MAWILE_SABLEYE, 12 - wild_mon MAWILE_SABLEYE, 10 - wild_mon MAWILE_SABLEYE, 12 - wild_mon MAWILE_SABLEYE, 10 - - .align 2 -GraniteCave_B2F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_B2F_LandMons - - .align 2 -GraniteCave_B2F_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon NOSEPASS, 10, 20 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - - .align 2 -GraniteCave_B2F_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte GraniteCave_B2F_RockSmashMons - - .align 2 -GraniteCave_StevensRoom_LandMons: - wild_mon ZUBAT, 7 - wild_mon MAKUHITA, 8 - wild_mon MAKUHITA, 7 - wild_mon ZUBAT, 8 - wild_mon MAKUHITA, 9 - wild_mon ABRA, 8 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 6 - wild_mon ARON, 7 - wild_mon ARON, 8 - wild_mon ARON, 7 - wild_mon ARON, 8 - - .align 2 -GraniteCave_StevensRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte GraniteCave_StevensRoom_LandMons - - .align 2 -PetalburgWoods_LandMons: - wild_mon ZIGZAGOON, 5 - wild_mon WURMPLE, 5 - wild_mon SHROOMISH, 5 - wild_mon ZIGZAGOON, 6 - wild_mon SILCOON, 5 - wild_mon CASCOON, 5 - wild_mon WURMPLE, 6 - wild_mon SHROOMISH, 6 - wild_mon TAILLOW, 5 - wild_mon SLAKOTH, 5 - wild_mon TAILLOW, 6 - wild_mon SLAKOTH, 6 - - .align 2 -PetalburgWoods_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte PetalburgWoods_LandMons - - .ifdef SAPPHIRE - .equiv JAGGED_PASS_LEVEL_DIFF, 2 - .else - .equiv JAGGED_PASS_LEVEL_DIFF, 0 - .endif - - .align 2 -JaggedPass_LandMons: - wild_mon NUMEL, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon MACHOP, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 18 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 18 + JAGGED_PASS_LEVEL_DIFF - wild_mon MACHOP, 18 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 19 + JAGGED_PASS_LEVEL_DIFF - wild_mon MACHOP, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon NUMEL, 20 + JAGGED_PASS_LEVEL_DIFF - wild_mon SPOINK, 20 + JAGGED_PASS_LEVEL_DIFF - - .align 2 -JaggedPass_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte JaggedPass_LandMons - - .align 2 -FieryPath_LandMons: - wild_mon NUMEL, 15 - wild_mon KOFFING_GRIMER, 15 - wild_mon NUMEL, 16 - wild_mon MACHOP, 15 - wild_mon TORKOAL, 15 - wild_mon SLUGMA, 15 - wild_mon KOFFING_GRIMER, 16 - wild_mon MACHOP, 16 - wild_mon TORKOAL, 14 - wild_mon TORKOAL, 16 - wild_mon GRIMER_KOFFING, 14 - wild_mon GRIMER_KOFFING, 14 - - .align 2 -FieryPath_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte FieryPath_LandMons - - .align 2 -MtPyre_1F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - - .align 2 -MtPyre_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_1F_LandMons - - .align 2 -MtPyre_2F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - - .align 2 -MtPyre_2F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_2F_LandMons - - .align 2 -MtPyre_3F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - - .align 2 -MtPyre_3F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_3F_LandMons - - .align 2 -MtPyre_4F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 25 - wild_mon SHUPPET_DUSKULL, 29 - - .align 2 -MtPyre_4F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_4F_LandMons - - .align 2 -MtPyre_5F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 25 - wild_mon SHUPPET_DUSKULL, 29 - - .align 2 -MtPyre_5F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_5F_LandMons - - .align 2 -MtPyre_6F_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon DUSKULL_SHUPPET, 23 - wild_mon DUSKULL_SHUPPET, 22 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 27 - wild_mon SHUPPET_DUSKULL, 25 - wild_mon SHUPPET_DUSKULL, 29 - - .align 2 -MtPyre_6F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_6F_LandMons - - .align 2 -MtPyre_Exterior_LandMons: - wild_mon DUSKULL_SHUPPET, 27 - wild_mon MEDITITE, 27 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon MEDITITE, 29 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon VULPIX, 27 - wild_mon VULPIX, 29 - wild_mon VULPIX, 25 - wild_mon WINGULL, 27 - wild_mon WINGULL, 27 - wild_mon WINGULL, 26 - wild_mon WINGULL, 28 - - .align 2 -MtPyre_Exterior_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_Exterior_LandMons - - .align 2 -MtPyre_Summit_LandMons: - wild_mon DUSKULL_SHUPPET, 28 - wild_mon DUSKULL_SHUPPET, 29 - wild_mon DUSKULL_SHUPPET, 27 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon DUSKULL_SHUPPET, 30 - wild_mon DUSKULL_SHUPPET, 25 - wild_mon DUSKULL_SHUPPET, 24 - wild_mon SHUPPET_DUSKULL, 28 - wild_mon SHUPPET_DUSKULL, 26 - wild_mon SHUPPET_DUSKULL, 30 - wild_mon CHIMECHO, 28 - wild_mon CHIMECHO, 28 - - .align 2 -MtPyre_Summit_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte MtPyre_Summit_LandMons - - .align 2 -SeafloorCavern_Entrance_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - - .align 2 -SeafloorCavern_Entrance_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Entrance_WaterMons - - .align 2 -SeafloorCavern_Entrance_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SeafloorCavern_Entrance_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SeafloorCavern_Entrance_FishingMons - - .align 2 -SeafloorCavern_Room1_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room1_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room1_LandMons - - .align 2 -SeafloorCavern_Room2_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room2_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room2_LandMons - - .align 2 -SeafloorCavern_Room3_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room3_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room3_LandMons - - .align 2 -SeafloorCavern_Room4_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room4_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room4_LandMons - - .align 2 -SeafloorCavern_Room5_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room5_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room5_LandMons - - .align 2 -SeafloorCavern_Room6_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room6_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room6_LandMons - - .align 2 -SeafloorCavern_Room6_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - - .align 2 -SeafloorCavern_Room6_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room6_WaterMons - - .align 2 -SeafloorCavern_Room6_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SeafloorCavern_Room6_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SeafloorCavern_Room6_FishingMons - - .align 2 -SeafloorCavern_Room7_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room7_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room7_LandMons - - .align 2 -SeafloorCavern_Room7_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - - .align 2 -SeafloorCavern_Room7_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room7_WaterMons - - .align 2 -SeafloorCavern_Room7_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -SeafloorCavern_Room7_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte SeafloorCavern_Room7_FishingMons - - .align 2 -SeafloorCavern_Room8_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -SeafloorCavern_Room8_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte SeafloorCavern_Room8_LandMons - - .align 2 -CaveOfOrigin_Entrance_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_Entrance_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_Entrance_LandMons - - .align 2 -CaveOfOrigin_1F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_1F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_1F_LandMons - - .align 2 -CaveOfOrigin_B1F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_B1F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_B1F_LandMons - - .align 2 -CaveOfOrigin_B2F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_B2F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_B2F_LandMons - - .align 2 -CaveOfOrigin_B3F_LandMons: - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon MAWILE_SABLEYE, 30 - wild_mon MAWILE_SABLEYE, 32 - wild_mon MAWILE_SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 - - .align 2 -CaveOfOrigin_B3F_LandMonsInfo: - .4byte 4 @ encounter rate - .4byte CaveOfOrigin_B3F_LandMons - - .align 2 -VictoryRoad_1F_LandMons: - wild_mon GOLBAT, 40 - wild_mon HARIYAMA, 40 - wild_mon LAIRON, 40 - wild_mon LOUDRED, 40 - wild_mon ZUBAT, 36 - wild_mon MAKUHITA, 36 - wild_mon GOLBAT, 38 - wild_mon HARIYAMA, 38 - wild_mon ARON, 36 - wild_mon WHISMUR, 36 - wild_mon ARON, 36 - wild_mon WHISMUR, 36 - - .align 2 -VictoryRoad_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte VictoryRoad_1F_LandMons - - .align 2 -VictoryRoad_B1F_LandMons: - wild_mon GOLBAT, 40 - wild_mon HARIYAMA, 40 - wild_mon LAIRON, 40 - wild_mon MEDICHAM, 40 - wild_mon GOLBAT, 38 - wild_mon HARIYAMA, 38 - wild_mon GOLBAT, 42 - wild_mon HARIYAMA, 42 - wild_mon LAIRON, 42 - wild_mon MEDITITE, 38 - wild_mon LAIRON, 42 - wild_mon MEDITITE, 38 - - .align 2 -VictoryRoad_B1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte VictoryRoad_B1F_LandMons - - .align 2 -VictoryRoad_B1F_RockSmashMons: - wild_mon GRAVELER, 30, 40 - wild_mon GEODUDE, 30, 40 - wild_mon GRAVELER, 35, 40 - wild_mon GRAVELER, 35, 40 - wild_mon GRAVELER, 35, 40 - - .align 2 -VictoryRoad_B1F_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte VictoryRoad_B1F_RockSmashMons - - .align 2 -VictoryRoad_B2F_LandMons: - wild_mon GOLBAT, 40 - wild_mon MAWILE_SABLEYE, 40 - wild_mon LAIRON, 40 - wild_mon MEDICHAM, 40 - wild_mon GOLBAT, 42 - wild_mon MAWILE_SABLEYE, 42 - wild_mon GOLBAT, 44 - wild_mon MAWILE_SABLEYE, 44 - wild_mon LAIRON, 42 - wild_mon MEDICHAM, 42 - wild_mon LAIRON, 44 - wild_mon MEDICHAM, 44 - - .align 2 -VictoryRoad_B2F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte VictoryRoad_B2F_LandMons - - .align 2 -VictoryRoad_B2F_WaterMons: - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 25, 30 - wild_mon GOLBAT, 35, 40 - wild_mon GOLBAT, 35, 40 - wild_mon GOLBAT, 35, 40 - - .align 2 -VictoryRoad_B2F_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte VictoryRoad_B2F_WaterMons - - .align 2 -VictoryRoad_B2F_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 - - .align 2 -VictoryRoad_B2F_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte VictoryRoad_B2F_FishingMons - - .align 2 -ShoalCave_LowTideEntranceRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideEntranceRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideEntranceRoom_LandMons - - .align 2 -ShoalCave_LowTideEntranceRoom_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 35 - - .align 2 -ShoalCave_LowTideEntranceRoom_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte ShoalCave_LowTideEntranceRoom_WaterMons - - .align 2 -ShoalCave_LowTideEntranceRoom_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -ShoalCave_LowTideEntranceRoom_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideEntranceRoom_FishingMons - - .align 2 -ShoalCave_LowTideInnerRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideInnerRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideInnerRoom_LandMons - - .align 2 -ShoalCave_LowTideInnerRoom_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 35 - - .align 2 -ShoalCave_LowTideInnerRoom_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte ShoalCave_LowTideInnerRoom_WaterMons - - .align 2 -ShoalCave_LowTideInnerRoom_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -ShoalCave_LowTideInnerRoom_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideInnerRoom_FishingMons - - .align 2 -ShoalCave_LowTideStairsRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideStairsRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideStairsRoom_LandMons - - .align 2 -ShoalCave_LowTideLowerRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - - .align 2 -ShoalCave_LowTideLowerRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideLowerRoom_LandMons - - .align 2 -ShoalCave_LowTideIceRoom_LandMons: - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon SNORUNT, 26 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 30 - wild_mon SNORUNT, 28 - wild_mon GOLBAT, 32 - wild_mon SNORUNT, 30 - - .align 2 -ShoalCave_LowTideIceRoom_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte ShoalCave_LowTideIceRoom_LandMons - - .align 2 -NewMauville_Entrance_LandMons: - wild_mon VOLTORB, 24 - wild_mon MAGNEMITE, 24 - wild_mon VOLTORB, 25 - wild_mon MAGNEMITE, 25 - wild_mon VOLTORB, 23 - wild_mon MAGNEMITE, 23 - wild_mon VOLTORB, 26 - wild_mon MAGNEMITE, 26 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - - .align 2 -NewMauville_Entrance_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte NewMauville_Entrance_LandMons - - .align 2 -NewMauville_Inside_LandMons: - wild_mon VOLTORB, 24 - wild_mon MAGNEMITE, 24 - wild_mon VOLTORB, 25 - wild_mon MAGNEMITE, 25 - wild_mon VOLTORB, 23 - wild_mon MAGNEMITE, 23 - wild_mon VOLTORB, 26 - wild_mon MAGNEMITE, 26 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - wild_mon ELECTRODE, 26 - wild_mon MAGNETON, 26 - - .align 2 -NewMauville_Inside_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte NewMauville_Inside_LandMons - - .align 2 -AbandonedShip_Rooms_B1F_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACRUEL, 30, 35 - - .align 2 -AbandonedShip_Rooms_B1F_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte AbandonedShip_Rooms_B1F_WaterMons - - .align 2 -AbandonedShip_Rooms_B1F_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 25, 30 - wild_mon TENTACOOL, 30, 35 - wild_mon TENTACRUEL, 30, 35 - wild_mon TENTACRUEL, 25, 30 - wild_mon TENTACRUEL, 20, 25 - - .align 2 -AbandonedShip_Rooms_B1F_FishingMonsInfo: - .4byte 20 @ encounter rate - .4byte AbandonedShip_Rooms_B1F_FishingMons - - .align 2 -AbandonedShip_HiddenFloorCorridors_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACRUEL, 30, 35 - - .align 2 -AbandonedShip_HiddenFloorCorridors_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte AbandonedShip_HiddenFloorCorridors_WaterMons - - .align 2 -AbandonedShip_HiddenFloorCorridors_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 25, 30 - wild_mon TENTACOOL, 30, 35 - wild_mon TENTACRUEL, 30, 35 - wild_mon TENTACRUEL, 25, 30 - wild_mon TENTACRUEL, 20, 25 - - .align 2 -AbandonedShip_HiddenFloorCorridors_FishingMonsInfo: - .4byte 20 @ encounter rate - .4byte AbandonedShip_HiddenFloorCorridors_FishingMons - - .align 2 -SkyPillar_1F_LandMons: - wild_mon MAWILE_SABLEYE, 48 - wild_mon GOLBAT, 48 - wild_mon GOLBAT, 50 - wild_mon MAWILE_SABLEYE, 50 - wild_mon CLAYDOL, 48 - wild_mon DUSCLOPS_BANETTE, 48 - wild_mon DUSCLOPS_BANETTE, 50 - wild_mon CLAYDOL, 49 - wild_mon CLAYDOL, 47 - wild_mon CLAYDOL, 50 - wild_mon CLAYDOL, 47 - wild_mon CLAYDOL, 50 - - .align 2 -SkyPillar_1F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte SkyPillar_1F_LandMons - - .align 2 -SkyPillar_3F_LandMons: - wild_mon MAWILE_SABLEYE, 51 - wild_mon GOLBAT, 51 - wild_mon GOLBAT, 53 - wild_mon MAWILE_SABLEYE, 53 - wild_mon CLAYDOL, 51 - wild_mon DUSCLOPS_BANETTE, 51 - wild_mon DUSCLOPS_BANETTE, 53 - wild_mon CLAYDOL, 52 - wild_mon CLAYDOL, 50 - wild_mon CLAYDOL, 53 - wild_mon CLAYDOL, 50 - wild_mon CLAYDOL, 53 - - .align 2 -SkyPillar_3F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte SkyPillar_3F_LandMons - - .align 2 -SkyPillar_5F_LandMons: - wild_mon MAWILE_SABLEYE, 54 - wild_mon GOLBAT, 54 - wild_mon GOLBAT, 56 - wild_mon MAWILE_SABLEYE, 56 - wild_mon CLAYDOL, 54 - wild_mon DUSCLOPS_BANETTE, 54 - wild_mon DUSCLOPS_BANETTE, 56 - wild_mon CLAYDOL, 55 - wild_mon CLAYDOL, 56 - wild_mon ALTARIA, 57 - wild_mon ALTARIA, 54 - wild_mon ALTARIA, 60 - - .align 2 -SkyPillar_5F_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte SkyPillar_5F_LandMons - - .align 2 -Route101_LandMons: - wild_mon WURMPLE, 2 - wild_mon ZIGZAGOON, 2 - wild_mon WURMPLE, 2 - wild_mon WURMPLE, 3 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 - wild_mon WURMPLE, 3 - wild_mon ZIGZAGOON, 3 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - - .align 2 -Route101_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route101_LandMons - - .align 2 -Route102_LandMons: - wild_mon ZIGZAGOON, 3 - wild_mon WURMPLE, 3 - wild_mon ZIGZAGOON, 4 - wild_mon WURMPLE, 4 - wild_mon SEEDOT_LOTAD, 3 - wild_mon SEEDOT_LOTAD, 4 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 4 - wild_mon RALTS, 4 - wild_mon POOCHYENA, 4 - wild_mon SURSKIT, 3 - - .align 2 -Route102_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route102_LandMons - - .align 2 -Route102_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route102_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route102_WaterMons - - .align 2 -Route102_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 - - .align 2 -Route102_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route102_FishingMons - - .align 2 -Route103_LandMons: - wild_mon ZIGZAGOON, 2 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 4 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 4 - wild_mon WINGULL, 3 - wild_mon WINGULL, 3 - wild_mon WINGULL, 2 - wild_mon WINGULL, 4 - - .align 2 -Route103_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route103_LandMons - - .align 2 -Route103_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route103_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route103_WaterMons - - .align 2 -Route103_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route103_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route103_FishingMons - - .align 2 -Route104_LandMons: - wild_mon ZIGZAGOON, 4 - wild_mon WURMPLE, 4 - wild_mon ZIGZAGOON, 5 - wild_mon WURMPLE, 5 - wild_mon ZIGZAGOON, 4 - wild_mon ZIGZAGOON, 5 - wild_mon TAILLOW, 4 - wild_mon TAILLOW, 5 - wild_mon WINGULL, 4 - wild_mon WINGULL, 4 - wild_mon WINGULL, 3 - wild_mon WINGULL, 5 - - .align 2 -Route104_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route104_LandMons - - .align 2 -Route104_WaterMons: - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route104_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route104_WaterMons - - .align 2 -Route104_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon MAGIKARP, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 25, 30 - wild_mon MAGIKARP, 30, 35 - wild_mon MAGIKARP, 20, 25 - wild_mon MAGIKARP, 35, 40 - wild_mon MAGIKARP, 40, 45 - - .align 2 -Route104_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route104_FishingMons - - .align 2 -Route105_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route105_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route105_WaterMons - - .align 2 -Route105_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route105_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route105_FishingMons - - .align 2 -Route106_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route106_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route106_WaterMons - - .align 2 -Route106_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route106_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route106_FishingMons - - .align 2 -Route107_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route107_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route107_WaterMons - - .align 2 -Route107_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route107_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route107_FishingMons - - .align 2 -Route108_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route108_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route108_WaterMons - - .align 2 -Route108_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route108_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route108_FishingMons - - .align 2 -Route109_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route109_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route109_WaterMons - - .align 2 -Route109_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route109_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route109_FishingMons - - .align 2 -Route110_LandMons: - wild_mon ZIGZAGOON, 12 - wild_mon ELECTRIKE, 12 - wild_mon GULPIN, 12 - wild_mon ELECTRIKE, 13 - wild_mon MINUN_PLUSLE, 13 - wild_mon ODDISH, 13 - wild_mon MINUN_PLUSLE, 13 - wild_mon GULPIN, 13 - wild_mon WINGULL, 12 - wild_mon WINGULL, 12 - wild_mon PLUSLE_MINUN, 12 - wild_mon PLUSLE_MINUN, 13 - - .align 2 -Route110_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route110_LandMons - - .align 2 -Route110_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route110_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route110_WaterMons - - .align 2 -Route110_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route110_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route110_FishingMons - - .align 2 -Route111_LandMons: - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon CACNEA, 19 - wild_mon CACNEA, 21 - wild_mon SANDSHREW, 19 - wild_mon TRAPINCH, 19 - wild_mon BALTOY, 20 - wild_mon BALTOY, 20 - wild_mon BALTOY, 22 - wild_mon BALTOY, 22 - - .align 2 -Route111_LandMonsInfo: - .4byte 10 @ encounter rate - .4byte Route111_LandMons - - .align 2 -Route111_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route111_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route111_WaterMons - - .align 2 -Route111_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - - .align 2 -Route111_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte Route111_RockSmashMons - - .align 2 -Route111_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -Route111_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route111_FishingMons - - .align 2 -Route112_LandMons: - wild_mon NUMEL, 15 - wild_mon NUMEL, 15 - wild_mon MACHOP, 15 - wild_mon NUMEL, 14 - wild_mon NUMEL, 14 - wild_mon MACHOP, 14 - wild_mon NUMEL, 16 - wild_mon MACHOP, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - - .align 2 -Route112_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route112_LandMons - - .align 2 -Route113_LandMons: - wild_mon SPINDA, 15 - wild_mon SPINDA, 15 - wild_mon SANDSHREW, 15 - wild_mon SPINDA, 14 - wild_mon SPINDA, 14 - wild_mon SANDSHREW, 14 - wild_mon SPINDA, 16 - wild_mon SANDSHREW, 16 - wild_mon SPINDA, 16 - wild_mon SKARMORY, 16 - wild_mon SPINDA, 16 - wild_mon SKARMORY, 16 - - .align 2 -Route113_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route113_LandMons - - .align 2 -Route114_LandMons: - wild_mon SWABLU, 16 - wild_mon SEEDOT_LOTAD, 16 - wild_mon SWABLU, 17 - wild_mon SWABLU, 15 - wild_mon SEEDOT_LOTAD, 15 - wild_mon ZANGOOSE_SEVIPER, 16 - wild_mon NUZLEAF_LOMBRE, 16 - wild_mon NUZLEAF_LOMBRE, 18 - wild_mon ZANGOOSE_SEVIPER, 17 - wild_mon ZANGOOSE_SEVIPER, 15 - wild_mon ZANGOOSE_SEVIPER, 17 - wild_mon SURSKIT, 15 - - .align 2 -Route114_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route114_LandMons - - .align 2 -Route114_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route114_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route114_WaterMons - - .align 2 -Route114_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - - .align 2 -Route114_RockSmashMonsInfo: - .4byte 20 @ encounter rate - .4byte Route114_RockSmashMons - - .align 2 -Route114_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -Route114_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route114_FishingMons - - .align 2 -Route115_LandMons: - wild_mon SWABLU, 23 - wild_mon TAILLOW, 23 - wild_mon SWABLU, 25 - wild_mon TAILLOW, 24 - wild_mon TAILLOW, 25 - wild_mon SWELLOW, 25 - wild_mon JIGGLYPUFF, 24 - wild_mon JIGGLYPUFF, 25 - wild_mon WINGULL, 24 - wild_mon WINGULL, 24 - wild_mon WINGULL, 26 - wild_mon WINGULL, 25 - - .align 2 -Route115_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route115_LandMons - - .align 2 -Route115_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route115_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route115_WaterMons - - .align 2 -Route115_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route115_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route115_FishingMons - - .align 2 -Route116_LandMons: - wild_mon ZIGZAGOON, 6 - wild_mon WHISMUR, 6 - wild_mon NINCADA, 6 - wild_mon WHISMUR, 7 - wild_mon NINCADA, 7 - wild_mon TAILLOW, 6 - wild_mon TAILLOW, 7 - wild_mon TAILLOW, 8 - wild_mon ZIGZAGOON, 7 - wild_mon ZIGZAGOON, 8 - wild_mon SKITTY, 7 - wild_mon SKITTY, 8 - - .align 2 -Route116_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route116_LandMons - - .align 2 -Route117_LandMons: - wild_mon ZIGZAGOON, 13 - wild_mon ROSELIA, 13 - wild_mon ZIGZAGOON, 14 - wild_mon ROSELIA, 14 - wild_mon MARILL, 13 - wild_mon ODDISH, 13 - wild_mon ILLUMISE_VOLBEAT, 13 - wild_mon ILLUMISE_VOLBEAT, 13 - wild_mon ILLUMISE_VOLBEAT, 14 - wild_mon ILLUMISE_VOLBEAT, 14 - wild_mon VOLBEAT_ILLUMISE, 13 - wild_mon SURSKIT, 13 - - .align 2 -Route117_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route117_LandMons - - .align 2 -Route117_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route117_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route117_WaterMons - - .align 2 -Route117_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 - - .align 2 -Route117_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route117_FishingMons - - .align 2 -Route118_LandMons: - wild_mon ZIGZAGOON, 24 - wild_mon ELECTRIKE, 24 - wild_mon ZIGZAGOON, 26 - wild_mon ELECTRIKE, 26 - wild_mon LINOONE, 26 - wild_mon MANECTRIC, 26 - wild_mon WINGULL, 25 - wild_mon WINGULL, 25 - wild_mon WINGULL, 26 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon KECLEON, 25 - - .align 2 -Route118_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route118_LandMons - - .align 2 -Route118_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route118_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route118_WaterMons - - .align 2 -Route118_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon CARVANHA, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon CARVANHA, 30, 35 - wild_mon CARVANHA, 20, 25 - wild_mon CARVANHA, 35, 40 - wild_mon CARVANHA, 40, 45 - - .align 2 -Route118_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route118_FishingMons - - .align 2 -Route119_LandMons: - wild_mon ZIGZAGOON, 25 - wild_mon LINOONE, 25 - wild_mon ZIGZAGOON, 27 - wild_mon ODDISH, 25 - wild_mon LINOONE, 27 - wild_mon ODDISH, 26 - wild_mon ODDISH, 27 - wild_mon ODDISH, 24 - wild_mon TROPIUS, 25 - wild_mon TROPIUS, 26 - wild_mon TROPIUS, 27 - wild_mon KECLEON, 25 - - .align 2 -Route119_LandMonsInfo: - .4byte 15 @ encounter rate - .4byte Route119_LandMons - - .align 2 -Route119_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route119_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route119_WaterMons - - .align 2 -Route119_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon CARVANHA, 10, 30 - wild_mon CARVANHA, 25, 30 - wild_mon CARVANHA, 30, 35 - wild_mon CARVANHA, 20, 25 - wild_mon CARVANHA, 35, 40 - wild_mon CARVANHA, 40, 45 - - .align 2 -Route119_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route119_FishingMons - - .align 2 -Route120_LandMons: - wild_mon ZIGZAGOON, 25 - wild_mon LINOONE, 25 - wild_mon LINOONE, 27 - wild_mon ODDISH, 25 - wild_mon MARILL, 25 - wild_mon ODDISH, 26 - wild_mon ODDISH, 27 - wild_mon MARILL, 27 - wild_mon ABSOL, 25 - wild_mon ABSOL, 27 - wild_mon KECLEON, 25 - wild_mon SURSKIT, 25 - - .align 2 -Route120_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route120_LandMons - - .align 2 -Route120_WaterMons: - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon SURSKIT, 20, 30 - - .align 2 -Route120_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route120_WaterMons - - .align 2 -Route120_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 - - .align 2 -Route120_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route120_FishingMons - - .align 2 -Route121_LandMons: - wild_mon ZIGZAGOON, 26 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon LINOONE, 26 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon LINOONE, 28 - wild_mon ODDISH, 26 - wild_mon ODDISH, 28 - wild_mon GLOOM, 28 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon WINGULL, 28 - wild_mon KECLEON, 25 - - .align 2 -Route121_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route121_LandMons - - .align 2 -Route121_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route121_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route121_WaterMons - - .align 2 -Route121_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route121_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route121_FishingMons - - .align 2 -Route122_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route122_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route122_WaterMons - - .align 2 -Route122_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route122_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route122_FishingMons - - .align 2 -Route123_LandMons: - wild_mon ZIGZAGOON, 26 - wild_mon DUSKULL_SHUPPET, 26 - wild_mon LINOONE, 26 - wild_mon DUSKULL_SHUPPET, 28 - wild_mon LINOONE, 28 - wild_mon ODDISH, 26 - wild_mon ODDISH, 28 - wild_mon GLOOM, 28 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon WINGULL, 28 - wild_mon KECLEON, 25 - - .align 2 -Route123_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route123_LandMons - - .align 2 -Route123_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route123_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route123_WaterMons - - .align 2 -Route123_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route123_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route123_FishingMons - - .align 2 -Route124_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route124_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route124_WaterMons - - .align 2 -Route124_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route124_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route124_FishingMons - - .align 2 -Route125_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route125_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route125_WaterMons - - .align 2 -Route125_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route125_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route125_FishingMons - - .align 2 -Route126_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route126_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route126_WaterMons - - .align 2 -Route126_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route126_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route126_FishingMons - - .align 2 -Route127_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route127_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route127_WaterMons - - .align 2 -Route127_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route127_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route127_FishingMons - - .align 2 -Route128_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route128_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route128_WaterMons - - .align 2 -Route128_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon LUVDISC, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon LUVDISC, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon CORSOLA, 30, 35 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route128_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route128_FishingMons - - .align 2 -Route129_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - .ifdef SAPPHIRE - wild_mon WAILORD, 25, 30 - .else - wild_mon WAILORD, 35, 40 - .endif - - .align 2 -Route129_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route129_WaterMons - - .align 2 -Route129_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route129_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route129_FishingMons - - .align 2 -Route130_LandMons: - wild_mon WYNAUT, 30 - wild_mon WYNAUT, 35 - wild_mon WYNAUT, 25 - wild_mon WYNAUT, 40 - wild_mon WYNAUT, 20 - wild_mon WYNAUT, 45 - wild_mon WYNAUT, 15 - wild_mon WYNAUT, 50 - wild_mon WYNAUT, 10 - wild_mon WYNAUT, 5 - wild_mon WYNAUT, 10 - wild_mon WYNAUT, 5 - - .align 2 -Route130_LandMonsInfo: - .4byte 20 @ encounter rate - .4byte Route130_LandMons - - .align 2 -Route130_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route130_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route130_WaterMons - - .align 2 -Route130_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route130_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route130_FishingMons - - .align 2 -Route131_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route131_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route131_WaterMons - - .align 2 -Route131_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route131_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route131_FishingMons - - .align 2 -Route132_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route132_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route132_WaterMons - - .align 2 -Route132_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route132_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route132_FishingMons - - .align 2 -Route133_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route133_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route133_WaterMons - - .align 2 -Route133_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route133_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route133_FishingMons - - .align 2 -Route134_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -Route134_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Route134_WaterMons - - .align 2 -Route134_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -Route134_FishingMonsInfo: - .4byte 30 @ encounter rate - .4byte Route134_FishingMons - - .align 2 -SafariZone_Northwest_LandMons: - wild_mon RHYHORN, 27 - wild_mon ODDISH, 27 - wild_mon RHYHORN, 29 - wild_mon ODDISH, 29 - wild_mon DODUO, 27 - wild_mon GLOOM, 29 - wild_mon GLOOM, 31 - wild_mon DODUO, 29 - wild_mon DODRIO, 29 - wild_mon PINSIR, 27 - wild_mon DODRIO, 31 - wild_mon PINSIR, 29 - - .align 2 -SafariZone_Northwest_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Northwest_LandMons - - .align 2 -SafariZone_Northwest_WaterMons: - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 30, 35 - wild_mon GOLDUCK, 30, 35 - wild_mon GOLDUCK, 25, 40 - - .align 2 -SafariZone_Northwest_WaterMonsInfo: - .4byte 9 @ encounter rate - .4byte SafariZone_Northwest_WaterMons - - .align 2 -SafariZone_Northwest_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 25 - wild_mon GOLDEEN, 10, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon GOLDEEN, 30, 35 - wild_mon SEAKING, 30, 35 - wild_mon SEAKING, 35, 40 - wild_mon SEAKING, 25, 30 - - .align 2 -SafariZone_Northwest_FishingMonsInfo: - .4byte 35 @ encounter rate - .4byte SafariZone_Northwest_FishingMons - - .align 2 -SafariZone_Northeast_LandMons: - wild_mon PHANPY, 27 - wild_mon ODDISH, 27 - wild_mon PHANPY, 29 - wild_mon ODDISH, 29 - wild_mon NATU, 27 - wild_mon GLOOM, 29 - wild_mon GLOOM, 31 - wild_mon NATU, 29 - wild_mon XATU, 29 - wild_mon HERACROSS, 27 - wild_mon XATU, 31 - wild_mon HERACROSS, 29 - - .align 2 -SafariZone_Northeast_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Northeast_LandMons - - .align 2 -SafariZone_Northeast_RockSmashMons: - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 20, 25 - wild_mon GEODUDE, 25, 30 - - .align 2 -SafariZone_Northeast_RockSmashMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Northeast_RockSmashMons - - .align 2 -SafariZone_Southwest_LandMons: - wild_mon ODDISH, 25 - wild_mon ODDISH, 27 - wild_mon GIRAFARIG, 25 - wild_mon GIRAFARIG, 27 - wild_mon NATU, 25 - .ifdef SAPPHIRE - wild_mon DODUO, 27 - .else - wild_mon DODUO, 25 - .endif - wild_mon GLOOM, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 27 - wild_mon WOBBUFFET, 29 - - .align 2 -SafariZone_Southwest_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Southwest_LandMons - - .align 2 -SafariZone_Southwest_WaterMons: - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 30, 35 - wild_mon PSYDUCK, 30, 35 - wild_mon PSYDUCK, 30, 35 - - .align 2 -SafariZone_Southwest_WaterMonsInfo: - .4byte 9 @ encounter rate - .4byte SafariZone_Southwest_WaterMons - - .align 2 -SafariZone_Southwest_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 25 - wild_mon GOLDEEN, 10, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon GOLDEEN, 30, 35 - wild_mon SEAKING, 30, 35 - wild_mon SEAKING, 35, 40 - wild_mon SEAKING, 25, 30 - - .align 2 -SafariZone_Southwest_FishingMonsInfo: - .4byte 35 @ encounter rate - .4byte SafariZone_Southwest_FishingMons - - .align 2 -SafariZone_Southeast_LandMons: - wild_mon ODDISH, 25 - wild_mon ODDISH, 27 - wild_mon GIRAFARIG, 25 - wild_mon GIRAFARIG, 27 - wild_mon NATU, 25 - wild_mon DODUO, 25 - wild_mon GLOOM, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 27 - wild_mon WOBBUFFET, 29 - - .align 2 -SafariZone_Southeast_LandMonsInfo: - .4byte 25 @ encounter rate - .4byte SafariZone_Southeast_LandMons - - .align 2 -DewfordTown_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -DewfordTown_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte DewfordTown_WaterMons - - .align 2 -DewfordTown_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -DewfordTown_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte DewfordTown_FishingMons - - .align 2 -PacifidlogTown_WaterMons: - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 - - .align 2 -PacifidlogTown_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte PacifidlogTown_WaterMons - - .align 2 -PacifidlogTown_FishingMons: - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 - - .align 2 -PacifidlogTown_FishingMonsInfo: - .4byte 10 @ encounter rate - .4byte PacifidlogTown_FishingMons - - .align 2 -Underwater1_WaterMons: - wild_mon CLAMPERL, 20, 30 - wild_mon CHINCHOU, 20, 30 - wild_mon CLAMPERL, 30, 35 - wild_mon RELICANTH, 30, 35 - wild_mon RELICANTH, 30, 35 - - .align 2 -Underwater1_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Underwater1_WaterMons - - .align 2 -Underwater2_WaterMons: - wild_mon CLAMPERL, 20, 30 - wild_mon CHINCHOU, 20, 30 - wild_mon CLAMPERL, 30, 35 - wild_mon RELICANTH, 30, 35 - wild_mon RELICANTH, 30, 35 - - .align 2 -Underwater2_WaterMonsInfo: - .4byte 4 @ encounter rate - .4byte Underwater2_WaterMons .align 2 gWildMonHeaders:: diff --git a/graphics/intro/unknown1.pal b/graphics/intro/unknown1.pal new file mode 100644 index 000000000..1b8ce3d6e --- /dev/null +++ b/graphics/intro/unknown1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +8 57 8 +32 74 32 +57 98 57 +90 123 90 +115 139 115 +139 164 139 +172 189 172 +197 205 197 +222 230 222 +255 255 255 diff --git a/graphics/intro/unknown2.pal b/graphics/intro/unknown2.pal new file mode 100644 index 000000000..aef9152e4 --- /dev/null +++ b/graphics/intro/unknown2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +156 246 0 +65 90 156 +49 115 255 +82 82 82 +98 98 98 +115 115 115 +131 131 131 +148 148 148 +164 164 164 +180 180 180 +197 197 197 +213 213 213 +230 230 230 +255 255 255 +255 255 255 diff --git a/include/asm.h b/include/asm.h index dd1955bb2..0b0fc3006 100644 --- a/include/asm.h +++ b/include/asm.h @@ -30,19 +30,19 @@ struct FieldInput struct UnknownStruct_FPA { - u8 unk0; - u8 unk1; - u8 unk2; - s16 unk4; - s16 unk6; - u8 unk8; - u8 unk9; - u8 unkA_0:4; - u8 unkA_4:4; - u16 unkC; - u16 unkE; - u32 unk10; - u16 unk14; + u8 unk0; + u8 unk1; + u8 unk2; + s16 unk4; + s16 unk6; + u8 unk8; + u8 unk9; + u8 unkA_0:4; + u8 unkA_4:4; + u16 unkC; + u16 unkE; + u32 unk10; + u16 unk14; }; #include "asm.inc.h" diff --git a/include/asm.inc.h b/include/asm.inc.h index f879f40c1..53b2f1cb8 100644 --- a/include/asm.inc.h +++ b/include/asm.inc.h @@ -79,7 +79,7 @@ u8 AddCameraObject(u8); u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); u8 FieldObjectGetBerryTreeId(u8); void sub_805C754(struct MapObject *pObject); -void sub_805C774(struct MapObject *, u8 ); +void sub_805C774(struct MapObject *, u8); void sub_805C78C(u8, u8, u8); void sub_805C7C4(int i); u8 FieldObjectDirectionToImageAnimId(u8); @@ -360,11 +360,11 @@ void sub_80C8F34(u8); // asm/bike.o void MovePlayerOnBike(u8, u16, u16); void sub_80E5B38(u16 i, u16 c); -u8 sub_80E5DEC(u8); +u8 IsRunningDisallowed(u8); bool8 player_should_look_direction_be_enforced_upon_movement(void); void BikeClearState(int i, int i1); void sub_80E6010(u8 i); -s16 sub_80E6034(void); +s16 GetPlayerSpeed(void); void sub_80E6084(); // asm/easy_chat.o @@ -377,7 +377,7 @@ u16 sub_80EB72C(u16); void sub_80EBA5C(void); // asm/mauville_old_man.o -void sub_80F7AA4(void); +void SetMauvilleOldMan(void); void sub_80F7F30(void); // asm/menu_helpers.o diff --git a/include/battle.h b/include/battle.h index 4f1bc70e1..be5b5f2d2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -17,30 +17,48 @@ #define BATTLE_TYPE_LEGENDARY 0x2000 #define BATTLE_TYPE_REGI 0x4000 +#define AI_ACTION_UNK1 0x0001 +#define AI_ACTION_UNK2 0x0002 +#define AI_ACTION_UNK3 0x0004 +#define AI_ACTION_UNK4 0x0008 +#define AI_ACTION_UNK5 0x0010 +#define AI_ACTION_UNK6 0x0020 +#define AI_ACTION_UNK7 0x0040 +#define AI_ACTION_UNK8 0x0080 + struct Trainer { - /*0x00*/ u8 partyFlags; - /*0x01*/ u8 trainerClass; - /*0x02*/ u8 encounterMusic:7; - /*0x02*/ u8 gender:1; - /*0x03*/ u8 trainerPic; - /*0x04*/ u8 trainerName[12]; - /*0x10*/ u16 items[4]; - /*0x18*/ bool8 doubleBattle; - /*0x1C*/ u32 aiFlags; - /*0x20*/ u8 partySize; - /*0x24*/ void *party; + /*0x00*/ u8 partyFlags; + /*0x01*/ u8 trainerClass; + /*0x02*/ u8 encounterMusic:7; + /*0x02*/ u8 gender:1; + /*0x03*/ u8 trainerPic; + /*0x04*/ u8 trainerName[12]; + /*0x10*/ u16 items[4]; + /*0x18*/ bool8 doubleBattle; + /*0x1C*/ u32 aiFlags; + /*0x20*/ u8 partySize; + /*0x24*/ void *party; +}; + +struct UnknownStruct1 +{ + /*0x00*/ u16 unk0[2][8]; + /*0x20*/ u8 unk20[2]; + /*0x22*/ u8 unk22[2]; + /*0x24*/ u16 items[4]; + /*0x2C*/ u8 unk8; }; struct AI_ThinkingStruct /* 0x2016800 */ { -/* 0x00 */ u8 unk0; -/* 0x01 */ u8 moveConsidered; -/* 0x02 */ u16 unk2; +/* 0x00 */ u8 aiState; +/* 0x01 */ u8 movesetIndex; +/* 0x02 */ u16 moveConsidered; /* 0x04 */ s8 score[4]; // score? /* 0x08 */ u32 funcResult; /* 0x0C */ u32 aiFlags; -/* 0x10 */ u8 unk10; +/* 0x10 */ u8 aiAction; /* 0x11 */ u8 aiLogicId; /* 0x12 */ u8 filler12[6]; /* 0x18 */ u8 unk18[4]; @@ -48,30 +66,33 @@ struct AI_ThinkingStruct /* 0x2016800 */ struct SmallBattleStruct1 { - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; }; struct SmallItemStruct { - u8 item[2][2]; + u8 itemLocal[2][3]; }; struct BattleStruct /* 0x2000000 */ { - u8 filler0[0x1601C]; - struct SmallBattleStruct1 unk; - u8 filler1[0x68]; // 0x2016020 - u8 unk88; - u8 filler1_2[0x42]; - /* 0x160CB */ u8 linkPlayerIndex; - struct SmallItemStruct item; - u8 filler2[0x730]; - struct AI_ThinkingStruct ai; /* 0x2016800 */ + u8 filler0[0x1601C]; + struct SmallBattleStruct1 unk; + u8 filler1[0x68]; // 0x2016020 + u8 safariFleeRate; + u8 filler1_2[0x42]; + /* 0x160CB */ u8 linkPlayerIndex; + /* 0x160CC */ struct SmallItemStruct item; + u8 filler2[0x72E]; + /* 0x16800 */ struct AI_ThinkingStruct ai; /* 0x2016800 */ + u8 filler1681C[0x1E4]; + /* 0x16A00 */ struct UnknownStruct1 unk_2016A00_2; }; +extern struct UnknownStruct1 unk_2016A00; extern struct BattleStruct battle_2000000; extern struct AI_ThinkingStruct gAIThinkingSpace; diff --git a/include/berry.h b/include/berry.h index 152f92e38..f17799870 100644 --- a/include/berry.h +++ b/include/berry.h @@ -1,11 +1,21 @@ #ifndef GUARD_BERRY_H #define GUARD_BERRY_H +enum +{ + BERRY_FIRMNESS_UNKNOWN, + BERRY_FIRMNESS_VERY_SOFT, + BERRY_FIRMNESS_SOFT, + BERRY_FIRMNESS_HARD, + BERRY_FIRMNESS_VERY_HARD, + BERRY_FIRMNESS_SUPER_HARD, +}; + void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); bool32 IsEnigmaBerryValid(void); -struct Berry *GetBerryInfo(u8 berry); +const struct Berry *GetBerryInfo(u8 berry); struct BerryTree *GetBerryTreeInfo(u8 id); bool32 FieldObjectInteractionWaterBerryTree(void); bool32 IsPlayerFacingPlantedBerryTree(void); diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index 5234e5b6c..c0874bcbb 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -495,12 +495,12 @@ // I/O register fields // DISPCNT -#define DISPCNT_MODE_0 0x0000 -#define DISPCNT_MODE_1 0x0001 -#define DISPCNT_MODE_2 0x0002 -#define DISPCNT_MODE_3 0x0003 -#define DISPCNT_MODE_4 0x0004 -#define DISPCNT_MODE_5 0x0005 +#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text +#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off +#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine +#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color +#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette +#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color #define DISPCNT_OBJ_1D_MAP 0x0040 #define DISPCNT_FORCED_BLANK 0x0080 #define DISPCNT_BG0_ON 0x0100 @@ -521,6 +521,26 @@ #define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled #define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled +// BGCNT +#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs. +#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data. +#define BGCNT_MOSAIC 0x0040 +#define BGCNT_16COLOR 0x0000 // 4 bits per pixel +#define BGCNT_256COLOR 0x0080 // 8 bits per pixel +#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map. +#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default. +#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels. +#define BGCNT_TXT512x256 0x4000 +#define BGCNT_TXT256x512 0x8000 +#define BGCNT_TXT512x512 0xC000 +#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels. +#define BGCNT_AFF256x256 0x4000 +#define BGCNT_AFF512x512 0x8000 +#define BGCNT_AFF1024x1024 0xC000 + +// BLDCNT + + // SOUNDCNT_H #define SOUND_CGB_MIX_QUARTER 0x0000 #define SOUND_CGB_MIX_HALF 0x0001 diff --git a/include/global.berry.h b/include/global.berry.h index 8b98a5f58..b7938868d 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -3,13 +3,13 @@ struct Berry { - u8 name[7]; + const u8 name[7]; u8 firmness; u16 size; u8 maxYield; u8 minYield; - u8 *description1; - u8 *description2; + const u8 *description1; + const u8 *description2; u8 stageDuration; u8 spicy; u8 dry; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index c599e4278..e3ec39ed1 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -14,16 +14,16 @@ enum // map types enum { - MAP_TYPE_0, - MAP_TYPE_TOWN, - MAP_TYPE_CITY, - MAP_TYPE_ROUTE, - MAP_TYPE_UNDERGROUND, - MAP_TYPE_UNDERWATER, - MAP_TYPE_6, - MAP_TYPE_7, - MAP_TYPE_INDOOR, - MAP_TYPE_SECRET_BASE + MAP_TYPE_0, + MAP_TYPE_TOWN, + MAP_TYPE_CITY, + MAP_TYPE_ROUTE, + MAP_TYPE_UNDERGROUND, + MAP_TYPE_UNDERWATER, + MAP_TYPE_6, + MAP_TYPE_7, + MAP_TYPE_INDOOR, + MAP_TYPE_SECRET_BASE }; // map battle scenes @@ -343,10 +343,10 @@ struct PlayerAvatar /* 0x202E858 */ /*0x05*/ u8 mapObjectId; /*0x06*/ u8 unk6; /*0x07*/ u8 gender; - u8 acroBikeState; - u8 unk9; - u8 bikeFrameCounter; - u8 unkB; + u8 acroBikeState; + u8 unk9; + u8 bikeFrameCounter; + u8 unkB; u32 unkC; u32 unk10; u8 unk14[8]; diff --git a/include/global.h b/include/global.h index 736a1a5dc..56338a9e8 100644 --- a/include/global.h +++ b/include/global.h @@ -266,6 +266,35 @@ struct MailStruct /*0x20*/ u16 itemId; }; +struct UnkMauvilleOldManStruct +{ + u8 unk_2D94; + u8 unk_2D95; + /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; + /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; + /*0x2DAE*/ u8 playerName[8]; + /*0x2DB6*/ u8 filler_2DB6[0x3]; + /*0x2DB9*/ u8 playerTrainerId[4]; + u8 unk_2DBD; + /* size = 0x2C */ +}; + +struct UnkMauvilleOldManStruct2 +{ + u8 filler0; + u8 unk1; + u8 unk2; + u16 mauvilleOldMan_ecArray[10]; + u16 mauvilleOldMan_ecArray2[6]; + u8 fillerF[0x2]; + /* size = 0x2C */ +}; + +typedef union OldMan { + struct UnkMauvilleOldManStruct oldMan1; + struct UnkMauvilleOldManStruct2 oldMan2; +} OldMan; + struct SaveBlock1 /* 0x02025734 */ { /*0x00*/ struct Coords16 pos; @@ -331,7 +360,9 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2B1C*/ u16 unk2B1C[4]; /*0x2B24*/ u8 filler_2B24[0x28]; /*0x2B4C*/ struct MailStruct mail[16]; - /*0x2D8C*/ u8 filler_2D8C[0x48]; + /*0x2D8C*/ u8 filler_2D8C[0x8]; + /*0x2D94*/ OldMan oldMan; + /*0x2DC0*/ u8 unk_2DC0[0x14]; /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff /*0x2DFC*/ u8 filler_2DFC[0x100]; /*0x2EFC*/ struct SB1_2EFC_Struct sb1_2EFC_struct[5]; diff --git a/include/heal_location.h b/include/heal_location.h index 785918bd6..94dac2417 100644 --- a/include/heal_location.h +++ b/include/heal_location.h @@ -5,10 +5,10 @@ struct HealLocation { - s8 group; - s8 map; - u16 x; - u16 y; + s8 group; + s8 map; + u16 x; + u16 y; }; u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum); diff --git a/include/libgncmultiboot.h b/include/libgncmultiboot.h index b4d1cd231..33c9f6bfa 100644 --- a/include/libgncmultiboot.h +++ b/include/libgncmultiboot.h @@ -3,8 +3,8 @@ struct GcmbStruct { - u16 gcmb_field_0; - u8 gcmb_field_2; + u16 gcmb_field_0; + u8 gcmb_field_2; }; void GameCubeMultiBoot_Main(struct GcmbStruct *pStruct); diff --git a/include/map_constants.h b/include/map_constants.h new file mode 100644 index 000000000..f525f43a3 --- /dev/null +++ b/include/map_constants.h @@ -0,0 +1,1098 @@ +#ifndef GUARD_MAP_CONSTANTS_H +#define GUARD_MAP_CONSTANTS_H + +//-------------------------------------------------- +// Map Group 0 +//-------------------------------------------------- + +enum +{ + MAP_ID_PETALBURG_CITY, + MAP_ID_SLATEPORT_CITY, + MAP_ID_MAUVILLE_CITY, + MAP_ID_RUSTBORO_CITY, + MAP_ID_FORTREE_CITY, + MAP_ID_LILYCOVE_CITY, + MAP_ID_MOSSDEEP_CITY, + MAP_ID_SOOTOPOLIS_CITY, + MAP_ID_EVER_GRANDE_CITY, + MAP_ID_LITTLEROOT_TOWN, + MAP_ID_OLDALE_TOWN, + MAP_ID_DEWFORD_TOWN, + MAP_ID_LAVARIDGE_TOWN, + MAP_ID_FALLARBOR_TOWN, + MAP_ID_VERDANTURF_TOWN, + MAP_ID_PACIFIDLOG_TOWN, + MAP_ID_ROUTE101, + MAP_ID_ROUTE102, + MAP_ID_ROUTE103, + MAP_ID_ROUTE104, + MAP_ID_ROUTE105, + MAP_ID_ROUTE106, + MAP_ID_ROUTE107, + MAP_ID_ROUTE108, + MAP_ID_ROUTE109, + MAP_ID_ROUTE110, + MAP_ID_ROUTE111, + MAP_ID_ROUTE112, + MAP_ID_ROUTE113, + MAP_ID_ROUTE114, + MAP_ID_ROUTE115, + MAP_ID_ROUTE116, + MAP_ID_ROUTE117, + MAP_ID_ROUTE118, + MAP_ID_ROUTE119, + MAP_ID_ROUTE120, + MAP_ID_ROUTE121, + MAP_ID_ROUTE122, + MAP_ID_ROUTE123, + MAP_ID_ROUTE124, + MAP_ID_ROUTE125, + MAP_ID_ROUTE126, + MAP_ID_ROUTE127, + MAP_ID_ROUTE128, + MAP_ID_ROUTE129, + MAP_ID_ROUTE130, + MAP_ID_ROUTE131, + MAP_ID_ROUTE132, + MAP_ID_ROUTE133, + MAP_ID_ROUTE134, + MAP_ID_UNDERWATER1, + MAP_ID_UNDERWATER2, + MAP_ID_UNDERWATER3, + MAP_ID_UNDERWATER4, +}; + +#define MAP_GROUP_PETALBURG_CITY 0 +#define MAP_GROUP_SLATEPORT_CITY 0 +#define MAP_GROUP_MAUVILLE_CITY 0 +#define MAP_GROUP_RUSTBORO_CITY 0 +#define MAP_GROUP_FORTREE_CITY 0 +#define MAP_GROUP_LILYCOVE_CITY 0 +#define MAP_GROUP_MOSSDEEP_CITY 0 +#define MAP_GROUP_SOOTOPOLIS_CITY 0 +#define MAP_GROUP_EVER_GRANDE_CITY 0 +#define MAP_GROUP_LITTLEROOT_TOWN 0 +#define MAP_GROUP_OLDALE_TOWN 0 +#define MAP_GROUP_DEWFORD_TOWN 0 +#define MAP_GROUP_LAVARIDGE_TOWN 0 +#define MAP_GROUP_FALLARBOR_TOWN 0 +#define MAP_GROUP_VERDANTURF_TOWN 0 +#define MAP_GROUP_PACIFIDLOG_TOWN 0 +#define MAP_GROUP_ROUTE101 0 +#define MAP_GROUP_ROUTE102 0 +#define MAP_GROUP_ROUTE103 0 +#define MAP_GROUP_ROUTE104 0 +#define MAP_GROUP_ROUTE105 0 +#define MAP_GROUP_ROUTE106 0 +#define MAP_GROUP_ROUTE107 0 +#define MAP_GROUP_ROUTE108 0 +#define MAP_GROUP_ROUTE109 0 +#define MAP_GROUP_ROUTE110 0 +#define MAP_GROUP_ROUTE111 0 +#define MAP_GROUP_ROUTE112 0 +#define MAP_GROUP_ROUTE113 0 +#define MAP_GROUP_ROUTE114 0 +#define MAP_GROUP_ROUTE115 0 +#define MAP_GROUP_ROUTE116 0 +#define MAP_GROUP_ROUTE117 0 +#define MAP_GROUP_ROUTE118 0 +#define MAP_GROUP_ROUTE119 0 +#define MAP_GROUP_ROUTE120 0 +#define MAP_GROUP_ROUTE121 0 +#define MAP_GROUP_ROUTE122 0 +#define MAP_GROUP_ROUTE123 0 +#define MAP_GROUP_ROUTE124 0 +#define MAP_GROUP_ROUTE125 0 +#define MAP_GROUP_ROUTE126 0 +#define MAP_GROUP_ROUTE127 0 +#define MAP_GROUP_ROUTE128 0 +#define MAP_GROUP_ROUTE129 0 +#define MAP_GROUP_ROUTE130 0 +#define MAP_GROUP_ROUTE131 0 +#define MAP_GROUP_ROUTE132 0 +#define MAP_GROUP_ROUTE133 0 +#define MAP_GROUP_ROUTE134 0 +#define MAP_GROUP_UNDERWATER1 0 +#define MAP_GROUP_UNDERWATER2 0 +#define MAP_GROUP_UNDERWATER3 0 +#define MAP_GROUP_UNDERWATER4 0 + +//-------------------------------------------------- +// Map Group 1 +//-------------------------------------------------- + +enum +{ + MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, + MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, + MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F, + MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, + MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, +}; + +#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1 +#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1 + +//-------------------------------------------------- +// Map Group 2 +//-------------------------------------------------- + +enum +{ + MAP_ID_OLDALE_TOWN_HOUSE1, + MAP_ID_OLDALE_TOWN_HOUSE2, + MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F, + MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F, + MAP_ID_OLDALE_TOWN_MART, +}; + +#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2 +#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2 +#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2 +#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2 +#define MAP_GROUP_OLDALE_TOWN_MART 2 + +//-------------------------------------------------- +// Map Group 3 +//-------------------------------------------------- + +enum +{ + MAP_ID_DEWFORD_TOWN_HOUSE1, + MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F, + MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F, + MAP_ID_DEWFORD_TOWN_GYM, + MAP_ID_DEWFORD_TOWN_HALL, + MAP_ID_DEWFORD_TOWN_HOUSE2, +}; + +#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3 +#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3 +#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3 +#define MAP_GROUP_DEWFORD_TOWN_GYM 3 +#define MAP_GROUP_DEWFORD_TOWN_HALL 3 +#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3 + +//-------------------------------------------------- +// Map Group 4 +//-------------------------------------------------- + +enum +{ + MAP_ID_LAVARIDGE_TOWN_HERB_SHOP, + MAP_ID_LAVARIDGE_TOWN_GYM_1F, + MAP_ID_LAVARIDGE_TOWN_GYM_B1F, + MAP_ID_LAVARIDGE_TOWN_HOUSE, + MAP_ID_LAVARIDGE_TOWN_MART, + MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F, + MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F, +}; + +#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4 +#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4 +#define MAP_GROUP_LAVARIDGE_TOWN_MART 4 +#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4 +#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4 + +//-------------------------------------------------- +// Map Group 5 +//-------------------------------------------------- + +enum +{ + MAP_ID_FALLARBOR_TOWN_MART, + MAP_ID_FALLARBOR_TOWN_CONTEST_LOBBY, + MAP_ID_FALLARBOR_TOWN_CONTEST_HALL, + MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F, + MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F, + MAP_ID_FALLARBOR_TOWN_HOUSE1, + MAP_ID_FALLARBOR_TOWN_HOUSE2, +}; + +#define MAP_GROUP_FALLARBOR_TOWN_MART 5 +#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_LOBBY 5 +#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_HALL 5 +#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5 +#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5 +#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5 +#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5 + +//-------------------------------------------------- +// Map Group 6 +//-------------------------------------------------- + +enum +{ + MAP_ID_VERDANTURF_TOWN_CONTEST_LOBBY, + MAP_ID_VERDANTURF_TOWN_CONTEST_HALL, + MAP_ID_VERDANTURF_TOWN_MART, + MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F, + MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F, + MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE, + MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE, + MAP_ID_VERDANTURF_TOWN_HOUSE, +}; + +#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_LOBBY 6 +#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_HALL 6 +#define MAP_GROUP_VERDANTURF_TOWN_MART 6 +#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6 +#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6 +#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6 +#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6 +#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6 + +//-------------------------------------------------- +// Map Group 7 +//-------------------------------------------------- + +enum +{ + MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, + MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F, + MAP_ID_PACIFIDLOG_TOWN_HOUSE1, + MAP_ID_PACIFIDLOG_TOWN_HOUSE2, + MAP_ID_PACIFIDLOG_TOWN_HOUSE3, + MAP_ID_PACIFIDLOG_TOWN_HOUSE4, + MAP_ID_PACIFIDLOG_TOWN_HOUSE5, +}; + +#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7 +#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7 + +//-------------------------------------------------- +// Map Group 8 +//-------------------------------------------------- + +enum +{ + MAP_ID_PETALBURG_CITY_WALLYS_HOUSE, + MAP_ID_PETALBURG_CITY_GYM, + MAP_ID_PETALBURG_CITY_HOUSE1, + MAP_ID_PETALBURG_CITY_HOUSE2, + MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F, + MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F, + MAP_ID_PETALBURG_CITY_MART, +}; + +#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8 +#define MAP_GROUP_PETALBURG_CITY_GYM 8 +#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8 +#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8 +#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8 +#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8 +#define MAP_GROUP_PETALBURG_CITY_MART 8 + +//-------------------------------------------------- +// Map Group 9 +//-------------------------------------------------- + +enum +{ + MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F, + MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F, + MAP_ID_SLATEPORT_CITY_CONTEST_LOBBY, + MAP_ID_SLATEPORT_CITY_CONTEST_HALL, + MAP_ID_SLATEPORT_CITY_HOUSE1, + MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB, + MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F, + MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F, + MAP_ID_SLATEPORT_CITY_HARBOR, + MAP_ID_SLATEPORT_CITY_HOUSE2, + MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F, + MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F, + MAP_ID_SLATEPORT_CITY_MART, +}; + +#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_CONTEST_LOBBY 9 +#define MAP_GROUP_SLATEPORT_CITY_CONTEST_HALL 9 +#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9 +#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9 +#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9 +#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9 +#define MAP_GROUP_SLATEPORT_CITY_MART 9 + +//-------------------------------------------------- +// Map Group 10 +//-------------------------------------------------- + +enum +{ + MAP_ID_MAUVILLE_CITY_GYM, + MAP_ID_MAUVILLE_CITY_BIKE_SHOP, + MAP_ID_MAUVILLE_CITY_HOUSE1, + MAP_ID_MAUVILLE_CITY_GAME_CORNER, + MAP_ID_MAUVILLE_CITY_HOUSE2, + MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F, + MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F, + MAP_ID_MAUVILLE_CITY_MART, +}; + +#define MAP_GROUP_MAUVILLE_CITY_GYM 10 +#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10 +#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10 +#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10 +#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10 +#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10 +#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10 +#define MAP_GROUP_MAUVILLE_CITY_MART 10 + +//-------------------------------------------------- +// Map Group 11 +//-------------------------------------------------- + +enum +{ + MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F, + MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F, + MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F, + MAP_ID_RUSTBORO_CITY_GYM, + MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL, + MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F, + MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F, + MAP_ID_RUSTBORO_CITY_MART, + MAP_ID_RUSTBORO_CITY_FLAT1_1F, + MAP_ID_RUSTBORO_CITY_FLAT1_2F, + MAP_ID_RUSTBORO_CITY_HOUSE1, + MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE, + MAP_ID_RUSTBORO_CITY_HOUSE2, + MAP_ID_RUSTBORO_CITY_FLAT2_1F, + MAP_ID_RUSTBORO_CITY_FLAT2_2F, + MAP_ID_RUSTBORO_CITY_FLAT2_3F, + MAP_ID_RUSTBORO_CITY_HOUSE3, +}; + +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11 +#define MAP_GROUP_RUSTBORO_CITY_GYM 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_MART 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11 +#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11 +#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11 +#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11 + +//-------------------------------------------------- +// Map Group 12 +//-------------------------------------------------- + +enum +{ + MAP_ID_FORTREE_CITY_HOUSE1, + MAP_ID_FORTREE_CITY_GYM, + MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F, + MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F, + MAP_ID_FORTREE_CITY_MART, + MAP_ID_FORTREE_CITY_HOUSE2, + MAP_ID_FORTREE_CITY_HOUSE3, + MAP_ID_FORTREE_CITY_HOUSE4, + MAP_ID_FORTREE_CITY_HOUSE5, + MAP_ID_FORTREE_CITY_DECORATION_SHOP, +}; + +#define MAP_GROUP_FORTREE_CITY_HOUSE1 12 +#define MAP_GROUP_FORTREE_CITY_GYM 12 +#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12 +#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12 +#define MAP_GROUP_FORTREE_CITY_MART 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE2 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE3 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE4 12 +#define MAP_GROUP_FORTREE_CITY_HOUSE5 12 +#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12 + +//-------------------------------------------------- +// Map Group 13 +//-------------------------------------------------- + +enum +{ + MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F, + MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F, + MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F, + MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, + MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY, + MAP_ID_LILYCOVE_CITY_CONTEST_HALL, + MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F, + MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F, + MAP_ID_LILYCOVE_CITY_UNUSED_MART, + MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB, + MAP_ID_LILYCOVE_CITY_HARBOR, + MAP_ID_LILYCOVE_CITY_EMPTY_MAP, + MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE, + MAP_ID_LILYCOVE_CITY_HOUSE1, + MAP_ID_LILYCOVE_CITY_HOUSE2, + MAP_ID_LILYCOVE_CITY_HOUSE3, + MAP_ID_LILYCOVE_CITY_HOUSE4, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP, + MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR, +}; + +#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13 +#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13 +#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13 +#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13 +#define MAP_GROUP_LILYCOVE_CITY_EMPTY_MAP 13 +#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13 +#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13 +#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13 + +//-------------------------------------------------- +// Map Group 14 +//-------------------------------------------------- + +enum +{ + MAP_ID_MOSSDEEP_CITY_GYM, + MAP_ID_MOSSDEEP_CITY_HOUSE1, + MAP_ID_MOSSDEEP_CITY_HOUSE2, + MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F, + MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F, + MAP_ID_MOSSDEEP_CITY_MART, + MAP_ID_MOSSDEEP_CITY_HOUSE3, + MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE, + MAP_ID_MOSSDEEP_CITY_HOUSE4, + MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F, + MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F, + MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F, + MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F, +}; + +#define MAP_GROUP_MOSSDEEP_CITY_GYM 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14 +#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14 +#define MAP_GROUP_MOSSDEEP_CITY_MART 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14 +#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14 +#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14 +#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14 +#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14 +#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14 + +//-------------------------------------------------- +// Map Group 15 +//-------------------------------------------------- + +enum +{ + MAP_ID_SOOTOPOLIS_CITY_GYM_1F, + MAP_ID_SOOTOPOLIS_CITY_GYM_B1F, + MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, + MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F, + MAP_ID_SOOTOPOLIS_CITY_MART, + MAP_ID_SOOTOPOLIS_CITY_HOUSE1, + MAP_ID_SOOTOPOLIS_CITY_HOUSE2, + MAP_ID_SOOTOPOLIS_CITY_HOUSE3, + MAP_ID_SOOTOPOLIS_CITY_HOUSE4, + MAP_ID_SOOTOPOLIS_CITY_HOUSE5, + MAP_ID_SOOTOPOLIS_CITY_HOUSE6, + MAP_ID_SOOTOPOLIS_CITY_HOUSE7, + MAP_ID_SOOTOPOLIS_CITY_HOUSE8, +}; + +#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15 +#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15 + +//-------------------------------------------------- +// Map Group 16 +//-------------------------------------------------- + +enum +{ + MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM, + MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM, + MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM, + MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM, + MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR1, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR2, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR3, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR4, + MAP_ID_EVER_GRANDE_CITY_CORRIDOR5, + MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE, + MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME, + MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F, + MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F, +}; + +#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16 +#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE 16 +#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16 +#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16 + +//-------------------------------------------------- +// Map Group 17 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE104_MR_BRINEYS_HOUSE, + MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP, +}; + +#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17 +#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17 + +//-------------------------------------------------- +// Map Group 18 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE, + MAP_ID_ROUTE111_OLD_LADYS_REST_STOP, +}; + +#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18 +#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18 + +//-------------------------------------------------- +// Map Group 19 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE112_CABLE_CAR_STATION, + MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, +}; + +#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19 +#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19 + +//-------------------------------------------------- +// Map Group 20 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE, + MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL, + MAP_ID_ROUTE114_LANETTES_HOUSE, +}; + +#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20 +#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20 +#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20 + +//-------------------------------------------------- +// Map Group 21 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE, +}; + +#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21 + +//-------------------------------------------------- +// Map Group 22 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE117_POKEMON_DAY_CARE, +}; + +#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22 + +//-------------------------------------------------- +// Map Group 23 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE, +}; + +#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23 + +//-------------------------------------------------- +// Map Group 24 +//-------------------------------------------------- + +enum +{ + MAP_ID_METEOR_FALLS_1F_1R, + MAP_ID_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_B1F_1R, + MAP_ID_METEOR_FALLS_B1F_2R, + MAP_ID_RUSTURF_TUNNEL, + MAP_ID_UNDERWATER_SOOTOPOLIS_CITY, + MAP_ID_DESERT_RUINS, + MAP_ID_GRANITE_CAVE_1F, + MAP_ID_GRANITE_CAVE_B1F, + MAP_ID_GRANITE_CAVE_B2F, + MAP_ID_GRANITE_CAVE_STEVENS_ROOM, + MAP_ID_PETALBURG_WOODS, + MAP_ID_MT_CHIMNEY, + MAP_ID_JAGGED_PASS, + MAP_ID_FIERY_PATH, + MAP_ID_MT_PYRE_1F, + MAP_ID_MT_PYRE_2F, + MAP_ID_MT_PYRE_3F, + MAP_ID_MT_PYRE_4F, + MAP_ID_MT_PYRE_5F, + MAP_ID_MT_PYRE_6F, + MAP_ID_MT_PYRE_EXTERIOR, + MAP_ID_MT_PYRE_SUMMIT, + MAP_ID_AQUA_HIDEOUT_1F, + MAP_ID_AQUA_HIDEOUT_B1F, + MAP_ID_AQUA_HIDEOUT_B2F, + MAP_ID_UNDERWATER_SEAFLOOR_CAVERN, + MAP_ID_SEAFLOOR_CAVERN_ENTRANCE, + MAP_ID_SEAFLOOR_CAVERN_ROOM1, + MAP_ID_SEAFLOOR_CAVERN_ROOM2, + MAP_ID_SEAFLOOR_CAVERN_ROOM3, + MAP_ID_SEAFLOOR_CAVERN_ROOM4, + MAP_ID_SEAFLOOR_CAVERN_ROOM5, + MAP_ID_SEAFLOOR_CAVERN_ROOM6, + MAP_ID_SEAFLOOR_CAVERN_ROOM7, + MAP_ID_SEAFLOOR_CAVERN_ROOM8, + MAP_ID_SEAFLOOR_CAVERN_ROOM9, + MAP_ID_CAVE_OF_ORIGIN_ENTRANCE, + MAP_ID_CAVE_OF_ORIGIN_1F, + MAP_ID_CAVE_OF_ORIGIN_B1F, + MAP_ID_CAVE_OF_ORIGIN_B2F, + MAP_ID_CAVE_OF_ORIGIN_B3F, + MAP_ID_CAVE_OF_ORIGIN_B4F, + MAP_ID_VICTORY_ROAD_1F, + MAP_ID_VICTORY_ROAD_B1F, + MAP_ID_VICTORY_ROAD_B2F, + MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM, + MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM, + MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM, + MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM, + MAP_ID_NEW_MAUVILLE_ENTRANCE, + MAP_ID_NEW_MAUVILLE_INSIDE, + MAP_ID_ABANDONED_SHIP_DECK, + MAP_ID_ABANDONED_SHIP_CORRIDORS_1F, + MAP_ID_ABANDONED_SHIP_ROOMS_1F, + MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_B1F, + MAP_ID_ABANDONED_SHIP_UNDERWATER1, + MAP_ID_ABANDONED_SHIP_ROOM_B1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_1F, + MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE, + MAP_ID_ABANDONED_SHIP_UNDERWATER2, + MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, + MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS, + MAP_ID_ISLAND_CAVE, + MAP_ID_ANCIENT_TOMB, + MAP_ID_UNDERWATER_ROUTE134, + MAP_ID_UNDERWATER_SEALED_CHAMBER, + MAP_ID_SEALED_CHAMBER_OUTER_ROOM, + MAP_ID_SEALED_CHAMBER_INNER_ROOM, + MAP_ID_SCORCHED_SLAB, + MAP_ID_MAGMA_HIDEOUT_1F, + MAP_ID_MAGMA_HIDEOUT_B1F, + MAP_ID_MAGMA_HIDEOUT_B2F, + MAP_ID_SKY_PILLAR_ENTRANCE, + MAP_ID_SKY_PILLAR_OUTSIDE, + MAP_ID_SKY_PILLAR_1F, + MAP_ID_SKY_PILLAR_2F, + MAP_ID_SKY_PILLAR_3F, + MAP_ID_SKY_PILLAR_4F, + MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, + MAP_ID_SKY_PILLAR_5F, + MAP_ID_SKY_PILLAR_TOP, +}; + +#define MAP_GROUP_METEOR_FALLS_1F_1R 24 +#define MAP_GROUP_METEOR_FALLS_1F_2R 24 +#define MAP_GROUP_METEOR_FALLS_B1F_1R 24 +#define MAP_GROUP_METEOR_FALLS_B1F_2R 24 +#define MAP_GROUP_RUSTURF_TUNNEL 24 +#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24 +#define MAP_GROUP_DESERT_RUINS 24 +#define MAP_GROUP_GRANITE_CAVE_1F 24 +#define MAP_GROUP_GRANITE_CAVE_B1F 24 +#define MAP_GROUP_GRANITE_CAVE_B2F 24 +#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24 +#define MAP_GROUP_PETALBURG_WOODS 24 +#define MAP_GROUP_MT_CHIMNEY 24 +#define MAP_GROUP_JAGGED_PASS 24 +#define MAP_GROUP_FIERY_PATH 24 +#define MAP_GROUP_MT_PYRE_1F 24 +#define MAP_GROUP_MT_PYRE_2F 24 +#define MAP_GROUP_MT_PYRE_3F 24 +#define MAP_GROUP_MT_PYRE_4F 24 +#define MAP_GROUP_MT_PYRE_5F 24 +#define MAP_GROUP_MT_PYRE_6F 24 +#define MAP_GROUP_MT_PYRE_EXTERIOR 24 +#define MAP_GROUP_MT_PYRE_SUMMIT 24 +#define MAP_GROUP_AQUA_HIDEOUT_1F 24 +#define MAP_GROUP_AQUA_HIDEOUT_B1F 24 +#define MAP_GROUP_AQUA_HIDEOUT_B2F 24 +#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24 +#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24 +#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24 +#define MAP_GROUP_VICTORY_ROAD_1F 24 +#define MAP_GROUP_VICTORY_ROAD_B1F 24 +#define MAP_GROUP_VICTORY_ROAD_B2F 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24 +#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24 +#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24 +#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24 +#define MAP_GROUP_ABANDONED_SHIP_DECK 24 +#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24 +#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24 +#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24 +#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24 +#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24 +#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24 +#define MAP_GROUP_ISLAND_CAVE 24 +#define MAP_GROUP_ANCIENT_TOMB 24 +#define MAP_GROUP_UNDERWATER_ROUTE134 24 +#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24 +#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24 +#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24 +#define MAP_GROUP_SCORCHED_SLAB 24 +#define MAP_GROUP_MAGMA_HIDEOUT_1F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24 +#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24 +#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24 +#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24 +#define MAP_GROUP_SKY_PILLAR_1F 24 +#define MAP_GROUP_SKY_PILLAR_2F 24 +#define MAP_GROUP_SKY_PILLAR_3F 24 +#define MAP_GROUP_SKY_PILLAR_4F 24 +#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24 +#define MAP_GROUP_SKY_PILLAR_5F 24 +#define MAP_GROUP_SKY_PILLAR_TOP 24 + +//-------------------------------------------------- +// Map Group 25 +//-------------------------------------------------- + +enum +{ + MAP_ID_SECRET_BASE_RED_CAVE1, + MAP_ID_SECRET_BASE_BROWN_CAVE1, + MAP_ID_SECRET_BASE_BLUE_CAVE1, + MAP_ID_SECRET_BASE_YELLOW_CAVE1, + MAP_ID_SECRET_BASE_TREE1, + MAP_ID_SECRET_BASE_SHRUB1, + MAP_ID_SECRET_BASE_RED_CAVE2, + MAP_ID_SECRET_BASE_BROWN_CAVE2, + MAP_ID_SECRET_BASE_BLUE_CAVE2, + MAP_ID_SECRET_BASE_YELLOW_CAVE2, + MAP_ID_SECRET_BASE_TREE2, + MAP_ID_SECRET_BASE_SHRUB2, + MAP_ID_SECRET_BASE_RED_CAVE3, + MAP_ID_SECRET_BASE_BROWN_CAVE3, + MAP_ID_SECRET_BASE_BLUE_CAVE3, + MAP_ID_SECRET_BASE_YELLOW_CAVE3, + MAP_ID_SECRET_BASE_TREE3, + MAP_ID_SECRET_BASE_SHRUB3, + MAP_ID_SECRET_BASE_RED_CAVE4, + MAP_ID_SECRET_BASE_BROWN_CAVE4, + MAP_ID_SECRET_BASE_BLUE_CAVE4, + MAP_ID_SECRET_BASE_YELLOW_CAVE4, + MAP_ID_SECRET_BASE_TREE4, + MAP_ID_SECRET_BASE_SHRUB4, + MAP_ID_SINGLE_BATTLE_COLOSSEUM, + MAP_ID_TRADE_CENTER, + MAP_ID_RECORD_CORNER, + MAP_ID_DOUBLE_BATTLE_COLOSSEUM, + MAP_ID_LINK_CONTEST_ROOM1, + MAP_ID_UNKNOWN_MAP_25_29, + MAP_ID_UNKNOWN_MAP_25_30, + MAP_ID_UNKNOWN_MAP_25_31, + MAP_ID_UNKNOWN_MAP_25_32, + MAP_ID_UNKNOWN_MAP_25_33, + MAP_ID_UNKNOWN_MAP_25_34, + MAP_ID_LINK_CONTEST_ROOM2, + MAP_ID_LINK_CONTEST_ROOM3, + MAP_ID_LINK_CONTEST_ROOM4, + MAP_ID_LINK_CONTEST_ROOM5, + MAP_ID_LINK_CONTEST_ROOM6, + MAP_ID_INSIDE_OF_TRUCK, + MAP_ID_SS_TIDAL_CORRIDOR, + MAP_ID_SS_TIDAL_LOWER_DECK, + MAP_ID_SS_TIDAL_ROOMS, +}; + +#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25 +#define MAP_GROUP_SECRET_BASE_TREE1 25 +#define MAP_GROUP_SECRET_BASE_SHRUB1 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25 +#define MAP_GROUP_SECRET_BASE_TREE2 25 +#define MAP_GROUP_SECRET_BASE_SHRUB2 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25 +#define MAP_GROUP_SECRET_BASE_TREE3 25 +#define MAP_GROUP_SECRET_BASE_SHRUB3 25 +#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25 +#define MAP_GROUP_SECRET_BASE_TREE4 25 +#define MAP_GROUP_SECRET_BASE_SHRUB4 25 +#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25 +#define MAP_GROUP_TRADE_CENTER 25 +#define MAP_GROUP_RECORD_CORNER 25 +#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25 +#define MAP_GROUP_LINK_CONTEST_ROOM1 25 +#define MAP_GROUP_UNKNOWN_MAP_25_29 25 +#define MAP_GROUP_UNKNOWN_MAP_25_30 25 +#define MAP_GROUP_UNKNOWN_MAP_25_31 25 +#define MAP_GROUP_UNKNOWN_MAP_25_32 25 +#define MAP_GROUP_UNKNOWN_MAP_25_33 25 +#define MAP_GROUP_UNKNOWN_MAP_25_34 25 +#define MAP_GROUP_LINK_CONTEST_ROOM2 25 +#define MAP_GROUP_LINK_CONTEST_ROOM3 25 +#define MAP_GROUP_LINK_CONTEST_ROOM4 25 +#define MAP_GROUP_LINK_CONTEST_ROOM5 25 +#define MAP_GROUP_LINK_CONTEST_ROOM6 25 +#define MAP_GROUP_INSIDE_OF_TRUCK 25 +#define MAP_GROUP_SS_TIDAL_CORRIDOR 25 +#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25 +#define MAP_GROUP_SS_TIDAL_ROOMS 25 + +//-------------------------------------------------- +// Map Group 26 +//-------------------------------------------------- + +enum +{ + MAP_ID_SAFARI_ZONE_NORTHWEST, + MAP_ID_SAFARI_ZONE_NORTHEAST, + MAP_ID_SAFARI_ZONE_SOUTHWEST, + MAP_ID_SAFARI_ZONE_SOUTHEAST, + MAP_ID_BATTLE_TOWER_OUTSIDE, + MAP_ID_BATTLE_TOWER_LOBBY, + MAP_ID_BATTLE_TOWER_ELEVATOR, + MAP_ID_BATTLE_TOWER_CORRIDOR, + MAP_ID_BATTLE_TOWER_BATTLE_ROOM, + MAP_ID_SOUTHERN_ISLAND_EXTERIOR, + MAP_ID_SOUTHERN_ISLAND_INTERIOR, + MAP_ID_SAFARI_ZONE_REST_HOUSE, +}; + +#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26 +#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26 +#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26 +#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26 +#define MAP_GROUP_BATTLE_TOWER_OUTSIDE 26 +#define MAP_GROUP_BATTLE_TOWER_LOBBY 26 +#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26 +#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26 +#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26 +#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26 +#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26 +#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26 + +//-------------------------------------------------- +// Map Group 27 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE104_PROTOTYPE, + MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP, +}; + +#define MAP_GROUP_ROUTE104_PROTOTYPE 27 +#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27 + +//-------------------------------------------------- +// Map Group 28 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE109_SEASHORE_HOUSE, +}; + +#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28 + +//-------------------------------------------------- +// Map Group 29 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE, + MAP_ID_ROUTE110_TRICK_HOUSE_END, + MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7, + MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8, + MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE, + MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE, +}; + +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29 +#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29 +#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29 +#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29 + +//-------------------------------------------------- +// Map Group 30 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE113_GLASS_WORKSHOP, +}; + +#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30 + +//-------------------------------------------------- +// Map Group 31 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE, +}; + +#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31 + +//-------------------------------------------------- +// Map Group 32 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F, + MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F, + MAP_ID_ROUTE119_HOUSE, +}; + +#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32 +#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32 +#define MAP_GROUP_ROUTE119_HOUSE 32 + +//-------------------------------------------------- +// Map Group 33 +//-------------------------------------------------- + +enum +{ + MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE, +}; + +#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33 + +#endif // GUARD_MAP_CONSTANTS_H diff --git a/include/menu.h b/include/menu.h index 0e4860791..c3dcbc969 100644 --- a/include/menu.h +++ b/include/menu.h @@ -58,7 +58,7 @@ void sub_8072B80(u8 *, u8, u8, u8 *); void sub_8072BD8(u8 *, u8, u8, u16); u8 *sub_8072C14(u8 *, s32, u8, u8); u8 *sub_8072C44(u8 *, s32, u8, u8); -u8 *sub_8072C74(u8 *, u8 *, u8, u8); +u8 *sub_8072C74(u8 *, const u8 *, u8, u8); u8 sub_8072CA4(u8 *s); u8 sub_8072CBC(void); void sub_8072CD4(u8 *, u8 *, u8 *); diff --git a/include/moves.h b/include/moves.h new file mode 100644 index 000000000..e3b6d3113 --- /dev/null +++ b/include/moves.h @@ -0,0 +1,363 @@ +#ifndef GUARD_MOVES_H +#define GUARD_MOVES_H + +enum +{ + MOVE_NONE, + MOVE_POUND, + MOVE_KARATE_CHOP, + MOVE_DOUBLE_SLAP, + MOVE_COMET_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_PAY_DAY, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_SCRATCH, + MOVE_VICE_GRIP, + MOVE_GUILLOTINE, + MOVE_RAZOR_WIND, + MOVE_SWORDS_DANCE, + MOVE_CUT, + MOVE_GUST, + MOVE_WING_ATTACK, + MOVE_WHIRLWIND, + MOVE_FLY, + MOVE_BIND, + MOVE_SLAM, + MOVE_VINE_WHIP, + MOVE_STOMP, + MOVE_DOUBLE_KICK, + MOVE_MEGA_KICK, + MOVE_JUMP_KICK, + MOVE_ROLLING_KICK, + MOVE_SAND_ATTACK, + MOVE_HEADBUTT, + MOVE_HORN_ATTACK, + MOVE_FURY_ATTACK, + MOVE_HORN_DRILL, + MOVE_TACKLE, + MOVE_BODY_SLAM, + MOVE_WRAP, + MOVE_TAKE_DOWN, + MOVE_THRASH, + MOVE_DOUBLE_EDGE, + MOVE_TAIL_WHIP, + MOVE_POISON_STING, + MOVE_TWINEEDLE, + MOVE_PIN_MISSILE, + MOVE_LEER, + MOVE_BITE, + MOVE_GROWL, + MOVE_ROAR, + MOVE_SING, + MOVE_SUPERSONIC, + MOVE_SONIC_BOOM, + MOVE_DISABLE, + MOVE_ACID, + MOVE_EMBER, + MOVE_FLAMETHROWER, + MOVE_MIST, + MOVE_WATER_GUN, + MOVE_HYDRO_PUMP, + MOVE_SURF, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PSYBEAM, + MOVE_BUBBLE_BEAM, + MOVE_AURORA_BEAM, + MOVE_HYPER_BEAM, + MOVE_PECK, + MOVE_DRILL_PECK, + MOVE_SUBMISSION, + MOVE_LOW_KICK, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_STRENGTH, + MOVE_ABSORB, + MOVE_MEGA_DRAIN, + MOVE_LEECH_SEED, + MOVE_GROWTH, + MOVE_RAZOR_LEAF, + MOVE_SOLAR_BEAM, + MOVE_POISON_POWDER, + MOVE_STUN_SPORE, + MOVE_SLEEP_POWDER, + MOVE_PETAL_DANCE, + MOVE_STRING_SHOT, + MOVE_DRAGON_RAGE, + MOVE_FIRE_SPIN, + MOVE_THUNDER_SHOCK, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_THUNDER, + MOVE_ROCK_THROW, + MOVE_EARTHQUAKE, + MOVE_FISSURE, + MOVE_DIG, + MOVE_TOXIC, + MOVE_CONFUSION, + MOVE_PSYCHIC, + MOVE_HYPNOSIS, + MOVE_MEDITATE, + MOVE_AGILITY, + MOVE_QUICK_ATTACK, + MOVE_RAGE, + MOVE_TELEPORT, + MOVE_NIGHT_SHADE, + MOVE_MIMIC, + MOVE_SCREECH, + MOVE_DOUBLE_TEAM, + MOVE_RECOVER, + MOVE_HARDEN, + MOVE_MINIMIZE, + MOVE_SMOKESCREEN, + MOVE_CONFUSE_RAY, + MOVE_WITHDRAW, + MOVE_DEFENSE_CURL, + MOVE_BARRIER, + MOVE_LIGHT_SCREEN, + MOVE_HAZE, + MOVE_REFLECT, + MOVE_FOCUS_ENERGY, + MOVE_BIDE, + MOVE_METRONOME, + MOVE_MIRROR_MOVE, + MOVE_SELF_DESTRUCT, + MOVE_EGG_BOMB, + MOVE_LICK, + MOVE_SMOG, + MOVE_SLUDGE, + MOVE_BONE_CLUB, + MOVE_FIRE_BLAST, + MOVE_WATERFALL, + MOVE_CLAMP, + MOVE_SWIFT, + MOVE_SKULL_BASH, + MOVE_SPIKE_CANNON, + MOVE_CONSTRICT, + MOVE_AMNESIA, + MOVE_KINESIS, + MOVE_SOFT_BOILED, + MOVE_HI_JUMP_KICK, + MOVE_GLARE, + MOVE_DREAM_EATER, + MOVE_POISON_GAS, + MOVE_BARRAGE, + MOVE_LEECH_LIFE, + MOVE_LOVELY_KISS, + MOVE_SKY_ATTACK, + MOVE_TRANSFORM, + MOVE_BUBBLE, + MOVE_DIZZY_PUNCH, + MOVE_SPORE, + MOVE_FLASH, + MOVE_PSYWAVE, + MOVE_SPLASH, + MOVE_ACID_ARMOR, + MOVE_CRABHAMMER, + MOVE_EXPLOSION, + MOVE_FURY_SWIPES, + MOVE_BONEMERANG, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_HYPER_FANG, + MOVE_SHARPEN, + MOVE_CONVERSION, + MOVE_TRI_ATTACK, + MOVE_SUPER_FANG, + MOVE_SLASH, + MOVE_SUBSTITUTE, + MOVE_STRUGGLE, + MOVE_SKETCH, + MOVE_TRIPLE_KICK, + MOVE_THIEF, + MOVE_SPIDER_WEB, + MOVE_MIND_READER, + MOVE_NIGHTMARE, + MOVE_FLAME_WHEEL, + MOVE_SNORE, + MOVE_CURSE, + MOVE_FLAIL, + MOVE_CONVERSION_2, + MOVE_AEROBLAST, + MOVE_COTTON_SPORE, + MOVE_REVERSAL, + MOVE_SPITE, + MOVE_POWDER_SNOW, + MOVE_PROTECT, + MOVE_MACH_PUNCH, + MOVE_SCARY_FACE, + MOVE_FAINT_ATTACK, + MOVE_SWEET_KISS, + MOVE_BELLY_DRUM, + MOVE_SLUDGE_BOMB, + MOVE_MUD_SLAP, + MOVE_OCTAZOOKA, + MOVE_SPIKES, + MOVE_ZAP_CANNON, + MOVE_FORESIGHT, + MOVE_DESTINY_BOND, + MOVE_PERISH_SONG, + MOVE_ICY_WIND, + MOVE_DETECT, + MOVE_BONE_RUSH, + MOVE_LOCK_ON, + MOVE_OUTRAGE, + MOVE_SANDSTORM, + MOVE_GIGA_DRAIN, + MOVE_ENDURE, + MOVE_CHARM, + MOVE_ROLLOUT, + MOVE_FALSE_SWIPE, + MOVE_SWAGGER, + MOVE_MILK_DRINK, + MOVE_SPARK, + MOVE_FURY_CUTTER, + MOVE_STEEL_WING, + MOVE_MEAN_LOOK, + MOVE_ATTRACT, + MOVE_SLEEP_TALK, + MOVE_HEAL_BELL, + MOVE_RETURN, + MOVE_PRESENT, + MOVE_FRUSTRATION, + MOVE_SAFEGUARD, + MOVE_PAIN_SPLIT, + MOVE_SACRED_FIRE, + MOVE_MAGNITUDE, + MOVE_DYNAMIC_PUNCH, + MOVE_MEGAHORN, + MOVE_DRAGON_BREATH, + MOVE_BATON_PASS, + MOVE_ENCORE, + MOVE_PURSUIT, + MOVE_RAPID_SPIN, + MOVE_SWEET_SCENT, + MOVE_IRON_TAIL, + MOVE_METAL_CLAW, + MOVE_VITAL_THROW, + MOVE_MORNING_SUN, + MOVE_SYNTHESIS, + MOVE_MOONLIGHT, + MOVE_HIDDEN_POWER, + MOVE_CROSS_CHOP, + MOVE_TWISTER, + MOVE_RAIN_DANCE, + MOVE_SUNNY_DAY, + MOVE_CRUNCH, + MOVE_MIRROR_COAT, + MOVE_PSYCH_UP, + MOVE_EXTREME_SPEED, + MOVE_ANCIENT_POWER, + MOVE_SHADOW_BALL, + MOVE_FUTURE_SIGHT, + MOVE_ROCK_SMASH, + MOVE_WHIRLPOOL, + MOVE_BEAT_UP, + MOVE_FAKE_OUT, + MOVE_UPROAR, + MOVE_STOCKPILE, + MOVE_SPIT_UP, + MOVE_SWALLOW, + MOVE_HEAT_WAVE, + MOVE_HAIL, + MOVE_TORMENT, + MOVE_FLATTER, + MOVE_WILL_O_WISP, + MOVE_MEMENTO, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_SMELLING_SALT, + MOVE_FOLLOW_ME, + MOVE_NATURE_POWER, + MOVE_CHARGE, + MOVE_TAUNT, + MOVE_HELPING_HAND, + MOVE_TRICK, + MOVE_ROLE_PLAY, + MOVE_WISH, + MOVE_ASSIST, + MOVE_INGRAIN, + MOVE_SUPERPOWER, + MOVE_MAGIC_COAT, + MOVE_RECYCLE, + MOVE_REVENGE, + MOVE_BRICK_BREAK, + MOVE_YAWN, + MOVE_KNOCK_OFF, + MOVE_ENDEAVOR, + MOVE_ERUPTION, + MOVE_SKILL_SWAP, + MOVE_IMPRISON, + MOVE_REFRESH, + MOVE_GRUDGE, + MOVE_SNATCH, + MOVE_SECRET_POWER, + MOVE_DIVE, + MOVE_ARM_THRUST, + MOVE_CAMOUFLAGE, + MOVE_TAIL_GLOW, + MOVE_LUSTER_PURGE, + MOVE_MIST_BALL, + MOVE_FEATHER_DANCE, + MOVE_TEETER_DANCE, + MOVE_BLAZE_KICK, + MOVE_MUD_SPORT, + MOVE_ICE_BALL, + MOVE_NEEDLE_ARM, + MOVE_SLACK_OFF, + MOVE_HYPER_VOICE, + MOVE_POISON_FANG, + MOVE_CRUSH_CLAW, + MOVE_BLAST_BURN, + MOVE_HYDRO_CANNON, + MOVE_METEOR_MASH, + MOVE_ASTONISH, + MOVE_WEATHER_BALL, + MOVE_AROMATHERAPY, + MOVE_FAKE_TEARS, + MOVE_AIR_CUTTER, + MOVE_OVERHEAT, + MOVE_ODOR_SLEUTH, + MOVE_ROCK_TOMB, + MOVE_SILVER_WIND, + MOVE_METAL_SOUND, + MOVE_GRASS_WHISTLE, + MOVE_TICKLE, + MOVE_COSMIC_POWER, + MOVE_WATER_SPOUT, + MOVE_SIGNAL_BEAM, + MOVE_SHADOW_PUNCH, + MOVE_EXTRASENSORY, + MOVE_SKY_UPPERCUT, + MOVE_SAND_TOMB, + MOVE_SHEER_COLD, + MOVE_MUDDY_WATER, + MOVE_BULLET_SEED, + MOVE_AERIAL_ACE, + MOVE_ICICLE_SPEAR, + MOVE_IRON_DEFENSE, + MOVE_BLOCK, + MOVE_HOWL, + MOVE_DRAGON_CLAW, + MOVE_FRENZY_PLANT, + MOVE_BULK_UP, + MOVE_BOUNCE, + MOVE_MUD_SHOT, + MOVE_POISON_TAIL, + MOVE_COVET, + MOVE_VOLT_TACKLE, + MOVE_MAGICAL_LEAF, + MOVE_WATER_SPORT, + MOVE_CALM_MIND, + MOVE_LEAF_BLADE, + MOVE_DRAGON_DANCE, + MOVE_ROCK_BLAST, + MOVE_SHOCK_WAVE, + MOVE_WATER_PULSE, + MOVE_DOOM_DESIRE, + MOVE_PSYCHO_BOOST, +}; + +#endif // GUARD_MOVES_H
\ No newline at end of file diff --git a/include/opponent_constants.h b/include/opponent_constants.h new file mode 100644 index 000000000..1829facaa --- /dev/null +++ b/include/opponent_constants.h @@ -0,0 +1,702 @@ +#ifndef GUARD_OPPONENT_CONSTANTS_H +#define GUARD_OPPONENT_CONSTANTS_H + +enum +{ + OPPONENT_NONE, + OPPONENT_ARCHIE_1, + OPPONENT_GRUNT_1, + OPPONENT_GRUNT_2, + OPPONENT_GRUNT_3, + OPPONENT_GRUNT_4, + OPPONENT_GRUNT_5, + OPPONENT_GRUNT_6, + OPPONENT_GRUNT_7, + OPPONENT_GRUNT_8, + OPPONENT_GRUNT_9, + OPPONENT_GRUNT_10, + OPPONENT_GRUNT_11, + OPPONENT_GRUNT_12, + OPPONENT_GRUNT_13, + OPPONENT_GRUNT_14, + OPPONENT_GRUNT_15, + OPPONENT_GRUNT_16, + OPPONENT_GRUNT_17, + OPPONENT_GRUNT_18, + OPPONENT_GRUNT_19, + OPPONENT_GRUNT_20, + OPPONENT_GRUNT_21, + OPPONENT_GRUNT_22, + OPPONENT_GRUNT_23, + OPPONENT_GRUNT_24, + OPPONENT_GRUNT_25, + OPPONENT_GRUNT_26, + OPPONENT_GRUNT_27, + OPPONENT_ANONYMOUS_1, + OPPONENT_MATT_1, + OPPONENT_MATT_2, + OPPONENT_SHELLY_1, + OPPONENT_SHELLY_2, + OPPONENT_ARCHIE_2, + OPPONENT_ARCHIE_3, + OPPONENT_DAISY, + OPPONENT_ROSE_1, + OPPONENT_LILY, + OPPONENT_VIOLET, + OPPONENT_ROSE_2, + OPPONENT_ROSE_3, + OPPONENT_ROSE_4, + OPPONENT_ROSE_5, + OPPONENT_DUSTY_1, + OPPONENT_CHIP, + OPPONENT_FOSTER, + OPPONENT_DUSTY_2, + OPPONENT_DUSTY_3, + OPPONENT_DUSTY_4, + OPPONENT_DUSTY_5, + OPPONENT_GABBY_AND_TY_1, + OPPONENT_GABBY_AND_TY_2, + OPPONENT_GABBY_AND_TY_3, + OPPONENT_GABBY_AND_TY_4, + OPPONENT_GABBY_AND_TY_5, + OPPONENT_GABBY_AND_TY_6, + OPPONENT_LOLA_1, + OPPONENT_CARMEN, + OPPONENT_GWEN, + OPPONENT_LOLA_2, + OPPONENT_LOLA_3, + OPPONENT_LOLA_4, + OPPONENT_LOLA_5, + OPPONENT_RICKY_1, + OPPONENT_SIMON, + OPPONENT_CHARLIE, + OPPONENT_RICKY_2, + OPPONENT_RICKY_3, + OPPONENT_RICKY_4, + OPPONENT_RICKY_5, + OPPONENT_RANDALL, + OPPONENT_PARKER, + OPPONENT_GEORGE, + OPPONENT_BERKE, + OPPONENT_CLYDE, + OPPONENT_VINCENT, + OPPONENT_LEROY, + OPPONENT_WILTON_1, + OPPONENT_EDGAR, + OPPONENT_ALBERT, + OPPONENT_SAMUEL, + OPPONENT_VITO, + OPPONENT_OWEN, + OPPONENT_WILTON_2, + OPPONENT_WILTON_3, + OPPONENT_WILTON_4, + OPPONENT_WILTON_5, + OPPONENT_WARREN, + OPPONENT_MARY, + OPPONENT_LORI, + OPPONENT_JODY, + OPPONENT_WENDY, + OPPONENT_ELAINE, + OPPONENT_BROOKE_1, + OPPONENT_JENNIFER, + OPPONENT_HOPE, + OPPONENT_SHANNON, + OPPONENT_MICHELLE, + OPPONENT_CAROLINE, + OPPONENT_JULIE, + OPPONENT_BROOKE_2, + OPPONENT_BROOKE_3, + OPPONENT_BROOKE_4, + OPPONENT_BROOKE_5, + OPPONENT_PATRICIA, + OPPONENT_KINDRA, + OPPONENT_TAMMY, + OPPONENT_VALERIE_1, + OPPONENT_TASHA, + OPPONENT_VALERIE_2, + OPPONENT_VALERIE_3, + OPPONENT_VALERIE_4, + OPPONENT_VALERIE_5, + OPPONENT_CINDY_1, + OPPONENT_ANONYMOUS_2, + OPPONENT_BRIANNA_1, + OPPONENT_CINDY_2, + OPPONENT_BRIANNA_2, + OPPONENT_ANETTE, + OPPONENT_CINDY_3, + OPPONENT_CINDY_4, + OPPONENT_CINDY_5, + OPPONENT_CINDY_6, + OPPONENT_MELISSA, + OPPONENT_SHEILA, + OPPONENT_SHIRLEY, + OPPONENT_JESSICA_1, + OPPONENT_CONNIE, + OPPONENT_BRIDGET, + OPPONENT_OLIVIA, + OPPONENT_TIFFANY, + OPPONENT_JESSICA_2, + OPPONENT_JESSICA_3, + OPPONENT_JESSICA_4, + OPPONENT_JESSICA_5, + OPPONENT_WINSTON_1, + OPPONENT_ANONYMOUS_3, + OPPONENT_GARRET, + OPPONENT_WINSTON_2, + OPPONENT_WINSTON_3, + OPPONENT_WINSTON_4, + OPPONENT_WINSTON_5, + OPPONENT_STEVE_1, + OPPONENT_CHRIS, + OPPONENT_MARK, + OPPONENT_KENN, + OPPONENT_STEVE_2, + OPPONENT_STEVE_3, + OPPONENT_STEVE_4, + OPPONENT_STEVE_5, + OPPONENT_LUIS, + OPPONENT_AUSTIN, + OPPONENT_DOUGLAS, + OPPONENT_DARRIN, + OPPONENT_TONY_1, + OPPONENT_JEROME, + OPPONENT_MATTHEW, + OPPONENT_DAVID, + OPPONENT_SPENCER, + OPPONENT_ROLAND, + OPPONENT_CODY, + OPPONENT_STAN, + OPPONENT_BARRY, + OPPONENT_DEAN, + OPPONENT_RODNEY, + OPPONENT_RICHARD, + OPPONENT_HERMAN, + OPPONENT_ANONYMOUS_4, + OPPONENT_GILBERT, + OPPONENT_FRANKLIN, + OPPONENT_DANNY, + OPPONENT_JACK, + OPPONENT_DUDLEY, + OPPONENT_CHAD, + OPPONENT_TONY_2, + OPPONENT_TONY_3, + OPPONENT_TONY_4, + OPPONENT_TONY_5, + OPPONENT_HIDEKI, + OPPONENT_HITOSHI, + OPPONENT_KIYO, + OPPONENT_KOICHI, + OPPONENT_NOB_1, + OPPONENT_NOB_2, + OPPONENT_NOB_3, + OPPONENT_NOB_4, + OPPONENT_NOB_5, + OPPONENT_YUJI, + OPPONENT_DAISUKE, + OPPONENT_ATSUSHI, + OPPONENT_KIRK, + OPPONENT_SCOTT, + OPPONENT_HARVEY, + OPPONENT_SHAWN, + OPPONENT_RANDY, + OPPONENT_DALTON_1, + OPPONENT_DALTON_2, + OPPONENT_DALTON_3, + OPPONENT_DALTON_4, + OPPONENT_DALTON_5, + OPPONENT_COLE, + OPPONENT_FLINT, + OPPONENT_AXLE, + OPPONENT_JAKE, + OPPONENT_ANDY, + OPPONENT_BERNIE_1, + OPPONENT_BERNIE_2, + OPPONENT_BERNIE_3, + OPPONENT_BERNIE_4, + OPPONENT_BERNIE_5, + OPPONENT_DREW, + OPPONENT_CLIFF, + OPPONENT_LARRY, + OPPONENT_SHANE, + OPPONENT_JUSTIN, + OPPONENT_ETHAN_1, + OPPONENT_JEFF, + OPPONENT_TRAVIS, + OPPONENT_ETHAN_2, + OPPONENT_ETHAN_3, + OPPONENT_ETHAN_4, + OPPONENT_ETHAN_5, + OPPONENT_BRENT, + OPPONENT_DONALD, + OPPONENT_TAYLOR, + OPPONENT_BRANDON_1, + OPPONENT_DEREK, + OPPONENT_BRANDON_2, + OPPONENT_BRANDON_3, + OPPONENT_BRANDON_4, + OPPONENT_BRANDON_5, + OPPONENT_EDWARD, + OPPONENT_PRESTON, + OPPONENT_VIRGIL, + OPPONENT_FRITZ, + OPPONENT_WILLIAM, + OPPONENT_JOSHUA, + OPPONENT_CAMERON_1, + OPPONENT_CAMERON_2, + OPPONENT_CAMERON_3, + OPPONENT_CAMERON_4, + OPPONENT_CAMERON_5, + OPPONENT_JACLYN, + OPPONENT_HANNAH, + OPPONENT_SAMANTHA, + OPPONENT_MAURA, + OPPONENT_KAYLA, + OPPONENT_ALEXIS, + OPPONENT_JACKI_1, + OPPONENT_JACKI_2, + OPPONENT_JACKI_3, + OPPONENT_JACKI_4, + OPPONENT_JACKI_5, + OPPONENT_WALTER_1, + OPPONENT_TUCKER, + OPPONENT_THOMAS, + OPPONENT_WALTER_2, + OPPONENT_WALTER_3, + OPPONENT_WALTER_4, + OPPONENT_WALTER_5, + OPPONENT_SIDNEY, + OPPONENT_PHOEBE, + OPPONENT_GLACIA, + OPPONENT_DRAKE, + OPPONENT_ROXANNE, + OPPONENT_BRAWLY, + OPPONENT_WATTSON, + OPPONENT_FLANNERY, + OPPONENT_NORMAN, + OPPONENT_WINONA, + OPPONENT_TATE_AND_LIZA, + OPPONENT_WALLACE, + OPPONENT_JERRY_1, + OPPONENT_TED, + OPPONENT_PAUL, + OPPONENT_JERRY_2, + OPPONENT_JERRY_3, + OPPONENT_JERRY_4, + OPPONENT_JERRY_5, + OPPONENT_KAREN_1, + OPPONENT_GEORGIA, + OPPONENT_KAREN_2, + OPPONENT_KAREN_3, + OPPONENT_KAREN_4, + OPPONENT_KAREN_5, + OPPONENT_KATE_AND_JOY, + OPPONENT_ANNA_AND_MEG_1, + OPPONENT_ANNA_AND_MEG_2, + OPPONENT_ANNA_AND_MEG_3, + OPPONENT_ANNA_AND_MEG_4, + OPPONENT_ANNA_AND_MEG_5, + OPPONENT_VICTOR, + OPPONENT_MIGUEL_1, + OPPONENT_COLTON, + OPPONENT_MIGUEL_2, + OPPONENT_MIGUEL_3, + OPPONENT_MIGUEL_4, + OPPONENT_MIGUEL_5, + OPPONENT_VICTORIA, + OPPONENT_VANESSA, + OPPONENT_MARISSA, + OPPONENT_ISABEL_1, + OPPONENT_ISABEL_2, + OPPONENT_ISABEL_3, + OPPONENT_ISABEL_4, + OPPONENT_ISABEL_5, + OPPONENT_TIMOTHY_1, + OPPONENT_TIMOTHY_2, + OPPONENT_TIMOTHY_3, + OPPONENT_TIMOTHY_4, + OPPONENT_TIMOTHY_5, + OPPONENT_VICKY, + OPPONENT_SHELBY_1, + OPPONENT_SHELBY_2, + OPPONENT_SHELBY_3, + OPPONENT_SHELBY_4, + OPPONENT_SHELBY_5, + OPPONENT_CALVIN_1, + OPPONENT_BILLY, + OPPONENT_JOSH, + OPPONENT_TOMMY, + OPPONENT_JOEY, + OPPONENT_BEN, + OPPONENT_ANONYMOUS_5, + OPPONENT_KEVIN, + OPPONENT_NEAL, + OPPONENT_DILLON, + OPPONENT_CALVIN_2, + OPPONENT_CALVIN_3, + OPPONENT_CALVIN_4, + OPPONENT_CALVIN_5, + OPPONENT_EDDIE, + OPPONENT_ALLEN, + OPPONENT_TIMMY, + OPPONENT_STEVEN, + OPPONENT_ANDREW, + OPPONENT_IVAN, + OPPONENT_CLAUDE, + OPPONENT_ELLIOT_1, + OPPONENT_NED, + OPPONENT_DALE, + OPPONENT_NOLAN, + OPPONENT_BARNY, + OPPONENT_WADE, + OPPONENT_CARTER, + OPPONENT_ELLIOT_2, + OPPONENT_ELLIOT_3, + OPPONENT_ELLIOT_4, + OPPONENT_ELLIOT_5, + OPPONENT_RONALD, + OPPONENT_JACOB, + OPPONENT_ANTHONY, + OPPONENT_BENJAMIN_1, + OPPONENT_BENJAMIN_2, + OPPONENT_BENJAMIN_3, + OPPONENT_BENJAMIN_4, + OPPONENT_BENJAMIN_5, + OPPONENT_ABIGAIL_1, + OPPONENT_JASMINE, + OPPONENT_ABIGAIL_2, + OPPONENT_ABIGAIL_3, + OPPONENT_ABIGAIL_4, + OPPONENT_ABIGAIL_5, + OPPONENT_DYLAN_1, + OPPONENT_DYLAN_2, + OPPONENT_DYLAN_3, + OPPONENT_DYLAN_4, + OPPONENT_DYLAN_5, + OPPONENT_MARIA_1, + OPPONENT_MARIA_2, + OPPONENT_MARIA_3, + OPPONENT_MARIA_4, + OPPONENT_MARIA_5, + OPPONENT_CALEB, + OPPONENT_ANONYMOUS_6, + OPPONENT_ISAIAH_1, + OPPONENT_ANONYMOUS_7, + OPPONENT_CHASE, + OPPONENT_ISAIAH_2, + OPPONENT_ISAIAH_3, + OPPONENT_ISAIAH_4, + OPPONENT_ISAIAH_5, + OPPONENT_ANONYMOUS_8, + OPPONENT_CONNOR, + OPPONENT_ANONYMOUS_9, + OPPONENT_KATELYN_1, + OPPONENT_ALLISON, + OPPONENT_KATELYN_2, + OPPONENT_KATELYN_3, + OPPONENT_KATELYN_4, + OPPONENT_KATELYN_5, + OPPONENT_NICOLAS_1, + OPPONENT_NICOLAS_2, + OPPONENT_NICOLAS_3, + OPPONENT_NICOLAS_4, + OPPONENT_NICOLAS_5, + OPPONENT_AARON, + OPPONENT_PERRY, + OPPONENT_HUGH, + OPPONENT_PHIL, + OPPONENT_JARED, + OPPONENT_ANONYMOUS_10, + OPPONENT_TANNER, + OPPONENT_WILL, + OPPONENT_COLIN, + OPPONENT_ROBERT_1, + OPPONENT_BENNY, + OPPONENT_CHESTER, + OPPONENT_ROBERT_2, + OPPONENT_ROBERT_3, + OPPONENT_ROBERT_4, + OPPONENT_ROBERT_5, + OPPONENT_ALEX, + OPPONENT_BECK, + OPPONENT_YASU, + OPPONENT_TAKASHI, + OPPONENT_MAKOTO, + OPPONENT_HIDEO_1, + OPPONENT_LAO_1, + OPPONENT_LUNG, + OPPONENT_LAO_2, + OPPONENT_LAO_3, + OPPONENT_LAO_4, + OPPONENT_LAO_5, + OPPONENT_TESSA, + OPPONENT_LAURA, + OPPONENT_CYNDY_1, + OPPONENT_CORA, + OPPONENT_JILL, + OPPONENT_CYNDY_2, + OPPONENT_CYNDY_3, + OPPONENT_CYNDY_4, + OPPONENT_CYNDY_5, + OPPONENT_MADELINE_1, + OPPONENT_CLARISSA, + OPPONENT_ANGELICA, + OPPONENT_MADELINE_2, + OPPONENT_MADELINE_3, + OPPONENT_MADELINE_4, + OPPONENT_MADELINE_5, + OPPONENT_BEVERLY, + OPPONENT_DAWN, + OPPONENT_NICOLE, + OPPONENT_DENISE, + OPPONENT_BETH, + OPPONENT_TARA, + OPPONENT_MISSY, + OPPONENT_ALICE, + OPPONENT_JENNY_1, + OPPONENT_GRACE, + OPPONENT_TANYA, + OPPONENT_SHARON, + OPPONENT_NIKKI, + OPPONENT_BRENDA, + OPPONENT_KATIE, + OPPONENT_SUSIE, + OPPONENT_KARA, + OPPONENT_DANA, + OPPONENT_ERIN, + OPPONENT_DEBRA, + OPPONENT_LINDA, + OPPONENT_KAYLEE, + OPPONENT_LAUREL, + OPPONENT_DARCY, + OPPONENT_JENNY_2, + OPPONENT_JENNY_3, + OPPONENT_JENNY_4, + OPPONENT_JENNY_5, + OPPONENT_HEIDI, + OPPONENT_BECKY, + OPPONENT_CAROL, + OPPONENT_NANCY, + OPPONENT_MARTHA, + OPPONENT_DIANA_1, + OPPONENT_NINA, + OPPONENT_IRENE, + OPPONENT_DIANA_2, + OPPONENT_DIANA_3, + OPPONENT_DIANA_4, + OPPONENT_DIANA_5, + OPPONENT_AMY_AND_LIV_1, + OPPONENT_AMY_AND_LIV_2, + OPPONENT_GINA_AND_MIA_1, + OPPONENT_MIU_AND_YUKI, + OPPONENT_AMY_AND_LIV_3, + OPPONENT_GINA_AND_MIA_2, + OPPONENT_AMY_AND_LIV_4, + OPPONENT_AMY_AND_LIV_5, + OPPONENT_AMY_AND_LIV_6, + OPPONENT_HUEY, + OPPONENT_EDMOND, + OPPONENT_ERNEST_1, + OPPONENT_DWAYNE, + OPPONENT_PHILLIP, + OPPONENT_LEONARD, + OPPONENT_DUNCAN, + OPPONENT_ERNEST_2, + OPPONENT_ERNEST_3, + OPPONENT_ERNEST_4, + OPPONENT_ERNEST_5, + OPPONENT_ANONYMOUS_11, + OPPONENT_ANONYMOUS_12, + OPPONENT_ANONYMOUS_13, + OPPONENT_SONNY, + OPPONENT_DONOVAN, + OPPONENT_GERALD, + OPPONENT_KELVIN, + OPPONENT_KODY, + OPPONENT_TEVIN, + OPPONENT_DAMON, + OPPONENT_PABLO, + OPPONENT_EDWIN_1, + OPPONENT_HECTOR_1, + OPPONENT_HECTOR_2, + OPPONENT_EDWIN_2, + OPPONENT_EDWIN_3, + OPPONENT_EDWIN_4, + OPPONENT_EDWIN_5, + OPPONENT_WALLY_1, + OPPONENT_BRENDAN_1, + OPPONENT_BRENDAN_2, + OPPONENT_BRENDAN_3, + OPPONENT_BRENDAN_4, + OPPONENT_BRENDAN_5, + OPPONENT_BRENDAN_6, + OPPONENT_BRENDAN_7, + OPPONENT_BRENDAN_8, + OPPONENT_BRENDAN_9, + OPPONENT_MAY_1, + OPPONENT_MAY_2, + OPPONENT_MAY_3, + OPPONENT_MAY_4, + OPPONENT_MAY_5, + OPPONENT_MAY_6, + OPPONENT_MAY_7, + OPPONENT_MAY_8, + OPPONENT_MAY_9, + OPPONENT_ISAAC_1, + OPPONENT_RILEY, + OPPONENT_AIDAN, + OPPONENT_ISAAC_2, + OPPONENT_ISAAC_3, + OPPONENT_ISAAC_4, + OPPONENT_ISAAC_5, + OPPONENT_LYDIA_1, + OPPONENT_ALEXIA, + OPPONENT_DANIELLE, + OPPONENT_LYDIA_2, + OPPONENT_LYDIA_3, + OPPONENT_LYDIA_4, + OPPONENT_LYDIA_5, + OPPONENT_JACKSON_1, + OPPONENT_CARLOS, + OPPONENT_SEBASTIAN, + OPPONENT_JACKSON_2, + OPPONENT_JACKSON_3, + OPPONENT_JACKSON_4, + OPPONENT_JACKSON_5, + OPPONENT_CATHERINE_1, + OPPONENT_JENNA, + OPPONENT_SOPHIA, + OPPONENT_CATHERINE_2, + OPPONENT_CATHERINE_3, + OPPONENT_CATHERINE_4, + OPPONENT_CATHERINE_5, + OPPONENT_MAXIE_1, + OPPONENT_GRUNT_28, + OPPONENT_GRUNT_29, + OPPONENT_GRUNT_30, + OPPONENT_GRUNT_31, + OPPONENT_GRUNT_32, + OPPONENT_GRUNT_33, + OPPONENT_GRUNT_34, + OPPONENT_GRUNT_35, + OPPONENT_GRUNT_36, + OPPONENT_GRUNT_37, + OPPONENT_GRUNT_38, + OPPONENT_GRUNT_39, + OPPONENT_GRUNT_40, + OPPONENT_GRUNT_41, + OPPONENT_GRUNT_42, + OPPONENT_GRUNT_43, + OPPONENT_GRUNT_44, + OPPONENT_GRUNT_45, + OPPONENT_GRUNT_46, + OPPONENT_GRUNT_47, + OPPONENT_GRUNT_48, + OPPONENT_GRUNT_49, + OPPONENT_GRUNT_50, + OPPONENT_GRUNT_51, + OPPONENT_GRUNT_52, + OPPONENT_GRUNT_53, + OPPONENT_GRUNT_54, + OPPONENT_ANONYMOUS_14, + OPPONENT_ANONYMOUS_15, + OPPONENT_TABITHA_1, + OPPONENT_TABITHA_2, + OPPONENT_ANONYMOUS_16, + OPPONENT_COURTNEY_1, + OPPONENT_COURTNEY_2, + OPPONENT_MAXIE_2, + OPPONENT_MAXIE_3, + OPPONENT_TIANA, + OPPONENT_HALEY_1, + OPPONENT_JANICE, + OPPONENT_VIVI, + OPPONENT_HALEY_2, + OPPONENT_HALEY_3, + OPPONENT_HALEY_4, + OPPONENT_HALEY_5, + OPPONENT_SALLY, + OPPONENT_ROBIN, + OPPONENT_ANDREA, + OPPONENT_CRISSY, + OPPONENT_RICK, + OPPONENT_LYLE, + OPPONENT_JOSE, + OPPONENT_DOUG, + OPPONENT_GREG, + OPPONENT_KENT, + OPPONENT_JAMES_1, + OPPONENT_JAMES_2, + OPPONENT_JAMES_3, + OPPONENT_JAMES_4, + OPPONENT_JAMES_5, + OPPONENT_BRICE, + OPPONENT_TRENT_1, + OPPONENT_LENNY, + OPPONENT_LUCAS_1, + OPPONENT_ALAN, + OPPONENT_CLARK, + OPPONENT_ERIC, + OPPONENT_LUCAS_2, + OPPONENT_MIKE_1, + OPPONENT_MIKE_2, + OPPONENT_TRENT_2, + OPPONENT_TRENT_3, + OPPONENT_TRENT_4, + OPPONENT_TRENT_5, + OPPONENT_DEZ_AND_LUKE, + OPPONENT_LEA_AND_JED, + OPPONENT_LOIS_AND_HAL_1, + OPPONENT_LOIS_AND_HAL_2, + OPPONENT_LOIS_AND_HAL_3, + OPPONENT_LOIS_AND_HAL_4, + OPPONENT_LOIS_AND_HAL_5, + OPPONENT_JOHANNA, + OPPONENT_ZANE, + OPPONENT_VIVIAN, + OPPONENT_SADIE, + OPPONENT_HIDEO_2, + OPPONENT_KEIGO, + OPPONENT_TSUNAO, + OPPONENT_TERRELL, + OPPONENT_KYLEE, + OPPONENT_WALLY_2, + OPPONENT_WALLY_3, + OPPONENT_WALLY_4, + OPPONENT_WALLY_5, + OPPONENT_WALLY_6, + OPPONENT_BRENDAN_10, + OPPONENT_BRENDAN_11, + OPPONENT_BRENDAN_12, + OPPONENT_MAY_10, + OPPONENT_MAY_11, + OPPONENT_MAY_12, + OPPONENT_JONAH, + OPPONENT_HENRY, + OPPONENT_ROGER, + OPPONENT_ALEXA, + OPPONENT_RUBEN, + OPPONENT_KOJI, + OPPONENT_WAYNE, + OPPONENT_BYRON, + OPPONENT_REED, + OPPONENT_TISHA, + OPPONENT_TORI_AND_TIA, + OPPONENT_KIM_AND_IRIS, + OPPONENT_TYRA_AND_IVY, + OPPONENT_MEL_AND_PAUL, + OPPONENT_JOHN_AND_JAY_1, + OPPONENT_JOHN_AND_JAY_2, + OPPONENT_JOHN_AND_JAY_3, + OPPONENT_JOHN_AND_JAY_4, + OPPONENT_JOHN_AND_JAY_5, + OPPONENT_RELI_AND_IAN, + OPPONENT_RITA_AND_SAM_1, + OPPONENT_RITA_AND_SAM_2, + OPPONENT_RITA_AND_SAM_3, + OPPONENT_RITA_AND_SAM_4, + OPPONENT_RITA_AND_SAM_5, + OPPONENT_LISA_AND_RAY, + OPPONENT_EUGENE, +}; + +#endif // GUARD_OPPONENT_CONSTANTS_H diff --git a/include/pokedex.h b/include/pokedex.h index 1ac4e8c33..fded1ec65 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -5,54 +5,54 @@ struct PokedexListItem { - u16 dexNum; - u16 seen:1; - u16 owned:1; + u16 dexNum; + u16 seen:1; + u16 owned:1; }; struct PokedexView { - struct PokedexListItem unk0[386]; - u16 unk608; - u8 unk60A_1:1; - u8 unk60A_2:1; - u8 unk60B; - u16 unk60C; - u16 selectedPokemon; - u16 unk610; - u16 dexMode; //National or Hoenn - u16 unk614; - u16 dexOrder; - u16 unk618; - u16 unk61A; - u16 unk61C; - u16 unk61E[4]; - u16 unk626; //sprite id of selected Pokemon - u16 unk628; - u16 unk62A; - u8 unk62C; - u8 unk62D; - u8 unk62E; - u8 unk62F; - s16 unk630; - s16 unk632; - u16 unk634; - u16 unk636; - u16 unk638; - u16 unk63A[4]; - u8 filler642[8]; - u8 unk64A; - u8 unk64B; - u8 unk64C_1:1; - u8 selectedScreen; - u8 unk64E; - u8 unk64F; - u8 menuIsOpen; //menuIsOpen - u8 unk651; - u16 menuCursorPos; //Menu cursor position - s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) - u8 unk656[8]; - u8 unk65E[8]; + struct PokedexListItem unk0[386]; + u16 unk608; + u8 unk60A_1:1; + u8 unk60A_2:1; + u8 unk60B; + u16 unk60C; + u16 selectedPokemon; + u16 unk610; + u16 dexMode; //National or Hoenn + u16 unk614; + u16 dexOrder; + u16 unk618; + u16 unk61A; + u16 unk61C; + u16 unk61E[4]; + u16 unk626; //sprite id of selected Pokemon + u16 unk628; + u16 unk62A; + u8 unk62C; + u8 unk62D; + u8 unk62E; + u8 unk62F; + s16 unk630; + s16 unk632; + u16 unk634; + u16 unk636; + u16 unk638; + u16 unk63A[4]; + u8 filler642[8]; + u8 unk64A; + u8 unk64B; + u8 unk64C_1:1; + u8 selectedScreen; + u8 unk64E; + u8 unk64F; + u8 menuIsOpen; //menuIsOpen + u8 unk651; + u16 menuCursorPos; //Menu cursor position + s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) + u8 unk656[8]; + u8 unk65E[8]; }; void sub_808C02C(void); diff --git a/include/save.h b/include/save.h index 976af77c6..fe22e4ad7 100644 --- a/include/save.h +++ b/include/save.h @@ -3,23 +3,23 @@ struct SaveSectionLocation { - void *data; - u16 size; + void *data; + u16 size; }; struct SaveSection { - u8 data[0xFF4]; - u16 id; - u16 checksum; - u32 unknown; - u32 counter; + u8 data[0xFF4]; + u16 id; + u16 checksum; + u32 unknown; + u32 counter; }; struct UnkSaveSection { - u8 data[0xFF4]; - u32 unknown; + u8 data[0xFF4]; + u32 unknown; }; void ClearSaveData(void); diff --git a/include/songs.h b/include/songs.h index c77bad515..01ecf9fe0 100644 --- a/include/songs.h +++ b/include/songs.h @@ -359,16 +359,16 @@ enum BGM_DAIGO, BGM_THANKFOR, BGM_END, - BGM_BATTLE27, - BGM_BATTLE31, - BGM_BATTLE20, - BGM_BATTLE32, - BGM_BATTLE33, - BGM_BATTLE36, - BGM_BATTLE34, - BGM_BATTLE35, - BGM_BATTLE38, - BGM_BATTLE30, + BGM_BATTLE27, // wild + BGM_BATTLE31, // aqua/magma grunt + BGM_BATTLE20, // trainer + BGM_BATTLE32, // gym leader + BGM_BATTLE33, // champion + BGM_BATTLE36, // regi + BGM_BATTLE34, // weather trio + BGM_BATTLE35, // rival + BGM_BATTLE38, // elite four + BGM_BATTLE30, // aqua/magma leader }; #endif // GUARD_SONGS_H diff --git a/include/species.h b/include/species.h index d0cd7f664..e33481afd 100644 --- a/include/species.h +++ b/include/species.h @@ -2,449 +2,449 @@ #define GUARD_SPECIES_H enum { - SPECIES_NONE, // 0x000 - SPECIES_BULBASAUR, // 0x001 - SPECIES_IVYSAUR, // 0x002 - SPECIES_VENUSAUR, // 0x003 - SPECIES_CHARMANDER, // 0x004 - SPECIES_CHARMELEON, // 0x005 - SPECIES_CHARIZARD, // 0x006 - SPECIES_SQUIRTLE, // 0x007 - SPECIES_WARTORTLE, // 0x008 - SPECIES_BLASTOISE, // 0x009 - SPECIES_CATERPIE, // 0x00a - SPECIES_METAPOD, // 0x00b - SPECIES_BUTTERFREE, // 0x00c - SPECIES_WEEDLE, // 0x00d - SPECIES_KAKUNA, // 0x00e - SPECIES_BEEDRILL, // 0x00f - SPECIES_PIDGEY, // 0x010 - SPECIES_PIDGEOTTO, // 0x011 - SPECIES_PIDGEOT, // 0x012 - SPECIES_RATTATA, // 0x013 - SPECIES_RATICATE, // 0x014 - SPECIES_SPEAROW, // 0x015 - SPECIES_FEAROW, // 0x016 - SPECIES_EKANS, // 0x017 - SPECIES_ARBOK, // 0x018 - SPECIES_PIKACHU, // 0x019 - SPECIES_RAICHU, // 0x01a - SPECIES_SANDSHREW, // 0x01b - SPECIES_SANDSLASH, // 0x01c - SPECIES_NIDORAN_F, // 0x01d - SPECIES_NIDORINA, // 0x01e - SPECIES_NIDOQUEEN, // 0x01f - SPECIES_NIDORAN_M, // 0x020 - SPECIES_NIDORINO, // 0x021 - SPECIES_NIDOKING, // 0x022 - SPECIES_CLEFAIRY, // 0x023 - SPECIES_CLEFABLE, // 0x024 - SPECIES_VULPIX, // 0x025 - SPECIES_NINETALES, // 0x026 - SPECIES_JIGGLYPUFF, // 0x027 - SPECIES_WIGGLYTUFF, // 0x028 - SPECIES_ZUBAT, // 0x029 - SPECIES_GOLBAT, // 0x02a - SPECIES_ODDISH, // 0x02b - SPECIES_GLOOM, // 0x02c - SPECIES_VILEPLUME, // 0x02d - SPECIES_PARAS, // 0x02e - SPECIES_PARASECT, // 0x02f - SPECIES_VENONAT, // 0x030 - SPECIES_VENOMOTH, // 0x031 - SPECIES_DIGLETT, // 0x032 - SPECIES_DUGTRIO, // 0x033 - SPECIES_MEOWTH, // 0x034 - SPECIES_PERSIAN, // 0x035 - SPECIES_PSYDUCK, // 0x036 - SPECIES_GOLDUCK, // 0x037 - SPECIES_MANKEY, // 0x038 - SPECIES_PRIMEAPE, // 0x039 - SPECIES_GROWLITHE, // 0x03a - SPECIES_ARCANINE, // 0x03b - SPECIES_POLIWAG, // 0x03c - SPECIES_POLIWHIRL, // 0x03d - SPECIES_POLIWRATH, // 0x03e - SPECIES_ABRA, // 0x03f - SPECIES_KADABRA, // 0x040 - SPECIES_ALAKAZAM, // 0x041 - SPECIES_MACHOP, // 0x042 - SPECIES_MACHOKE, // 0x043 - SPECIES_MACHAMP, // 0x044 - SPECIES_BELLSPROUT, // 0x045 - SPECIES_WEEPINBELL, // 0x046 - SPECIES_VICTREEBEL, // 0x047 - SPECIES_TENTACOOL, // 0x048 - SPECIES_TENTACRUEL, // 0x049 - SPECIES_GEODUDE, // 0x04a - SPECIES_GRAVELER, // 0x04b - SPECIES_GOLEM, // 0x04c - SPECIES_PONYTA, // 0x04d - SPECIES_RAPIDASH, // 0x04e - SPECIES_SLOWPOKE, // 0x04f - SPECIES_SLOWBRO, // 0x050 - SPECIES_MAGNEMITE, // 0x051 - SPECIES_MAGNETON, // 0x052 - SPECIES_FARFETCHD, // 0x053 - SPECIES_DODUO, // 0x054 - SPECIES_DODRIO, // 0x055 - SPECIES_SEEL, // 0x056 - SPECIES_DEWGONG, // 0x057 - SPECIES_GRIMER, // 0x058 - SPECIES_MUK, // 0x059 - SPECIES_SHELLDER, // 0x05a - SPECIES_CLOYSTER, // 0x05b - SPECIES_GASTLY, // 0x05c - SPECIES_HAUNTER, // 0x05d - SPECIES_GENGAR, // 0x05e - SPECIES_ONIX, // 0x05f - SPECIES_DROWZEE, // 0x060 - SPECIES_HYPNO, // 0x061 - SPECIES_KRABBY, // 0x062 - SPECIES_KINGLER, // 0x063 - SPECIES_VOLTORB, // 0x064 - SPECIES_ELECTRODE, // 0x065 - SPECIES_EXEGGCUTE, // 0x066 - SPECIES_EXEGGUTOR, // 0x067 - SPECIES_CUBONE, // 0x068 - SPECIES_MAROWAK, // 0x069 - SPECIES_HITMONLEE, // 0x06a - SPECIES_HITMONCHAN, // 0x06b - SPECIES_LICKITUNG, // 0x06c - SPECIES_KOFFING, // 0x06d - SPECIES_WEEZING, // 0x06e - SPECIES_RHYHORN, // 0x06f - SPECIES_RHYDON, // 0x070 - SPECIES_CHANSEY, // 0x071 - SPECIES_TANGELA, // 0x072 - SPECIES_KANGASKHAN, // 0x073 - SPECIES_HORSEA, // 0x074 - SPECIES_SEADRA, // 0x075 - SPECIES_GOLDEEN, // 0x076 - SPECIES_SEAKING, // 0x077 - SPECIES_STARYU, // 0x078 - SPECIES_STARMIE, // 0x079 - SPECIES_MR_MIME, // 0x07a - SPECIES_SCYTHER, // 0x07b - SPECIES_JYNX, // 0x07c - SPECIES_ELECTABUZZ, // 0x07d - SPECIES_MAGMAR, // 0x07e - SPECIES_PINSIR, // 0x07f - SPECIES_TAUROS, // 0x080 - SPECIES_MAGIKARP, // 0x081 - SPECIES_GYARADOS, // 0x082 - SPECIES_LAPRAS, // 0x083 - SPECIES_DITTO, // 0x084 - SPECIES_EEVEE, // 0x085 - SPECIES_VAPOREON, // 0x086 - SPECIES_JOLTEON, // 0x087 - SPECIES_FLAREON, // 0x088 - SPECIES_PORYGON, // 0x089 - SPECIES_OMANYTE, // 0x08a - SPECIES_OMASTAR, // 0x08b - SPECIES_KABUTO, // 0x08c - SPECIES_KABUTOPS, // 0x08d - SPECIES_AERODACTYL, // 0x08e - SPECIES_SNORLAX, // 0x08f - SPECIES_ARTICUNO, // 0x090 - SPECIES_ZAPDOS, // 0x091 - SPECIES_MOLTRES, // 0x092 - SPECIES_DRATINI, // 0x093 - SPECIES_DRAGONAIR, // 0x094 - SPECIES_DRAGONITE, // 0x095 - SPECIES_MEWTWO, // 0x096 - SPECIES_MEW, // 0x097 - SPECIES_CHIKORITA, // 0x098 - SPECIES_BAYLEEF, // 0x099 - SPECIES_MEGANIUM, // 0x09a - SPECIES_CYNDAQUIL, // 0x09b - SPECIES_QUILAVA, // 0x09c - SPECIES_TYPHLOSION, // 0x09d - SPECIES_TOTODILE, // 0x09e - SPECIES_CROCONAW, // 0x09f - SPECIES_FERALIGATR, // 0x0a0 - SPECIES_SENTRET, // 0x0a1 - SPECIES_FURRET, // 0x0a2 - SPECIES_HOOTHOOT, // 0x0a3 - SPECIES_NOCTOWL, // 0x0a4 - SPECIES_LEDYBA, // 0x0a5 - SPECIES_LEDIAN, // 0x0a6 - SPECIES_SPINARAK, // 0x0a7 - SPECIES_ARIADOS, // 0x0a8 - SPECIES_CROBAT, // 0x0a9 - SPECIES_CHINCHOU, // 0x0aa - SPECIES_LANTURN, // 0x0ab - SPECIES_PICHU, // 0x0ac - SPECIES_CLEFFA, // 0x0ad - SPECIES_IGGLYBUFF, // 0x0ae - SPECIES_TOGEPI, // 0x0af - SPECIES_TOGETIC, // 0x0b0 - SPECIES_NATU, // 0x0b1 - SPECIES_XATU, // 0x0b2 - SPECIES_MAREEP, // 0x0b3 - SPECIES_FLAAFFY, // 0x0b4 - SPECIES_AMPHAROS, // 0x0b5 - SPECIES_BELLOSSOM, // 0x0b6 - SPECIES_MARILL, // 0x0b7 - SPECIES_AZUMARILL, // 0x0b8 - SPECIES_SUDOWOODO, // 0x0b9 - SPECIES_POLITOED, // 0x0ba - SPECIES_HOPPIP, // 0x0bb - SPECIES_SKIPLOOM, // 0x0bc - SPECIES_JUMPLUFF, // 0x0bd - SPECIES_AIPOM, // 0x0be - SPECIES_SUNKERN, // 0x0bf - SPECIES_SUNFLORA, // 0x0c0 - SPECIES_YANMA, // 0x0c1 - SPECIES_WOOPER, // 0x0c2 - SPECIES_QUAGSIRE, // 0x0c3 - SPECIES_ESPEON, // 0x0c4 - SPECIES_UMBREON, // 0x0c5 - SPECIES_MURKROW, // 0x0c6 - SPECIES_SLOWKING, // 0x0c7 - SPECIES_MISDREAVUS, // 0x0c8 - SPECIES_UNOWN, // 0x0c9 - SPECIES_WOBBUFFET, // 0x0ca - SPECIES_GIRAFARIG, // 0x0cb - SPECIES_PINECO, // 0x0cc - SPECIES_FORRETRESS, // 0x0cd - SPECIES_DUNSPARCE, // 0x0ce - SPECIES_GLIGAR, // 0x0cf - SPECIES_STEELIX, // 0x0d0 - SPECIES_SNUBBULL, // 0x0d1 - SPECIES_GRANBULL, // 0x0d2 - SPECIES_QWILFISH, // 0x0d3 - SPECIES_SCIZOR, // 0x0d4 - SPECIES_SHUCKLE, // 0x0d5 - SPECIES_HERACROSS, // 0x0d6 - SPECIES_SNEASEL, // 0x0d7 - SPECIES_TEDDIURSA, // 0x0d8 - SPECIES_URSARING, // 0x0d9 - SPECIES_SLUGMA, // 0x0da - SPECIES_MAGCARGO, // 0x0db - SPECIES_SWINUB, // 0x0dc - SPECIES_PILOSWINE, // 0x0dd - SPECIES_CORSOLA, // 0x0de - SPECIES_REMORAID, // 0x0df - SPECIES_OCTILLERY, // 0x0e0 - SPECIES_DELIBIRD, // 0x0e1 - SPECIES_MANTINE, // 0x0e2 - SPECIES_SKARMORY, // 0x0e3 - SPECIES_HOUNDOUR, // 0x0e4 - SPECIES_HOUNDOOM, // 0x0e5 - SPECIES_KINGDRA, // 0x0e6 - SPECIES_PHANPY, // 0x0e7 - SPECIES_DONPHAN, // 0x0e8 - SPECIES_PORYGON2, // 0x0e9 - SPECIES_STANTLER, // 0x0ea - SPECIES_SMEARGLE, // 0x0eb - SPECIES_TYROGUE, // 0x0ec - SPECIES_HITMONTOP, // 0x0ed - SPECIES_SMOOCHUM, // 0x0ee - SPECIES_ELEKID, // 0x0ef - SPECIES_MAGBY, // 0x0f0 - SPECIES_MILTANK, // 0x0f1 - SPECIES_BLISSEY, // 0x0f2 - SPECIES_RAIKOU, // 0x0f3 - SPECIES_ENTEI, // 0x0f4 - SPECIES_SUICUNE, // 0x0f5 - SPECIES_LARVITAR, // 0x0f6 - SPECIES_PUPITAR, // 0x0f7 - SPECIES_TYRANITAR, // 0x0f8 - SPECIES_LUGIA, // 0x0f9 - SPECIES_HO_OH, // 0x0fa - SPECIES_CELEBI, // 0x0fb + SPECIES_NONE, // 0x000 + SPECIES_BULBASAUR, // 0x001 + SPECIES_IVYSAUR, // 0x002 + SPECIES_VENUSAUR, // 0x003 + SPECIES_CHARMANDER, // 0x004 + SPECIES_CHARMELEON, // 0x005 + SPECIES_CHARIZARD, // 0x006 + SPECIES_SQUIRTLE, // 0x007 + SPECIES_WARTORTLE, // 0x008 + SPECIES_BLASTOISE, // 0x009 + SPECIES_CATERPIE, // 0x00a + SPECIES_METAPOD, // 0x00b + SPECIES_BUTTERFREE, // 0x00c + SPECIES_WEEDLE, // 0x00d + SPECIES_KAKUNA, // 0x00e + SPECIES_BEEDRILL, // 0x00f + SPECIES_PIDGEY, // 0x010 + SPECIES_PIDGEOTTO, // 0x011 + SPECIES_PIDGEOT, // 0x012 + SPECIES_RATTATA, // 0x013 + SPECIES_RATICATE, // 0x014 + SPECIES_SPEAROW, // 0x015 + SPECIES_FEAROW, // 0x016 + SPECIES_EKANS, // 0x017 + SPECIES_ARBOK, // 0x018 + SPECIES_PIKACHU, // 0x019 + SPECIES_RAICHU, // 0x01a + SPECIES_SANDSHREW, // 0x01b + SPECIES_SANDSLASH, // 0x01c + SPECIES_NIDORAN_F, // 0x01d + SPECIES_NIDORINA, // 0x01e + SPECIES_NIDOQUEEN, // 0x01f + SPECIES_NIDORAN_M, // 0x020 + SPECIES_NIDORINO, // 0x021 + SPECIES_NIDOKING, // 0x022 + SPECIES_CLEFAIRY, // 0x023 + SPECIES_CLEFABLE, // 0x024 + SPECIES_VULPIX, // 0x025 + SPECIES_NINETALES, // 0x026 + SPECIES_JIGGLYPUFF, // 0x027 + SPECIES_WIGGLYTUFF, // 0x028 + SPECIES_ZUBAT, // 0x029 + SPECIES_GOLBAT, // 0x02a + SPECIES_ODDISH, // 0x02b + SPECIES_GLOOM, // 0x02c + SPECIES_VILEPLUME, // 0x02d + SPECIES_PARAS, // 0x02e + SPECIES_PARASECT, // 0x02f + SPECIES_VENONAT, // 0x030 + SPECIES_VENOMOTH, // 0x031 + SPECIES_DIGLETT, // 0x032 + SPECIES_DUGTRIO, // 0x033 + SPECIES_MEOWTH, // 0x034 + SPECIES_PERSIAN, // 0x035 + SPECIES_PSYDUCK, // 0x036 + SPECIES_GOLDUCK, // 0x037 + SPECIES_MANKEY, // 0x038 + SPECIES_PRIMEAPE, // 0x039 + SPECIES_GROWLITHE, // 0x03a + SPECIES_ARCANINE, // 0x03b + SPECIES_POLIWAG, // 0x03c + SPECIES_POLIWHIRL, // 0x03d + SPECIES_POLIWRATH, // 0x03e + SPECIES_ABRA, // 0x03f + SPECIES_KADABRA, // 0x040 + SPECIES_ALAKAZAM, // 0x041 + SPECIES_MACHOP, // 0x042 + SPECIES_MACHOKE, // 0x043 + SPECIES_MACHAMP, // 0x044 + SPECIES_BELLSPROUT, // 0x045 + SPECIES_WEEPINBELL, // 0x046 + SPECIES_VICTREEBEL, // 0x047 + SPECIES_TENTACOOL, // 0x048 + SPECIES_TENTACRUEL, // 0x049 + SPECIES_GEODUDE, // 0x04a + SPECIES_GRAVELER, // 0x04b + SPECIES_GOLEM, // 0x04c + SPECIES_PONYTA, // 0x04d + SPECIES_RAPIDASH, // 0x04e + SPECIES_SLOWPOKE, // 0x04f + SPECIES_SLOWBRO, // 0x050 + SPECIES_MAGNEMITE, // 0x051 + SPECIES_MAGNETON, // 0x052 + SPECIES_FARFETCHD, // 0x053 + SPECIES_DODUO, // 0x054 + SPECIES_DODRIO, // 0x055 + SPECIES_SEEL, // 0x056 + SPECIES_DEWGONG, // 0x057 + SPECIES_GRIMER, // 0x058 + SPECIES_MUK, // 0x059 + SPECIES_SHELLDER, // 0x05a + SPECIES_CLOYSTER, // 0x05b + SPECIES_GASTLY, // 0x05c + SPECIES_HAUNTER, // 0x05d + SPECIES_GENGAR, // 0x05e + SPECIES_ONIX, // 0x05f + SPECIES_DROWZEE, // 0x060 + SPECIES_HYPNO, // 0x061 + SPECIES_KRABBY, // 0x062 + SPECIES_KINGLER, // 0x063 + SPECIES_VOLTORB, // 0x064 + SPECIES_ELECTRODE, // 0x065 + SPECIES_EXEGGCUTE, // 0x066 + SPECIES_EXEGGUTOR, // 0x067 + SPECIES_CUBONE, // 0x068 + SPECIES_MAROWAK, // 0x069 + SPECIES_HITMONLEE, // 0x06a + SPECIES_HITMONCHAN, // 0x06b + SPECIES_LICKITUNG, // 0x06c + SPECIES_KOFFING, // 0x06d + SPECIES_WEEZING, // 0x06e + SPECIES_RHYHORN, // 0x06f + SPECIES_RHYDON, // 0x070 + SPECIES_CHANSEY, // 0x071 + SPECIES_TANGELA, // 0x072 + SPECIES_KANGASKHAN, // 0x073 + SPECIES_HORSEA, // 0x074 + SPECIES_SEADRA, // 0x075 + SPECIES_GOLDEEN, // 0x076 + SPECIES_SEAKING, // 0x077 + SPECIES_STARYU, // 0x078 + SPECIES_STARMIE, // 0x079 + SPECIES_MR_MIME, // 0x07a + SPECIES_SCYTHER, // 0x07b + SPECIES_JYNX, // 0x07c + SPECIES_ELECTABUZZ, // 0x07d + SPECIES_MAGMAR, // 0x07e + SPECIES_PINSIR, // 0x07f + SPECIES_TAUROS, // 0x080 + SPECIES_MAGIKARP, // 0x081 + SPECIES_GYARADOS, // 0x082 + SPECIES_LAPRAS, // 0x083 + SPECIES_DITTO, // 0x084 + SPECIES_EEVEE, // 0x085 + SPECIES_VAPOREON, // 0x086 + SPECIES_JOLTEON, // 0x087 + SPECIES_FLAREON, // 0x088 + SPECIES_PORYGON, // 0x089 + SPECIES_OMANYTE, // 0x08a + SPECIES_OMASTAR, // 0x08b + SPECIES_KABUTO, // 0x08c + SPECIES_KABUTOPS, // 0x08d + SPECIES_AERODACTYL, // 0x08e + SPECIES_SNORLAX, // 0x08f + SPECIES_ARTICUNO, // 0x090 + SPECIES_ZAPDOS, // 0x091 + SPECIES_MOLTRES, // 0x092 + SPECIES_DRATINI, // 0x093 + SPECIES_DRAGONAIR, // 0x094 + SPECIES_DRAGONITE, // 0x095 + SPECIES_MEWTWO, // 0x096 + SPECIES_MEW, // 0x097 + SPECIES_CHIKORITA, // 0x098 + SPECIES_BAYLEEF, // 0x099 + SPECIES_MEGANIUM, // 0x09a + SPECIES_CYNDAQUIL, // 0x09b + SPECIES_QUILAVA, // 0x09c + SPECIES_TYPHLOSION, // 0x09d + SPECIES_TOTODILE, // 0x09e + SPECIES_CROCONAW, // 0x09f + SPECIES_FERALIGATR, // 0x0a0 + SPECIES_SENTRET, // 0x0a1 + SPECIES_FURRET, // 0x0a2 + SPECIES_HOOTHOOT, // 0x0a3 + SPECIES_NOCTOWL, // 0x0a4 + SPECIES_LEDYBA, // 0x0a5 + SPECIES_LEDIAN, // 0x0a6 + SPECIES_SPINARAK, // 0x0a7 + SPECIES_ARIADOS, // 0x0a8 + SPECIES_CROBAT, // 0x0a9 + SPECIES_CHINCHOU, // 0x0aa + SPECIES_LANTURN, // 0x0ab + SPECIES_PICHU, // 0x0ac + SPECIES_CLEFFA, // 0x0ad + SPECIES_IGGLYBUFF, // 0x0ae + SPECIES_TOGEPI, // 0x0af + SPECIES_TOGETIC, // 0x0b0 + SPECIES_NATU, // 0x0b1 + SPECIES_XATU, // 0x0b2 + SPECIES_MAREEP, // 0x0b3 + SPECIES_FLAAFFY, // 0x0b4 + SPECIES_AMPHAROS, // 0x0b5 + SPECIES_BELLOSSOM, // 0x0b6 + SPECIES_MARILL, // 0x0b7 + SPECIES_AZUMARILL, // 0x0b8 + SPECIES_SUDOWOODO, // 0x0b9 + SPECIES_POLITOED, // 0x0ba + SPECIES_HOPPIP, // 0x0bb + SPECIES_SKIPLOOM, // 0x0bc + SPECIES_JUMPLUFF, // 0x0bd + SPECIES_AIPOM, // 0x0be + SPECIES_SUNKERN, // 0x0bf + SPECIES_SUNFLORA, // 0x0c0 + SPECIES_YANMA, // 0x0c1 + SPECIES_WOOPER, // 0x0c2 + SPECIES_QUAGSIRE, // 0x0c3 + SPECIES_ESPEON, // 0x0c4 + SPECIES_UMBREON, // 0x0c5 + SPECIES_MURKROW, // 0x0c6 + SPECIES_SLOWKING, // 0x0c7 + SPECIES_MISDREAVUS, // 0x0c8 + SPECIES_UNOWN, // 0x0c9 + SPECIES_WOBBUFFET, // 0x0ca + SPECIES_GIRAFARIG, // 0x0cb + SPECIES_PINECO, // 0x0cc + SPECIES_FORRETRESS, // 0x0cd + SPECIES_DUNSPARCE, // 0x0ce + SPECIES_GLIGAR, // 0x0cf + SPECIES_STEELIX, // 0x0d0 + SPECIES_SNUBBULL, // 0x0d1 + SPECIES_GRANBULL, // 0x0d2 + SPECIES_QWILFISH, // 0x0d3 + SPECIES_SCIZOR, // 0x0d4 + SPECIES_SHUCKLE, // 0x0d5 + SPECIES_HERACROSS, // 0x0d6 + SPECIES_SNEASEL, // 0x0d7 + SPECIES_TEDDIURSA, // 0x0d8 + SPECIES_URSARING, // 0x0d9 + SPECIES_SLUGMA, // 0x0da + SPECIES_MAGCARGO, // 0x0db + SPECIES_SWINUB, // 0x0dc + SPECIES_PILOSWINE, // 0x0dd + SPECIES_CORSOLA, // 0x0de + SPECIES_REMORAID, // 0x0df + SPECIES_OCTILLERY, // 0x0e0 + SPECIES_DELIBIRD, // 0x0e1 + SPECIES_MANTINE, // 0x0e2 + SPECIES_SKARMORY, // 0x0e3 + SPECIES_HOUNDOUR, // 0x0e4 + SPECIES_HOUNDOOM, // 0x0e5 + SPECIES_KINGDRA, // 0x0e6 + SPECIES_PHANPY, // 0x0e7 + SPECIES_DONPHAN, // 0x0e8 + SPECIES_PORYGON2, // 0x0e9 + SPECIES_STANTLER, // 0x0ea + SPECIES_SMEARGLE, // 0x0eb + SPECIES_TYROGUE, // 0x0ec + SPECIES_HITMONTOP, // 0x0ed + SPECIES_SMOOCHUM, // 0x0ee + SPECIES_ELEKID, // 0x0ef + SPECIES_MAGBY, // 0x0f0 + SPECIES_MILTANK, // 0x0f1 + SPECIES_BLISSEY, // 0x0f2 + SPECIES_RAIKOU, // 0x0f3 + SPECIES_ENTEI, // 0x0f4 + SPECIES_SUICUNE, // 0x0f5 + SPECIES_LARVITAR, // 0x0f6 + SPECIES_PUPITAR, // 0x0f7 + SPECIES_TYRANITAR, // 0x0f8 + SPECIES_LUGIA, // 0x0f9 + SPECIES_HO_OH, // 0x0fa + SPECIES_CELEBI, // 0x0fb - SPECIES_OLD_UNOWN_B, - SPECIES_OLD_UNOWN_C, - SPECIES_OLD_UNOWN_D, - SPECIES_OLD_UNOWN_E, - SPECIES_OLD_UNOWN_F, - SPECIES_OLD_UNOWN_G, - SPECIES_OLD_UNOWN_H, - SPECIES_OLD_UNOWN_I, - SPECIES_OLD_UNOWN_J, - SPECIES_OLD_UNOWN_K, - SPECIES_OLD_UNOWN_L, - SPECIES_OLD_UNOWN_M, - SPECIES_OLD_UNOWN_N, - SPECIES_OLD_UNOWN_O, - SPECIES_OLD_UNOWN_P, - SPECIES_OLD_UNOWN_Q, - SPECIES_OLD_UNOWN_R, - SPECIES_OLD_UNOWN_S, - SPECIES_OLD_UNOWN_T, - SPECIES_OLD_UNOWN_U, - SPECIES_OLD_UNOWN_V, - SPECIES_OLD_UNOWN_W, - SPECIES_OLD_UNOWN_X, - SPECIES_OLD_UNOWN_Y, - SPECIES_OLD_UNOWN_Z, + SPECIES_OLD_UNOWN_B, + SPECIES_OLD_UNOWN_C, + SPECIES_OLD_UNOWN_D, + SPECIES_OLD_UNOWN_E, + SPECIES_OLD_UNOWN_F, + SPECIES_OLD_UNOWN_G, + SPECIES_OLD_UNOWN_H, + SPECIES_OLD_UNOWN_I, + SPECIES_OLD_UNOWN_J, + SPECIES_OLD_UNOWN_K, + SPECIES_OLD_UNOWN_L, + SPECIES_OLD_UNOWN_M, + SPECIES_OLD_UNOWN_N, + SPECIES_OLD_UNOWN_O, + SPECIES_OLD_UNOWN_P, + SPECIES_OLD_UNOWN_Q, + SPECIES_OLD_UNOWN_R, + SPECIES_OLD_UNOWN_S, + SPECIES_OLD_UNOWN_T, + SPECIES_OLD_UNOWN_U, + SPECIES_OLD_UNOWN_V, + SPECIES_OLD_UNOWN_W, + SPECIES_OLD_UNOWN_X, + SPECIES_OLD_UNOWN_Y, + SPECIES_OLD_UNOWN_Z, - SPECIES_TREECKO, // 0x115 - SPECIES_GROVYLE, // 0x116 - SPECIES_SCEPTILE, // 0x117 - SPECIES_TORCHIC, // 0x118 - SPECIES_COMBUSKEN, // 0x119 - SPECIES_BLAZIKEN, // 0x11a - SPECIES_MUDKIP, // 0x11b - SPECIES_MARSHTOMP, // 0x11c - SPECIES_SWAMPERT, // 0x11d - SPECIES_POOCHYENA, // 0x11e - SPECIES_MIGHTYENA, // 0x11f - SPECIES_ZIGZAGOON, // 0x120 - SPECIES_LINOONE, // 0x121 - SPECIES_WURMPLE, // 0x122 - SPECIES_SILCOON, // 0x123 - SPECIES_BEAUTIFLY, // 0x124 - SPECIES_CASCOON, // 0x125 - SPECIES_DUSTOX, // 0x126 - SPECIES_LOTAD, // 0x127 - SPECIES_LOMBRE, // 0x128 - SPECIES_LUDICOLO, // 0x129 - SPECIES_SEEDOT, // 0x12a - SPECIES_NUZLEAF, // 0x12b - SPECIES_SHIFTRY, // 0x12c - SPECIES_NINCADA, // 0x12d - SPECIES_NINJASK, // 0x12e - SPECIES_SHEDINJA, // 0x12f - SPECIES_TAILLOW, // 0x130 - SPECIES_SWELLOW, // 0x131 - SPECIES_SHROOMISH, // 0x132 - SPECIES_BRELOOM, // 0x133 - SPECIES_SPINDA, // 0x134 - SPECIES_WINGULL, // 0x135 - SPECIES_PELIPPER, // 0x136 - SPECIES_SURSKIT, // 0x137 - SPECIES_MASQUERAIN, // 0x138 - SPECIES_WAILMER, // 0x139 - SPECIES_WAILORD, // 0x13a - SPECIES_SKITTY, // 0x13b - SPECIES_DELCATTY, // 0x13c - SPECIES_KECLEON, // 0x13d - SPECIES_BALTOY, // 0x13e - SPECIES_CLAYDOL, // 0x13f - SPECIES_NOSEPASS, // 0x140 - SPECIES_TORKOAL, // 0x141 - SPECIES_SABLEYE, // 0x142 - SPECIES_BARBOACH, // 0x143 - SPECIES_WHISCASH, // 0x144 - SPECIES_LUVDISC, // 0x145 - SPECIES_CORPHISH, // 0x146 - SPECIES_CRAWDAUNT, // 0x147 - SPECIES_FEEBAS, // 0x148 - SPECIES_MILOTIC, // 0x149 - SPECIES_CARVANHA, // 0x14a - SPECIES_SHARPEDO, // 0x14b - SPECIES_TRAPINCH, // 0x14c - SPECIES_VIBRAVA, // 0x14d - SPECIES_FLYGON, // 0x14e - SPECIES_MAKUHITA, // 0x14f - SPECIES_HARIYAMA, // 0x150 - SPECIES_ELECTRIKE, // 0x151 - SPECIES_MANECTRIC, // 0x152 - SPECIES_NUMEL, // 0x153 - SPECIES_CAMERUPT, // 0x154 - SPECIES_SPHEAL, // 0x155 - SPECIES_SEALEO, // 0x156 - SPECIES_WALREIN, // 0x157 - SPECIES_CACNEA, // 0x158 - SPECIES_CACTURNE, // 0x159 - SPECIES_SNORUNT, // 0x15a - SPECIES_GLALIE, // 0x15b - SPECIES_LUNATONE, // 0x15c - SPECIES_SOLROCK, // 0x15d - SPECIES_AZURILL, // 0x15e - SPECIES_SPOINK, // 0x15f - SPECIES_GRUMPIG, // 0x160 - SPECIES_PLUSLE, // 0x161 - SPECIES_MINUN, // 0x162 - SPECIES_MAWILE, // 0x163 - SPECIES_MEDITITE, // 0x164 - SPECIES_MEDICHAM, // 0x165 - SPECIES_SWABLU, // 0x166 - SPECIES_ALTARIA, // 0x167 - SPECIES_WYNAUT, // 0x168 - SPECIES_DUSKULL, // 0x169 - SPECIES_DUSCLOPS, // 0x16a - SPECIES_ROSELIA, // 0x16b - SPECIES_SLAKOTH, // 0x16c - SPECIES_VIGOROTH, // 0x16d - SPECIES_SLAKING, // 0x16e - SPECIES_GULPIN, // 0x16f - SPECIES_SWALOT, // 0x170 - SPECIES_TROPIUS, // 0x171 - SPECIES_WHISMUR, // 0x172 - SPECIES_LOUDRED, // 0x173 - SPECIES_EXPLOUD, // 0x174 - SPECIES_CLAMPERL, // 0x175 - SPECIES_HUNTAIL, // 0x176 - SPECIES_GOREBYSS, // 0x177 - SPECIES_ABSOL, // 0x178 - SPECIES_SHUPPET, // 0x179 - SPECIES_BANETTE, // 0x17a - SPECIES_SEVIPER, // 0x17b - SPECIES_ZANGOOSE, // 0x17c - SPECIES_RELICANTH, // 0x17d - SPECIES_ARON, // 0x17e - SPECIES_LAIRON, // 0x17f - SPECIES_AGGRON, // 0x180 - SPECIES_CASTFORM, // 0x181 - SPECIES_VOLBEAT, // 0x182 - SPECIES_ILLUMISE, // 0x183 - SPECIES_LILEEP, // 0x184 - SPECIES_CRADILY, // 0x185 - SPECIES_ANORITH, // 0x186 - SPECIES_ARMALDO, // 0x187 - SPECIES_RALTS, // 0x188 - SPECIES_KIRLIA, // 0x189 - SPECIES_GARDEVOIR, // 0x18a - SPECIES_BAGON, // 0x18b - SPECIES_SHELGON, // 0x18c - SPECIES_SALAMENCE, // 0x18d - SPECIES_BELDUM, // 0x18e - SPECIES_METANG, // 0x18f - SPECIES_METAGROSS, // 0x190 - SPECIES_REGIROCK, // 0x191 - SPECIES_REGICE, // 0x192 - SPECIES_REGISTEEL, // 0x193 - SPECIES_KYOGRE, // 0x194 - SPECIES_GROUDON, // 0x195 - SPECIES_RAYQUAZA, // 0x196 - SPECIES_LATIAS, // 0x197 - SPECIES_LATIOS, // 0x198 - SPECIES_JIRACHI, // 0x199 - SPECIES_DEOXYS, // 0x19a - SPECIES_CHIMECHO, // 0x19b - SPECIES_EGG, // 0x19c + SPECIES_TREECKO, // 0x115 + SPECIES_GROVYLE, // 0x116 + SPECIES_SCEPTILE, // 0x117 + SPECIES_TORCHIC, // 0x118 + SPECIES_COMBUSKEN, // 0x119 + SPECIES_BLAZIKEN, // 0x11a + SPECIES_MUDKIP, // 0x11b + SPECIES_MARSHTOMP, // 0x11c + SPECIES_SWAMPERT, // 0x11d + SPECIES_POOCHYENA, // 0x11e + SPECIES_MIGHTYENA, // 0x11f + SPECIES_ZIGZAGOON, // 0x120 + SPECIES_LINOONE, // 0x121 + SPECIES_WURMPLE, // 0x122 + SPECIES_SILCOON, // 0x123 + SPECIES_BEAUTIFLY, // 0x124 + SPECIES_CASCOON, // 0x125 + SPECIES_DUSTOX, // 0x126 + SPECIES_LOTAD, // 0x127 + SPECIES_LOMBRE, // 0x128 + SPECIES_LUDICOLO, // 0x129 + SPECIES_SEEDOT, // 0x12a + SPECIES_NUZLEAF, // 0x12b + SPECIES_SHIFTRY, // 0x12c + SPECIES_NINCADA, // 0x12d + SPECIES_NINJASK, // 0x12e + SPECIES_SHEDINJA, // 0x12f + SPECIES_TAILLOW, // 0x130 + SPECIES_SWELLOW, // 0x131 + SPECIES_SHROOMISH, // 0x132 + SPECIES_BRELOOM, // 0x133 + SPECIES_SPINDA, // 0x134 + SPECIES_WINGULL, // 0x135 + SPECIES_PELIPPER, // 0x136 + SPECIES_SURSKIT, // 0x137 + SPECIES_MASQUERAIN, // 0x138 + SPECIES_WAILMER, // 0x139 + SPECIES_WAILORD, // 0x13a + SPECIES_SKITTY, // 0x13b + SPECIES_DELCATTY, // 0x13c + SPECIES_KECLEON, // 0x13d + SPECIES_BALTOY, // 0x13e + SPECIES_CLAYDOL, // 0x13f + SPECIES_NOSEPASS, // 0x140 + SPECIES_TORKOAL, // 0x141 + SPECIES_SABLEYE, // 0x142 + SPECIES_BARBOACH, // 0x143 + SPECIES_WHISCASH, // 0x144 + SPECIES_LUVDISC, // 0x145 + SPECIES_CORPHISH, // 0x146 + SPECIES_CRAWDAUNT, // 0x147 + SPECIES_FEEBAS, // 0x148 + SPECIES_MILOTIC, // 0x149 + SPECIES_CARVANHA, // 0x14a + SPECIES_SHARPEDO, // 0x14b + SPECIES_TRAPINCH, // 0x14c + SPECIES_VIBRAVA, // 0x14d + SPECIES_FLYGON, // 0x14e + SPECIES_MAKUHITA, // 0x14f + SPECIES_HARIYAMA, // 0x150 + SPECIES_ELECTRIKE, // 0x151 + SPECIES_MANECTRIC, // 0x152 + SPECIES_NUMEL, // 0x153 + SPECIES_CAMERUPT, // 0x154 + SPECIES_SPHEAL, // 0x155 + SPECIES_SEALEO, // 0x156 + SPECIES_WALREIN, // 0x157 + SPECIES_CACNEA, // 0x158 + SPECIES_CACTURNE, // 0x159 + SPECIES_SNORUNT, // 0x15a + SPECIES_GLALIE, // 0x15b + SPECIES_LUNATONE, // 0x15c + SPECIES_SOLROCK, // 0x15d + SPECIES_AZURILL, // 0x15e + SPECIES_SPOINK, // 0x15f + SPECIES_GRUMPIG, // 0x160 + SPECIES_PLUSLE, // 0x161 + SPECIES_MINUN, // 0x162 + SPECIES_MAWILE, // 0x163 + SPECIES_MEDITITE, // 0x164 + SPECIES_MEDICHAM, // 0x165 + SPECIES_SWABLU, // 0x166 + SPECIES_ALTARIA, // 0x167 + SPECIES_WYNAUT, // 0x168 + SPECIES_DUSKULL, // 0x169 + SPECIES_DUSCLOPS, // 0x16a + SPECIES_ROSELIA, // 0x16b + SPECIES_SLAKOTH, // 0x16c + SPECIES_VIGOROTH, // 0x16d + SPECIES_SLAKING, // 0x16e + SPECIES_GULPIN, // 0x16f + SPECIES_SWALOT, // 0x170 + SPECIES_TROPIUS, // 0x171 + SPECIES_WHISMUR, // 0x172 + SPECIES_LOUDRED, // 0x173 + SPECIES_EXPLOUD, // 0x174 + SPECIES_CLAMPERL, // 0x175 + SPECIES_HUNTAIL, // 0x176 + SPECIES_GOREBYSS, // 0x177 + SPECIES_ABSOL, // 0x178 + SPECIES_SHUPPET, // 0x179 + SPECIES_BANETTE, // 0x17a + SPECIES_SEVIPER, // 0x17b + SPECIES_ZANGOOSE, // 0x17c + SPECIES_RELICANTH, // 0x17d + SPECIES_ARON, // 0x17e + SPECIES_LAIRON, // 0x17f + SPECIES_AGGRON, // 0x180 + SPECIES_CASTFORM, // 0x181 + SPECIES_VOLBEAT, // 0x182 + SPECIES_ILLUMISE, // 0x183 + SPECIES_LILEEP, // 0x184 + SPECIES_CRADILY, // 0x185 + SPECIES_ANORITH, // 0x186 + SPECIES_ARMALDO, // 0x187 + SPECIES_RALTS, // 0x188 + SPECIES_KIRLIA, // 0x189 + SPECIES_GARDEVOIR, // 0x18a + SPECIES_BAGON, // 0x18b + SPECIES_SHELGON, // 0x18c + SPECIES_SALAMENCE, // 0x18d + SPECIES_BELDUM, // 0x18e + SPECIES_METANG, // 0x18f + SPECIES_METAGROSS, // 0x190 + SPECIES_REGIROCK, // 0x191 + SPECIES_REGICE, // 0x192 + SPECIES_REGISTEEL, // 0x193 + SPECIES_KYOGRE, // 0x194 + SPECIES_GROUDON, // 0x195 + SPECIES_RAYQUAZA, // 0x196 + SPECIES_LATIAS, // 0x197 + SPECIES_LATIOS, // 0x198 + SPECIES_JIRACHI, // 0x199 + SPECIES_DEOXYS, // 0x19a + SPECIES_CHIMECHO, // 0x19b + SPECIES_EGG, // 0x19c - SPECIES_UNOWN_B, - SPECIES_UNOWN_C, - SPECIES_UNOWN_D, - SPECIES_UNOWN_E, - SPECIES_UNOWN_F, - SPECIES_UNOWN_G, - SPECIES_UNOWN_H, - SPECIES_UNOWN_I, - SPECIES_UNOWN_J, - SPECIES_UNOWN_K, - SPECIES_UNOWN_L, - SPECIES_UNOWN_M, - SPECIES_UNOWN_N, - SPECIES_UNOWN_O, - SPECIES_UNOWN_P, - SPECIES_UNOWN_Q, - SPECIES_UNOWN_R, - SPECIES_UNOWN_S, - SPECIES_UNOWN_T, - SPECIES_UNOWN_U, - SPECIES_UNOWN_V, - SPECIES_UNOWN_W, - SPECIES_UNOWN_X, - SPECIES_UNOWN_Y, - SPECIES_UNOWN_Z, - SPECIES_UNOWN_EMARK, - SPECIES_UNOWN_QMARK, + SPECIES_UNOWN_B, + SPECIES_UNOWN_C, + SPECIES_UNOWN_D, + SPECIES_UNOWN_E, + SPECIES_UNOWN_F, + SPECIES_UNOWN_G, + SPECIES_UNOWN_H, + SPECIES_UNOWN_I, + SPECIES_UNOWN_J, + SPECIES_UNOWN_K, + SPECIES_UNOWN_L, + SPECIES_UNOWN_M, + SPECIES_UNOWN_N, + SPECIES_UNOWN_O, + SPECIES_UNOWN_P, + SPECIES_UNOWN_Q, + SPECIES_UNOWN_R, + SPECIES_UNOWN_S, + SPECIES_UNOWN_T, + SPECIES_UNOWN_U, + SPECIES_UNOWN_V, + SPECIES_UNOWN_W, + SPECIES_UNOWN_X, + SPECIES_UNOWN_Y, + SPECIES_UNOWN_Z, + SPECIES_UNOWN_EMARK, + SPECIES_UNOWN_QMARK, }; #define NUM_SPECIES SPECIES_EGG diff --git a/include/sprite.h b/include/sprite.h index 54b0fd76b..4e3074ebb 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -5,7 +5,7 @@ struct SpriteSheet { - u8 *data; + const u8 *data; u16 size; u16 tag; }; @@ -18,7 +18,7 @@ struct SpriteFrameImage struct SpritePalette { - u16 *data; + const u16 *data; u16 tag; }; @@ -45,6 +45,9 @@ struct AnimJumpCmd u32 target:6; }; +// The first halfword of this union specifies the type of command. +// If it -2, then it is a jump command. If it is -1, then it is the end of the script. +// Otherwise, it is the imageValue for a frame command. union AnimCmd { s16 type; @@ -53,6 +56,13 @@ union AnimCmd struct AnimJumpCmd jump; }; +#define ANIMCMD_FRAME(...) \ + {.frame = {__VA_ARGS__}} +#define ANIMCMD_JUMP(_target) \ + {.jump = {.type = -2, .target = _target}} +#define ANIMCMD_END \ + {.type = -1} + struct AffineAnimFrameCmd { s16 xScale; @@ -81,6 +91,11 @@ union AffineAnimCmd struct AffineAnimJumpCmd jump; }; +#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \ + {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}} +#define AFFINEANIMCMD_END \ + {.type = 0x7FFF} + struct AffineAnimState { u8 animNum; @@ -121,19 +136,19 @@ struct SpriteTemplate { u16 tileTag; u16 paletteTag; - struct OamData *oam; - union AnimCmd **anims; + const struct OamData *oam; + const union AnimCmd *const *anims; struct SpriteFrameImage *images; - union AffineAnimCmd **affineAnims; + const union AffineAnimCmd *const *affineAnims; void (*callback)(struct Sprite *); }; struct Sprite { /*0x00*/ struct OamData oam; - /*0x08*/ union AnimCmd **anims; + /*0x08*/ const union AnimCmd *const *anims; /*0x0C*/ struct SpriteFrameImage *images; - /*0x10*/ union AffineAnimCmd **affineAnims; + /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; /*0x1C*/ void (*callback)(struct Sprite *); @@ -204,7 +219,7 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d); void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); void SpriteCallbackDummy(struct Sprite *sprite); void ProcessSpriteCopyRequests(void); -void RequestSpriteCopy(u8 *src, u8 *dest, u16 size); +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size); void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); @@ -223,8 +238,8 @@ u8 AllocOamMatrix(void); void FreeOamMatrix(u8 matrixNum); void InitSpriteAffineAnim(struct Sprite *sprite); void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotation); -u16 LoadSpriteSheet(struct SpriteSheet *sheet); -void LoadSpriteSheets(struct SpriteSheet *sheets); +u16 LoadSpriteSheet(const struct SpriteSheet *sheet); +void LoadSpriteSheets(const struct SpriteSheet *sheets); u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet); void AllocTilesForSpriteSheets(struct SpriteSheet *sheets); void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet); @@ -249,4 +264,6 @@ void CopyToSprites(u8 *src); void CopyFromSprites(u8 *dest); u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); +extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; + #endif // GUARD_SPRITE_H diff --git a/include/starter_choose.h b/include/starter_choose.h index 4a7e0514c..008d1b14e 100644 --- a/include/starter_choose.h +++ b/include/starter_choose.h @@ -5,9 +5,5 @@ u16 GetStarterPokemon(u16); void CB2_ChooseStarter(void); -void nullsub_72(struct Sprite *sprite); -void sub_810A62C(struct Sprite *sprite); -void sub_810A68C(struct Sprite *sprite); -void StarterPokemonSpriteAnimCallback(struct Sprite *sprite); #endif // GUARD_STARTER_CHOOSE_H diff --git a/include/text_window.h b/include/text_window.h index 6df3f7d33..afd645540 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -5,8 +5,8 @@ struct FrameGraphics { - u8 *tiles; - u16 *palette; + u8 *tiles; + u16 *palette; }; u16 SetTextWindowBaseTileNum(u16 baseTileNum); diff --git a/include/trainer_card.h b/include/trainer_card.h index 7269c0b20..bd0c808dd 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -2,30 +2,30 @@ #define GUARD_TRAINER_CARD_H struct TrainerCard { - /*0x00*/ u8 gender; - /*0x01*/ u8 stars; - /*0x02*/ bool8 hasPokedex; - /*0x03*/ bool8 var_3; - /*0x04*/ bool8 var_4; - /*0x05*/ u8 var_5; - /*0x06*/ u16 firstHallOfFameA; - /*0x08*/ u16 firstHallOfFameB; - /*0x0A*/ u16 firstHallOfFameC; - /*0x0C*/ u16 pokedexSeen; - /*0x0E*/ u16 trainerId; - /*0x10*/ u16 playTimeHours; - /*0x12*/ u16 playTimeMinutes; - /*0x14*/ u16 linkBattleWins; - /*0x16*/ u16 linkBattleLosses; - /*0x18*/ u16 battleTowerWins; - /*0x1A*/ u16 battleTowerLosses; - /*0x1C*/ u16 contestsWithFriends; - /*0x1E*/ u16 pokeblocksWithFriends; - /*0x20*/ u16 pokemonTrades; - /*0x22*/ u16 var_22; - /*0x24*/ u32 money; - /*0x28*/ u16 var_28[4]; - /*0x30*/ u8 playerName[8]; + /*0x00*/ u8 gender; + /*0x01*/ u8 stars; + /*0x02*/ bool8 hasPokedex; + /*0x03*/ bool8 var_3; + /*0x04*/ bool8 var_4; + /*0x05*/ u8 var_5; + /*0x06*/ u16 firstHallOfFameA; + /*0x08*/ u16 firstHallOfFameB; + /*0x0A*/ u16 firstHallOfFameC; + /*0x0C*/ u16 pokedexSeen; + /*0x0E*/ u16 trainerId; + /*0x10*/ u16 playTimeHours; + /*0x12*/ u16 playTimeMinutes; + /*0x14*/ u16 linkBattleWins; + /*0x16*/ u16 linkBattleLosses; + /*0x18*/ u16 battleTowerWins; + /*0x1A*/ u16 battleTowerLosses; + /*0x1C*/ u16 contestsWithFriends; + /*0x1E*/ u16 pokeblocksWithFriends; + /*0x20*/ u16 pokemonTrades; + /*0x22*/ u16 var_22; + /*0x24*/ u32 money; + /*0x28*/ u16 var_28[4]; + /*0x30*/ u8 playerName[8]; }; void sub_8093110(void (*)(void)); diff --git a/include/wallclock.h b/include/wallclock.h index c869e3941..794f456be 100644 --- a/include/wallclock.h +++ b/include/wallclock.h @@ -6,9 +6,4 @@ void CB2_StartWallClock(void); void CB2_ViewWallClock(void); -void sub_810B05C(struct Sprite *sprite); -void sub_810B0F4(struct Sprite *sprite); -void sub_810B18C(struct Sprite *sprite); -void sub_810B230(struct Sprite *sprite); - #endif // GUARD_WALLCLOCK_H diff --git a/ld_script.txt b/ld_script.txt index 62afdd1c7..a72ffc452 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -151,7 +151,6 @@ SECTIONS { src/berry.o(.text); src/script_menu.o(.text); src/naming_screen.o(.text); - asm/naming_screen.o(.text); src/money.o(.text); asm/contest_effect.o(.text); src/record_mixing.o(.text); @@ -182,6 +181,7 @@ SECTIONS { asm/easy_chat.o(.text); asm/pokenav.o(.text); asm/mon_markings.o(.text); + src/mauville_old_man.o(.text); asm/mauville_old_man.o(.text); src/mail.o(.text); asm/menu_helpers.o(.text); @@ -339,13 +339,14 @@ SECTIONS { data/data_8393054.o(.rodata); data/task.o(.rodata); data/battle_anim_807B69C.o(.rodata); - data/title_screen.o(.rodata); + src/title_screen.o(.rodata); data/weather.o(.rodata); data/rom_8080874.o(.rodata); - data/battle_setup.o(.rodata); + src/battle_setup.o(.rodata); data/cable_club.o(.rodata); data/mori_debug_menu.o(.rodata); data/trainer_see.o(.rodata); + src/wild_encounter.o(.rodata); data/wild_encounter.o(.rodata); data/field_effect.o(.rodata); data/pokemon_menu.o(.rodata); @@ -363,7 +364,7 @@ SECTIONS { data/matsuda_debug_menu.o(.rodata); data/contest.o(.rodata); data/shop.o(.rodata); - data/berry.o(.rodata); + src/berry.o(.rodata); data/script_menu.o(.rodata); src/naming_screen.o(.rodata); data/naming_screen.o(.rodata); @@ -387,16 +388,16 @@ SECTIONS { data/mauville_old_man.o(.rodata); data/mail.o(.rodata); data/menu_helpers.o(.rodata); - data/heal_location.o(.rodata); + src/heal_location.o(.rodata); data/region_map.o(.rodata); data/cute_sketch.o(.rodata); data/decoration.o(.rodata); data/slot_machine.o(.rodata); - data/contest_painting.o(.rodata); + src/contest_painting.o(.rodata); src/battle_ai.o(.rodata); data/trader.o(.rodata); - data/starter_choose.o(.rodata); - data/wallclock.o(.rodata); + src/starter_choose.o(.rodata); + src/wallclock.o(.rodata); data/pokeblock.o(.rodata); data/rom_810CBB4.o(.rodata); data/pokedex_area_screen.o(.rodata); @@ -414,9 +415,10 @@ SECTIONS { data/contest_ai.o(.rodata); data/rom_81258BC.o(.rodata); data/player_pc.o(.rodata); - data/intro.o(.rodata); + src/intro.o(.rodata); data/battle_anim_813F0F4.o(.rodata); data/hall_of_fame.o(.rodata); + src/credits.o(.rodata); data/credits.o(.rodata); src/lottery_corner.o(.rodata); data/diploma.o(.rodata); diff --git a/src/battle_ai.c b/src/battle_ai.c index 4509ca8db..6058068f0 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -7,14 +7,18 @@ #include "pokemon.h" #include "rng.h" #include "species.h" +#include "moves.h" #define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) #define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8) #define AIScriptRead8(ptr) ((ptr)[0]) #define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr) -#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)((u8 *)&battle_2000000 + 0x16800)) -#define AI_ARRAY_160CC ((&battle_2000000 + 0x160CC)) +// to do: maybe try to reduce the defines needed to match? +#define BATTLE_STRUCT ((struct BattleStruct *)(unk_2000000)) +#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(unk_2000000 + 0x16800)) +#define UNK_2016A00_STRUCT ((struct UnknownStruct1 *)(unk_2000000 + 0x16A00)) +#define AI_ARRAY_160CC ((struct SmallItemStruct *)(unk_2000000 + 0x160CC)) extern void sub_801CAF8(u8, u8); extern u8 sub_8109908(void); @@ -25,6 +29,15 @@ enum USER }; +// AI states +enum +{ + AIState_SettingUp, + AIState_Processing, + AIState_FinishedProcessing, + AIState_DoNotProcess +}; + extern void move_effectiveness_something(u16, u8, u8); extern u16 gBattleTypeFlags; @@ -33,8 +46,8 @@ extern u8 gUnknown_02024A60; extern u8 gUnknown_02024A6A[][2]; extern u16 gUnknown_02024BE6; extern int gBattleMoveDamage; -extern u8 gUnknown_02024C07; // something player? -extern u8 gUnknown_02024C08; // something opponent? +extern u8 gPlayerMonIndex; +extern u8 gEnemyMonIndex; extern u8 gUnknown_02024C0C; extern u8 gBattleMoveFlags; extern u16 gUnknown_02024DEC; @@ -65,19 +78,9 @@ AI scripts. */ extern u8 *gAIScriptPtr; -struct UnknownStruct1 -{ - /*0x00*/ u16 unk0[2][8]; - /*0x20*/ u8 unk20[2]; - /*0x22*/ u8 unk22[2]; - /*0x24*/ u16 items[4]; - /*0x2C*/ u8 unk8; -}; - struct UnknownStruct3 { - u8 *ptr[4]; // might be 8 pointers - u8 filler0[0x10]; + u8 *ptr[8]; u8 unk20; }; @@ -96,14 +99,13 @@ struct UnknownStruct4 u8 filler17[0x4]; }; -extern struct UnknownStruct1 unk_2016A00; extern struct UnknownStruct3 unk_2016C00; extern struct UnknownStruct4 gUnknown_02024CA8[]; -static void BattleAICmd_if_random(void); -static void BattleAICmd_if_not_random(void); -static void BattleAICmd_if_random_1(void); -static void BattleAICmd_if_not_random_1(void); +static void BattleAICmd_if_random_less_than(void); +static void BattleAICmd_if_random_greater_than(void); +static void BattleAICmd_if_random_equal(void); +static void BattleAICmd_if_random_not_equal(void); static void BattleAICmd_score(void); static void BattleAICmd_if_hp_less_than(void); static void BattleAICmd_if_hp_more_than(void); @@ -133,28 +135,28 @@ static void BattleAICmd_if_in_words(void); static void BattleAICmd_if_not_in_words(void); static void BattleAICmd_if_user_can_damage(void); static void BattleAICmd_if_user_cant_damage(void); -static void BattleAICmd_unk_21(void); +static void BattleAICmd_get_turn_count(void); static void BattleAICmd_get_type(void); -static void BattleAICmd_unk_23(void); -static void BattleAICmd_unk_24(void); +static void BattleAICmd_get_move_power(void); +static void BattleAICmd_is_most_powerful_move(void); static void BattleAICmd_get_move(void); -static void BattleAICmd_if_type(void); -static void BattleAICmd_unk_27(void); +static void BattleAICmd_if_arg_equal(void); +static void BattleAICmd_if_arg_not_equal(void); static void BattleAICmd_if_would_go_first(void); static void BattleAICmd_if_would_not_go_first(void); -static void BattleAICmd_unk_2A(void); -static void BattleAICmd_unk_2B(void); +static void BattleAICmd_nullsub_2A(void); +static void BattleAICmd_nullsub_2B(void); static void BattleAICmd_count_alive_pokemon(void); -static void BattleAICmd_unk_2D(void); -static void BattleAICmd_unk_2E(void); +static void BattleAICmd_get_considered_move(void); +static void BattleAICmd_get_considered_move_effect(void); static void BattleAICmd_get_ability(void); -static void BattleAICmd_unk_30(void); +static void BattleAICmd_get_highest_possible_damage(void); static void BattleAICmd_if_damage_bonus(void); -static void BattleAICmd_unk_32(void); -static void BattleAICmd_unk_33(void); +static void BattleAICmd_nullsub_32(void); +static void BattleAICmd_nullsub_33(void); static void BattleAICmd_if_status_in_party(void); static void BattleAICmd_if_status_not_in_party(void); -static void BattleAICmd_unk_36(void); +static void BattleAICmd_get_weather(void); static void BattleAICmd_if_effect(void); static void BattleAICmd_if_not_effect(void); static void BattleAICmd_if_stat_level_less_than(void); @@ -163,34 +165,34 @@ static void BattleAICmd_if_stat_level_equal(void); static void BattleAICmd_if_stat_level_not_equal(void); static void BattleAICmd_if_can_faint(void); static void BattleAICmd_if_cant_faint(void); -static void BattleAICmd_unk_3F(void); -static void BattleAICmd_unk_40(void); +static void BattleAICmd_if_has_move(void); +static void BattleAICmd_if_dont_have_move(void); static void BattleAICmd_if_move_effect(void); static void BattleAICmd_if_not_move_effect(void); static void BattleAICmd_if_last_move_did_damage(void); static void BattleAICmd_if_encored(void); -static void BattleAICmd_unk_45(void); -static void BattleAICmd_if_random_2(void); -static void BattleAICmd_unk_47(void); +static void BattleAICmd_flee(void); +static void BattleAICmd_if_random_100(void); +static void BattleAICmd_watch(void); static void BattleAICmd_get_hold_effect(void); static void BattleAICmd_get_gender(void); static void BattleAICmd_is_first_turn(void); static void BattleAICmd_get_stockpile_count(void); -static void BattleAICmd_unk_4C(void); +static void BattleAICmd_is_double_battle(void); static void BattleAICmd_get_item(void); -static void BattleAICmd_unk_4E(void); -static void BattleAICmd_unk_4F(void); -static void BattleAICmd_unk_50(void); +static void BattleAICmd_get_move_type_from_result(void); +static void BattleAICmd_get_move_power_from_result(void); +static void BattleAICmd_get_move_effect_from_result(void); static void BattleAICmd_get_protect_count(void); -static void BattleAICmd_unk_52(void); -static void BattleAICmd_unk_53(void); -static void BattleAICmd_unk_54(void); -static void BattleAICmd_unk_55(void); -static void BattleAICmd_unk_56(void); -static void BattleAICmd_unk_57(void); +static void BattleAICmd_nullsub_52(void); +static void BattleAICmd_nullsub_53(void); +static void BattleAICmd_nullsub_54(void); +static void BattleAICmd_nullsub_55(void); +static void BattleAICmd_nullsub_56(void); +static void BattleAICmd_nullsub_57(void); static void BattleAICmd_call(void); static void BattleAICmd_jump(void); -static void BattleAICmd_unk_5A(void); +static void BattleAICmd_end(void); static void BattleAICmd_if_level_cond(void); static void BattleAICmd_if_taunted(void); static void BattleAICmd_if_not_taunted(void); @@ -199,10 +201,10 @@ typedef void (*BattleAICmdFunc)(void); static const BattleAICmdFunc sBattleAICmdTable[] = { - BattleAICmd_if_random, - BattleAICmd_if_not_random, - BattleAICmd_if_random_1, - BattleAICmd_if_not_random_1, + BattleAICmd_if_random_less_than, + BattleAICmd_if_random_greater_than, + BattleAICmd_if_random_equal, + BattleAICmd_if_random_not_equal, BattleAICmd_score, BattleAICmd_if_hp_less_than, BattleAICmd_if_hp_more_than, @@ -232,28 +234,28 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_if_not_in_words, BattleAICmd_if_user_can_damage, BattleAICmd_if_user_cant_damage, - BattleAICmd_unk_21, + BattleAICmd_get_turn_count, BattleAICmd_get_type, - BattleAICmd_unk_23, - BattleAICmd_unk_24, + BattleAICmd_get_move_power, + BattleAICmd_is_most_powerful_move, BattleAICmd_get_move, - BattleAICmd_if_type, - BattleAICmd_unk_27, + BattleAICmd_if_arg_equal, + BattleAICmd_if_arg_not_equal, BattleAICmd_if_would_go_first, BattleAICmd_if_would_not_go_first, - BattleAICmd_unk_2A, - BattleAICmd_unk_2B, + BattleAICmd_nullsub_2A, + BattleAICmd_nullsub_2B, BattleAICmd_count_alive_pokemon, - BattleAICmd_unk_2D, - BattleAICmd_unk_2E, + BattleAICmd_get_considered_move, + BattleAICmd_get_considered_move_effect, BattleAICmd_get_ability, - BattleAICmd_unk_30, + BattleAICmd_get_highest_possible_damage, BattleAICmd_if_damage_bonus, - BattleAICmd_unk_32, - BattleAICmd_unk_33, + BattleAICmd_nullsub_32, + BattleAICmd_nullsub_33, BattleAICmd_if_status_in_party, BattleAICmd_if_status_not_in_party, - BattleAICmd_unk_36, + BattleAICmd_get_weather, BattleAICmd_if_effect, BattleAICmd_if_not_effect, BattleAICmd_if_stat_level_less_than, @@ -262,34 +264,34 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_if_stat_level_not_equal, BattleAICmd_if_can_faint, BattleAICmd_if_cant_faint, - BattleAICmd_unk_3F, - BattleAICmd_unk_40, + BattleAICmd_if_has_move, + BattleAICmd_if_dont_have_move, BattleAICmd_if_move_effect, BattleAICmd_if_not_move_effect, BattleAICmd_if_last_move_did_damage, BattleAICmd_if_encored, - BattleAICmd_unk_45, - BattleAICmd_if_random_2, - BattleAICmd_unk_47, + BattleAICmd_flee, + BattleAICmd_if_random_100, + BattleAICmd_watch, BattleAICmd_get_hold_effect, BattleAICmd_get_gender, BattleAICmd_is_first_turn, BattleAICmd_get_stockpile_count, - BattleAICmd_unk_4C, + BattleAICmd_is_double_battle, BattleAICmd_get_item, - BattleAICmd_unk_4E, - BattleAICmd_unk_4F, - BattleAICmd_unk_50, + BattleAICmd_get_move_type_from_result, + BattleAICmd_get_move_power_from_result, + BattleAICmd_get_move_effect_from_result, BattleAICmd_get_protect_count, - BattleAICmd_unk_52, - BattleAICmd_unk_53, - BattleAICmd_unk_54, - BattleAICmd_unk_55, - BattleAICmd_unk_56, - BattleAICmd_unk_57, + BattleAICmd_nullsub_52, + BattleAICmd_nullsub_53, + BattleAICmd_nullsub_54, + BattleAICmd_nullsub_55, + BattleAICmd_nullsub_56, + BattleAICmd_nullsub_57, BattleAICmd_call, BattleAICmd_jump, - BattleAICmd_unk_5A, + BattleAICmd_end, BattleAICmd_if_level_cond, BattleAICmd_if_taunted, BattleAICmd_if_not_taunted, @@ -348,135 +350,138 @@ void BattleAI_HandleItemUseBeforeAISetup(void) void BattleAI_SetupAIData(void) { s32 i; - u8 *data = (u8 *)&gAIThinkingSpace; + u8 *data = (u8 *)AI_THINKING_STRUCT; u8 r7; - // clear AI data and set default move score to 100. - for (i = 0; (u32)i < 28; i++) + // clear AI data and set default move score to 100. strange that they didn't use memset here. + for (i = 0; (u32)i < sizeof(struct AI_ThinkingStruct); i++) data[i] = 0; for (i = 0; i < 4; i++) - gAIThinkingSpace.score[i] = 100; + AI_THINKING_STRUCT->score[i] = 100; r7 = sub_8015A98(gUnknown_02024A60, 0, 0xFF); + // probably sets up the moves to consider and ignores non-valid moves such as NO_MOVE or glitch moves. for (i = 0; i < 4; i++) { u16 rand; if (gBitTable[i] & r7) - gAIThinkingSpace.score[i] = 0; + AI_THINKING_STRUCT->score[i] = 0; + rand = Random(); - gAIThinkingSpace.unk18[i] = 100 - (rand & 0xF); + AI_THINKING_STRUCT->unk18[i] = 100 - (rand & 0xF); } unk_2016C00.unk20 = 0; - gUnknown_02024C07 = gUnknown_02024A60; + gPlayerMonIndex = gUnknown_02024A60; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gUnknown_02024C08 = Random() & 2; + gEnemyMonIndex = Random() & 2; // just pick somebody to target. - if (gUnknown_02024C0C & gBitTable[gUnknown_02024C08]) - gUnknown_02024C08 ^= 2; + if (gUnknown_02024C0C & gBitTable[gEnemyMonIndex]) + gEnemyMonIndex ^= 2; } else - gUnknown_02024C08 = gUnknown_02024A60 ^ 1; + gEnemyMonIndex = gUnknown_02024A60 ^ 1; // special AI flag cases. if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - gAIThinkingSpace.aiFlags = 0x40000000; + AI_THINKING_STRUCT->aiFlags = 0x40000000; else if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) - gAIThinkingSpace.aiFlags = 0x20000000; + AI_THINKING_STRUCT->aiFlags = 0x20000000; else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) - gAIThinkingSpace.aiFlags = 0x80000000; + AI_THINKING_STRUCT->aiFlags = 0x80000000; else // otherwise, just set aiFlags to whatever flags the trainer has set in their data. - gAIThinkingSpace.aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags; + AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags; } u8 BattleAI_GetAIActionToUse(void) { - u8 arr1[4]; - u8 arr2[4]; - u8 r5; + u8 currentMoveArray[4]; + u8 consideredMoveArray[4]; + u8 numOfBestMoves; s32 i; sub_810745C(); - while (gAIThinkingSpace.aiFlags != 0) + while (AI_THINKING_STRUCT->aiFlags != 0) { - if (gAIThinkingSpace.aiFlags & 1) + if (AI_THINKING_STRUCT->aiFlags & 1) { - gAIThinkingSpace.unk0 = 0; + AI_THINKING_STRUCT->aiState = AIState_SettingUp; BattleAI_DoAIProcessing(); } - gAIThinkingSpace.aiFlags >>= 1; - gAIThinkingSpace.aiLogicId++; - gAIThinkingSpace.moveConsidered = 0; + AI_THINKING_STRUCT->aiFlags >>= 1; + AI_THINKING_STRUCT->aiLogicId++; + AI_THINKING_STRUCT->movesetIndex = 0; } - // will KO, need to use item or switch. - if (gAIThinkingSpace.unk10 & 2) + // special flee or watch cases for safari. + if (AI_THINKING_STRUCT->aiAction & (AI_ACTION_UNK2)) // flee return 4; - if (gAIThinkingSpace.unk10 & 4) + if (AI_THINKING_STRUCT->aiAction & (AI_ACTION_UNK3)) // watch return 5; - r5 = 1; - arr1[0] = gAIThinkingSpace.score[0]; - arr2[0] = 0; + numOfBestMoves = 1; + currentMoveArray[0] = AI_THINKING_STRUCT->score[0]; + consideredMoveArray[0] = 0; for (i = 1; i < 4; i++) { - if (arr1[0] < (s8)gAIThinkingSpace.score[i]) + if (currentMoveArray[0] < AI_THINKING_STRUCT->score[i]) { - r5 = 1; - arr1[0] = gAIThinkingSpace.score[i]; - arr2[0] = i; + numOfBestMoves = 1; + currentMoveArray[0] = AI_THINKING_STRUCT->score[i]; + consideredMoveArray[0] = i; } - if (arr1[0] == (s8)gAIThinkingSpace.score[i]) + if (currentMoveArray[0] == AI_THINKING_STRUCT->score[i]) { - arr1[r5] = gAIThinkingSpace.score[i]; - arr2[r5++] = i; + currentMoveArray[numOfBestMoves] = AI_THINKING_STRUCT->score[i]; + consideredMoveArray[numOfBestMoves++] = i; } } - return arr2[Random() % r5]; + return consideredMoveArray[Random() % numOfBestMoves]; // break any ties that exist. } void BattleAI_DoAIProcessing(void) { - while (gAIThinkingSpace.unk0 != 2) + while (AI_THINKING_STRUCT->aiState != AIState_FinishedProcessing) { - switch (gAIThinkingSpace.unk0) + switch (AI_THINKING_STRUCT->aiState) { - case 3: //Needed to match. + case AIState_DoNotProcess: //Needed to match. break; - case 0: - gAIScriptPtr = BattleAIs[gAIThinkingSpace.aiLogicId]; - if (gBattleMons[gUnknown_02024C07].pp[gAIThinkingSpace.moveConsidered] == 0) + case AIState_SettingUp: + gAIScriptPtr = BattleAIs[AI_THINKING_STRUCT->aiLogicId]; // set the AI ptr. + if (gBattleMons[gPlayerMonIndex].pp[AI_THINKING_STRUCT->movesetIndex] == 0) { - gAIThinkingSpace.unk2 = 0; + AI_THINKING_STRUCT->moveConsidered = MOVE_NONE; // don't consider a move you have 0 PP for, idiot. } else { - gAIThinkingSpace.unk2 = gBattleMons[gUnknown_02024C07].moves[gAIThinkingSpace.moveConsidered]; + AI_THINKING_STRUCT->moveConsidered = gBattleMons[gPlayerMonIndex].moves[AI_THINKING_STRUCT->movesetIndex]; } - gAIThinkingSpace.unk0++; + AI_THINKING_STRUCT->aiState++; break; - case 1: - if (gAIThinkingSpace.unk2 != 0) + case AIState_Processing: + if (AI_THINKING_STRUCT->moveConsidered != MOVE_NONE) sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command. else { - gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0; - gAIThinkingSpace.unk10 |= 1; + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; // definitely do not consider any move that has 0 PP. + AI_THINKING_STRUCT->aiAction |= AI_ACTION_UNK1; } - if (gAIThinkingSpace.unk10 & 1) + if (AI_THINKING_STRUCT->aiAction & AI_ACTION_UNK1) { - gAIThinkingSpace.moveConsidered++; - if (gAIThinkingSpace.moveConsidered < 4 && !(gAIThinkingSpace.unk10 & 8)) - gAIThinkingSpace.unk0 = 0; + AI_THINKING_STRUCT->movesetIndex++; + if (AI_THINKING_STRUCT->movesetIndex < 4 && !(AI_THINKING_STRUCT->aiAction & AI_ACTION_UNK4)) + AI_THINKING_STRUCT->aiState = AIState_SettingUp; // as long as their are more moves to process, keep setting this to setup state. else - gAIThinkingSpace.unk0++; - gAIThinkingSpace.unk10 &= 0xFE; + AI_THINKING_STRUCT->aiState++; // done processing. + AI_THINKING_STRUCT->aiAction &= (AI_ACTION_UNK2 | AI_ACTION_UNK3 | AI_ACTION_UNK4 | + AI_ACTION_UNK5 | AI_ACTION_UNK6 | AI_ACTION_UNK7 | AI_ACTION_UNK8); // disable UNK1. } break; } @@ -489,10 +494,9 @@ void sub_810745C(void) for (i = 0; i < 8; i++) { - // this is the same as dividing it by 2, but for some reason, >> 1 is needed to match the asm. - if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == 0) + if (unk_2016A00.unk0[gEnemyMonIndex >> 1][i] == 0) { - unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] = gUnknown_02024C34[gUnknown_02024C08]; + unk_2016A00.unk0[gEnemyMonIndex >> 1][i] = gUnknown_02024C34[gEnemyMonIndex]; return; } } @@ -518,41 +522,41 @@ void sub_81074F8(u8 a, u8 b) unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b; } -static void BattleAICmd_if_random(void) +static void BattleAICmd_if_random_less_than(void) { u16 random = Random(); - if (!(random % 256 >= gAIScriptPtr[1])) // roll a random value. is it less than the parameter of the if_random call? (96 on if_random 80 will return true) + if (random % 256 < gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void BattleAICmd_if_not_random(void) +static void BattleAICmd_if_random_greater_than(void) { u16 random = Random(); - if (!(random % 256 <= gAIScriptPtr[1])) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true) + if (random % 256 > gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void BattleAICmd_if_random_1(void) // if RNG Value equal to +static void BattleAICmd_if_random_equal(void) // if RNG Value equal to { u16 random = Random(); - if (random % 256 == gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true) + if (random % 256 == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void BattleAICmd_if_not_random_1(void) // if RNG value not equal to +static void BattleAICmd_if_random_not_equal(void) // if RNG value not equal to { u16 random = Random(); - if (random % 256 != gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true) + if (random % 256 != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -560,24 +564,24 @@ static void BattleAICmd_if_not_random_1(void) // if RNG value not equal to static void BattleAICmd_score(void) { - gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score. + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] += gAIScriptPtr[1]; // add the result to the array of the move consider's score. - if (gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] < 0) // if the score is negative, flatten it to 0. - gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0; + if (AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] < 0) // if the score is negative, flatten it to 0. + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; gAIScriptPtr += 2; // AI return. } static void BattleAICmd_if_hp_less_than(void) { - u16 var; + u16 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) < gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -585,14 +589,14 @@ static void BattleAICmd_if_hp_less_than(void) static void BattleAICmd_if_hp_more_than(void) { - u16 var; + u16 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) > gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -600,14 +604,14 @@ static void BattleAICmd_if_hp_more_than(void) static void BattleAICmd_if_hp_equal(void) { - u16 var; + u16 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) == gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -615,14 +619,14 @@ static void BattleAICmd_if_hp_equal(void) static void BattleAICmd_if_hp_not_equal(void) { - u16 var; + u16 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) != gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -630,17 +634,17 @@ static void BattleAICmd_if_hp_not_equal(void) static void BattleAICmd_if_status(void) { - u16 var; - u32 temp; + u16 index; + u32 arg; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = AIScriptRead32(gAIScriptPtr + 2); + arg = AIScriptRead32(gAIScriptPtr + 2); - if (gBattleMons[var].status1 & temp) + if ((gBattleMons[index].status1 & arg) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -648,17 +652,17 @@ static void BattleAICmd_if_status(void) static void BattleAICmd_if_not_status(void) { - u16 var; - u32 temp; + u16 index; + u32 arg; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = AIScriptRead32(gAIScriptPtr + 2); + arg = AIScriptRead32(gAIScriptPtr + 2); - if (!(gBattleMons[var].status1 & temp)) + if ((gBattleMons[index].status1 & arg) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -666,17 +670,17 @@ static void BattleAICmd_if_not_status(void) static void BattleAICmd_if_status2(void) { - u8 var; - u32 temp; + u16 index; + u32 arg; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = AIScriptRead32(gAIScriptPtr + 2); + arg = AIScriptRead32(gAIScriptPtr + 2); - if (gBattleMons[var].status2 & temp) + if ((gBattleMons[index].status2 & arg) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -684,17 +688,17 @@ static void BattleAICmd_if_status2(void) static void BattleAICmd_if_not_status2(void) { - u8 var; - u32 temp; + u16 index; + u32 arg; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = AIScriptRead32(gAIScriptPtr + 2); + arg = AIScriptRead32(gAIScriptPtr + 2); - if (!(gBattleMons[var].status2 & temp)) + if ((gBattleMons[index].status2 & arg) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -702,17 +706,17 @@ static void BattleAICmd_if_not_status2(void) static void BattleAICmd_if_status3(void) { - u8 var; - u32 temp; + u16 index; + u32 arg; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = AIScriptRead32(gAIScriptPtr + 2); + arg = AIScriptRead32(gAIScriptPtr + 2); - if (gUnknown_02024C98[var] & temp) + if ((gUnknown_02024C98[index] & arg) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -720,17 +724,17 @@ static void BattleAICmd_if_status3(void) static void BattleAICmd_if_not_status3(void) { - u8 var; - u32 temp; + u16 index; + u32 arg; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = AIScriptRead32(gAIScriptPtr + 2); + arg = AIScriptRead32(gAIScriptPtr + 2); - if (!(gUnknown_02024C98[var] & temp)) + if ((gUnknown_02024C98[index] & arg) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -738,19 +742,18 @@ static void BattleAICmd_if_not_status3(void) static void BattleAICmd_if_status4(void) { - u8 var; - u32 temp; - u32 temp2; + u16 index; + u32 arg1, arg2; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = battle_get_per_side_status(var) & 1; - temp2 = AIScriptRead32(gAIScriptPtr + 2); + arg1 = battle_get_per_side_status(index) & 1; + arg2 = AIScriptRead32(gAIScriptPtr + 2); - if (gUnknown_02024C7A[temp] & temp2) + if ((gUnknown_02024C7A[arg1] & arg2) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -758,19 +761,18 @@ static void BattleAICmd_if_status4(void) static void BattleAICmd_if_not_status4(void) { - u8 var; - u32 temp; - u32 temp2; + u16 index; + u32 arg1, arg2; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - temp = battle_get_per_side_status(var) & 1; - temp2 = AIScriptRead32(gAIScriptPtr + 2); + arg1 = battle_get_per_side_status(index) & 1; + arg2 = AIScriptRead32(gAIScriptPtr + 2); - if (!(gUnknown_02024C7A[temp] & temp2)) + if ((gUnknown_02024C7A[arg1] & arg2) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -778,7 +780,7 @@ static void BattleAICmd_if_not_status4(void) static void BattleAICmd_if_less_than(void) { - if (gAIThinkingSpace.funcResult < gAIScriptPtr[1]) + if (AI_THINKING_STRUCT->funcResult < gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -786,7 +788,7 @@ static void BattleAICmd_if_less_than(void) static void BattleAICmd_if_more_than(void) { - if (gAIThinkingSpace.funcResult > gAIScriptPtr[1]) + if (AI_THINKING_STRUCT->funcResult > gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -794,7 +796,7 @@ static void BattleAICmd_if_more_than(void) static void BattleAICmd_if_equal(void) { - if (gAIThinkingSpace.funcResult == gAIScriptPtr[1]) + if (AI_THINKING_STRUCT->funcResult == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -802,7 +804,7 @@ static void BattleAICmd_if_equal(void) static void BattleAICmd_if_not_equal(void) { - if (gAIThinkingSpace.funcResult != gAIScriptPtr[1]) + if (AI_THINKING_STRUCT->funcResult != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -812,7 +814,7 @@ static void BattleAICmd_if_less_than_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); - if (gAIThinkingSpace.funcResult < *temp) + if (AI_THINKING_STRUCT->funcResult < *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; @@ -822,7 +824,7 @@ static void BattleAICmd_if_more_than_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); - if (gAIThinkingSpace.funcResult > *temp) + if (AI_THINKING_STRUCT->funcResult > *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; @@ -832,7 +834,7 @@ static void BattleAICmd_if_equal_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); - if (gAIThinkingSpace.funcResult == *temp) + if (AI_THINKING_STRUCT->funcResult == *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; @@ -842,7 +844,7 @@ static void BattleAICmd_if_not_equal_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); - if (gAIThinkingSpace.funcResult != *temp) + if (AI_THINKING_STRUCT->funcResult != *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; @@ -852,7 +854,7 @@ static void BattleAICmd_if_move(void) { u16 move = AIScriptRead16(gAIScriptPtr + 1); - if (gAIThinkingSpace.unk2 == move) + if (AI_THINKING_STRUCT->moveConsidered == move) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -862,7 +864,7 @@ static void BattleAICmd_if_not_move(void) { u16 move = AIScriptRead16(gAIScriptPtr + 1); - if (gAIThinkingSpace.unk2 != move) + if (AI_THINKING_STRUCT->moveConsidered != move) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -874,7 +876,7 @@ static void BattleAICmd_if_in_bytes(void) while (*ptr != 0xFF) { - if (gAIThinkingSpace.funcResult == *ptr) + if (AI_THINKING_STRUCT->funcResult == *ptr) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); return; @@ -890,7 +892,7 @@ static void BattleAICmd_if_not_in_bytes(void) while (*ptr != 0xFF) { - if (gAIThinkingSpace.funcResult == *ptr) + if (AI_THINKING_STRUCT->funcResult == *ptr) { gAIScriptPtr += 9; return; @@ -906,7 +908,7 @@ static void BattleAICmd_if_in_words(void) while (*ptr != 0xFFFF) { - if (gAIThinkingSpace.funcResult == *ptr) + if (AI_THINKING_STRUCT->funcResult == *ptr) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); return; @@ -922,7 +924,7 @@ static void BattleAICmd_if_not_in_words(void) while (*ptr != 0xFFFF) { - if (gAIThinkingSpace.funcResult == *ptr) + if (AI_THINKING_STRUCT->funcResult == *ptr) { gAIScriptPtr += 9; return; @@ -938,8 +940,8 @@ static void BattleAICmd_if_user_can_damage(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] != 0 - && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0) + if (gBattleMons[gPlayerMonIndex].moves[i] != 0 + && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].power != 0) break; } if (i == 4) @@ -954,8 +956,8 @@ static void BattleAICmd_if_user_cant_damage(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] != 0 - && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0) + if (gBattleMons[gPlayerMonIndex].moves[i] != 0 + && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].power != 0) break; } if (i != 4) @@ -964,9 +966,9 @@ static void BattleAICmd_if_user_cant_damage(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -static void BattleAICmd_unk_21(void) +static void BattleAICmd_get_turn_count(void) { - gAIThinkingSpace.funcResult = gUnknown_030042E0[19]; + AI_THINKING_STRUCT->funcResult = gUnknown_030042E0[19]; gAIScriptPtr += 1; } @@ -976,69 +978,68 @@ static void BattleAICmd_get_type(void) switch (typeVar) { - case 1: - gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C07].type1; + case 1: // player primary type + AI_THINKING_STRUCT->funcResult = gBattleMons[gPlayerMonIndex].type1; break; - case 0: - gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C08].type1; + case 0: // enemy primary type + AI_THINKING_STRUCT->funcResult = gBattleMons[gEnemyMonIndex].type1; break; - case 3: - gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C07].type2; + case 3: // player secondary type + AI_THINKING_STRUCT->funcResult = gBattleMons[gPlayerMonIndex].type2; break; - case 2: - gAIThinkingSpace.funcResult = gBattleMons[gUnknown_02024C08].type2; + case 2: // enemy secondary type + AI_THINKING_STRUCT->funcResult = gBattleMons[gEnemyMonIndex].type2; break; - case 4: - gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].type; + case 4: // type of move being pointed to + AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; break; } gAIScriptPtr += 2; } -static void BattleAICmd_unk_23(void) +static void BattleAICmd_get_move_power(void) { - gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].power; + AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power; gAIScriptPtr += 1; } #ifdef NONMATCHING -static void BattleAICmd_unk_24(void) +static void BattleAICmd_is_most_powerful_move(void) { int i, j; - s32 damage; s32 damages[4]; for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) - if (gBattleMoves[AI_THINKING_STRUCT->unk2].effect == sDiscouragedPowerfulMoveEffects[i]) + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == sDiscouragedPowerfulMoveEffects[i]) break; - if (gBattleMoves[AI_THINKING_STRUCT->unk2].power > 1 + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power > 1 && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) { gUnknown_02024DEC = 0; - *((u8 *)&battle_2000000 + 0x1601C) = 0; - *((u8 *)&battle_2000000 + 0x1601F) = 1; + unk_2000000[0x1601C] = 0; // why is this a manual array? + unk_2000000[0x1601F] = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; for (i = 0; i < 4; i++) { for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++) - { - if (gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) + { // _08108276 + if (gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) break; } - if (gBattleMons[gUnknown_02024C07].moves[i] + // _081082BA + if (gBattleMons[gPlayerMonIndex].moves[i] && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF - && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power > 1) + && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].power > 1) { - gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i]; - sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08); - move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); - damage = (gBattleMoveDamage * AI_THINKING_STRUCT->unk18[i]) / 100; - damages[i] = damage; - if (!damage) + gUnknown_02024BE6 = gBattleMons[gPlayerMonIndex].moves[i]; + sub_801CAF8(gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); + damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->unk18[i]) / 100; + if (damages[i] == 0) // moves always do at least 1 damage. damages[i] = 1; } else @@ -1048,7 +1049,7 @@ static void BattleAICmd_unk_24(void) } for (i = 0; i < 4; i++) - if (damages[i] > damages[AI_THINKING_STRUCT->moveConsidered]) + if (damages[i] > damages[AI_THINKING_STRUCT->movesetIndex]) break; if (i == 4) @@ -1059,14 +1060,13 @@ static void BattleAICmd_unk_24(void) else { AI_THINKING_STRUCT->funcResult = 0; - gAIScriptPtr += 1; } gAIScriptPtr += 1; } #else __attribute__((naked)) -static void BattleAICmd_unk_24(void) +static void BattleAICmd_is_most_powerful_move(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1142,7 +1142,7 @@ _08108276:\n\ movs r3, 0\n\ ldr r5, _08108348 @ =gBattleMons\n\ lsls r4, r6, 1\n\ - ldr r7, _0810834C @ =gUnknown_02024C07\n\ + ldr r7, _0810834C @ =gPlayerMonIndex\n\ lsls r1, r6, 2\n\ mov r8, r1\n\ adds r2, r6, 0x1\n\ @@ -1203,7 +1203,7 @@ _081082BA:\n\ ldr r5, _08108350 @ =gUnknown_02024BE6\n\ strh r2, [r5]\n\ ldrb r0, [r7]\n\ - ldr r4, _08108354 @ =gUnknown_02024C08\n\ + ldr r4, _08108354 @ =gEnemyMonIndex\n\ ldrb r1, [r4]\n\ bl sub_801CAF8\n\ ldrh r0, [r5]\n\ @@ -1237,9 +1237,9 @@ _0810833C: .4byte 0xfffff81c\n\ _08108340: .4byte gBattleMoveFlags\n\ _08108344: .4byte gCritMultiplier\n\ _08108348: .4byte gBattleMons\n\ -_0810834C: .4byte gUnknown_02024C07\n\ +_0810834C: .4byte gPlayerMonIndex\n\ _08108350: .4byte gUnknown_02024BE6\n\ -_08108354: .4byte gUnknown_02024C08\n\ +_08108354: .4byte gEnemyMonIndex\n\ _08108358: .4byte gBattleMoveDamage\n\ _0810835C:\n\ mov r1, sp\n\ @@ -1313,24 +1313,24 @@ _081083D0: .4byte gAIScriptPtr\n\ static void BattleAICmd_get_move(void) { if (gAIScriptPtr[1] == USER) - gAIThinkingSpace.funcResult = gUnknown_02024C34[gUnknown_02024C07]; + AI_THINKING_STRUCT->funcResult = gUnknown_02024C34[gPlayerMonIndex]; else - gAIThinkingSpace.funcResult = gUnknown_02024C34[gUnknown_02024C08]; + AI_THINKING_STRUCT->funcResult = gUnknown_02024C34[gEnemyMonIndex]; gAIScriptPtr += 2; } -static void BattleAICmd_if_type(void) +static void BattleAICmd_if_arg_equal(void) { - if (gAIScriptPtr[1] == gAIThinkingSpace.funcResult) + if (gAIScriptPtr[1] == AI_THINKING_STRUCT->funcResult) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void BattleAICmd_unk_27(void) // if_not_type +static void BattleAICmd_if_arg_not_equal(void) { - if (gAIScriptPtr[1] != gAIThinkingSpace.funcResult) + if (gAIScriptPtr[1] != AI_THINKING_STRUCT->funcResult) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1338,7 +1338,7 @@ static void BattleAICmd_unk_27(void) // if_not_type static void BattleAICmd_if_would_go_first(void) { - if (b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1]) + if (b_first_side(gPlayerMonIndex, gEnemyMonIndex, 1) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1346,34 +1346,33 @@ static void BattleAICmd_if_would_go_first(void) static void BattleAICmd_if_would_not_go_first(void) { - if (b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1]) + if (b_first_side(gPlayerMonIndex, gEnemyMonIndex, 1) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void BattleAICmd_unk_2A(void) +static void BattleAICmd_nullsub_2A(void) { } -static void BattleAICmd_unk_2B(void) +static void BattleAICmd_nullsub_2B(void) { } static void BattleAICmd_count_alive_pokemon(void) { u8 index; + u8 var, var2; struct Pokemon *party; - struct AI_ThinkingStruct *ai = &battle_2000000.ai; int i; - u8 var, var2; - ai->funcResult = 0; + AI_THINKING_STRUCT->funcResult = 0; if (gAIScriptPtr[1] == USER) - index = gUnknown_02024C07; + index = gPlayerMonIndex; else - index = gUnknown_02024C08; + index = gEnemyMonIndex; if (battle_side_get_owner(index) == 0) party = gPlayerParty; @@ -1395,87 +1394,86 @@ static void BattleAICmd_count_alive_pokemon(void) for (i = 0; i < 6; i++) { - struct AI_ThinkingStruct *ai2 = &battle_2000000.ai; if (i != var && i != var2 && GetMonData(&party[i], MON_DATA_HP) != 0 && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) { - ai2->funcResult++; + AI_THINKING_STRUCT->funcResult++; } } gAIScriptPtr += 2; } -static void BattleAICmd_unk_2D(void) +static void BattleAICmd_get_considered_move(void) { - gAIThinkingSpace.funcResult = gAIThinkingSpace.unk2; + AI_THINKING_STRUCT->funcResult = AI_THINKING_STRUCT->moveConsidered; gAIScriptPtr += 1; } -static void BattleAICmd_unk_2E(void) +static void BattleAICmd_get_considered_move_effect(void) { - gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].effect; + AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect; gAIScriptPtr += 1; } static void BattleAICmd_get_ability(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - if (battle_side_get_owner(var) == TARGET) + if (battle_side_get_owner(index) == TARGET) { - u16 unk = battle_get_per_side_status(var) & 1; + u16 unk = battle_get_per_side_status(index) & 1; - if (unk_2016A00.unk20[unk] != 0) + if (UNK_2016A00_STRUCT->unk20[unk] != 0) { - ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = unk_2016A00.unk20[unk]; + AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk20[unk]; gAIScriptPtr += 2; return; } // abilities that prevent fleeing. - if (gBattleMons[var].ability == ABILITY_SHADOW_TAG || gBattleMons[var].ability == ABILITY_MAGNET_PULL || gBattleMons[var].ability == ABILITY_ARENA_TRAP) + if (gBattleMons[index].ability == ABILITY_SHADOW_TAG || gBattleMons[index].ability == ABILITY_MAGNET_PULL || gBattleMons[index].ability == ABILITY_ARENA_TRAP) { - gAIThinkingSpace.funcResult = gBattleMons[var].ability; + AI_THINKING_STRUCT->funcResult = gBattleMons[index].ability; gAIScriptPtr += 2; return; } - if (gBaseStats[gBattleMons[var].species].ability1 != ABILITY_NONE) + if (gBaseStats[gBattleMons[index].species].ability1 != ABILITY_NONE) { - if (gBaseStats[gBattleMons[var].species].ability2 != ABILITY_NONE) + if (gBaseStats[gBattleMons[index].species].ability2 != ABILITY_NONE) { - // AI is guessing what ability? + // AI has no knowledge of opponent, so it guesses which ability. In Emerald, it has knowledge of the opponent's ability when it is invoked at least once. if (Random() & 1) { - ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = gBaseStats[gBattleMons[var].species].ability1; + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability1; gAIScriptPtr += 2; return; } else { - ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = gBaseStats[gBattleMons[var].species].ability2; + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability2; gAIScriptPtr += 2; return; } } else { - ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = gBaseStats[gBattleMons[var].species].ability1; // it's definitely ability 1. + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability1; // it's definitely ability 1. gAIScriptPtr += 2; return; } } else { - ((struct AI_ThinkingStruct *)((u8 *)&unk_2016A00 - 0x200))->funcResult = gBaseStats[gBattleMons[var].species].ability2; // AI cant actually reach this part since every mon has at least 1 ability. + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability2; // AI cant actually reach this part since every mon has at least 1 ability. gAIScriptPtr += 2; return; } @@ -1483,34 +1481,31 @@ static void BattleAICmd_get_ability(void) else { // The AI knows its own ability. - gAIThinkingSpace.funcResult = gBattleMons[var].ability; + AI_THINKING_STRUCT->funcResult = gBattleMons[index].ability; gAIScriptPtr += 2; return; } } -static void BattleAICmd_unk_30(void) +static void BattleAICmd_get_highest_possible_damage(void) { s32 i; - struct AI_ThinkingStruct *ai; - struct AI_ThinkingStruct *ai2; gUnknown_02024DEC = 0; - battle_2000000.unk.unk1 = 0; - battle_2000000.unk.unk4 = 1; + BATTLE_STRUCT->unk.unk1 = 0; + BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - ai = &battle_2000000.ai; - ai->funcResult = 0; + AI_THINKING_STRUCT->funcResult = 0; for (i = 0; i < 4; i++) { gBattleMoveDamage = 40; - gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i]; + gUnknown_02024BE6 = gBattleMons[gPlayerMonIndex].moves[i]; if (gUnknown_02024BE6) { - move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); + move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); // reduce by 1/3. if (gBattleMoveDamage == 120) @@ -1522,12 +1517,11 @@ static void BattleAICmd_unk_30(void) if (gBattleMoveDamage == 15) gBattleMoveDamage = 10; - if (gBattleMoveFlags & 8) + if (gBattleMoveFlags & 8) // if it's a status move, it wont do anything. gBattleMoveDamage = 0; - ai2 = &battle_2000000.ai; - if (ai2->funcResult < gBattleMoveDamage) - ai2->funcResult = gBattleMoveDamage; + if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) + AI_THINKING_STRUCT->funcResult = gBattleMoveDamage; } } gAIScriptPtr += 1; @@ -1535,19 +1529,18 @@ static void BattleAICmd_unk_30(void) static void BattleAICmd_if_damage_bonus(void) { - struct AI_ThinkingStruct *ai; u8 damageVar; gUnknown_02024DEC = 0; - battle_2000000.unk.unk1 = 0; - battle_2000000.unk.unk4 = 1; + BATTLE_STRUCT->unk.unk1 = 0; + BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; gBattleMoveDamage = 40; - gUnknown_02024BE6 = (ai = &battle_2000000.ai)->unk2; + gUnknown_02024BE6 = AI_THINKING_STRUCT->moveConsidered; - move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); + move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); if (gBattleMoveDamage == 120) gBattleMoveDamage = 80; @@ -1561,42 +1554,39 @@ static void BattleAICmd_if_damage_bonus(void) if (gBattleMoveFlags & 8) gBattleMoveDamage = 0; - // i have to store 2024BEC in a local variable before the comparison or else it will not match. + // store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. damageVar = gBattleMoveDamage; + if (damageVar == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -static void BattleAICmd_unk_32(void) +static void BattleAICmd_nullsub_32(void) { } -static void BattleAICmd_unk_33(void) +static void BattleAICmd_nullsub_33(void) { } static void BattleAICmd_if_status_in_party(void) { struct Pokemon *party; + struct Pokemon *partyPtr; int i; u32 statusToCompareTo; - if (gAIScriptPtr[1] == USER) - { - party = gEnemyParty; - } - else if (0) - { - // what is going on here? - follow_jump: - gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); - return; - } - else + // for whatever reason, game freak put the party pointer into 2 variables instead of 1. it's possible at some point the switch encompassed the whole function and used each respective variable creating largely duplicate code. + switch (gAIScriptPtr[1]) { - party = gPlayerParty; + case 1: + party = partyPtr = gEnemyParty; + break; + default: + party = partyPtr = gPlayerParty; + break; } statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -1608,29 +1598,30 @@ static void BattleAICmd_if_status_in_party(void) u32 status = GetMonData(&party[i], MON_DATA_STATUS); if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo) - goto follow_jump; + { + gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); // WHAT. why is this being merged into the above switch + return; + } } gAIScriptPtr += 10; } +// bugged, doesnt return properly. also unused static void BattleAICmd_if_status_not_in_party(void) { struct Pokemon *party; + struct Pokemon *partyPtr; int i; u32 statusToCompareTo; - u8 *partyPtr; - // what weird code. needed to match switch (gAIScriptPtr[1]) { case 1: - partyPtr = (u8 *)gEnemyParty; - party = (struct Pokemon *)partyPtr; + party = partyPtr = gEnemyParty; break; default: - partyPtr = (u8 *)gPlayerParty; - party = (struct Pokemon *)partyPtr; + party = partyPtr = gPlayerParty; break; } @@ -1642,30 +1633,30 @@ static void BattleAICmd_if_status_not_in_party(void) u16 hp = GetMonData(&party[i], MON_DATA_HP); u32 status = GetMonData(&party[i], MON_DATA_STATUS); - // this jump is seemingly bugged. everytime the status is found, the AI's logic jumps further and further past its intended destination. + // everytime the status is found, the AI's logic jumps further and further past its intended destination. this results in a broken AI macro and is probably why it is unused. if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo) gAIScriptPtr += 10; // doesnt return? } gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); } -static void BattleAICmd_unk_36(void) +static void BattleAICmd_get_weather(void) { if (gBattleWeather & 7) - gAIThinkingSpace.funcResult = 1; + AI_THINKING_STRUCT->funcResult = 1; if (gBattleWeather & 0x18) - gAIThinkingSpace.funcResult = 2; + AI_THINKING_STRUCT->funcResult = 2; if (gBattleWeather & 0x60) - gAIThinkingSpace.funcResult = 0; + AI_THINKING_STRUCT->funcResult = 0; if (gBattleWeather & 0x80) - gAIThinkingSpace.funcResult = 3; + AI_THINKING_STRUCT->funcResult = 3; gAIScriptPtr += 1; } static void BattleAICmd_if_effect(void) { - if (gBattleMoves[gAIThinkingSpace.unk2].effect == gAIScriptPtr[1]) + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1673,7 +1664,7 @@ static void BattleAICmd_if_effect(void) static void BattleAICmd_if_not_effect(void) { - if (gBattleMoves[gAIThinkingSpace.unk2].effect != gAIScriptPtr[1]) + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1684,9 +1675,9 @@ static void BattleAICmd_if_stat_level_less_than(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gUnknown_02024C07; + party = gPlayerMonIndex; else - party = gUnknown_02024C08; + party = gEnemyMonIndex; if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1699,9 +1690,9 @@ static void BattleAICmd_if_stat_level_more_than(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gUnknown_02024C07; + party = gPlayerMonIndex; else - party = gUnknown_02024C08; + party = gEnemyMonIndex; if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1714,9 +1705,9 @@ static void BattleAICmd_if_stat_level_equal(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gUnknown_02024C07; + party = gPlayerMonIndex; else - party = gUnknown_02024C08; + party = gEnemyMonIndex; if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1729,9 +1720,9 @@ static void BattleAICmd_if_stat_level_not_equal(void) u32 party; if (gAIScriptPtr[1] == USER) - party = gUnknown_02024C07; + party = gPlayerMonIndex; else - party = gUnknown_02024C08; + party = gEnemyMonIndex; if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4); @@ -1741,27 +1732,27 @@ static void BattleAICmd_if_stat_level_not_equal(void) static void BattleAICmd_if_can_faint(void) { - if (gBattleMoves[gAIThinkingSpace.unk2].power < 2) + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power < 2) { gAIScriptPtr += 5; return; } gUnknown_02024DEC = 0; - ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0; - ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1; + BATTLE_STRUCT->unk.unk1 = 0; + BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_02024BE6 = gAIThinkingSpace.unk2; - sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08); - move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); + gUnknown_02024BE6 = AI_THINKING_STRUCT->moveConsidered; + sub_801CAF8(gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); - gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100; + gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->unk18[AI_THINKING_STRUCT->movesetIndex] / 100; // moves always do at least 1 damage. if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (gBattleMons[gUnknown_02024C08].hp <= gBattleMoveDamage) + if (gBattleMons[gEnemyMonIndex].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -1769,32 +1760,32 @@ static void BattleAICmd_if_can_faint(void) static void BattleAICmd_if_cant_faint(void) { - if (gBattleMoves[gAIThinkingSpace.unk2].power < 2) + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power < 2) { gAIScriptPtr += 5; return; } gUnknown_02024DEC = 0; - ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0; - ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1; + BATTLE_STRUCT->unk.unk1 = 0; + BATTLE_STRUCT->unk.unk4 = 1; gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_02024BE6 = gAIThinkingSpace.unk2; - sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08); - move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); + gUnknown_02024BE6 = AI_THINKING_STRUCT->moveConsidered; + sub_801CAF8(gPlayerMonIndex, gEnemyMonIndex); + move_effectiveness_something(gUnknown_02024BE6, gPlayerMonIndex, gEnemyMonIndex); - gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100; + gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->unk18[AI_THINKING_STRUCT->movesetIndex] / 100; // this macro is missing the damage 0 = 1 assumption. - if (gBattleMons[gUnknown_02024C08].hp > gBattleMoveDamage) + if (gBattleMons[gEnemyMonIndex].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; } -static void BattleAICmd_unk_3F(void) +static void BattleAICmd_if_has_move(void) { int i; u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); @@ -1805,7 +1796,7 @@ static void BattleAICmd_unk_3F(void) case 3: for (i = 0; i < 4; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] == *temp_ptr) + if (gBattleMons[gPlayerMonIndex].moves[i] == *temp_ptr) break; } if (i == 4) @@ -1822,7 +1813,7 @@ static void BattleAICmd_unk_3F(void) case 2: for (i = 0; i < 8; i++) { - if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == *temp_ptr) + if (unk_2016A00.unk0[gEnemyMonIndex >> 1][i] == *temp_ptr) break; } if (i == 8) @@ -1838,7 +1829,7 @@ static void BattleAICmd_unk_3F(void) } } -static void BattleAICmd_unk_40(void) +static void BattleAICmd_if_dont_have_move(void) { int i; u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); @@ -1849,7 +1840,7 @@ static void BattleAICmd_unk_40(void) case 3: for (i = 0; i < 4; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] == *temp_ptr) + if (gBattleMons[gPlayerMonIndex].moves[i] == *temp_ptr) break; } if (i != 4) @@ -1866,7 +1857,7 @@ static void BattleAICmd_unk_40(void) case 2: for (i = 0; i < 8; i++) { - if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] == *temp_ptr) + if (unk_2016A00.unk0[gEnemyMonIndex >> 1][i] == *temp_ptr) break; } if (i != 8) @@ -1892,7 +1883,7 @@ static void BattleAICmd_if_move_effect(void) case 3: for (i = 0; i < 4; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1904,7 +1895,7 @@ static void BattleAICmd_if_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[unk_2016A00.unk0[gUnknown_02024C08 >> 1][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[unk_2016A00.unk0[gEnemyMonIndex >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); @@ -1921,7 +1912,7 @@ static void BattleAICmd_if_not_move_effect(void) case 3: for (i = 0; i < 4; i++) { - if (gBattleMons[gUnknown_02024C07].moves[i] != 0 && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gPlayerMonIndex].moves[i] != 0 && gBattleMoves[gBattleMons[gPlayerMonIndex].moves[i]].effect == gAIScriptPtr[2]) break; } if (i != 4) @@ -1933,7 +1924,7 @@ static void BattleAICmd_if_not_move_effect(void) case 2: for (i = 0; i < 8; i++) { - if (unk_2016A00.unk0[gUnknown_02024C08 >> 1][i] != 0 && gBattleMoves[unk_2016A00.unk0[gUnknown_02024C08 >> 1][i]].effect == gAIScriptPtr[2]) + if (unk_2016A00.unk0[gEnemyMonIndex >> 1][i] != 0 && gBattleMoves[unk_2016A00.unk0[gEnemyMonIndex >> 1][i]].effect == gAIScriptPtr[2]) break; } gAIScriptPtr += 7; @@ -1942,16 +1933,16 @@ static void BattleAICmd_if_not_move_effect(void) static void BattleAICmd_if_last_move_did_damage(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; if (gAIScriptPtr[2] == 0) { - if (gUnknown_02024CA8[var].unk4 == 0) + if (gUnknown_02024CA8[index].unk4 == 0) { gAIScriptPtr += 7; return; @@ -1959,12 +1950,12 @@ static void BattleAICmd_if_last_move_did_damage(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); return; } - else if (gAIScriptPtr[2] != 1) + else if (gAIScriptPtr[2] != 1) // ignore the macro if its not 0 or 1. { gAIScriptPtr += 7; return; } - else if (gUnknown_02024CA8[var].unk6 != 0) + else if (gUnknown_02024CA8[index].unk6 != 0) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); return; @@ -1977,7 +1968,7 @@ static void BattleAICmd_if_encored(void) switch (gAIScriptPtr[1]) { case 0: // _08109348 - if (gUnknown_02024CA8[gUnknown_02024A60].unk4 == gAIThinkingSpace.unk2) + if (gUnknown_02024CA8[gUnknown_02024A60].unk4 == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -1985,7 +1976,7 @@ static void BattleAICmd_if_encored(void) gAIScriptPtr += 6; return; case 1: // _08109370 - if (gUnknown_02024CA8[gUnknown_02024A60].unk6 == gAIThinkingSpace.unk2) + if (gUnknown_02024CA8[gUnknown_02024A60].unk6 == AI_THINKING_STRUCT->moveConsidered) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -1998,170 +1989,167 @@ static void BattleAICmd_if_encored(void) } } -static void BattleAICmd_unk_45(void) +static void BattleAICmd_flee(void) { - gAIThinkingSpace.unk10 |= 0xB; + AI_THINKING_STRUCT->aiAction |= (AI_ACTION_UNK1 | AI_ACTION_UNK2 | AI_ACTION_UNK4); // what matters is UNK2 being enabled. } -static void BattleAICmd_if_random_2(void) +static void BattleAICmd_if_random_100(void) { - u8 var = battle_2000000.unk88 * 5; + u8 safariFleeRate = BATTLE_STRUCT->safariFleeRate * 5; // safari flee rate, from 0-20 - if ((u8)(Random() % 100) < var) + if ((u8)(Random() % 100) < safariFleeRate) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; } -static void BattleAICmd_unk_47(void) +static void BattleAICmd_watch(void) { - gAIThinkingSpace.unk10 |= 0xD; + AI_THINKING_STRUCT->aiAction |= (AI_ACTION_UNK1 | AI_ACTION_UNK3 | AI_ACTION_UNK4); // what matters is UNK3 being enabled. } static void BattleAICmd_get_hold_effect(void) { - u8 var; + u8 index; u16 status; - u8 *aiPtr; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - if (battle_side_get_owner(var) == 0) + if (battle_side_get_owner(index) == 0) { - // weird pointer arithmetic is needed to match. - status = (battle_get_per_side_status(var) & 1); - aiPtr = (u8 *)&gAIThinkingSpace; - gAIThinkingSpace.funcResult = ((struct UnknownStruct1 *)((u8 *)aiPtr + 0x202))->unk20[status]; + status = (battle_get_per_side_status(index) & 1); + AI_THINKING_STRUCT->funcResult = UNK_2016A00_STRUCT->unk22[status]; } else - gAIThinkingSpace.funcResult = ItemId_GetHoldEffect(gBattleMons[var].item); + AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[index].item); gAIScriptPtr += 2; } static void BattleAICmd_get_gender(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - gAIThinkingSpace.funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[var].species, gBattleMons[var].personality); + AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[index].species, gBattleMons[index].personality); gAIScriptPtr += 2; } static void BattleAICmd_is_first_turn(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - gAIThinkingSpace.funcResult = gUnknown_02024CA8[var].unk16; + AI_THINKING_STRUCT->funcResult = gUnknown_02024CA8[index].unk16; gAIScriptPtr += 2; } static void BattleAICmd_get_stockpile_count(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - gAIThinkingSpace.funcResult = gUnknown_02024CA8[var].unk9; + AI_THINKING_STRUCT->funcResult = gUnknown_02024CA8[index].unk9; gAIScriptPtr += 2; } -static void BattleAICmd_unk_4C(void) +static void BattleAICmd_is_double_battle(void) { - gAIThinkingSpace.funcResult = gBattleTypeFlags & 1; + AI_THINKING_STRUCT->funcResult = gBattleTypeFlags & BATTLE_TYPE_DOUBLE; gAIScriptPtr += 1; } static void BattleAICmd_get_item(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - // this hack and a half matches. whatever. i dont care. someone else fix this mess later. - ((struct AI_ThinkingStruct *)(unk_2000000 + 0x16800))->funcResult = unk_2000000[0x160CC + var * 2]; + // this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this. + AI_THINKING_STRUCT->funcResult = unk_2000000[0x160CC + (index * 2)]; gAIScriptPtr += 2; } -static void BattleAICmd_unk_4E(void) +static void BattleAICmd_get_move_type_from_result(void) { - gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].type; + AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].type; gAIScriptPtr += 1; } -static void BattleAICmd_unk_4F(void) +static void BattleAICmd_get_move_power_from_result(void) { - gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].power; + AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].power; gAIScriptPtr += 1; } -static void BattleAICmd_unk_50(void) +static void BattleAICmd_get_move_effect_from_result(void) { - gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].effect; + AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].effect; gAIScriptPtr += 1; } static void BattleAICmd_get_protect_count(void) { - u8 var; + u8 index; if (gAIScriptPtr[1] == USER) - var = gUnknown_02024C07; + index = gPlayerMonIndex; else - var = gUnknown_02024C08; + index = gEnemyMonIndex; - gAIThinkingSpace.funcResult = gUnknown_02024CA8[var].unk8; + AI_THINKING_STRUCT->funcResult = gUnknown_02024CA8[index].unk8; gAIScriptPtr += 2; } -static void BattleAICmd_unk_52(void) +static void BattleAICmd_nullsub_52(void) { } -static void BattleAICmd_unk_53(void) +static void BattleAICmd_nullsub_53(void) { } -static void BattleAICmd_unk_54(void) +static void BattleAICmd_nullsub_54(void) { } -static void BattleAICmd_unk_55(void) +static void BattleAICmd_nullsub_55(void) { } -static void BattleAICmd_unk_56(void) +static void BattleAICmd_nullsub_56(void) { } -static void BattleAICmd_unk_57(void) +static void BattleAICmd_nullsub_57(void) { } @@ -2176,34 +2164,34 @@ static void BattleAICmd_jump(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -static void BattleAICmd_unk_5A(void) +static void BattleAICmd_end(void) { if (sub_8109908() == 0) - gAIThinkingSpace.unk10 |= 1; + AI_THINKING_STRUCT->aiAction |= AI_ACTION_UNK1; } static void BattleAICmd_if_level_cond(void) { switch (gAIScriptPtr[1]) { - case 0: - if (gBattleMons[gUnknown_02024C07].level > gBattleMons[gUnknown_02024C08].level) + case 0: // greater than + if (gBattleMons[gPlayerMonIndex].level > gBattleMons[gEnemyMonIndex].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; } gAIScriptPtr += 6; return; - case 1: - if (gBattleMons[gUnknown_02024C07].level < gBattleMons[gUnknown_02024C08].level) + case 1: // less than + if (gBattleMons[gPlayerMonIndex].level < gBattleMons[gEnemyMonIndex].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; } gAIScriptPtr += 6; return; - case 2: - if (gBattleMons[gUnknown_02024C07].level == gBattleMons[gUnknown_02024C08].level) + case 2: // equal + if (gBattleMons[gPlayerMonIndex].level == gBattleMons[gEnemyMonIndex].level) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); return; @@ -2215,7 +2203,7 @@ static void BattleAICmd_if_level_cond(void) static void BattleAICmd_if_taunted(void) { - if (gUnknown_02024CA8[gUnknown_02024C08].taunt) + if (gUnknown_02024CA8[gEnemyMonIndex].taunt != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2223,7 +2211,7 @@ static void BattleAICmd_if_taunted(void) static void BattleAICmd_if_not_taunted(void) { - if (!(gUnknown_02024CA8[gUnknown_02024C08].taunt)) + if (gUnknown_02024CA8[gEnemyMonIndex].taunt == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; diff --git a/src/battle_anim.c b/src/battle_anim.c index 264a1dd9e..4cc337a0c 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -59,8 +59,8 @@ struct UnknownStruct3 extern u8 unk_2000000[]; extern u16 gUnknown_02024A6A[4]; extern u8 gUnknown_02024BE0[]; -extern u8 gUnknown_02024C07; -extern u8 gUnknown_02024C08; +extern u8 gPlayerMonIndex; +extern u8 gEnemyMonIndex; EWRAM_DATA const u8 *gBattleAnimScriptPtr = NULL; EWRAM_DATA const u8 *gBattleAnimScriptRetAddr = NULL; EWRAM_DATA void (*gUnknown_0202F7AC)(void) = NULL; @@ -260,8 +260,8 @@ void battle_anim_clear_some_data(void) void move_anim_start_t1(u16 a) { - gUnknown_0202F7C8 = gUnknown_02024C07; - gUnknown_0202F7C9 = gUnknown_02024C08; + gUnknown_0202F7C8 = gPlayerMonIndex; + gUnknown_0202F7C9 = gEnemyMonIndex; move_something(gBattleAnims_Moves, a, 1); } diff --git a/src/battle_setup.c b/src/battle_setup.c index 6d3e6a215..858b6cca1 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -21,6 +21,8 @@ #include "text.h" #include "trainer.h" #include "weather.h" +#include "map_constants.h" +#include "opponent_constants.h" #define NUM_TRAINER_EYE_TRAINERS 56 #define TRAINER_REMATCH_STEPS 255 @@ -92,14 +94,11 @@ EWRAM_DATA u8 *gTrainerCannotBattleSpeech = NULL; EWRAM_DATA u8 *gTrainerBattleScriptReturnAddress = NULL; EWRAM_DATA u8 *gTrainerBattleEndScript = NULL; -extern struct TrainerEyeTrainer gTrainerEyeTrainers[]; - extern u8 gOtherText_CancelWithTerminator[]; extern u16 gBattleTypeFlags; extern u16 gScriptLastTalked; extern u8 gUnknown_02024D26; -extern u16 gBadgeFlags[]; extern struct MapObject gMapObjects[]; @@ -112,14 +111,367 @@ extern u8 gUnknown_0819F8AE[]; extern u8 gUnknown_0819F80B[]; extern u8 gUnknown_081C6C02[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_0[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_1[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_2[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_3[]; -extern struct TrainerBattleSpec gTrainerBattleSpecs_4[]; -extern u8 gBattleTransitionTable_Wild[][2]; -extern u8 gBattleTransitionTable_Trainer[][2]; +static const u8 gBattleTransitionTable_Wild[][2] = +{ + {8, 9}, + {5, 10}, + {0, 10}, + {7, 6}, +}; +static const u8 gBattleTransitionTable_Trainer[][2] = +{ + {4, 11}, + {2, 3}, + {0, 10}, + {1, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_0[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 5}, + {&gTrainerBattleEndScript, 5}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_1[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 5}, + {&gTrainerBattleEndScript, 2}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_2[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 2}, + {&gTrainerBattleEndScript, 5}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_3[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 5}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 5}, + {&gTrainerBattleEndScript, 5}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; +static const struct TrainerBattleSpec gTrainerBattleSpecs_4[] = +{ + {&gTrainerBattleMode, 0}, + {&gTrainerBattleOpponent, 1}, + {&gTrainerMapObjectLocalId, 1}, + {&gTrainerIntroSpeech, 2}, + {&gTrainerDefeatSpeech, 2}, + {&gTrainerVictorySpeech, 5}, + {&gTrainerCannotBattleSpeech, 2}, + {&gTrainerBattleEndScript, 2}, + {&gTrainerBattleScriptReturnAddress, 6}, +}; + +const struct TrainerEyeTrainer gTrainerEyeTrainers[] = +{ + { + {OPPONENT_ROSE_1, OPPONENT_ROSE_2, OPPONENT_ROSE_3, OPPONENT_ROSE_4, OPPONENT_ROSE_5}, + MAP_GROUP_ROUTE118, + MAP_ID_ROUTE118, + }, + { + {OPPONENT_DUSTY_1, OPPONENT_DUSTY_2, OPPONENT_DUSTY_3, OPPONENT_DUSTY_4, OPPONENT_DUSTY_5}, + MAP_GROUP_ROUTE111, + MAP_ID_ROUTE111, + }, + { + {OPPONENT_LOLA_1, OPPONENT_LOLA_2, OPPONENT_LOLA_3, OPPONENT_LOLA_4, OPPONENT_LOLA_5}, + MAP_GROUP_ROUTE109, + MAP_ID_ROUTE109, + }, + { + {OPPONENT_RICKY_1, OPPONENT_RICKY_2, OPPONENT_RICKY_3, OPPONENT_RICKY_4, OPPONENT_RICKY_5}, + MAP_GROUP_ROUTE109, + MAP_ID_ROUTE109, + }, + { + {OPPONENT_RITA_AND_SAM_1, OPPONENT_RITA_AND_SAM_2, OPPONENT_RITA_AND_SAM_3, OPPONENT_RITA_AND_SAM_4, OPPONENT_RITA_AND_SAM_5}, + MAP_GROUP_ROUTE124, + MAP_ID_ROUTE124, + }, + { + {OPPONENT_BROOKE_1, OPPONENT_BROOKE_2, OPPONENT_BROOKE_3, OPPONENT_BROOKE_4, OPPONENT_BROOKE_5}, + MAP_GROUP_ROUTE111, + MAP_ID_ROUTE111, + }, + { + {OPPONENT_WILTON_1, OPPONENT_WILTON_2, OPPONENT_WILTON_3, OPPONENT_WILTON_4, OPPONENT_WILTON_5}, + MAP_GROUP_ROUTE111, + MAP_ID_ROUTE111, + }, + { + {OPPONENT_VALERIE_1, OPPONENT_VALERIE_2, OPPONENT_VALERIE_3, OPPONENT_VALERIE_4, OPPONENT_VALERIE_5}, + MAP_GROUP_MT_PYRE_6F, + MAP_ID_MT_PYRE_6F, + }, + { + {OPPONENT_CINDY_1, OPPONENT_CINDY_3, OPPONENT_CINDY_4, OPPONENT_CINDY_5, OPPONENT_CINDY_6}, + MAP_GROUP_ROUTE104, + MAP_ID_ROUTE104, + }, + { + {OPPONENT_JESSICA_1, OPPONENT_JESSICA_2, OPPONENT_JESSICA_3, OPPONENT_JESSICA_4, OPPONENT_JESSICA_5}, + MAP_GROUP_ROUTE121, + MAP_ID_ROUTE121, + }, + { + {OPPONENT_WINSTON_1, OPPONENT_WINSTON_2, OPPONENT_WINSTON_3, OPPONENT_WINSTON_4, OPPONENT_WINSTON_5}, + MAP_GROUP_ROUTE104, + MAP_ID_ROUTE104, + }, + { + {OPPONENT_STEVE_1, OPPONENT_STEVE_2, OPPONENT_STEVE_3, OPPONENT_STEVE_4, OPPONENT_STEVE_5}, + MAP_GROUP_ROUTE114, + MAP_ID_ROUTE114, + }, + { + {OPPONENT_TONY_1, OPPONENT_TONY_2, OPPONENT_TONY_3, OPPONENT_TONY_4, OPPONENT_TONY_5}, + MAP_GROUP_ROUTE107, + MAP_ID_ROUTE107, + }, + { + {OPPONENT_NOB_1, OPPONENT_NOB_2, OPPONENT_NOB_3, OPPONENT_NOB_4, OPPONENT_NOB_5}, + MAP_GROUP_ROUTE115, + MAP_ID_ROUTE115, + }, + { + {OPPONENT_DALTON_1, OPPONENT_DALTON_2, OPPONENT_DALTON_3, OPPONENT_DALTON_4, OPPONENT_DALTON_5}, + MAP_GROUP_ROUTE118, + MAP_ID_ROUTE118, + }, + { + {OPPONENT_BERNIE_1, OPPONENT_BERNIE_2, OPPONENT_BERNIE_3, OPPONENT_BERNIE_4, OPPONENT_BERNIE_5}, + MAP_GROUP_ROUTE114, + MAP_ID_ROUTE114, + }, + { + {OPPONENT_ETHAN_1, OPPONENT_ETHAN_2, OPPONENT_ETHAN_3, OPPONENT_ETHAN_4, OPPONENT_ETHAN_5}, + MAP_GROUP_JAGGED_PASS, + MAP_ID_JAGGED_PASS, + }, + { + {OPPONENT_JOHN_AND_JAY_1, OPPONENT_JOHN_AND_JAY_2, OPPONENT_JOHN_AND_JAY_3, OPPONENT_JOHN_AND_JAY_4, OPPONENT_JOHN_AND_JAY_5}, + MAP_GROUP_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_1F_2R, + }, + { + {OPPONENT_BRANDON_1, OPPONENT_BRANDON_2, OPPONENT_BRANDON_3, OPPONENT_BRANDON_4, OPPONENT_BRANDON_5}, + MAP_GROUP_ROUTE120, + MAP_ID_ROUTE120, + }, + { + {OPPONENT_CAMERON_1, OPPONENT_CAMERON_2, OPPONENT_CAMERON_3, OPPONENT_CAMERON_4, OPPONENT_CAMERON_5}, + MAP_GROUP_ROUTE123, + MAP_ID_ROUTE123, + }, + { + {OPPONENT_JACKI_1, OPPONENT_JACKI_2, OPPONENT_JACKI_3, OPPONENT_JACKI_4, OPPONENT_JACKI_5}, + MAP_GROUP_ROUTE123, + MAP_ID_ROUTE123, + }, + { + {OPPONENT_WALTER_1, OPPONENT_WALTER_2, OPPONENT_WALTER_3, OPPONENT_WALTER_4, OPPONENT_WALTER_5}, + MAP_GROUP_ROUTE121, + MAP_ID_ROUTE121, + }, + { + {OPPONENT_KAREN_1, OPPONENT_KAREN_2, OPPONENT_KAREN_3, OPPONENT_KAREN_4, OPPONENT_KAREN_5}, + MAP_GROUP_ROUTE116, + MAP_ID_ROUTE116, + }, + { + {OPPONENT_JERRY_1, OPPONENT_JERRY_2, OPPONENT_JERRY_3, OPPONENT_JERRY_4, OPPONENT_JERRY_5}, + MAP_GROUP_ROUTE116, + MAP_ID_ROUTE116, + }, + { + {OPPONENT_ANNA_AND_MEG_1, OPPONENT_ANNA_AND_MEG_2, OPPONENT_ANNA_AND_MEG_3, OPPONENT_ANNA_AND_MEG_4, OPPONENT_ANNA_AND_MEG_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_ISABEL_1, OPPONENT_ISABEL_2, OPPONENT_ISABEL_3, OPPONENT_ISABEL_4, OPPONENT_ISABEL_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_MIGUEL_1, OPPONENT_MIGUEL_2, OPPONENT_MIGUEL_3, OPPONENT_MIGUEL_4, OPPONENT_MIGUEL_5}, + MAP_GROUP_ROUTE103, + MAP_ID_ROUTE103, + }, + { + {OPPONENT_TIMOTHY_1, OPPONENT_TIMOTHY_2, OPPONENT_TIMOTHY_3, OPPONENT_TIMOTHY_4, OPPONENT_TIMOTHY_5}, + MAP_GROUP_ROUTE115, + MAP_ID_ROUTE115, + }, + { + {OPPONENT_SHELBY_1, OPPONENT_SHELBY_2, OPPONENT_SHELBY_3, OPPONENT_SHELBY_4, OPPONENT_SHELBY_5}, + MAP_GROUP_MT_CHIMNEY, + MAP_ID_MT_CHIMNEY, + }, + { + {OPPONENT_CALVIN_1, OPPONENT_CALVIN_2, OPPONENT_CALVIN_3, OPPONENT_CALVIN_4, OPPONENT_CALVIN_5}, + MAP_GROUP_ROUTE102, + MAP_ID_ROUTE102, + }, + { + {OPPONENT_ELLIOT_1, OPPONENT_ELLIOT_2, OPPONENT_ELLIOT_3, OPPONENT_ELLIOT_4, OPPONENT_ELLIOT_5}, + MAP_GROUP_ROUTE106, + MAP_ID_ROUTE106, + }, + { + {OPPONENT_ABIGAIL_1, OPPONENT_ABIGAIL_2, OPPONENT_ABIGAIL_3, OPPONENT_ABIGAIL_4, OPPONENT_ABIGAIL_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_BENJAMIN_1, OPPONENT_BENJAMIN_2, OPPONENT_BENJAMIN_3, OPPONENT_BENJAMIN_4, OPPONENT_BENJAMIN_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_ISAIAH_1, OPPONENT_ISAIAH_2, OPPONENT_ISAIAH_3, OPPONENT_ISAIAH_4, OPPONENT_ISAIAH_5}, + MAP_GROUP_ROUTE128, + MAP_ID_ROUTE128, + }, + { + {OPPONENT_KATELYN_1, OPPONENT_KATELYN_2, OPPONENT_KATELYN_3, OPPONENT_KATELYN_4, OPPONENT_KATELYN_5}, + MAP_GROUP_ROUTE128, + MAP_ID_ROUTE128, + }, + { + {OPPONENT_MARIA_1, OPPONENT_MARIA_2, OPPONENT_MARIA_3, OPPONENT_MARIA_4, OPPONENT_MARIA_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_DYLAN_1, OPPONENT_DYLAN_2, OPPONENT_DYLAN_3, OPPONENT_DYLAN_4, OPPONENT_DYLAN_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_NICOLAS_1, OPPONENT_NICOLAS_2, OPPONENT_NICOLAS_3, OPPONENT_NICOLAS_4, OPPONENT_NICOLAS_5}, + MAP_GROUP_METEOR_FALLS_1F_2R, + MAP_ID_METEOR_FALLS_1F_2R, + }, + { + {OPPONENT_ROBERT_1, OPPONENT_ROBERT_2, OPPONENT_ROBERT_3, OPPONENT_ROBERT_4, OPPONENT_ROBERT_5}, + MAP_GROUP_ROUTE120, + MAP_ID_ROUTE120, + }, + { + {OPPONENT_LAO_1, OPPONENT_LAO_2, OPPONENT_LAO_3, OPPONENT_LAO_4, OPPONENT_LAO_5}, + MAP_GROUP_ROUTE113, + MAP_ID_ROUTE113, + }, + { + {OPPONENT_CYNDY_1, OPPONENT_CYNDY_2, OPPONENT_CYNDY_3, OPPONENT_CYNDY_4, OPPONENT_CYNDY_5}, + MAP_GROUP_ROUTE115, + MAP_ID_ROUTE115, + }, + { + {OPPONENT_MADELINE_1, OPPONENT_MADELINE_2, OPPONENT_MADELINE_3, OPPONENT_MADELINE_4, OPPONENT_MADELINE_5}, + MAP_GROUP_ROUTE113, + MAP_ID_ROUTE113, + }, + { + {OPPONENT_JENNY_1, OPPONENT_JENNY_2, OPPONENT_JENNY_3, OPPONENT_JENNY_4, OPPONENT_JENNY_5}, + MAP_GROUP_ROUTE124, + MAP_ID_ROUTE124, + }, + { + {OPPONENT_DIANA_1, OPPONENT_DIANA_2, OPPONENT_DIANA_3, OPPONENT_DIANA_4, OPPONENT_DIANA_5}, + MAP_GROUP_JAGGED_PASS, + MAP_ID_JAGGED_PASS, + }, + { + {OPPONENT_AMY_AND_LIV_1, OPPONENT_AMY_AND_LIV_2, OPPONENT_AMY_AND_LIV_4, OPPONENT_AMY_AND_LIV_5, OPPONENT_AMY_AND_LIV_6}, + MAP_GROUP_ROUTE103, + MAP_ID_ROUTE103, + }, + { + {OPPONENT_ERNEST_1, OPPONENT_ERNEST_2, OPPONENT_ERNEST_3, OPPONENT_ERNEST_4, OPPONENT_ERNEST_5}, + MAP_GROUP_ROUTE125, + MAP_ID_ROUTE125, + }, + { + {OPPONENT_EDWIN_1, OPPONENT_EDWIN_2, OPPONENT_EDWIN_3, OPPONENT_EDWIN_4, OPPONENT_EDWIN_5}, + MAP_GROUP_ROUTE110, + MAP_ID_ROUTE110, + }, + { + {OPPONENT_LYDIA_1, OPPONENT_LYDIA_2, OPPONENT_LYDIA_3, OPPONENT_LYDIA_4, OPPONENT_LYDIA_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_ISAAC_1, OPPONENT_ISAAC_2, OPPONENT_ISAAC_3, OPPONENT_ISAAC_4, OPPONENT_ISAAC_5}, + MAP_GROUP_ROUTE117, + MAP_ID_ROUTE117, + }, + { + {OPPONENT_CATHERINE_1, OPPONENT_CATHERINE_2, OPPONENT_CATHERINE_3, OPPONENT_CATHERINE_4, OPPONENT_CATHERINE_5}, + MAP_GROUP_ROUTE119, + MAP_ID_ROUTE119, + }, + { + {OPPONENT_JACKSON_1, OPPONENT_JACKSON_2, OPPONENT_JACKSON_3, OPPONENT_JACKSON_4, OPPONENT_JACKSON_5}, + MAP_GROUP_ROUTE119, + MAP_ID_ROUTE119, + }, + { + {OPPONENT_HALEY_1, OPPONENT_HALEY_2, OPPONENT_HALEY_3, OPPONENT_HALEY_4, OPPONENT_HALEY_5}, + MAP_GROUP_ROUTE104, + MAP_ID_ROUTE104, + }, + { + {OPPONENT_JAMES_1, OPPONENT_JAMES_2, OPPONENT_JAMES_3, OPPONENT_JAMES_4, OPPONENT_JAMES_5}, + MAP_GROUP_PETALBURG_WOODS, + MAP_ID_PETALBURG_WOODS, + }, + { + {OPPONENT_TRENT_1, OPPONENT_TRENT_2, OPPONENT_TRENT_3, OPPONENT_TRENT_4, OPPONENT_TRENT_5}, + MAP_GROUP_ROUTE112, + MAP_ID_ROUTE112, + }, + { + {OPPONENT_LOIS_AND_HAL_1, OPPONENT_LOIS_AND_HAL_2, OPPONENT_LOIS_AND_HAL_3, OPPONENT_LOIS_AND_HAL_4, OPPONENT_LOIS_AND_HAL_5}, + MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F, + MAP_ID_ABANDONED_SHIP_ROOMS2_1F, + }, + { + {OPPONENT_WALLY_3, OPPONENT_WALLY_4, OPPONENT_WALLY_5, OPPONENT_WALLY_6, OPPONENT_NONE}, + MAP_GROUP_VICTORY_ROAD_1F, + MAP_ID_VICTORY_ROAD_1F, + }, +}; + +static const u16 sBadgeFlags[] = {BADGE01_GET, BADGE02_GET, BADGE03_GET, BADGE04_GET, BADGE05_GET, BADGE06_GET, BADGE07_GET, BADGE08_GET}; void task01_battle_start(u8 taskId) { @@ -592,7 +944,7 @@ void sub_80822BC(void) gTrainerBattleEndScript = 0; } -void TrainerBattleLoadArgs(struct TrainerBattleSpec *specs, u8 *data) +void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data) { while (1) { @@ -902,7 +1254,7 @@ u8 *sub_8082880(void) return SanitizeString(gTrainerCannotBattleSpeech); } -s32 sub_8082894(struct TrainerEyeTrainer *trainers, u16 trainerNum) +s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 i; @@ -914,7 +1266,7 @@ s32 sub_8082894(struct TrainerEyeTrainer *trainers, u16 trainerNum) return -1; } -s32 sub_80828B8(struct TrainerEyeTrainer *trainers, u16 trainerNum) +s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 i; s32 j; @@ -930,7 +1282,7 @@ s32 sub_80828B8(struct TrainerEyeTrainer *trainers, u16 trainerNum) return -1; } -bool32 sub_80828FC(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) +bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) { int i; bool32 ret = FALSE; @@ -955,7 +1307,7 @@ bool32 sub_80828FC(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) return ret; } -s32 sub_80829A8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) +s32 sub_80829A8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) { s32 i; @@ -967,7 +1319,7 @@ s32 sub_80829A8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) return 0; } -s32 sub_80829E8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) +s32 sub_80829E8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) { s32 i; @@ -979,7 +1331,7 @@ s32 sub_80829E8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum) return 0; } -bool8 sub_8082A18(struct TrainerEyeTrainer *trainers, u16 trainerNum) +bool8 sub_8082A18(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); @@ -989,7 +1341,7 @@ bool8 sub_8082A18(struct TrainerEyeTrainer *trainers, u16 trainerNum) return FALSE; } -bool8 sub_8082A54(struct TrainerEyeTrainer *trainers, u16 trainerNum) +bool8 sub_8082A54(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum); @@ -999,10 +1351,10 @@ bool8 sub_8082A54(struct TrainerEyeTrainer *trainers, u16 trainerNum) return FALSE; } -u16 sub_8082A90(struct TrainerEyeTrainer *trainers, u16 trainerNum) +u16 sub_8082A90(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { int i; - struct TrainerEyeTrainer *trainer; + const struct TrainerEyeTrainer *trainer; s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); if (trainerEyeIndex == -1) @@ -1018,7 +1370,7 @@ u16 sub_8082A90(struct TrainerEyeTrainer *trainers, u16 trainerNum) return trainer->trainerNums[4]; } -void sub_8082AE4(struct TrainerEyeTrainer *trainers, u16 trainerNum) +void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum); @@ -1026,7 +1378,7 @@ void sub_8082AE4(struct TrainerEyeTrainer *trainers, u16 trainerNum) gSaveBlock1.trainerRematches[trainerEyeIndex] = 0; } -bool8 sub_8082B10(struct TrainerEyeTrainer *trainers, u16 trainerNum) +bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum) { s32 trainerEyeIndex = sub_8082894(trainers, trainerNum); @@ -1043,7 +1395,7 @@ bool32 sub_8082B44(void) for (i = 0; i < 8; i++) { - if (FlagGet(gBadgeFlags[i]) == TRUE) + if (FlagGet(sBadgeFlags[i]) == TRUE) { badgeCount++; if (badgeCount >= 5) diff --git a/src/berry.c b/src/berry.c index 2a8ce8380..7932fafea 100644 --- a/src/berry.c +++ b/src/berry.c @@ -10,9 +10,788 @@ #define FIRST_BERRY ITEM_CHERI_BERRY #define LAST_BERRY ITEM_ENIGMA_BERRY -extern struct Berry gBerries[]; +const u8 gBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers."); +const u8 gBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy."); +const u8 gBerryDescriptionPart1_Chesto[] = _("The BERRY’s thick skin and fruit are"); +const u8 gBerryDescriptionPart2_Chesto[] = _("very tough. It is dry-tasting all over."); +const u8 gBerryDescriptionPart1_Pecha[] = _("Very sweet and delicious."); +const u8 gBerryDescriptionPart2_Pecha[] = _("Also very tender - handle with care."); +const u8 gBerryDescriptionPart1_Rawst[] = _("If the leaves grow long and curly,"); +const u8 gBerryDescriptionPart2_Rawst[] = _("the BERRY seems to grow very bitter."); +const u8 gBerryDescriptionPart1_Aspear[] = _("The hard BERRY is dense with a rich"); +const u8 gBerryDescriptionPart2_Aspear[] = _("juice. It is quite sour."); +const u8 gBerryDescriptionPart1_Leppa[] = _("Grows slower than CHERI and others."); +const u8 gBerryDescriptionPart2_Leppa[] = _("The smaller the BERRY, the tastier."); +const u8 gBerryDescriptionPart1_Oran[] = _("A peculiar BERRY with a mix of flavors."); +const u8 gBerryDescriptionPart2_Oran[] = _("BERRIES grow in half a day."); +const u8 gBerryDescriptionPart1_Persim[] = _("Loves sunlight. The BERRY’s color"); +const u8 gBerryDescriptionPart2_Persim[] = _("grows vivid when exposed to the sun."); +const u8 gBerryDescriptionPart1_Lum[] = _("Slow to grow. If raised with loving"); +const u8 gBerryDescriptionPart2_Lum[] = _("care, it may grow two BERRIES."); +const u8 gBerryDescriptionPart1_Sitrus[] = _("Closely related to ORAN. The large"); +const u8 gBerryDescriptionPart2_Sitrus[] = _("BERRY has a well-rounded flavor."); +const u8 gBerryDescriptionPart1_Figy[] = _("The BERRY, which looks chewed up,"); +const u8 gBerryDescriptionPart2_Figy[] = _("brims with spicy substances."); +const u8 gBerryDescriptionPart1_Wiki[] = _("The BERRY is said to have grown lumpy"); +const u8 gBerryDescriptionPart2_Wiki[] = _("to help POKéMON grip it."); +const u8 gBerryDescriptionPart1_Mago[] = _("The BERRY turns curvy as it grows."); +const u8 gBerryDescriptionPart2_Mago[] = _("The curvier, the sweeter and tastier."); +const u8 gBerryDescriptionPart1_Aguav[] = _("The flower is dainty. It is rare in its"); +const u8 gBerryDescriptionPart2_Aguav[] = _("ability to grow without light."); +const u8 gBerryDescriptionPart1_Iapapa[] = _("The BERRY is very big and sour."); +const u8 gBerryDescriptionPart2_Iapapa[] = _("It takes at least a day to grow."); +const u8 gBerryDescriptionPart1_Razz[] = _("The red BERRY tastes slightly spicy."); +const u8 gBerryDescriptionPart2_Razz[] = _("It grows quickly in just four hours."); +const u8 gBerryDescriptionPart1_Bluk[] = _("The BERRY is blue on the outside, but"); +const u8 gBerryDescriptionPart2_Bluk[] = _("it blackens the mouth when eaten."); +const u8 gBerryDescriptionPart1_Nanab[] = _("This BERRY was the seventh"); +const u8 gBerryDescriptionPart2_Nanab[] = _("discovered in the world. It is sweet."); +const u8 gBerryDescriptionPart1_Wepear[] = _("The flower is small and white. It has a"); +const u8 gBerryDescriptionPart2_Wepear[] = _("delicate balance of bitter and sour."); +const u8 gBerryDescriptionPart1_Pinap[] = _("Weak against wind and cold."); +const u8 gBerryDescriptionPart2_Pinap[] = _("The fruit is spicy and the skin, sour."); +const u8 gBerryDescriptionPart1_Pomeg[] = _("However much it is watered,"); +const u8 gBerryDescriptionPart2_Pomeg[] = _("it only grows up to six BERRIES."); +const u8 gBerryDescriptionPart1_Kelpsy[] = _("A rare variety shaped like a root."); +const u8 gBerryDescriptionPart2_Kelpsy[] = _("Grows a very large flower."); +const u8 gBerryDescriptionPart1_Qualot[] = _("Loves water. Grows strong even in"); +const u8 gBerryDescriptionPart2_Qualot[] = _("locations with constant rainfall."); +const u8 gBerryDescriptionPart1_Hondew[] = _("A BERRY that is very valuable and"); +const u8 gBerryDescriptionPart2_Hondew[] = _("rarely seen. It is very delicious."); +const u8 gBerryDescriptionPart1_Grepa[] = _("Despite its tenderness and round"); +const u8 gBerryDescriptionPart2_Grepa[] = _("shape, the BERRY is unimaginably sour."); +const u8 gBerryDescriptionPart1_Tamato[] = _("The BERRY is lip-bendingly spicy."); +const u8 gBerryDescriptionPart2_Tamato[] = _("It takes time to grow."); +const u8 gBerryDescriptionPart1_Cornn[] = _("A BERRY from an ancient era. May not"); +const u8 gBerryDescriptionPart2_Cornn[] = _("grow unless planted in quantity."); +const u8 gBerryDescriptionPart1_Magost[] = _("A BERRY that is widely said to have"); +const u8 gBerryDescriptionPart2_Magost[] = _("a finely balanced flavor."); +const u8 gBerryDescriptionPart1_Rabuta[] = _("A rare variety that is overgrown with"); +const u8 gBerryDescriptionPart2_Rabuta[] = _("hair. It is quite bitter."); +const u8 gBerryDescriptionPart1_Nomel[] = _("Quite sour. Just one bite makes it"); +const u8 gBerryDescriptionPart2_Nomel[] = _("impossible to taste for three days."); +const u8 gBerryDescriptionPart1_Spelon[] = _("The vividly red BERRY is very spicy."); +const u8 gBerryDescriptionPart2_Spelon[] = _("Its warts secrete a spicy substance."); +const u8 gBerryDescriptionPart1_Pamtre[] = _("Drifts on the sea from somewhere."); +const u8 gBerryDescriptionPart2_Pamtre[] = _("It is thought to grow elsewhere."); +const u8 gBerryDescriptionPart1_Watmel[] = _("A huge BERRY, with some over 20"); +const u8 gBerryDescriptionPart2_Watmel[] = _("inches discovered. Exceedingly sweet."); +const u8 gBerryDescriptionPart1_Durin[] = _("Bitter to even look at. It is so"); +const u8 gBerryDescriptionPart2_Durin[] = _("bitter, no one has ever eaten it as is."); +const u8 gBerryDescriptionPart1_Belue[] = _("It is glossy and looks delicious, but"); +const u8 gBerryDescriptionPart2_Belue[] = _("it is awfully sour. Takes time to grow."); +const u8 gBerryDescriptionPart1_Liechi[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Liechi[] = _("contain the power of the sea."); +const u8 gBerryDescriptionPart1_Ganlon[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Ganlon[] = _("contain the power of the land."); +const u8 gBerryDescriptionPart1_Salac[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Salac[] = _("contain the power of the sky."); +const u8 gBerryDescriptionPart1_Petaya[] = _("A mysterious BERRY. It is rumored to"); +const u8 gBerryDescriptionPart2_Petaya[] = _("contain the power of all living things."); +const u8 gBerryDescriptionPart1_Apicot[] = _("A very mystifying BERRY. No telling"); +const u8 gBerryDescriptionPart2_Apicot[] = _("what may happen or how it can be used."); +const u8 gBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY."); +const u8 gBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy."); +const u8 gBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the"); +const u8 gBerryDescriptionPart2_Starf[] = _("world’s edge. Considered a mirage."); +const u8 gBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY."); +const u8 gBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars."); + +const struct Berry gBerries[] = +{ + { + .name = _("CHERI"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 20, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Cheri, + .description2 = gBerryDescriptionPart2_Cheri, + .stageDuration = 3, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("CHESTO"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 80, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Chesto, + .description2 = gBerryDescriptionPart2_Chesto, + .stageDuration = 3, + .spicy = 0, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("PECHA"), + .firmness = BERRY_FIRMNESS_VERY_SOFT, + .size = 40, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Pecha, + .description2 = gBerryDescriptionPart2_Pecha, + .stageDuration = 3, + .spicy = 0, + .dry = 0, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("RAWST"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 32, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Rawst, + .description2 = gBerryDescriptionPart2_Rawst, + .stageDuration = 3, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 10, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("ASPEAR"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 50, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Aspear, + .description2 = gBerryDescriptionPart2_Aspear, + .stageDuration = 3, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 10, + .smoothness = 25, + }, + { + .name = _("LEPPA"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 28, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Leppa, + .description2 = gBerryDescriptionPart2_Leppa, + .stageDuration = 4, + .spicy = 10, + .dry = 0, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("ORAN"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 35, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Oran, + .description2 = gBerryDescriptionPart2_Oran, + .stageDuration = 3, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("PERSIM"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 47, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Persim, + .description2 = gBerryDescriptionPart2_Persim, + .stageDuration = 3, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("LUM"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 34, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Lum, + .description2 = gBerryDescriptionPart2_Lum, + .stageDuration = 12, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("SITRUS"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 95, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Sitrus, + .description2 = gBerryDescriptionPart2_Sitrus, + .stageDuration = 6, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("FIGY"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 100, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Figy, + .description2 = gBerryDescriptionPart2_Figy, + .stageDuration = 6, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("WIKI"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 115, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Wiki, + .description2 = gBerryDescriptionPart2_Wiki, + .stageDuration = 6, + .spicy = 0, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("MAGO"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 126, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Mago, + .description2 = gBerryDescriptionPart2_Mago, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("AGUAV"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 64, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Aguav, + .description2 = gBerryDescriptionPart2_Aguav, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 10, + .sour = 0, + .smoothness = 25, + }, + { + .name = _("IAPAPA"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 223, + .maxYield = 3, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Iapapa, + .description2 = gBerryDescriptionPart2_Iapapa, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 10, + .smoothness = 25, + }, + { + .name = _("RAZZ"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 120, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Razz, + .description2 = gBerryDescriptionPart2_Razz, + .stageDuration = 1, + .spicy = 10, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("BLUK"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 108, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Bluk, + .description2 = gBerryDescriptionPart2_Bluk, + .stageDuration = 1, + .spicy = 0, + .dry = 10, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("NANAB"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 77, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Nanab, + .description2 = gBerryDescriptionPart2_Nanab, + .stageDuration = 1, + .spicy = 0, + .dry = 0, + .sweet = 10, + .bitter = 10, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("WEPEAR"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 74, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Wepear, + .description2 = gBerryDescriptionPart2_Wepear, + .stageDuration = 1, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("PINAP"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 80, + .maxYield = 6, + .minYield = 3, + .description1 = gBerryDescriptionPart1_Pinap, + .description2 = gBerryDescriptionPart2_Pinap, + .stageDuration = 1, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("POMEG"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 135, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Pomeg, + .description2 = gBerryDescriptionPart2_Pomeg, + .stageDuration = 3, + .spicy = 10, + .dry = 0, + .sweet = 10, + .bitter = 10, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("KELPSY"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 150, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Kelpsy, + .description2 = gBerryDescriptionPart2_Kelpsy, + .stageDuration = 3, + .spicy = 0, + .dry = 10, + .sweet = 0, + .bitter = 10, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("QUALOT"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 110, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Qualot, + .description2 = gBerryDescriptionPart2_Qualot, + .stageDuration = 3, + .spicy = 10, + .dry = 0, + .sweet = 10, + .bitter = 0, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("HONDEW"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 162, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Hondew, + .description2 = gBerryDescriptionPart2_Hondew, + .stageDuration = 3, + .spicy = 10, + .dry = 10, + .sweet = 0, + .bitter = 10, + .sour = 0, + .smoothness = 20, + }, + { + .name = _("GREPA"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 149, + .maxYield = 6, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Grepa, + .description2 = gBerryDescriptionPart2_Grepa, + .stageDuration = 3, + .spicy = 0, + .dry = 10, + .sweet = 10, + .bitter = 0, + .sour = 10, + .smoothness = 20, + }, + { + .name = _("TAMATO"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 200, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Tamato, + .description2 = gBerryDescriptionPart2_Tamato, + .stageDuration = 6, + .spicy = 20, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 30, + }, + { + .name = _("CORNN"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 75, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Cornn, + .description2 = gBerryDescriptionPart2_Cornn, + .stageDuration = 6, + .spicy = 0, + .dry = 20, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 30, + }, + { + .name = _("MAGOST"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 140, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Magost, + .description2 = gBerryDescriptionPart2_Magost, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 20, + .bitter = 10, + .sour = 0, + .smoothness = 30, + }, + { + .name = _("RABUTA"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 226, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Rabuta, + .description2 = gBerryDescriptionPart2_Rabuta, + .stageDuration = 6, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 20, + .sour = 10, + .smoothness = 30, + }, + { + .name = _("NOMEL"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 285, + .maxYield = 4, + .minYield = 2, + .description1 = gBerryDescriptionPart1_Nomel, + .description2 = gBerryDescriptionPart2_Nomel, + .stageDuration = 6, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 20, + .smoothness = 30, + }, + { + .name = _("SPELON"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 133, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Spelon, + .description2 = gBerryDescriptionPart2_Spelon, + .stageDuration = 18, + .spicy = 40, + .dry = 10, + .sweet = 0, + .bitter = 0, + .sour = 0, + .smoothness = 70, + }, + { + .name = _("PAMTRE"), + .firmness = BERRY_FIRMNESS_VERY_SOFT, + .size = 244, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Pamtre, + .description2 = gBerryDescriptionPart2_Pamtre, + .stageDuration = 18, + .spicy = 0, + .dry = 40, + .sweet = 10, + .bitter = 0, + .sour = 0, + .smoothness = 70, + }, + { + .name = _("WATMEL"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 250, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Watmel, + .description2 = gBerryDescriptionPart2_Watmel, + .stageDuration = 18, + .spicy = 0, + .dry = 0, + .sweet = 40, + .bitter = 10, + .sour = 0, + .smoothness = 70, + }, + { + .name = _("DURIN"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 280, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Durin, + .description2 = gBerryDescriptionPart2_Durin, + .stageDuration = 18, + .spicy = 0, + .dry = 0, + .sweet = 0, + .bitter = 40, + .sour = 10, + .smoothness = 70, + }, + { + .name = _("BELUE"), + .firmness = BERRY_FIRMNESS_VERY_SOFT, + .size = 300, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Belue, + .description2 = gBerryDescriptionPart2_Belue, + .stageDuration = 18, + .spicy = 10, + .dry = 0, + .sweet = 0, + .bitter = 0, + .sour = 40, + .smoothness = 70, + }, + { + .name = _("LIECHI"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 111, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Liechi, + .description2 = gBerryDescriptionPart2_Liechi, + .stageDuration = 24, + .spicy = 40, + .dry = 0, + .sweet = 40, + .bitter = 0, + .sour = 10, + .smoothness = 80, + }, + { + .name = _("GANLON"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 33, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Ganlon, + .description2 = gBerryDescriptionPart2_Ganlon, + .stageDuration = 24, + .spicy = 0, + .dry = 40, + .sweet = 0, + .bitter = 40, + .sour = 0, + .smoothness = 80, + }, + { + .name = _("SALAC"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 95, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Salac, + .description2 = gBerryDescriptionPart2_Salac, + .stageDuration = 24, + .spicy = 0, + .dry = 0, + .sweet = 40, + .bitter = 0, + .sour = 40, + .smoothness = 80, + }, + { + .name = _("PETAYA"), + .firmness = BERRY_FIRMNESS_VERY_HARD, + .size = 237, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Petaya, + .description2 = gBerryDescriptionPart2_Petaya, + .stageDuration = 24, + .spicy = 40, + .dry = 0, + .sweet = 0, + .bitter = 40, + .sour = 0, + .smoothness = 80, + }, + { + .name = _("APICOT"), + .firmness = BERRY_FIRMNESS_HARD, + .size = 75, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Apicot, + .description2 = gBerryDescriptionPart2_Apicot, + .stageDuration = 24, + .spicy = 0, + .dry = 40, + .sweet = 0, + .bitter = 0, + .sour = 40, + .smoothness = 80, + }, + { + .name = _("LANSAT"), + .firmness = BERRY_FIRMNESS_SOFT, + .size = 97, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Lansat, + .description2 = gBerryDescriptionPart2_Lansat, + .stageDuration = 24, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 30, + }, + { + .name = _("STARF"), + .firmness = BERRY_FIRMNESS_SUPER_HARD, + .size = 153, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Starf, + .description2 = gBerryDescriptionPart2_Starf, + .stageDuration = 24, + .spicy = 10, + .dry = 10, + .sweet = 10, + .bitter = 10, + .sour = 10, + .smoothness = 30, + }, + { + .name = _("ENIGMA"), + .firmness = BERRY_FIRMNESS_UNKNOWN, + .size = 0, + .maxYield = 2, + .minYield = 1, + .description1 = gBerryDescriptionPart1_Enigma, + .description2 = gBerryDescriptionPart2_Enigma, + .stageDuration = 24, + .spicy = 40, + .dry = 40, + .sweet = 40, + .bitter = 40, + .sour = 40, + .smoothness = 40, + }, +}; + +const struct BerryTree gBlankBerryTree = {0}; + extern u8 BerryTreeScript; -extern struct BerryTree gBlankBerryTree; extern u16 gScriptItemId; extern u16 gScriptLastTalked; extern u16 gSpecialVar_0x8004; @@ -39,8 +818,8 @@ void SetEnigmaBerry(u8 *src) u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) { - u8 *description1; - u8 *description2; + const u8 *description1; + const u8 *description2; u32 i; u32 checksum; u8 *dest; @@ -74,7 +853,7 @@ bool32 IsEnigmaBerryValid(void) return TRUE; } -struct Berry *GetBerryInfo(u8 berry) +const struct Berry *GetBerryInfo(u8 berry) { if (berry == 0x2B && IsEnigmaBerryValid()) return &gSaveBlock1.enigmaBerry.berry; @@ -319,7 +1098,7 @@ u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water) u8 CalcBerryYield(struct BerryTree *tree) { - struct Berry *berry = GetBerryInfo(tree->berry); + const struct Berry *berry = GetBerryInfo(tree->berry); u8 min = berry->minYield; u8 max = berry->maxYield; diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 040b9acd1..103f0a85e 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -265,7 +265,7 @@ static void sub_8146480(u8 taskid) static void sub_81464E4(void) { - struct Berry *berryInfo; + const struct Berry *berryInfo; u32 size; s32 sizeMajor; s32 sizeMinor; @@ -306,7 +306,7 @@ static void sub_81464E4(void) static void sub_8146600(u8 berry) { - struct Berry *berryInfo; + const struct Berry *berryInfo; u16 i; berryInfo = GetBerryInfo(berry + 1); @@ -344,98 +344,98 @@ __attribute__((naked)) static void sub_81466E8(u8 taskId, s8 direction) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - lsls r1, 24\n\ - lsrs r2, r1, 24\n\ - lsls r0, r7, 2\n\ - adds r0, r7\n\ - lsls r0, 3\n\ - ldr r1, _08146748 @ =gTasks + 0x8\n\ - adds r6, r0, r1\n\ - ldr r4, _0814674C @ =gUnknown_03005D10\n\ - movs r0, 0xC\n\ - adds r0, r4\n\ - mov r8, r0\n\ - ldrb r1, [r0, 0x1]\n\ - ldrb r0, [r4, 0xC]\n\ - adds r1, r0\n\ - cmp r1, 0\n\ - bne _08146718\n\ - lsls r0, r2, 24\n\ - cmp r0, 0\n\ - blt _0814678C\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + lsls r1, 24\n\ + lsrs r2, r1, 24\n\ + lsls r0, r7, 2\n\ + adds r0, r7\n\ + lsls r0, 3\n\ + ldr r1, _08146748 @ =gTasks + 0x8\n\ + adds r6, r0, r1\n\ + ldr r4, _0814674C @ =gUnknown_03005D10\n\ + movs r0, 0xC\n\ + adds r0, r4\n\ + mov r8, r0\n\ + ldrb r1, [r0, 0x1]\n\ + ldrb r0, [r4, 0xC]\n\ + adds r1, r0\n\ + cmp r1, 0\n\ + bne _08146718\n\ + lsls r0, r2, 24\n\ + cmp r0, 0\n\ + blt _0814678C\n\ _08146718:\n\ - adds r0, r1, 0x1\n\ - lsls r5, r2, 24\n\ - mov r1, r8\n\ - ldrb r1, [r1, 0x2]\n\ - cmp r0, r1\n\ - bne _08146728\n\ - cmp r5, 0\n\ - bgt _0814678C\n\ + adds r0, r1, 0x1\n\ + lsls r5, r2, 24\n\ + mov r1, r8\n\ + ldrb r1, [r1, 0x2]\n\ + cmp r0, r1\n\ + bne _08146728\n\ + cmp r5, 0\n\ + bgt _0814678C\n\ _08146728:\n\ - movs r0, 0x5\n\ - bl PlaySE\n\ - mov r2, r8\n\ - ldrb r3, [r2, 0x1]\n\ - ldrb r4, [r4, 0xC]\n\ - mov r12, r4\n\ - adds r0, r3, r4\n\ - asrs r2, r5, 24\n\ - adds r1, r0, r2\n\ - cmp r1, 0\n\ - bge _08146750\n\ - negs r0, r0\n\ - strh r0, [r6, 0x2]\n\ - b _08146766\n\ - .align 2, 0\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + mov r2, r8\n\ + ldrb r3, [r2, 0x1]\n\ + ldrb r4, [r4, 0xC]\n\ + mov r12, r4\n\ + adds r0, r3, r4\n\ + asrs r2, r5, 24\n\ + adds r1, r0, r2\n\ + cmp r1, 0\n\ + bge _08146750\n\ + negs r0, r0\n\ + strh r0, [r6, 0x2]\n\ + b _08146766\n\ + .align 2, 0\n\ _08146748: .4byte gTasks + 0x8\n\ _0814674C: .4byte gUnknown_03005D10\n\ _08146750:\n\ - mov r4, r8\n\ - ldrb r0, [r4, 0x2]\n\ - cmp r1, r0\n\ - blt _08146764\n\ - subs r0, r3\n\ - mov r1, r12\n\ - subs r0, r1\n\ - subs r0, 0x1\n\ - strh r0, [r6, 0x2]\n\ - b _08146766\n\ + mov r4, r8\n\ + ldrb r0, [r4, 0x2]\n\ + cmp r1, r0\n\ + blt _08146764\n\ + subs r0, r3\n\ + mov r1, r12\n\ + subs r0, r1\n\ + subs r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + b _08146766\n\ _08146764:\n\ - strh r2, [r6, 0x2]\n\ + strh r2, [r6, 0x2]\n\ _08146766:\n\ - ldr r0, _08146780 @ =gTasks\n\ - lsls r1, r7, 2\n\ - adds r1, r7\n\ - lsls r1, 3\n\ - adds r1, r0\n\ - ldr r0, _08146784 @ =sub_8146798\n\ - str r0, [r1]\n\ - cmp r5, 0\n\ - bge _08146788\n\ - movs r2, 0x10\n\ - negs r2, r2\n\ - adds r0, r2, 0\n\ - b _0814678A\n\ - .align 2, 0\n\ + ldr r0, _08146780 @ =gTasks\n\ + lsls r1, r7, 2\n\ + adds r1, r7\n\ + lsls r1, 3\n\ + adds r1, r0\n\ + ldr r0, _08146784 @ =sub_8146798\n\ + str r0, [r1]\n\ + cmp r5, 0\n\ + bge _08146788\n\ + movs r2, 0x10\n\ + negs r2, r2\n\ + adds r0, r2, 0\n\ + b _0814678A\n\ + .align 2, 0\n\ _08146780: .4byte gTasks\n\ _08146784: .4byte sub_8146798\n\ _08146788:\n\ - movs r0, 0x10\n\ + movs r0, 0x10\n\ _0814678A:\n\ - strh r0, [r6]\n\ + strh r0, [r6]\n\ _0814678C:\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); } void sub_8146798(u8 taskId) @@ -461,90 +461,90 @@ __attribute__((naked)) static void sub_8146810(s8 berry) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - adds r4, r3, 0\n\ - lsls r0, r3, 24\n\ - asrs r1, r0, 24\n\ - cmp r1, 0\n\ - ble _08146848\n\ - ldr r0, _08146840 @ =gUnknown_03005D10\n\ - adds r4, r0, 0\n\ - adds r4, 0xC\n\ - ldrb r2, [r0, 0xC]\n\ - adds r1, r2, r1\n\ - adds r6, r0, 0\n\ - cmp r1, 0x7\n\ - ble _08146844\n\ - adds r0, r3, 0\n\ - adds r0, 0xF9\n\ - adds r0, r2, r0\n\ - ldrb r1, [r4, 0x1]\n\ - adds r0, r1\n\ - strb r0, [r4, 0x1]\n\ - movs r0, 0x7\n\ - b _0814686E\n\ - .align 2, 0\n\ + push {r4-r6,lr}\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + adds r4, r3, 0\n\ + lsls r0, r3, 24\n\ + asrs r1, r0, 24\n\ + cmp r1, 0\n\ + ble _08146848\n\ + ldr r0, _08146840 @ =gUnknown_03005D10\n\ + adds r4, r0, 0\n\ + adds r4, 0xC\n\ + ldrb r2, [r0, 0xC]\n\ + adds r1, r2, r1\n\ + adds r6, r0, 0\n\ + cmp r1, 0x7\n\ + ble _08146844\n\ + adds r0, r3, 0\n\ + adds r0, 0xF9\n\ + adds r0, r2, r0\n\ + ldrb r1, [r4, 0x1]\n\ + adds r0, r1\n\ + strb r0, [r4, 0x1]\n\ + movs r0, 0x7\n\ + b _0814686E\n\ + .align 2, 0\n\ _08146840: .4byte gUnknown_03005D10\n\ _08146844:\n\ - adds r0, r2, r3\n\ - b _0814686E\n\ + adds r0, r2, r3\n\ + b _0814686E\n\ _08146848:\n\ - ldr r0, _08146868 @ =gUnknown_03005D10\n\ - adds r5, r0, 0\n\ - adds r5, 0xC\n\ - ldrb r2, [r0, 0xC]\n\ - adds r1, r2, r1\n\ - adds r6, r0, 0\n\ - cmp r1, 0\n\ - bge _0814686C\n\ - adds r0, r2, r3\n\ - ldrb r1, [r5, 0x1]\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r0, [r5, 0x1]\n\ - strb r1, [r6, 0xC]\n\ - b _08146870\n\ - .align 2, 0\n\ + ldr r0, _08146868 @ =gUnknown_03005D10\n\ + adds r5, r0, 0\n\ + adds r5, 0xC\n\ + ldrb r2, [r0, 0xC]\n\ + adds r1, r2, r1\n\ + adds r6, r0, 0\n\ + cmp r1, 0\n\ + bge _0814686C\n\ + adds r0, r2, r3\n\ + ldrb r1, [r5, 0x1]\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r0, [r5, 0x1]\n\ + strb r1, [r6, 0xC]\n\ + b _08146870\n\ + .align 2, 0\n\ _08146868: .4byte gUnknown_03005D10\n\ _0814686C:\n\ - adds r0, r2, r4\n\ + adds r0, r2, r4\n\ _0814686E:\n\ - strb r0, [r6, 0xC]\n\ + strb r0, [r6, 0xC]\n\ _08146870:\n\ - ldr r2, _081468AC @ =gScriptItemId\n\ - movs r0, 0x3\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldrb r1, [r0, 0x1]\n\ - ldrb r0, [r0]\n\ - adds r1, r0\n\ - ldr r0, _081468B0 @ =gUnknown_03005D24\n\ - ldr r0, [r0]\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrh r0, [r1]\n\ - strh r0, [r2]\n\ - ldr r0, _081468B4 @ =gUnknown_0203932C\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldr r1, _081468B8 @ =gSprites\n\ - adds r0, r1\n\ - bl DestroySprite\n\ - bl sub_81466A0\n\ - bl sub_80A7DD4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + ldr r2, _081468AC @ =gScriptItemId\n\ + movs r0, 0x3\n\ + lsls r0, 2\n\ + adds r0, r6\n\ + ldrb r1, [r0, 0x1]\n\ + ldrb r0, [r0]\n\ + adds r1, r0\n\ + ldr r0, _081468B0 @ =gUnknown_03005D24\n\ + ldr r0, [r0]\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + strh r0, [r2]\n\ + ldr r0, _081468B4 @ =gUnknown_0203932C\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + ldr r1, _081468B8 @ =gSprites\n\ + adds r0, r1\n\ + bl DestroySprite\n\ + bl sub_81466A0\n\ + bl sub_80A7DD4\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _081468AC: .4byte gScriptItemId\n\ _081468B0: .4byte gUnknown_03005D24\n\ _081468B4: .4byte gUnknown_0203932C\n\ _081468B8: .4byte gSprites\n\ - .syntax divided\n"); + .syntax divided\n"); } static void sub_81468BC(void) diff --git a/src/bike.c b/src/bike.c index bd4c2e411..a1a3fded9 100644 --- a/src/bike.c +++ b/src/bike.c @@ -84,6 +84,16 @@ static void (*const gUnknown_083DB5A4[])(u8) = sub_80593F4, }; +// Player speeds +enum +{ + SPEED_STANDING, + SPEED_NORMAL, + SPEED_FAST, + SPEED_FASTER, + SPEED_FASTEST, +}; + //Acro bike states enum { @@ -132,7 +142,7 @@ static u8 (*const sAcroBikeInputHandlers[])(u8 *, u16, u16) = AcroBikeHandleInputState6, }; -const u16 gUnknown_083DB600[] = {1, 2, 4}; +const u16 gMachBikeSpeeds[] = {SPEED_NORMAL, SPEED_FAST, SPEED_FASTEST}; static const u8 Unknown_3DB606[] = {4, 0}; static const struct UnknownStruct1 gUnknown_083DB608[] = @@ -243,7 +253,7 @@ static void MachBikeTransition_80E51C4(u8 direction) { gUnknown_083DB5A4[gPlayerAvatar.bikeFrameCounter](direction); gPlayerAvatar.unkB = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // same as dividing by 2, but compiler is insistent on >> 1 - if (gPlayerAvatar.bikeFrameCounter < 2) + if (gPlayerAvatar.bikeFrameCounter < 2) // do not go faster than the last element in the mach bike array gPlayerAvatar.bikeFrameCounter++; } } @@ -882,7 +892,7 @@ static u8 sub_80E5DA0(struct MapObject *mapObject, s16 x, s16 y, u8 direction, u return collision; } -bool8 sub_80E5DEC(u8 tile) +bool8 IsRunningDisallowed(u8 tile) { if (IsRunningDisallowedByMetatile(tile) != FALSE || gMapHeader.mapType == MAP_TYPE_INDOOR) return TRUE; @@ -975,8 +985,8 @@ void GetOnOffBike(u8 var) else { SetPlayerAvatarTransitionFlags(var); - sav1_set_battle_music_maybe(0x193); - sub_8053FB0(0x193); + sav1_set_battle_music_maybe(BGM_CYCLING); + sub_8053FB0(BGM_CYCLING); } } @@ -1010,20 +1020,21 @@ static void sub_80E6024(void) gPlayerAvatar.unkB = 0; } -s16 sub_80E6034(void) +s16 GetPlayerSpeed(void) { - s16 arr[3]; + // because the player pressed a direction, it won't ever return a speed of 0 since this function returns the player's current speed. + s16 machSpeeds[3]; - memcpy(arr, gUnknown_083DB600, sizeof(arr)); + memcpy(machSpeeds, gMachBikeSpeeds, sizeof(machSpeeds)); if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) - return arr[gPlayerAvatar.bikeFrameCounter]; + return machSpeeds[gPlayerAvatar.bikeFrameCounter]; else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE) - return 3; + return SPEED_FASTER; else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH)) - return 2; + return SPEED_FAST; else - return 1; + return SPEED_NORMAL; } void sub_80E6084(void) diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index 8e020829a..293e2f24d 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -292,10 +292,10 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && sub_803C348(2) == 2) damage /= 2; - // are effects of weather negated with cloud nine or air lock? + // are effects of weather negated with cloud nine or air lock? if (!sub_8018324(0xE, 0, ABILITY_CLOUD_NINE, 0, 0) && !sub_8018324(0xE, 0, ABILITY_AIR_LOCK, 0, 0)) { - // rain? + // rain? if (gBattleWeather & 1) { if (type == TYPE_FIRE) @@ -330,328 +330,328 @@ __attribute__((naked)) s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 a7, u8 a8) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - adds r7, r0, 0\n\ - str r1, [sp, 0x4]\n\ - str r2, [sp, 0x8]\n\ - ldr r0, [sp, 0x4C]\n\ - ldr r1, [sp, 0x50]\n\ - ldr r2, [sp, 0x54]\n\ - ldr r4, [sp, 0x58]\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - str r3, [sp, 0xC]\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - lsls r1, 24\n\ - lsrs r6, r1, 24\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x10]\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r5, 0\n\ - cmp r3, 0\n\ - bne _0803BA80\n\ - ldr r2, _0803BA78 @ =gBattleMovePower\n\ - ldr r1, _0803BA7C @ =gBattleMoves\n\ - ldr r3, [sp, 0x8]\n\ - lsls r0, r3, 1\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x1]\n\ - strh r0, [r2]\n\ - b _0803BA84\n\ - .align 2, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + adds r7, r0, 0\n\ + str r1, [sp, 0x4]\n\ + str r2, [sp, 0x8]\n\ + ldr r0, [sp, 0x4C]\n\ + ldr r1, [sp, 0x50]\n\ + ldr r2, [sp, 0x54]\n\ + ldr r4, [sp, 0x58]\n\ + lsls r3, 16\n\ + lsrs r3, 16\n\ + str r3, [sp, 0xC]\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + lsls r1, 24\n\ + lsrs r6, r1, 24\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp, 0x10]\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + movs r5, 0\n\ + cmp r3, 0\n\ + bne _0803BA80\n\ + ldr r2, _0803BA78 @ =gBattleMovePower\n\ + ldr r1, _0803BA7C @ =gBattleMoves\n\ + ldr r3, [sp, 0x8]\n\ + lsls r0, r3, 1\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x1]\n\ + strh r0, [r2]\n\ + b _0803BA84\n\ + .align 2, 0\n\ _0803BA78: .4byte gBattleMovePower\n\ _0803BA7C: .4byte gBattleMoves\n\ _0803BA80:\n\ - ldr r0, _0803BA9C @ =gBattleMovePower\n\ - strh r3, [r0]\n\ + ldr r0, _0803BA9C @ =gBattleMovePower\n\ + strh r3, [r0]\n\ _0803BA84:\n\ - cmp r6, 0\n\ - bne _0803BAA4\n\ - ldr r1, _0803BAA0 @ =gBattleMoves\n\ - ldr r6, [sp, 0x8]\n\ - lsls r0, r6, 1\n\ - adds r0, r6\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x2]\n\ - mov r9, r0\n\ - b _0803BAAE\n\ - .align 2, 0\n\ + cmp r6, 0\n\ + bne _0803BAA4\n\ + ldr r1, _0803BAA0 @ =gBattleMoves\n\ + ldr r6, [sp, 0x8]\n\ + lsls r0, r6, 1\n\ + adds r0, r6\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x2]\n\ + mov r9, r0\n\ + b _0803BAAE\n\ + .align 2, 0\n\ _0803BA9C: .4byte gBattleMovePower\n\ _0803BAA0: .4byte gBattleMoves\n\ _0803BAA4:\n\ - movs r0, 0x3F\n\ - mov r9, r0\n\ - mov r1, r9\n\ - ands r1, r6\n\ - mov r9, r1\n\ + movs r0, 0x3F\n\ + mov r9, r0\n\ + mov r1, r9\n\ + ands r1, r6\n\ + mov r9, r1\n\ _0803BAAE:\n\ - ldrh r6, [r7, 0x2]\n\ - ldr r2, [sp, 0x4]\n\ - ldrh r2, [r2, 0x4]\n\ - str r2, [sp, 0x14]\n\ - ldrh r3, [r7, 0x8]\n\ - mov r8, r3\n\ - ldr r0, [sp, 0x4]\n\ - ldrh r0, [r0, 0xA]\n\ - str r0, [sp, 0x18]\n\ - ldrh r0, [r7, 0x2E]\n\ - cmp r0, 0xAF\n\ - bne _0803BAE0\n\ - ldr r1, _0803BADC @ =gEnigmaBerries\n\ - ldr r2, [sp, 0x10]\n\ - lsls r0, r2, 3\n\ - subs r0, r2\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r3, [r0, 0x7]\n\ - mov r10, r3\n\ - ldrb r0, [r0, 0x1A]\n\ - b _0803BAF6\n\ - .align 2, 0\n\ + ldrh r6, [r7, 0x2]\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r2, [r2, 0x4]\n\ + str r2, [sp, 0x14]\n\ + ldrh r3, [r7, 0x8]\n\ + mov r8, r3\n\ + ldr r0, [sp, 0x4]\n\ + ldrh r0, [r0, 0xA]\n\ + str r0, [sp, 0x18]\n\ + ldrh r0, [r7, 0x2E]\n\ + cmp r0, 0xAF\n\ + bne _0803BAE0\n\ + ldr r1, _0803BADC @ =gEnigmaBerries\n\ + ldr r2, [sp, 0x10]\n\ + lsls r0, r2, 3\n\ + subs r0, r2\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r3, [r0, 0x7]\n\ + mov r10, r3\n\ + ldrb r0, [r0, 0x1A]\n\ + b _0803BAF6\n\ + .align 2, 0\n\ _0803BADC: .4byte gEnigmaBerries\n\ _0803BAE0:\n\ - ldrh r0, [r7, 0x2E]\n\ - bl ItemId_GetHoldEffect\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ - ldrh r0, [r7, 0x2E]\n\ - bl ItemId_GetHoldEffectParam\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ + ldrh r0, [r7, 0x2E]\n\ + bl ItemId_GetHoldEffect\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + ldrh r0, [r7, 0x2E]\n\ + bl ItemId_GetHoldEffectParam\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ _0803BAF6:\n\ - str r0, [sp, 0x20]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r0, [r1, 0x2E]\n\ - cmp r0, 0xAF\n\ - bne _0803BB26\n\ - ldr r1, _0803BB10 @ =gEnigmaBerries\n\ - lsls r0, r4, 3\n\ - subs r0, r4\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x7]\n\ - str r0, [sp, 0x1C]\n\ - b _0803BB3C\n\ - .align 2, 0\n\ + str r0, [sp, 0x20]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1, 0x2E]\n\ + cmp r0, 0xAF\n\ + bne _0803BB26\n\ + ldr r1, _0803BB10 @ =gEnigmaBerries\n\ + lsls r0, r4, 3\n\ + subs r0, r4\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r0, [r0, 0x7]\n\ + str r0, [sp, 0x1C]\n\ + b _0803BB3C\n\ + .align 2, 0\n\ _0803BB10: .4byte gEnigmaBerries\n\ _0803BB14:\n\ - ldr r0, [sp, 0x20]\n\ - adds r0, 0x64\n\ - muls r0, r6\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - b _0803BCDC\n\ + ldr r0, [sp, 0x20]\n\ + adds r0, 0x64\n\ + muls r0, r6\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + b _0803BCDC\n\ _0803BB26:\n\ - ldr r2, [sp, 0x4]\n\ - ldrh r0, [r2, 0x2E]\n\ - bl ItemId_GetHoldEffect\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x1C]\n\ - ldr r3, [sp, 0x4]\n\ - ldrh r0, [r3, 0x2E]\n\ - bl ItemId_GetHoldEffectParam\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r0, [r2, 0x2E]\n\ + bl ItemId_GetHoldEffect\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x1C]\n\ + ldr r3, [sp, 0x4]\n\ + ldrh r0, [r3, 0x2E]\n\ + bl ItemId_GetHoldEffectParam\n\ _0803BB3C:\n\ - adds r0, r7, 0\n\ - adds r0, 0x20\n\ - ldrb r1, [r0]\n\ - str r0, [sp, 0x24]\n\ - cmp r1, 0x25\n\ - beq _0803BB4C\n\ - cmp r1, 0x4A\n\ - bne _0803BB50\n\ + adds r0, r7, 0\n\ + adds r0, 0x20\n\ + ldrb r1, [r0]\n\ + str r0, [sp, 0x24]\n\ + cmp r1, 0x25\n\ + beq _0803BB4C\n\ + cmp r1, 0x4A\n\ + bne _0803BB50\n\ _0803BB4C:\n\ - lsls r0, r6, 17\n\ - lsrs r6, r0, 16\n\ + lsls r0, r6, 17\n\ + lsrs r6, r0, 16\n\ _0803BB50:\n\ - ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - ldr r0, _0803BCBC @ =0x00000902\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803BB5E\n\ - b _0803BC78\n\ + ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + ldr r0, _0803BCBC @ =0x00000902\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803BB5E\n\ + b _0803BC78\n\ _0803BB5E:\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803BB98\n\ - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - cmp r1, r0\n\ - beq _0803BB98\n\ - ldr r0, _0803BCC4 @ =0x00000807\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BB98\n\ - ldr r0, [sp, 0x10]\n\ - bl battle_side_get_owner\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0803BB98\n\ - movs r0, 0x6E\n\ - muls r0, r6\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803BB98\n\ + ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ + ldrh r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 3\n\ + cmp r1, r0\n\ + beq _0803BB98\n\ + ldr r0, _0803BCC4 @ =0x00000807\n\ + bl FlagGet\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BB98\n\ + ldr r0, [sp, 0x10]\n\ + bl battle_side_get_owner\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0803BB98\n\ + movs r0, 0x6E\n\ + muls r0, r6\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ _0803BB98:\n\ - ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - ldr r0, _0803BCBC @ =0x00000902\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803BC78\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803BBE2\n\ - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - cmp r1, r0\n\ - beq _0803BBE2\n\ - ldr r0, _0803BCC8 @ =0x0000080b\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BBE2\n\ - adds r0, r4, 0\n\ - bl battle_side_get_owner\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0803BBE2\n\ - movs r0, 0x6E\n\ - ldr r1, [sp, 0x14]\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x14]\n\ + ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + ldr r0, _0803BCBC @ =0x00000902\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803BC78\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803BBE2\n\ + ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ + ldrh r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 3\n\ + cmp r1, r0\n\ + beq _0803BBE2\n\ + ldr r0, _0803BCC8 @ =0x0000080b\n\ + bl FlagGet\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BBE2\n\ + adds r0, r4, 0\n\ + bl battle_side_get_owner\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0803BBE2\n\ + movs r0, 0x6E\n\ + ldr r1, [sp, 0x14]\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x14]\n\ _0803BBE2:\n\ - ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - ldr r0, _0803BCBC @ =0x00000902\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803BC78\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803BC2E\n\ - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - cmp r1, r0\n\ - beq _0803BC2E\n\ - ldr r0, _0803BCCC @ =0x0000080d\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BC2E\n\ - ldr r0, [sp, 0x10]\n\ - bl battle_side_get_owner\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0803BC2E\n\ - movs r0, 0x6E\n\ - mov r2, r8\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ + ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + ldr r0, _0803BCBC @ =0x00000902\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803BC78\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803BC2E\n\ + ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ + ldrh r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 3\n\ + cmp r1, r0\n\ + beq _0803BC2E\n\ + ldr r0, _0803BCCC @ =0x0000080d\n\ + bl FlagGet\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BC2E\n\ + ldr r0, [sp, 0x10]\n\ + bl battle_side_get_owner\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0803BC2E\n\ + movs r0, 0x6E\n\ + mov r2, r8\n\ + muls r2, r0\n\ + adds r0, r2, 0\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ _0803BC2E:\n\ - ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - ldr r0, _0803BCBC @ =0x00000902\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803BC78\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803BC78\n\ - ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - cmp r1, r0\n\ - beq _0803BC78\n\ - ldr r0, _0803BCCC @ =0x0000080d\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BC78\n\ - adds r0, r4, 0\n\ - bl battle_side_get_owner\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0803BC78\n\ - movs r0, 0x6E\n\ - ldr r3, [sp, 0x18]\n\ - muls r0, r3\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x18]\n\ + ldr r0, _0803BCB8 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + ldr r0, _0803BCBC @ =0x00000902\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803BC78\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803BC78\n\ + ldr r0, _0803BCC0 @ =gTrainerBattleOpponent\n\ + ldrh r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 3\n\ + cmp r1, r0\n\ + beq _0803BC78\n\ + ldr r0, _0803BCCC @ =0x0000080d\n\ + bl FlagGet\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BC78\n\ + adds r0, r4, 0\n\ + bl battle_side_get_owner\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0803BC78\n\ + movs r0, 0x6E\n\ + ldr r3, [sp, 0x18]\n\ + muls r0, r3\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x18]\n\ _0803BC78:\n\ - movs r2, 0\n\ - ldr r4, _0803BCD0 @ =gHoldEffectToType\n\ - ldr r0, [sp, 0x4]\n\ - adds r0, 0x20\n\ - str r0, [sp, 0x28]\n\ - adds r3, r4, 0\n\ + movs r2, 0\n\ + ldr r4, _0803BCD0 @ =gHoldEffectToType\n\ + ldr r0, [sp, 0x4]\n\ + adds r0, 0x20\n\ + str r0, [sp, 0x28]\n\ + adds r3, r4, 0\n\ _0803BC84:\n\ - lsls r1, r2, 1\n\ - ldrb r0, [r3]\n\ - cmp r10, r0\n\ - bne _0803BCD4\n\ - adds r0, r4, 0x1\n\ - adds r0, r1, r0\n\ - ldrb r0, [r0]\n\ - cmp r9, r0\n\ - bne _0803BCD4\n\ - mov r1, r9\n\ - cmp r1, 0x8\n\ - bhi _0803BC9E\n\ - b _0803BB14\n\ + lsls r1, r2, 1\n\ + ldrb r0, [r3]\n\ + cmp r10, r0\n\ + bne _0803BCD4\n\ + adds r0, r4, 0x1\n\ + adds r0, r1, r0\n\ + ldrb r0, [r0]\n\ + cmp r9, r0\n\ + bne _0803BCD4\n\ + mov r1, r9\n\ + cmp r1, 0x8\n\ + bhi _0803BC9E\n\ + b _0803BB14\n\ _0803BC9E:\n\ - ldr r0, [sp, 0x20]\n\ - adds r0, 0x64\n\ - mov r2, r8\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - b _0803BCDC\n\ - .align 2, 0\n\ + ldr r0, [sp, 0x20]\n\ + adds r0, 0x64\n\ + mov r2, r8\n\ + muls r2, r0\n\ + adds r0, r2, 0\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + b _0803BCDC\n\ + .align 2, 0\n\ _0803BCB8: .4byte gBattleTypeFlags\n\ _0803BCBC: .4byte 0x00000902\n\ _0803BCC0: .4byte gTrainerBattleOpponent\n\ @@ -660,398 +660,398 @@ _0803BCC8: .4byte 0x0000080b\n\ _0803BCCC: .4byte 0x0000080d\n\ _0803BCD0: .4byte gHoldEffectToType\n\ _0803BCD4:\n\ - adds r3, 0x2\n\ - adds r2, 0x1\n\ - cmp r2, 0x10\n\ - bls _0803BC84\n\ + adds r3, 0x2\n\ + adds r2, 0x1\n\ + cmp r2, 0x10\n\ + bls _0803BC84\n\ _0803BCDC:\n\ - mov r3, r10\n\ - cmp r3, 0x1D\n\ - bne _0803BCF0\n\ - movs r0, 0x96\n\ - muls r0, r6\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ + mov r3, r10\n\ + cmp r3, 0x1D\n\ + bne _0803BCF0\n\ + movs r0, 0x96\n\ + muls r0, r6\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ _0803BCF0:\n\ - mov r0, r10\n\ - cmp r0, 0x22\n\ - bne _0803BD28\n\ - ldr r0, _0803BFDC @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803BD28\n\ - ldr r1, _0803BFE0 @ =0xfffffe69\n\ - adds r0, r1, 0\n\ - ldrh r2, [r7]\n\ - adds r0, r2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x1\n\ - bhi _0803BD28\n\ - movs r0, 0x96\n\ - mov r3, r8\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ + mov r0, r10\n\ + cmp r0, 0x22\n\ + bne _0803BD28\n\ + ldr r0, _0803BFDC @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803BD28\n\ + ldr r1, _0803BFE0 @ =0xfffffe69\n\ + adds r0, r1, 0\n\ + ldrh r2, [r7]\n\ + adds r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bhi _0803BD28\n\ + movs r0, 0x96\n\ + mov r3, r8\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ _0803BD28:\n\ - ldr r0, [sp, 0x1C]\n\ - cmp r0, 0x22\n\ - bne _0803BD60\n\ - ldr r0, _0803BFDC @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803BD60\n\ - ldr r1, _0803BFE0 @ =0xfffffe69\n\ - adds r0, r1, 0\n\ - ldr r2, [sp, 0x4]\n\ - ldrh r2, [r2]\n\ - adds r0, r2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x1\n\ - bhi _0803BD60\n\ - movs r0, 0x96\n\ - ldr r3, [sp, 0x18]\n\ - muls r0, r3\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x18]\n\ + ldr r0, [sp, 0x1C]\n\ + cmp r0, 0x22\n\ + bne _0803BD60\n\ + ldr r0, _0803BFDC @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803BD60\n\ + ldr r1, _0803BFE0 @ =0xfffffe69\n\ + adds r0, r1, 0\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r2, [r2]\n\ + adds r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bhi _0803BD60\n\ + movs r0, 0x96\n\ + ldr r3, [sp, 0x18]\n\ + muls r0, r3\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x18]\n\ _0803BD60:\n\ - mov r0, r10\n\ - cmp r0, 0x23\n\ - bne _0803BD76\n\ - ldrh r1, [r7]\n\ - ldr r0, _0803BFE4 @ =0x00000175\n\ - cmp r1, r0\n\ - bne _0803BD76\n\ - mov r1, r8\n\ - lsls r0, r1, 17\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ + mov r0, r10\n\ + cmp r0, 0x23\n\ + bne _0803BD76\n\ + ldrh r1, [r7]\n\ + ldr r0, _0803BFE4 @ =0x00000175\n\ + cmp r1, r0\n\ + bne _0803BD76\n\ + mov r1, r8\n\ + lsls r0, r1, 17\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ _0803BD76:\n\ - ldr r2, [sp, 0x1C]\n\ - cmp r2, 0x24\n\ - bne _0803BD8E\n\ - ldr r3, [sp, 0x4]\n\ - ldrh r1, [r3]\n\ - ldr r0, _0803BFE4 @ =0x00000175\n\ - cmp r1, r0\n\ - bne _0803BD8E\n\ - ldr r1, [sp, 0x18]\n\ - lsls r0, r1, 17\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x18]\n\ + ldr r2, [sp, 0x1C]\n\ + cmp r2, 0x24\n\ + bne _0803BD8E\n\ + ldr r3, [sp, 0x4]\n\ + ldrh r1, [r3]\n\ + ldr r0, _0803BFE4 @ =0x00000175\n\ + cmp r1, r0\n\ + bne _0803BD8E\n\ + ldr r1, [sp, 0x18]\n\ + lsls r0, r1, 17\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x18]\n\ _0803BD8E:\n\ - mov r2, r10\n\ - cmp r2, 0x2D\n\ - bne _0803BDA2\n\ - ldrh r0, [r7]\n\ - cmp r0, 0x19\n\ - bne _0803BDA2\n\ - mov r3, r8\n\ - lsls r0, r3, 17\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ + mov r2, r10\n\ + cmp r2, 0x2D\n\ + bne _0803BDA2\n\ + ldrh r0, [r7]\n\ + cmp r0, 0x19\n\ + bne _0803BDA2\n\ + mov r3, r8\n\ + lsls r0, r3, 17\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ _0803BDA2:\n\ - ldr r0, [sp, 0x1C]\n\ - cmp r0, 0x40\n\ - bne _0803BDB8\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r0, [r1]\n\ - cmp r0, 0x84\n\ - bne _0803BDB8\n\ - ldr r2, [sp, 0x14]\n\ - lsls r0, r2, 17\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x14]\n\ + ldr r0, [sp, 0x1C]\n\ + cmp r0, 0x40\n\ + bne _0803BDB8\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1]\n\ + cmp r0, 0x84\n\ + bne _0803BDB8\n\ + ldr r2, [sp, 0x14]\n\ + lsls r0, r2, 17\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x14]\n\ _0803BDB8:\n\ - mov r3, r10\n\ - cmp r3, 0x41\n\ - bne _0803BDCE\n\ - ldrh r0, [r7]\n\ - subs r0, 0x68\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x1\n\ - bhi _0803BDCE\n\ - lsls r0, r6, 17\n\ - lsrs r6, r0, 16\n\ + mov r3, r10\n\ + cmp r3, 0x41\n\ + bne _0803BDCE\n\ + ldrh r0, [r7]\n\ + subs r0, 0x68\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bhi _0803BDCE\n\ + lsls r0, r6, 17\n\ + lsrs r6, r0, 16\n\ _0803BDCE:\n\ - ldr r1, [sp, 0x28]\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x2F\n\ - bne _0803BDE6\n\ - mov r2, r9\n\ - cmp r2, 0xA\n\ - beq _0803BDE0\n\ - cmp r2, 0xF\n\ - bne _0803BDE6\n\ + ldr r1, [sp, 0x28]\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x2F\n\ + bne _0803BDE6\n\ + mov r2, r9\n\ + cmp r2, 0xA\n\ + beq _0803BDE0\n\ + cmp r2, 0xF\n\ + bne _0803BDE6\n\ _0803BDE0:\n\ - mov r3, r8\n\ - lsrs r3, 1\n\ - mov r8, r3\n\ + mov r3, r8\n\ + lsrs r3, 1\n\ + mov r8, r3\n\ _0803BDE6:\n\ - ldr r0, [sp, 0x24]\n\ - ldrb r4, [r0]\n\ - cmp r4, 0x37\n\ - bne _0803BDFC\n\ - movs r0, 0x96\n\ - muls r0, r6\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ + ldr r0, [sp, 0x24]\n\ + ldrb r4, [r0]\n\ + cmp r4, 0x37\n\ + bne _0803BDFC\n\ + movs r0, 0x96\n\ + muls r0, r6\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ _0803BDFC:\n\ - cmp r4, 0x39\n\ - bne _0803BE2A\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0xE\n\ - movs r1, 0\n\ - movs r2, 0x3A\n\ - movs r3, 0\n\ - bl sub_8018324\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BE2A\n\ - movs r0, 0x96\n\ - mov r1, r8\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ + cmp r4, 0x39\n\ + bne _0803BE2A\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0xE\n\ + movs r1, 0\n\ + movs r2, 0x3A\n\ + movs r3, 0\n\ + bl sub_8018324\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BE2A\n\ + movs r0, 0x96\n\ + mov r1, r8\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ _0803BE2A:\n\ - ldr r2, [sp, 0x24]\n\ - ldrb r0, [r2]\n\ - cmp r0, 0x3A\n\ - bne _0803BE5C\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0xE\n\ - movs r1, 0\n\ - movs r2, 0x39\n\ - movs r3, 0\n\ - bl sub_8018324\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BE5C\n\ - movs r0, 0x96\n\ - mov r3, r8\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ + ldr r2, [sp, 0x24]\n\ + ldrb r0, [r2]\n\ + cmp r0, 0x3A\n\ + bne _0803BE5C\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0xE\n\ + movs r1, 0\n\ + movs r2, 0x39\n\ + movs r3, 0\n\ + bl sub_8018324\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BE5C\n\ + movs r0, 0x96\n\ + mov r3, r8\n\ + muls r3, r0\n\ + adds r0, r3, 0\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ _0803BE5C:\n\ - ldr r1, [sp, 0x24]\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x3E\n\ - bne _0803BE78\n\ - ldr r0, [r7, 0x4C]\n\ - cmp r0, 0\n\ - beq _0803BE78\n\ - movs r0, 0x96\n\ - muls r0, r6\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ + ldr r1, [sp, 0x24]\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x3E\n\ + bne _0803BE78\n\ + ldr r0, [r7, 0x4C]\n\ + cmp r0, 0\n\ + beq _0803BE78\n\ + movs r0, 0x96\n\ + muls r0, r6\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ _0803BE78:\n\ - ldr r2, [sp, 0x28]\n\ - ldrb r0, [r2]\n\ - cmp r0, 0x3F\n\ - bne _0803BE9A\n\ - ldr r3, [sp, 0x4]\n\ - ldr r0, [r3, 0x4C]\n\ - cmp r0, 0\n\ - beq _0803BE9A\n\ - movs r0, 0x96\n\ - ldr r1, [sp, 0x14]\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x14]\n\ + ldr r2, [sp, 0x28]\n\ + ldrb r0, [r2]\n\ + cmp r0, 0x3F\n\ + bne _0803BE9A\n\ + ldr r3, [sp, 0x4]\n\ + ldr r0, [r3, 0x4C]\n\ + cmp r0, 0\n\ + beq _0803BE9A\n\ + movs r0, 0x96\n\ + ldr r1, [sp, 0x14]\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x14]\n\ _0803BE9A:\n\ - mov r2, r9\n\ - cmp r2, 0xD\n\ - bne _0803BEBE\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0xE\n\ - movs r1, 0\n\ - movs r2, 0\n\ - movs r3, 0xFD\n\ - bl sub_8018324\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BEBE\n\ - ldr r1, _0803BFE8 @ =gBattleMovePower\n\ - ldrh r0, [r1]\n\ - lsrs r0, 1\n\ - strh r0, [r1]\n\ + mov r2, r9\n\ + cmp r2, 0xD\n\ + bne _0803BEBE\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0xE\n\ + movs r1, 0\n\ + movs r2, 0\n\ + movs r3, 0xFD\n\ + bl sub_8018324\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BEBE\n\ + ldr r1, _0803BFE8 @ =gBattleMovePower\n\ + ldrh r0, [r1]\n\ + lsrs r0, 1\n\ + strh r0, [r1]\n\ _0803BEBE:\n\ - mov r3, r9\n\ - cmp r3, 0xA\n\ - bne _0803BEE2\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0xE\n\ - movs r1, 0\n\ - movs r2, 0\n\ - movs r3, 0xFE\n\ - bl sub_8018324\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _0803BEE2\n\ - ldr r1, _0803BFE8 @ =gBattleMovePower\n\ - ldrh r0, [r1]\n\ - lsrs r0, 1\n\ - strh r0, [r1]\n\ + mov r3, r9\n\ + cmp r3, 0xA\n\ + bne _0803BEE2\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0xE\n\ + movs r1, 0\n\ + movs r2, 0\n\ + movs r3, 0xFE\n\ + bl sub_8018324\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0803BEE2\n\ + ldr r1, _0803BFE8 @ =gBattleMovePower\n\ + ldrh r0, [r1]\n\ + lsrs r0, 1\n\ + strh r0, [r1]\n\ _0803BEE2:\n\ - mov r0, r9\n\ - cmp r0, 0xC\n\ - bne _0803BF12\n\ - ldr r1, [sp, 0x24]\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x41\n\ - bne _0803BF12\n\ - ldrh r0, [r7, 0x2C]\n\ - movs r1, 0x3\n\ - bl __udivsi3\n\ - ldrh r1, [r7, 0x28]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r1, r0\n\ - bhi _0803BF12\n\ - ldr r4, _0803BFE8 @ =gBattleMovePower\n\ - ldrh r1, [r4]\n\ - movs r0, 0x96\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - strh r0, [r4]\n\ + mov r0, r9\n\ + cmp r0, 0xC\n\ + bne _0803BF12\n\ + ldr r1, [sp, 0x24]\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x41\n\ + bne _0803BF12\n\ + ldrh r0, [r7, 0x2C]\n\ + movs r1, 0x3\n\ + bl __udivsi3\n\ + ldrh r1, [r7, 0x28]\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r1, r0\n\ + bhi _0803BF12\n\ + ldr r4, _0803BFE8 @ =gBattleMovePower\n\ + ldrh r1, [r4]\n\ + movs r0, 0x96\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + strh r0, [r4]\n\ _0803BF12:\n\ - mov r2, r9\n\ - cmp r2, 0xA\n\ - bne _0803BF42\n\ - ldr r3, [sp, 0x24]\n\ - ldrb r0, [r3]\n\ - cmp r0, 0x42\n\ - bne _0803BF42\n\ - ldrh r0, [r7, 0x2C]\n\ - movs r1, 0x3\n\ - bl __udivsi3\n\ - ldrh r1, [r7, 0x28]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r1, r0\n\ - bhi _0803BF42\n\ - ldr r4, _0803BFE8 @ =gBattleMovePower\n\ - ldrh r1, [r4]\n\ - movs r0, 0x96\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - strh r0, [r4]\n\ + mov r2, r9\n\ + cmp r2, 0xA\n\ + bne _0803BF42\n\ + ldr r3, [sp, 0x24]\n\ + ldrb r0, [r3]\n\ + cmp r0, 0x42\n\ + bne _0803BF42\n\ + ldrh r0, [r7, 0x2C]\n\ + movs r1, 0x3\n\ + bl __udivsi3\n\ + ldrh r1, [r7, 0x28]\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r1, r0\n\ + bhi _0803BF42\n\ + ldr r4, _0803BFE8 @ =gBattleMovePower\n\ + ldrh r1, [r4]\n\ + movs r0, 0x96\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + strh r0, [r4]\n\ _0803BF42:\n\ - mov r0, r9\n\ - cmp r0, 0xB\n\ - bne _0803BF72\n\ - ldr r1, [sp, 0x24]\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x43\n\ - bne _0803BF72\n\ - ldrh r0, [r7, 0x2C]\n\ - movs r1, 0x3\n\ - bl __udivsi3\n\ - ldrh r1, [r7, 0x28]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r1, r0\n\ - bhi _0803BF72\n\ - ldr r4, _0803BFE8 @ =gBattleMovePower\n\ - ldrh r1, [r4]\n\ - movs r0, 0x96\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - strh r0, [r4]\n\ + mov r0, r9\n\ + cmp r0, 0xB\n\ + bne _0803BF72\n\ + ldr r1, [sp, 0x24]\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x43\n\ + bne _0803BF72\n\ + ldrh r0, [r7, 0x2C]\n\ + movs r1, 0x3\n\ + bl __udivsi3\n\ + ldrh r1, [r7, 0x28]\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r1, r0\n\ + bhi _0803BF72\n\ + ldr r4, _0803BFE8 @ =gBattleMovePower\n\ + ldrh r1, [r4]\n\ + movs r0, 0x96\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + strh r0, [r4]\n\ _0803BF72:\n\ - mov r2, r9\n\ - cmp r2, 0x6\n\ - bne _0803BFA2\n\ - ldr r3, [sp, 0x24]\n\ - ldrb r0, [r3]\n\ - cmp r0, 0x44\n\ - bne _0803BFA2\n\ - ldrh r0, [r7, 0x2C]\n\ - movs r1, 0x3\n\ - bl __udivsi3\n\ - ldrh r1, [r7, 0x28]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r1, r0\n\ - bhi _0803BFA2\n\ - ldr r4, _0803BFE8 @ =gBattleMovePower\n\ - ldrh r1, [r4]\n\ - movs r0, 0x96\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - strh r0, [r4]\n\ + mov r2, r9\n\ + cmp r2, 0x6\n\ + bne _0803BFA2\n\ + ldr r3, [sp, 0x24]\n\ + ldrb r0, [r3]\n\ + cmp r0, 0x44\n\ + bne _0803BFA2\n\ + ldrh r0, [r7, 0x2C]\n\ + movs r1, 0x3\n\ + bl __udivsi3\n\ + ldrh r1, [r7, 0x28]\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r1, r0\n\ + bhi _0803BFA2\n\ + ldr r4, _0803BFE8 @ =gBattleMovePower\n\ + ldrh r1, [r4]\n\ + movs r0, 0x96\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + strh r0, [r4]\n\ _0803BFA2:\n\ - ldr r2, _0803BFEC @ =gBattleMoves\n\ - ldr r0, _0803BFF0 @ =gUnknown_02024BE6\n\ - ldrh r1, [r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x7\n\ - bne _0803BFBC\n\ - ldr r0, [sp, 0x14]\n\ - lsrs r0, 1\n\ - str r0, [sp, 0x14]\n\ + ldr r2, _0803BFEC @ =gBattleMoves\n\ + ldr r0, _0803BFF0 @ =gUnknown_02024BE6\n\ + ldrh r1, [r0]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x7\n\ + bne _0803BFBC\n\ + ldr r0, [sp, 0x14]\n\ + lsrs r0, 1\n\ + str r0, [sp, 0x14]\n\ _0803BFBC:\n\ - mov r1, r9\n\ - cmp r1, 0x8\n\ - bls _0803BFC4\n\ - b _0803C122\n\ + mov r1, r9\n\ + cmp r1, 0x8\n\ + bls _0803BFC4\n\ + b _0803C122\n\ _0803BFC4:\n\ - ldr r0, _0803BFF4 @ =gCritMultiplier\n\ - ldrb r1, [r0]\n\ - adds r4, r0, 0\n\ - cmp r1, 0x2\n\ - bne _0803C000\n\ - movs r0, 0x19\n\ - ldrsb r0, [r7, r0]\n\ - cmp r0, 0x6\n\ - ble _0803BFFC\n\ - ldr r2, _0803BFF8 @ =gStatStageRatios\n\ - b _0803C006\n\ - .align 2, 0\n\ + ldr r0, _0803BFF4 @ =gCritMultiplier\n\ + ldrb r1, [r0]\n\ + adds r4, r0, 0\n\ + cmp r1, 0x2\n\ + bne _0803C000\n\ + movs r0, 0x19\n\ + ldrsb r0, [r7, r0]\n\ + cmp r0, 0x6\n\ + ble _0803BFFC\n\ + ldr r2, _0803BFF8 @ =gStatStageRatios\n\ + b _0803C006\n\ + .align 2, 0\n\ _0803BFDC: .4byte gBattleTypeFlags\n\ _0803BFE0: .4byte 0xfffffe69\n\ _0803BFE4: .4byte 0x00000175\n\ @@ -1061,427 +1061,427 @@ _0803BFF0: .4byte gUnknown_02024BE6\n\ _0803BFF4: .4byte gCritMultiplier\n\ _0803BFF8: .4byte gStatStageRatios\n\ _0803BFFC:\n\ - adds r5, r6, 0\n\ - b _0803C01E\n\ + adds r5, r6, 0\n\ + b _0803C01E\n\ _0803C000:\n\ - ldr r2, _0803C050 @ =gStatStageRatios\n\ - movs r0, 0x19\n\ - ldrsb r0, [r7, r0]\n\ + ldr r2, _0803C050 @ =gStatStageRatios\n\ + movs r0, 0x19\n\ + ldrsb r0, [r7, r0]\n\ _0803C006:\n\ - lsls r0, 1\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - adds r5, r6, 0\n\ - muls r5, r1\n\ - adds r2, 0x1\n\ - adds r0, r2\n\ - ldrb r1, [r0]\n\ - adds r0, r5, 0\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ + lsls r0, 1\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + adds r5, r6, 0\n\ + muls r5, r1\n\ + adds r2, 0x1\n\ + adds r0, r2\n\ + ldrb r1, [r0]\n\ + adds r0, r5, 0\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ _0803C01E:\n\ - ldr r0, _0803C054 @ =gBattleMovePower\n\ - ldrh r0, [r0]\n\ - muls r5, r0\n\ - adds r0, r7, 0\n\ - adds r0, 0x2A\n\ - ldrb r0, [r0]\n\ - lsls r0, 1\n\ - movs r1, 0x5\n\ - bl __divsi3\n\ - adds r0, 0x2\n\ - muls r5, r0\n\ - ldrb r0, [r4]\n\ - cmp r0, 0x2\n\ - bne _0803C05C\n\ - ldr r2, [sp, 0x4]\n\ - movs r0, 0x1A\n\ - ldrsb r0, [r2, r0]\n\ - cmp r0, 0x5\n\ - bgt _0803C058\n\ - ldr r2, _0803C050 @ =gStatStageRatios\n\ - ldr r3, [sp, 0x4]\n\ - movs r0, 0x1A\n\ - ldrsb r0, [r3, r0]\n\ - b _0803C064\n\ - .align 2, 0\n\ + ldr r0, _0803C054 @ =gBattleMovePower\n\ + ldrh r0, [r0]\n\ + muls r5, r0\n\ + adds r0, r7, 0\n\ + adds r0, 0x2A\n\ + ldrb r0, [r0]\n\ + lsls r0, 1\n\ + movs r1, 0x5\n\ + bl __divsi3\n\ + adds r0, 0x2\n\ + muls r5, r0\n\ + ldrb r0, [r4]\n\ + cmp r0, 0x2\n\ + bne _0803C05C\n\ + ldr r2, [sp, 0x4]\n\ + movs r0, 0x1A\n\ + ldrsb r0, [r2, r0]\n\ + cmp r0, 0x5\n\ + bgt _0803C058\n\ + ldr r2, _0803C050 @ =gStatStageRatios\n\ + ldr r3, [sp, 0x4]\n\ + movs r0, 0x1A\n\ + ldrsb r0, [r3, r0]\n\ + b _0803C064\n\ + .align 2, 0\n\ _0803C050: .4byte gStatStageRatios\n\ _0803C054: .4byte gBattleMovePower\n\ _0803C058:\n\ - ldr r3, [sp, 0x14]\n\ - b _0803C07E\n\ + ldr r3, [sp, 0x14]\n\ + b _0803C07E\n\ _0803C05C:\n\ - ldr r2, _0803C0DC @ =gStatStageRatios\n\ - ldr r1, [sp, 0x4]\n\ - movs r0, 0x1A\n\ - ldrsb r0, [r1, r0]\n\ + ldr r2, _0803C0DC @ =gStatStageRatios\n\ + ldr r1, [sp, 0x4]\n\ + movs r0, 0x1A\n\ + ldrsb r0, [r1, r0]\n\ _0803C064:\n\ - lsls r0, 1\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - ldr r6, [sp, 0x14]\n\ - adds r3, r6, 0\n\ - muls r3, r1\n\ - adds r2, 0x1\n\ - adds r0, r2\n\ - ldrb r1, [r0]\n\ - adds r0, r3, 0\n\ - bl __divsi3\n\ - adds r3, r0, 0\n\ + lsls r0, 1\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + ldr r6, [sp, 0x14]\n\ + adds r3, r6, 0\n\ + muls r3, r1\n\ + adds r2, 0x1\n\ + adds r0, r2\n\ + ldrb r1, [r0]\n\ + adds r0, r3, 0\n\ + bl __divsi3\n\ + adds r3, r0, 0\n\ _0803C07E:\n\ - adds r0, r5, 0\n\ - adds r1, r3, 0\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ - movs r1, 0x32\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ - ldr r0, [r7, 0x4C]\n\ - movs r1, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C0A8\n\ - ldr r1, [sp, 0x24]\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x3E\n\ - beq _0803C0A8\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + adds r0, r5, 0\n\ + adds r1, r3, 0\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ + movs r1, 0x32\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ + ldr r0, [r7, 0x4C]\n\ + movs r1, 0x10\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C0A8\n\ + ldr r1, [sp, 0x24]\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x3E\n\ + beq _0803C0A8\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C0A8:\n\ - movs r0, 0x1\n\ - ldr r2, [sp, 0xC]\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0803C0EA\n\ - ldrb r1, [r4]\n\ - cmp r1, 0x1\n\ - bne _0803C0EA\n\ - ldr r0, _0803C0E0 @ =gBattleTypeFlags\n\ - ldrh r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - beq _0803C0E4\n\ - movs r0, 0x2\n\ - bl sub_803C348\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x2\n\ - bne _0803C0E4\n\ - adds r0, r5, 0\n\ - movs r1, 0x3\n\ - bl __divsi3\n\ - lsls r5, r0, 1\n\ - b _0803C0EA\n\ - .align 2, 0\n\ + movs r0, 0x1\n\ + ldr r2, [sp, 0xC]\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0803C0EA\n\ + ldrb r1, [r4]\n\ + cmp r1, 0x1\n\ + bne _0803C0EA\n\ + ldr r0, _0803C0E0 @ =gBattleTypeFlags\n\ + ldrh r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _0803C0E4\n\ + movs r0, 0x2\n\ + bl sub_803C348\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x2\n\ + bne _0803C0E4\n\ + adds r0, r5, 0\n\ + movs r1, 0x3\n\ + bl __divsi3\n\ + lsls r5, r0, 1\n\ + b _0803C0EA\n\ + .align 2, 0\n\ _0803C0DC: .4byte gStatStageRatios\n\ _0803C0E0: .4byte gBattleTypeFlags\n\ _0803C0E4:\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C0EA:\n\ - ldr r0, _0803C148 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C11C\n\ - ldr r0, _0803C14C @ =gBattleMoves\n\ - ldr r3, [sp, 0x8]\n\ - lsls r1, r3, 1\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x6]\n\ - cmp r0, 0x8\n\ - bne _0803C11C\n\ - movs r0, 0x2\n\ - bl sub_803C348\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x2\n\ - bne _0803C11C\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + ldr r0, _0803C148 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C11C\n\ + ldr r0, _0803C14C @ =gBattleMoves\n\ + ldr r3, [sp, 0x8]\n\ + lsls r1, r3, 1\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x6]\n\ + cmp r0, 0x8\n\ + bne _0803C11C\n\ + movs r0, 0x2\n\ + bl sub_803C348\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x2\n\ + bne _0803C11C\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C11C:\n\ - cmp r5, 0\n\ - bne _0803C122\n\ - movs r5, 0x1\n\ + cmp r5, 0\n\ + bne _0803C122\n\ + movs r5, 0x1\n\ _0803C122:\n\ - mov r6, r9\n\ - cmp r6, 0x9\n\ - bne _0803C12A\n\ - movs r5, 0\n\ + mov r6, r9\n\ + cmp r6, 0x9\n\ + bne _0803C12A\n\ + movs r5, 0\n\ _0803C12A:\n\ - mov r0, r9\n\ - cmp r0, 0x9\n\ - bhi _0803C132\n\ - b _0803C330\n\ + mov r0, r9\n\ + cmp r0, 0x9\n\ + bhi _0803C132\n\ + b _0803C330\n\ _0803C132:\n\ - ldr r0, _0803C150 @ =gCritMultiplier\n\ - ldrb r1, [r0]\n\ - adds r4, r0, 0\n\ - cmp r1, 0x2\n\ - bne _0803C15C\n\ - movs r0, 0x1C\n\ - ldrsb r0, [r7, r0]\n\ - cmp r0, 0x6\n\ - ble _0803C158\n\ - ldr r2, _0803C154 @ =gStatStageRatios\n\ - b _0803C162\n\ - .align 2, 0\n\ + ldr r0, _0803C150 @ =gCritMultiplier\n\ + ldrb r1, [r0]\n\ + adds r4, r0, 0\n\ + cmp r1, 0x2\n\ + bne _0803C15C\n\ + movs r0, 0x1C\n\ + ldrsb r0, [r7, r0]\n\ + cmp r0, 0x6\n\ + ble _0803C158\n\ + ldr r2, _0803C154 @ =gStatStageRatios\n\ + b _0803C162\n\ + .align 2, 0\n\ _0803C148: .4byte gBattleTypeFlags\n\ _0803C14C: .4byte gBattleMoves\n\ _0803C150: .4byte gCritMultiplier\n\ _0803C154: .4byte gStatStageRatios\n\ _0803C158:\n\ - mov r5, r8\n\ - b _0803C17A\n\ + mov r5, r8\n\ + b _0803C17A\n\ _0803C15C:\n\ - ldr r2, _0803C1A8 @ =gStatStageRatios\n\ - movs r0, 0x1C\n\ - ldrsb r0, [r7, r0]\n\ + ldr r2, _0803C1A8 @ =gStatStageRatios\n\ + movs r0, 0x1C\n\ + ldrsb r0, [r7, r0]\n\ _0803C162:\n\ - lsls r0, 1\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - mov r5, r8\n\ - muls r5, r1\n\ - adds r2, 0x1\n\ - adds r0, r2\n\ - ldrb r1, [r0]\n\ - adds r0, r5, 0\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ + lsls r0, 1\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + mov r5, r8\n\ + muls r5, r1\n\ + adds r2, 0x1\n\ + adds r0, r2\n\ + ldrb r1, [r0]\n\ + adds r0, r5, 0\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ _0803C17A:\n\ - ldr r0, _0803C1AC @ =gBattleMovePower\n\ - ldrh r0, [r0]\n\ - muls r5, r0\n\ - adds r0, r7, 0\n\ - adds r0, 0x2A\n\ - ldrb r0, [r0]\n\ - lsls r0, 1\n\ - movs r1, 0x5\n\ - bl __divsi3\n\ - adds r0, 0x2\n\ - muls r5, r0\n\ - ldrb r0, [r4]\n\ - cmp r0, 0x2\n\ - bne _0803C1B4\n\ - ldr r1, [sp, 0x4]\n\ - movs r0, 0x1D\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x5\n\ - bgt _0803C1B0\n\ - ldr r2, _0803C1A8 @ =gStatStageRatios\n\ - b _0803C1BC\n\ - .align 2, 0\n\ + ldr r0, _0803C1AC @ =gBattleMovePower\n\ + ldrh r0, [r0]\n\ + muls r5, r0\n\ + adds r0, r7, 0\n\ + adds r0, 0x2A\n\ + ldrb r0, [r0]\n\ + lsls r0, 1\n\ + movs r1, 0x5\n\ + bl __divsi3\n\ + adds r0, 0x2\n\ + muls r5, r0\n\ + ldrb r0, [r4]\n\ + cmp r0, 0x2\n\ + bne _0803C1B4\n\ + ldr r1, [sp, 0x4]\n\ + movs r0, 0x1D\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0x5\n\ + bgt _0803C1B0\n\ + ldr r2, _0803C1A8 @ =gStatStageRatios\n\ + b _0803C1BC\n\ + .align 2, 0\n\ _0803C1A8: .4byte gStatStageRatios\n\ _0803C1AC: .4byte gBattleMovePower\n\ _0803C1B0:\n\ - ldr r3, [sp, 0x18]\n\ - b _0803C1D6\n\ + ldr r3, [sp, 0x18]\n\ + b _0803C1D6\n\ _0803C1B4:\n\ - ldr r2, _0803C21C @ =gStatStageRatios\n\ - ldr r1, [sp, 0x4]\n\ - movs r0, 0x1D\n\ - ldrsb r0, [r1, r0]\n\ + ldr r2, _0803C21C @ =gStatStageRatios\n\ + ldr r1, [sp, 0x4]\n\ + movs r0, 0x1D\n\ + ldrsb r0, [r1, r0]\n\ _0803C1BC:\n\ - lsls r0, 1\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - ldr r6, [sp, 0x18]\n\ - adds r3, r6, 0\n\ - muls r3, r1\n\ - adds r2, 0x1\n\ - adds r0, r2\n\ - ldrb r1, [r0]\n\ - adds r0, r3, 0\n\ - bl __divsi3\n\ - adds r3, r0, 0\n\ + lsls r0, 1\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + ldr r6, [sp, 0x18]\n\ + adds r3, r6, 0\n\ + muls r3, r1\n\ + adds r2, 0x1\n\ + adds r0, r2\n\ + ldrb r1, [r0]\n\ + adds r0, r3, 0\n\ + bl __divsi3\n\ + adds r3, r0, 0\n\ _0803C1D6:\n\ - adds r0, r5, 0\n\ - adds r1, r3, 0\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ - movs r1, 0x32\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ - movs r0, 0x2\n\ - ldr r1, [sp, 0xC]\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C22A\n\ - ldrb r1, [r4]\n\ - cmp r1, 0x1\n\ - bne _0803C22A\n\ - ldr r0, _0803C220 @ =gBattleTypeFlags\n\ - ldrh r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - beq _0803C224\n\ - movs r0, 0x2\n\ - bl sub_803C348\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x2\n\ - bne _0803C224\n\ - adds r0, r5, 0\n\ - movs r1, 0x3\n\ - bl __divsi3\n\ - lsls r5, r0, 1\n\ - b _0803C22A\n\ - .align 2, 0\n\ + adds r0, r5, 0\n\ + adds r1, r3, 0\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ + movs r1, 0x32\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ + movs r0, 0x2\n\ + ldr r1, [sp, 0xC]\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C22A\n\ + ldrb r1, [r4]\n\ + cmp r1, 0x1\n\ + bne _0803C22A\n\ + ldr r0, _0803C220 @ =gBattleTypeFlags\n\ + ldrh r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _0803C224\n\ + movs r0, 0x2\n\ + bl sub_803C348\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x2\n\ + bne _0803C224\n\ + adds r0, r5, 0\n\ + movs r1, 0x3\n\ + bl __divsi3\n\ + lsls r5, r0, 1\n\ + b _0803C22A\n\ + .align 2, 0\n\ _0803C21C: .4byte gStatStageRatios\n\ _0803C220: .4byte gBattleTypeFlags\n\ _0803C224:\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C22A:\n\ - ldr r0, _0803C2A4 @ =gBattleTypeFlags\n\ - ldrh r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C25C\n\ - ldr r0, _0803C2A8 @ =gBattleMoves\n\ - ldr r2, [sp, 0x8]\n\ - lsls r1, r2, 1\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x6]\n\ - cmp r0, 0x8\n\ - bne _0803C25C\n\ - movs r0, 0x2\n\ - bl sub_803C348\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x2\n\ - bne _0803C25C\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + ldr r0, _0803C2A4 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C25C\n\ + ldr r0, _0803C2A8 @ =gBattleMoves\n\ + ldr r2, [sp, 0x8]\n\ + lsls r1, r2, 1\n\ + adds r1, r2\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x6]\n\ + cmp r0, 0x8\n\ + bne _0803C25C\n\ + movs r0, 0x2\n\ + bl sub_803C348\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x2\n\ + bne _0803C25C\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C25C:\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0xE\n\ - movs r1, 0\n\ - movs r2, 0xD\n\ - movs r3, 0\n\ - bl sub_8018324\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0\n\ - bne _0803C30C\n\ - str r0, [sp]\n\ - movs r0, 0xE\n\ - movs r1, 0\n\ - movs r2, 0x4D\n\ - movs r3, 0\n\ - bl sub_8018324\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0803C30C\n\ - ldr r2, _0803C2AC @ =gBattleWeather\n\ - ldrh r1, [r2]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - adds r4, r2, 0\n\ - cmp r0, 0\n\ - beq _0803C2C4\n\ - mov r3, r9\n\ - cmp r3, 0xA\n\ - beq _0803C2B0\n\ - cmp r3, 0xB\n\ - beq _0803C2B8\n\ - b _0803C2C4\n\ - .align 2, 0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0xE\n\ + movs r1, 0\n\ + movs r2, 0xD\n\ + movs r3, 0\n\ + bl sub_8018324\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0\n\ + bne _0803C30C\n\ + str r0, [sp]\n\ + movs r0, 0xE\n\ + movs r1, 0\n\ + movs r2, 0x4D\n\ + movs r3, 0\n\ + bl sub_8018324\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0803C30C\n\ + ldr r2, _0803C2AC @ =gBattleWeather\n\ + ldrh r1, [r2]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + adds r4, r2, 0\n\ + cmp r0, 0\n\ + beq _0803C2C4\n\ + mov r3, r9\n\ + cmp r3, 0xA\n\ + beq _0803C2B0\n\ + cmp r3, 0xB\n\ + beq _0803C2B8\n\ + b _0803C2C4\n\ + .align 2, 0\n\ _0803C2A4: .4byte gBattleTypeFlags\n\ _0803C2A8: .4byte gBattleMoves\n\ _0803C2AC: .4byte gBattleWeather\n\ _0803C2B0:\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ - b _0803C2C4\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ + b _0803C2C4\n\ _0803C2B8:\n\ - lsls r0, r5, 4\n\ - subs r0, r5\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ + lsls r0, r5, 4\n\ + subs r0, r5\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ _0803C2C4:\n\ - ldrh r1, [r4]\n\ - movs r0, 0x9F\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C2DC\n\ - ldr r0, _0803C2F4 @ =gUnknown_02024BE6\n\ - ldrh r0, [r0]\n\ - cmp r0, 0x4C\n\ - bne _0803C2DC\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + ldrh r1, [r4]\n\ + movs r0, 0x9F\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C2DC\n\ + ldr r0, _0803C2F4 @ =gUnknown_02024BE6\n\ + ldrh r0, [r0]\n\ + cmp r0, 0x4C\n\ + bne _0803C2DC\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C2DC:\n\ - ldrh r1, [r4]\n\ - movs r0, 0x60\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C30C\n\ - mov r6, r9\n\ - cmp r6, 0xA\n\ - beq _0803C2F8\n\ - cmp r6, 0xB\n\ - beq _0803C306\n\ - b _0803C30C\n\ - .align 2, 0\n\ + ldrh r1, [r4]\n\ + movs r0, 0x60\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C30C\n\ + mov r6, r9\n\ + cmp r6, 0xA\n\ + beq _0803C2F8\n\ + cmp r6, 0xB\n\ + beq _0803C306\n\ + b _0803C30C\n\ + .align 2, 0\n\ _0803C2F4: .4byte gUnknown_02024BE6\n\ _0803C2F8:\n\ - lsls r0, r5, 4\n\ - subs r0, r5\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ - b _0803C30C\n\ + lsls r0, r5, 4\n\ + subs r0, r5\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ + b _0803C30C\n\ _0803C306:\n\ - lsrs r0, r5, 31\n\ - adds r0, r5, r0\n\ - asrs r5, r0, 1\n\ + lsrs r0, r5, 31\n\ + adds r0, r5, r0\n\ + asrs r5, r0, 1\n\ _0803C30C:\n\ - ldr r1, _0803C344 @ =0x02017100\n\ - ldr r2, [sp, 0x10]\n\ - lsls r0, r2, 2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0803C330\n\ - mov r3, r9\n\ - cmp r3, 0xA\n\ - bne _0803C330\n\ - lsls r0, r5, 4\n\ - subs r0, r5\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r5, r0, 0\n\ + ldr r1, _0803C344 @ =0x02017100\n\ + ldr r2, [sp, 0x10]\n\ + lsls r0, r2, 2\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0803C330\n\ + mov r3, r9\n\ + cmp r3, 0xA\n\ + bne _0803C330\n\ + lsls r0, r5, 4\n\ + subs r0, r5\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r5, r0, 0\n\ _0803C330:\n\ - adds r0, r5, 0x2\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + adds r0, r5, 0x2\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _0803C344: .4byte 0x02017100\n\ - .syntax divided"); + .syntax divided"); } #endif diff --git a/src/contest_painting.c b/src/contest_painting.c index b77041f41..556456814 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -56,8 +56,8 @@ struct Unk3000756 struct LabelPair { - u8 (*prefix)[]; - u8 (*suffix)[]; + const u8 *prefix; + const u8 *suffix; }; struct Unk03005E20 @@ -97,32 +97,112 @@ extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpriteSheet gMonBackPicTable[]; extern const struct MonCoords gMonBackPicCoords[]; - extern void *gUnknown_081FAF4C[]; - -extern u16 gPictureFramePalettes[]; - -extern u8 gPictureFrameTiles_0[]; -extern u8 gPictureFrameTiles_1[]; -extern u8 gPictureFrameTiles_2[]; -extern u8 gPictureFrameTiles_3[]; -extern u8 gPictureFrameTiles_4[]; -extern u8 gPictureFrameTiles_5[]; - -extern u8 gPictureFrameTilemap_0[]; -extern u8 gPictureFrameTilemap_1[]; -extern u8 gPictureFrameTilemap_2[]; -extern u8 gPictureFrameTilemap_3[]; -extern u8 gPictureFrameTilemap_4[]; -extern u8 gPictureFrameTilemap_5[]; - -extern u8 *gUnknown_083F60AC[]; -extern struct LabelPair gUnknown_083F60C0[]; -extern struct OamData gOamData_83F6138; -extern u16 gUnknown_083F6140[]; - -extern u8 gContestText_ContestWinner[]; -extern u8 gOtherText_Unknown1[]; +extern const u8 OtherText_Cool[]; +extern const u8 OtherText_Beauty2[]; +extern const u8 OtherText_Cute[]; +extern const u8 OtherText_Smart[]; +extern const u8 OtherText_Tough[]; +extern const u8 OtherText_NonstopSuperCool[]; +extern const u8 OtherText_Terminator6[]; +extern const u8 OtherText_GoodLookingPoke[]; +extern const u8 OtherText_Terminator7[]; +extern const u8 OtherText_MarvelousGreat[]; +extern const u8 OtherText_Terminator8[]; +extern const u8 OtherText_CenturyLastVenus[]; +extern const u8 OtherText_Terminator9[]; +extern const u8 OtherText_Terminator10[]; +extern const u8 OtherText_DazzlingSlime[]; +extern const u8 OtherText_PokeCenterIdol[]; +extern const u8 OtherText_Terminator11[]; +extern const u8 OtherText_LovelyAndSweet[]; +extern const u8 OtherText_Terminator12[]; +extern const u8 OtherText_ThePretty[]; +extern const u8 OtherText_WinningPortrait[]; +extern const u8 OtherText_GiveUsWink[]; +extern const u8 OtherText_Terminator13[]; +extern const u8 OtherText_SmartnessMaestro[]; +extern const u8 OtherText_Terminator14[]; +extern const u8 OtherText_ChosenPokeAmong[]; +extern const u8 OtherText_Terminator15[]; +extern const u8 OtherText_TheExcellent[]; +extern const u8 OtherText_ItsMomentOfElegance[]; +extern const u8 OtherText_PowerfullyMuscular[]; +extern const u8 OtherText_Terminator16[]; +extern const u8 OtherText_StrongErEst[]; +extern const u8 OtherText_Terminator17[]; +extern const u8 OtherText_MightyTough[]; +extern const u8 OtherText_Exclamation[]; +extern const u8 gContestText_ContestWinner[]; +extern const u8 gOtherText_Unknown1[]; + +static const u16 gPictureFramePalettes[][16] = +{ + INCBIN_U16("graphics/picture_frame/bg0.gbapal"), + INCBIN_U16("graphics/picture_frame/bg1.gbapal"), + INCBIN_U16("graphics/picture_frame/bg2.gbapal"), + INCBIN_U16("graphics/picture_frame/bg3.gbapal"), + INCBIN_U16("graphics/picture_frame/bg4.gbapal"), + INCBIN_U16("graphics/picture_frame/bg5.gbapal"), + {0}, + {0}, +}; +const u8 emptySpace[8 * 32] = {0}; +const u8 gPictureFrameTiles_0[] = INCBIN_U8("graphics/picture_frame/frame0.4bpp.rl"); +const u8 gPictureFrameTiles_1[] = INCBIN_U8("graphics/picture_frame/frame1.4bpp.rl"); +const u8 gPictureFrameTiles_2[] = INCBIN_U8("graphics/picture_frame/frame2.4bpp.rl"); +const u8 gPictureFrameTiles_3[] = INCBIN_U8("graphics/picture_frame/frame3.4bpp.rl"); +const u8 gPictureFrameTiles_4[] = INCBIN_U8("graphics/picture_frame/frame4.4bpp.rl"); +const u8 gPictureFrameTiles_5[] = INCBIN_U8("graphics/picture_frame/frame5.4bpp.rl"); +const u8 gPictureFrameTilemap_0[] = INCBIN_U8("graphics/picture_frame/frame0_map.bin.rl"); +const u8 gPictureFrameTilemap_1[] = INCBIN_U8("graphics/picture_frame/frame1_map.bin.rl"); +const u8 gPictureFrameTilemap_2[] = INCBIN_U8("graphics/picture_frame/frame2_map.bin.rl"); +const u8 gPictureFrameTilemap_3[] = INCBIN_U8("graphics/picture_frame/frame3_map.bin.rl"); +const u8 gPictureFrameTilemap_4[] = INCBIN_U8("graphics/picture_frame/frame4_map.bin.rl"); +const u8 gPictureFrameTilemap_5[] = INCBIN_U8("graphics/picture_frame/frame5_map.bin.rl"); +const u8 *const gUnknown_083F60AC[] = +{ + OtherText_Cool, + OtherText_Beauty2, + OtherText_Cute, + OtherText_Smart, + OtherText_Tough, +}; +const struct LabelPair gUnknown_083F60C0[] = +{ + {OtherText_NonstopSuperCool, OtherText_Terminator6}, + {OtherText_GoodLookingPoke, OtherText_Terminator7}, + {OtherText_MarvelousGreat, OtherText_Terminator8}, + {OtherText_CenturyLastVenus, OtherText_Terminator9}, + {OtherText_Terminator10, OtherText_DazzlingSlime}, + {OtherText_PokeCenterIdol, OtherText_Terminator11}, + {OtherText_LovelyAndSweet, OtherText_Terminator12}, + {OtherText_ThePretty, OtherText_WinningPortrait}, + {OtherText_GiveUsWink, OtherText_Terminator13}, + {OtherText_SmartnessMaestro, OtherText_Terminator15}, + {OtherText_ChosenPokeAmong, OtherText_Terminator15}, + {OtherText_TheExcellent, OtherText_ItsMomentOfElegance}, + {OtherText_PowerfullyMuscular, OtherText_Terminator16}, + {OtherText_StrongErEst, OtherText_Terminator17}, + {OtherText_MightyTough, OtherText_Exclamation}, +}; +const struct OamData gOamData_83F6138 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 1, + .bpp = 1, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +const u16 gUnknown_083F6140[] = {0, 0}; static void ShowContestPainting(); static void CB2_HoldContestPainting(void); @@ -144,29 +224,29 @@ __attribute__((naked)) void sub_8106630(u32 arg0) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - ldr r2, _0810665C @ =0x02015de0\n\ - subs r4, r2, 0x2\n\ - subs r5, r2, 0x1\n\ - ldr r3, _08106660 @ =gSaveBlock1\n\ - subs r0, 0x1\n\ - lsls r1, r0, 5\n\ - adds r1, r3\n\ - ldr r3, _08106664 @ =0x00002dfc\n\ - adds r1, r3\n\ - ldm r1!, {r3,r6,r7}\n\ - stm r2!, {r3,r6,r7}\n\ - ldm r1!, {r3,r6,r7}\n\ - stm r2!, {r3,r6,r7}\n\ - ldm r1!, {r6,r7}\n\ - stm r2!, {r6,r7}\n\ - strb r0, [r4]\n\ - movs r0, 0\n\ - strb r0, [r5]\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + push {r4-r7,lr}\n\ + ldr r2, _0810665C @ =0x02015de0\n\ + subs r4, r2, 0x2\n\ + subs r5, r2, 0x1\n\ + ldr r3, _08106660 @ =gSaveBlock1\n\ + subs r0, 0x1\n\ + lsls r1, r0, 5\n\ + adds r1, r3\n\ + ldr r3, _08106664 @ =0x00002dfc\n\ + adds r1, r3\n\ + ldm r1!, {r3,r6,r7}\n\ + stm r2!, {r3,r6,r7}\n\ + ldm r1!, {r3,r6,r7}\n\ + stm r2!, {r3,r6,r7}\n\ + ldm r1!, {r6,r7}\n\ + stm r2!, {r6,r7}\n\ + strb r0, [r4]\n\ + movs r0, 0\n\ + strb r0, [r5]\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _0810665C: .4byte 0x02015de0\n\ _08106660: .4byte gSaveBlock1\n\ _08106664: .4byte 0x00002dfc\n\ @@ -312,9 +392,9 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) } else { - ptr = StringCopy(ptr, *gUnknown_083F60C0[type].prefix); + ptr = StringCopy(ptr, gUnknown_083F60C0[type].prefix); ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); - ptr = StringCopy(ptr, *gUnknown_083F60C0[type].suffix); + ptr = StringCopy(ptr, gUnknown_083F60C0[type].suffix); xPos = 3; yPos = 14; @@ -419,53 +499,53 @@ __attribute__((naked)) static void sub_8106AC4(u16 arg0, u8 arg2) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0xC\n\ - adds r4, r1, 0\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r7, _08106B28 @ =gUnknown_03005E8C\n\ - ldr r0, [r7]\n\ - ldr r1, [r0, 0x4]\n\ - ldr r2, [r0]\n\ - adds r0, r6, 0\n\ - bl species_and_otid_get_pal\n\ - ldr r1, _08106B2C @ =gUnknown_03005E90\n\ - mov r8, r1\n\ - ldr r1, [r1]\n\ - bl LZDecompressVram\n\ - cmp r4, 0\n\ - bne _08106B40\n\ - lsls r0, r6, 3\n\ - ldr r1, _08106B30 @ =gMonFrontPicTable\n\ - adds r0, r1\n\ - ldr r1, _08106B34 @ =gMonFrontPicCoords\n\ - lsls r2, r6, 2\n\ - adds r2, r1\n\ - ldrb r1, [r2]\n\ - ldrb r2, [r2, 0x1]\n\ - movs r3, 0x80\n\ - lsls r3, 18\n\ - ldr r4, _08106B38 @ =gUnknown_081FAF4C\n\ - ldr r5, [r4, 0x4]\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - ldr r4, [r7]\n\ - ldr r4, [r4]\n\ - str r4, [sp, 0x8]\n\ - bl HandleLoadSpecialPokePic\n\ - mov r2, r8\n\ - ldr r1, [r2]\n\ - ldr r0, _08106B3C @ =gUnknown_03005E10\n\ - ldr r2, [r0]\n\ - adds r0, r5, 0\n\ - bl sub_8106B90\n\ - b _08106B74\n\ - .align 2, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0xC\n\ + adds r4, r1, 0\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r7, _08106B28 @ =gUnknown_03005E8C\n\ + ldr r0, [r7]\n\ + ldr r1, [r0, 0x4]\n\ + ldr r2, [r0]\n\ + adds r0, r6, 0\n\ + bl species_and_otid_get_pal\n\ + ldr r1, _08106B2C @ =gUnknown_03005E90\n\ + mov r8, r1\n\ + ldr r1, [r1]\n\ + bl LZDecompressVram\n\ + cmp r4, 0\n\ + bne _08106B40\n\ + lsls r0, r6, 3\n\ + ldr r1, _08106B30 @ =gMonFrontPicTable\n\ + adds r0, r1\n\ + ldr r1, _08106B34 @ =gMonFrontPicCoords\n\ + lsls r2, r6, 2\n\ + adds r2, r1\n\ + ldrb r1, [r2]\n\ + ldrb r2, [r2, 0x1]\n\ + movs r3, 0x80\n\ + lsls r3, 18\n\ + ldr r4, _08106B38 @ =gUnknown_081FAF4C\n\ + ldr r5, [r4, 0x4]\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + ldr r4, [r7]\n\ + ldr r4, [r4]\n\ + str r4, [sp, 0x8]\n\ + bl HandleLoadSpecialPokePic\n\ + mov r2, r8\n\ + ldr r1, [r2]\n\ + ldr r0, _08106B3C @ =gUnknown_03005E10\n\ + ldr r2, [r0]\n\ + adds r0, r5, 0\n\ + bl sub_8106B90\n\ + b _08106B74\n\ + .align 2, 0\n\ _08106B28: .4byte gUnknown_03005E8C\n\ _08106B2C: .4byte gUnknown_03005E90\n\ _08106B30: .4byte gMonFrontPicTable\n\ @@ -473,38 +553,38 @@ _08106B34: .4byte gMonFrontPicCoords\n\ _08106B38: .4byte gUnknown_081FAF4C\n\ _08106B3C: .4byte gUnknown_03005E10\n\ _08106B40:\n\ - lsls r0, r6, 3\n\ - ldr r1, _08106B80 @ =gMonBackPicTable\n\ - adds r0, r1\n\ - ldr r1, _08106B84 @ =gMonBackPicCoords\n\ - lsls r2, r6, 2\n\ - adds r2, r1\n\ - ldrb r1, [r2]\n\ - ldrb r2, [r2, 0x1]\n\ - movs r3, 0x80\n\ - lsls r3, 18\n\ - ldr r4, _08106B88 @ =gUnknown_081FAF4C\n\ - ldr r5, [r4]\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - ldr r4, [r7]\n\ - ldr r4, [r4]\n\ - str r4, [sp, 0x8]\n\ - bl HandleLoadSpecialPokePic\n\ - mov r0, r8\n\ - ldr r1, [r0]\n\ - ldr r0, _08106B8C @ =gUnknown_03005E10\n\ - ldr r2, [r0]\n\ - adds r0, r5, 0\n\ - bl sub_8106B90\n\ + lsls r0, r6, 3\n\ + ldr r1, _08106B80 @ =gMonBackPicTable\n\ + adds r0, r1\n\ + ldr r1, _08106B84 @ =gMonBackPicCoords\n\ + lsls r2, r6, 2\n\ + adds r2, r1\n\ + ldrb r1, [r2]\n\ + ldrb r2, [r2, 0x1]\n\ + movs r3, 0x80\n\ + lsls r3, 18\n\ + ldr r4, _08106B88 @ =gUnknown_081FAF4C\n\ + ldr r5, [r4]\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + ldr r4, [r7]\n\ + ldr r4, [r4]\n\ + str r4, [sp, 0x8]\n\ + bl HandleLoadSpecialPokePic\n\ + mov r0, r8\n\ + ldr r1, [r0]\n\ + ldr r0, _08106B8C @ =gUnknown_03005E10\n\ + ldr r2, [r0]\n\ + adds r0, r5, 0\n\ + bl sub_8106B90\n\ _08106B74:\n\ - add sp, 0xC\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0xC\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08106B80: .4byte gMonBackPicTable\n\ _08106B84: .4byte gMonBackPicCoords\n\ _08106B88: .4byte gUnknown_081FAF4C\n\ @@ -552,102 +632,102 @@ __attribute__((naked)) void sub_8106B90() { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - mov r10, r0\n\ - mov r9, r1\n\ - str r2, [sp]\n\ - movs r0, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + mov r10, r0\n\ + mov r9, r1\n\ + str r2, [sp]\n\ + movs r0, 0\n\ _08106BA4:\n\ - movs r3, 0\n\ - adds r1, r0, 0x1\n\ - str r1, [sp, 0x4]\n\ - lsls r0, 3\n\ - str r0, [sp, 0x8]\n\ + movs r3, 0\n\ + adds r1, r0, 0x1\n\ + str r1, [sp, 0x4]\n\ + lsls r0, 3\n\ + str r0, [sp, 0x8]\n\ _08106BAE:\n\ - movs r1, 0\n\ - adds r2, r3, 0x1\n\ - mov r8, r2\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r3\n\ - lsls r0, 5\n\ - mov r12, r0\n\ - lsls r4, r3, 3\n\ + movs r1, 0\n\ + adds r2, r3, 0x1\n\ + mov r8, r2\n\ + ldr r7, [sp, 0x8]\n\ + adds r0, r7, r3\n\ + lsls r0, 5\n\ + mov r12, r0\n\ + lsls r4, r3, 3\n\ _08106BBE:\n\ - movs r3, 0\n\ - lsls r0, r1, 2\n\ - adds r6, r1, 0x1\n\ - mov r2, r12\n\ - adds r5, r2, r0\n\ - ldr r7, [sp, 0x8]\n\ - adds r0, r7, r1\n\ - lsls r0, 7\n\ - ldr r1, [sp]\n\ - adds r2, r0, r1\n\ + movs r3, 0\n\ + lsls r0, r1, 2\n\ + adds r6, r1, 0x1\n\ + mov r2, r12\n\ + adds r5, r2, r0\n\ + ldr r7, [sp, 0x8]\n\ + adds r0, r7, r1\n\ + lsls r0, 7\n\ + ldr r1, [sp]\n\ + adds r2, r0, r1\n\ _08106BD2:\n\ - lsrs r0, r3, 1\n\ - adds r0, r5, r0\n\ - add r0, r10\n\ - ldrb r1, [r0]\n\ - movs r0, 0x1\n\ - ands r0, r3\n\ - cmp r0, 0\n\ - beq _08106BE6\n\ - lsrs r1, 4\n\ - b _08106BEA\n\ + lsrs r0, r3, 1\n\ + adds r0, r5, r0\n\ + add r0, r10\n\ + ldrb r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r3\n\ + cmp r0, 0\n\ + beq _08106BE6\n\ + lsrs r1, 4\n\ + b _08106BEA\n\ _08106BE6:\n\ - movs r0, 0xF\n\ - ands r1, r0\n\ + movs r0, 0xF\n\ + ands r1, r0\n\ _08106BEA:\n\ - cmp r1, 0\n\ - bne _08106BFC\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - movs r7, 0x80\n\ - lsls r7, 8\n\ - adds r1, r7, 0\n\ - b _08106C08\n\ + cmp r1, 0\n\ + bne _08106BFC\n\ + adds r0, r4, r3\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + movs r7, 0x80\n\ + lsls r7, 8\n\ + adds r1, r7, 0\n\ + b _08106C08\n\ _08106BFC:\n\ - adds r0, r4, r3\n\ - lsls r0, 1\n\ - adds r0, r2\n\ - lsls r1, 1\n\ - add r1, r9\n\ - ldrh r1, [r1]\n\ + adds r0, r4, r3\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + lsls r1, 1\n\ + add r1, r9\n\ + ldrh r1, [r1]\n\ _08106C08:\n\ - strh r1, [r0]\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _08106BD2\n\ - lsls r0, r6, 16\n\ - lsrs r1, r0, 16\n\ - cmp r1, 0x7\n\ - bls _08106BBE\n\ - mov r1, r8\n\ - lsls r0, r1, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x7\n\ - bls _08106BAE\n\ - ldr r2, [sp, 0x4]\n\ - lsls r0, r2, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x7\n\ - bls _08106BA4\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + strh r1, [r0]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x7\n\ + bls _08106BD2\n\ + lsls r0, r6, 16\n\ + lsrs r1, r0, 16\n\ + cmp r1, 0x7\n\ + bls _08106BBE\n\ + mov r1, r8\n\ + lsls r0, r1, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x7\n\ + bls _08106BAE\n\ + ldr r2, [sp, 0x4]\n\ + lsls r0, r2, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x7\n\ + bls _08106BA4\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } #endif @@ -656,7 +736,7 @@ static void sub_8106C40(u8 arg0, u8 arg1) { u8 x, y; - LoadPalette(gPictureFramePalettes, 0, 128 * 2); + LoadPalette(gPictureFramePalettes, 0, sizeof(gPictureFramePalettes)); if (arg1 == 1) { switch (gUnknown_03005E8C->contestType / 3) diff --git a/src/credits.c b/src/credits.c index eb8f45374..7685a033d 100644 --- a/src/credits.c +++ b/src/credits.c @@ -180,8 +180,8 @@ extern u8 gBirchHelpGfx[]; extern void *gUnknown_0840B5A0[]; // data/credits -extern u16 gUnknown_0840B7BC[32]; -extern u16 gUnknown_0840B7FC[32]; +const u16 gUnknown_0840B7BC[] = INCBIN_U16("graphics/credits/palette_1.gbapal"); +const u8 gUnknown_0840B7FC[] = INCBIN_U8("graphics/credits/ampersand.4bpp"); extern u8 gUnknown_0840B83C[]; extern u8 gUnknown_0840B84B[]; extern u8 gUnknown_0840B85A[]; @@ -191,8 +191,8 @@ extern struct CreditsEntry *gCreditsEntryPointerTable[][5]; extern u8 gUnknown_0840CA00[][2]; extern struct SpriteSheet gUnknown_0840CAA0; extern struct SpritePalette gUnknown_0840CAB0; -extern union AnimCmd *gSpriteAnimTable_0840CA54[]; -extern union AnimCmd *gSpriteAnimTable_0840CA94[]; +extern const union AnimCmd *const gSpriteAnimTable_0840CA54[]; +extern const union AnimCmd *const gSpriteAnimTable_0840CA94[]; extern struct SpriteTemplate gSpriteTemplate_840CAEC; // data/intro_credits_graphics @@ -870,326 +870,326 @@ __attribute__((naked)) void task_c_8144664(u8 taskIdC) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - ldr r1, _0814468C @ =gTasks\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - movs r2, 0x8\n\ - ldrsh r0, [r0, r2]\n\ - adds r6, r1, 0\n\ - cmp r0, 0x32\n\ - bls _08144680\n\ - b _0814492C\n\ + push {r4-r7,lr}\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + ldr r1, _0814468C @ =gTasks\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + movs r2, 0x8\n\ + ldrsh r0, [r0, r2]\n\ + adds r6, r1, 0\n\ + cmp r0, 0x32\n\ + bls _08144680\n\ + b _0814492C\n\ _08144680:\n\ - lsls r0, 2\n\ - ldr r1, _08144690 @ =_08144694\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ + lsls r0, 2\n\ + ldr r1, _08144690 @ =_08144694\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ _0814468C: .4byte gTasks\n\ _08144690: .4byte _08144694\n\ - .align 2, 0\n\ + .align 2, 0\n\ _08144694:\n\ - .4byte _08144760\n\ - .4byte _08144784\n\ - .4byte _081447D8\n\ - .4byte _081447F0\n\ - .4byte _0814482C\n\ - .4byte _08144850\n\ - .4byte _0814489C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _081448A8\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _081448C8\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _081448EC\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _0814492C\n\ - .4byte _08144920\n\ + .4byte _08144760\n\ + .4byte _08144784\n\ + .4byte _081447D8\n\ + .4byte _081447F0\n\ + .4byte _0814482C\n\ + .4byte _08144850\n\ + .4byte _0814489C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _081448A8\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _081448C8\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _081448EC\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _0814492C\n\ + .4byte _08144920\n\ _08144760:\n\ - lsls r4, r5, 2\n\ - adds r4, r5\n\ - lsls r4, 3\n\ - adds r4, r6\n\ - ldrh r0, [r4, 0x12]\n\ - lsls r0, 16\n\ - asrs r0, 17\n\ - movs r1, 0x7F\n\ - ands r0, r1\n\ - movs r1, 0xC\n\ - bl Sin\n\ - ldr r1, _08144780 @ =gUnknown_0203935A\n\ - strh r0, [r1]\n\ - b _081447A8\n\ - .align 2, 0\n\ + lsls r4, r5, 2\n\ + adds r4, r5\n\ + lsls r4, 3\n\ + adds r4, r6\n\ + ldrh r0, [r4, 0x12]\n\ + lsls r0, 16\n\ + asrs r0, 17\n\ + movs r1, 0x7F\n\ + ands r0, r1\n\ + movs r1, 0xC\n\ + bl Sin\n\ + ldr r1, _08144780 @ =gUnknown_0203935A\n\ + strh r0, [r1]\n\ + b _081447A8\n\ + .align 2, 0\n\ _08144780: .4byte gUnknown_0203935A\n\ _08144784:\n\ - ldr r7, _081447B0 @ =gUnknown_0203935A\n\ - movs r3, 0\n\ - ldrsh r4, [r7, r3]\n\ - cmp r4, 0\n\ - beq _081447B4\n\ - lsls r4, r5, 2\n\ - adds r4, r5\n\ - lsls r4, 3\n\ - adds r4, r6\n\ - ldrh r0, [r4, 0x12]\n\ - lsls r0, 16\n\ - asrs r0, 17\n\ - movs r1, 0x7F\n\ - ands r0, r1\n\ - movs r1, 0xC\n\ - bl Sin\n\ - strh r0, [r7]\n\ + ldr r7, _081447B0 @ =gUnknown_0203935A\n\ + movs r3, 0\n\ + ldrsh r4, [r7, r3]\n\ + cmp r4, 0\n\ + beq _081447B4\n\ + lsls r4, r5, 2\n\ + adds r4, r5\n\ + lsls r4, 3\n\ + adds r4, r6\n\ + ldrh r0, [r4, 0x12]\n\ + lsls r0, 16\n\ + asrs r0, 17\n\ + movs r1, 0x7F\n\ + ands r0, r1\n\ + movs r1, 0xC\n\ + bl Sin\n\ + strh r0, [r7]\n\ _081447A8:\n\ - ldrh r0, [r4, 0x12]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x12]\n\ - b _0814492C\n\ - .align 2, 0\n\ + ldrh r0, [r4, 0x12]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x12]\n\ + b _0814492C\n\ + .align 2, 0\n\ _081447B0: .4byte gUnknown_0203935A\n\ _081447B4:\n\ - ldr r3, _081447D4 @ =gSprites\n\ - lsls r1, r5, 2\n\ - adds r1, r5\n\ - lsls r1, 3\n\ - adds r1, r6\n\ - movs r0, 0xC\n\ - ldrsh r2, [r1, r0]\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r2, 0x2\n\ - strh r2, [r0, 0x2E]\n\ - strh r4, [r1, 0x12]\n\ - b _08144848\n\ - .align 2, 0\n\ + ldr r3, _081447D4 @ =gSprites\n\ + lsls r1, r5, 2\n\ + adds r1, r5\n\ + lsls r1, 3\n\ + adds r1, r6\n\ + movs r0, 0xC\n\ + ldrsh r2, [r1, r0]\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r2, 0x2\n\ + strh r2, [r0, 0x2E]\n\ + strh r4, [r1, 0x12]\n\ + b _08144848\n\ + .align 2, 0\n\ _081447D4: .4byte gSprites\n\ _081447D8:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r1, r0, r6\n\ - ldrh r2, [r1, 0x12]\n\ - movs r3, 0x12\n\ - ldrsh r0, [r1, r3]\n\ - cmp r0, 0x3F\n\ - bgt _08144848\n\ - adds r0, r2, 0x1\n\ - strh r0, [r1, 0x12]\n\ - b _08144866\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r1, r0, r6\n\ + ldrh r2, [r1, 0x12]\n\ + movs r3, 0x12\n\ + ldrsh r0, [r1, r3]\n\ + cmp r0, 0x3F\n\ + bgt _08144848\n\ + adds r0, r2, 0x1\n\ + strh r0, [r1, 0x12]\n\ + b _08144866\n\ _081447F0:\n\ - ldr r3, _08144828 @ =gSprites\n\ - lsls r2, r5, 2\n\ - adds r2, r5\n\ - lsls r2, 3\n\ - adds r2, r6\n\ - movs r0, 0xC\n\ - ldrsh r1, [r2, r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r1, 0x3\n\ - strh r1, [r0, 0x2E]\n\ - movs r0, 0xE\n\ - ldrsh r1, [r2, r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r1, 0x1\n\ - strh r1, [r0, 0x2E]\n\ - movs r0, 0x78\n\ - strh r0, [r2, 0x10]\n\ - ldrh r0, [r2, 0x8]\n\ - adds r0, 0x1\n\ - strh r0, [r2, 0x8]\n\ - b _0814492C\n\ - .align 2, 0\n\ + ldr r3, _08144828 @ =gSprites\n\ + lsls r2, r5, 2\n\ + adds r2, r5\n\ + lsls r2, 3\n\ + adds r2, r6\n\ + movs r0, 0xC\n\ + ldrsh r1, [r2, r0]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r1, 0x3\n\ + strh r1, [r0, 0x2E]\n\ + movs r0, 0xE\n\ + ldrsh r1, [r2, r0]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r1, 0x1\n\ + strh r1, [r0, 0x2E]\n\ + movs r0, 0x78\n\ + strh r0, [r2, 0x10]\n\ + ldrh r0, [r2, 0x8]\n\ + adds r0, 0x1\n\ + strh r0, [r2, 0x8]\n\ + b _0814492C\n\ + .align 2, 0\n\ _08144828: .4byte gSprites\n\ _0814482C:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r1, r0, r6\n\ - ldrh r2, [r1, 0x10]\n\ - movs r3, 0x10\n\ - ldrsh r0, [r1, r3]\n\ - cmp r0, 0\n\ - beq _08144844\n\ - subs r0, r2, 0x1\n\ - strh r0, [r1, 0x10]\n\ - b _0814492C\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r1, r0, r6\n\ + ldrh r2, [r1, 0x10]\n\ + movs r3, 0x10\n\ + ldrsh r0, [r1, r3]\n\ + cmp r0, 0\n\ + beq _08144844\n\ + subs r0, r2, 0x1\n\ + strh r0, [r1, 0x10]\n\ + b _0814492C\n\ _08144844:\n\ - movs r0, 0x40\n\ - strh r0, [r1, 0x12]\n\ + movs r0, 0x40\n\ + strh r0, [r1, 0x12]\n\ _08144848:\n\ - ldrh r0, [r1, 0x8]\n\ - adds r0, 0x1\n\ - strh r0, [r1, 0x8]\n\ - b _0814492C\n\ + ldrh r0, [r1, 0x8]\n\ + adds r0, 0x1\n\ + strh r0, [r1, 0x8]\n\ + b _0814492C\n\ _08144850:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r4, r0, r6\n\ - ldrh r1, [r4, 0x12]\n\ - movs r2, 0x12\n\ - ldrsh r0, [r4, r2]\n\ - cmp r0, 0\n\ - ble _0814487C\n\ - subs r0, r1, 0x1\n\ - strh r0, [r4, 0x12]\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r4, r0, r6\n\ + ldrh r1, [r4, 0x12]\n\ + movs r2, 0x12\n\ + ldrsh r0, [r4, r2]\n\ + cmp r0, 0\n\ + ble _0814487C\n\ + subs r0, r1, 0x1\n\ + strh r0, [r4, 0x12]\n\ _08144866:\n\ - movs r1, 0x7F\n\ - ands r0, r1\n\ - movs r1, 0x14\n\ - bl Sin\n\ - ldr r1, _08144878 @ =gUnknown_0203935A\n\ - strh r0, [r1]\n\ - b _0814492C\n\ - .align 2, 0\n\ + movs r1, 0x7F\n\ + ands r0, r1\n\ + movs r1, 0x14\n\ + bl Sin\n\ + ldr r1, _08144878 @ =gUnknown_0203935A\n\ + strh r0, [r1]\n\ + b _0814492C\n\ + .align 2, 0\n\ _08144878: .4byte gUnknown_0203935A\n\ _0814487C:\n\ - ldr r2, _08144898 @ =gSprites\n\ - movs r3, 0xC\n\ - ldrsh r1, [r4, r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - movs r1, 0x1\n\ - strh r1, [r0, 0x2E]\n\ - ldrh r0, [r4, 0x8]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x8]\n\ - b _0814492C\n\ - .align 2, 0\n\ + ldr r2, _08144898 @ =gSprites\n\ + movs r3, 0xC\n\ + ldrsh r1, [r4, r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r2\n\ + movs r1, 0x1\n\ + strh r1, [r0, 0x2E]\n\ + ldrh r0, [r4, 0x8]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x8]\n\ + b _0814492C\n\ + .align 2, 0\n\ _08144898: .4byte gSprites\n\ _0814489C:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - movs r1, 0x32\n\ - b _0814492A\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r6\n\ + movs r1, 0x32\n\ + b _0814492A\n\ _081448A8:\n\ - ldr r3, _081448C4 @ =gSprites\n\ - lsls r1, r5, 2\n\ - adds r1, r5\n\ - lsls r1, 3\n\ - adds r1, r6\n\ - movs r0, 0xE\n\ - ldrsh r2, [r1, r0]\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r2, 0x2\n\ - b _081448E0\n\ - .align 2, 0\n\ + ldr r3, _081448C4 @ =gSprites\n\ + lsls r1, r5, 2\n\ + adds r1, r5\n\ + lsls r1, 3\n\ + adds r1, r6\n\ + movs r0, 0xE\n\ + ldrsh r2, [r1, r0]\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r2, 0x2\n\ + b _081448E0\n\ + .align 2, 0\n\ _081448C4: .4byte gSprites\n\ _081448C8:\n\ - ldr r3, _081448E8 @ =gSprites\n\ - lsls r1, r5, 2\n\ - adds r1, r5\n\ - lsls r1, 3\n\ - adds r1, r6\n\ - movs r0, 0xC\n\ - ldrsh r2, [r1, r0]\n\ - lsls r0, r2, 4\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r2, 0x4\n\ + ldr r3, _081448E8 @ =gSprites\n\ + lsls r1, r5, 2\n\ + adds r1, r5\n\ + lsls r1, 3\n\ + adds r1, r6\n\ + movs r0, 0xC\n\ + ldrsh r2, [r1, r0]\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r2, 0x4\n\ _081448E0:\n\ - strh r2, [r0, 0x2E]\n\ - movs r0, 0x32\n\ - strh r0, [r1, 0x8]\n\ - b _0814492C\n\ - .align 2, 0\n\ + strh r2, [r0, 0x2E]\n\ + movs r0, 0x32\n\ + strh r0, [r1, 0x8]\n\ + b _0814492C\n\ + .align 2, 0\n\ _081448E8: .4byte gSprites\n\ _081448EC:\n\ - ldr r3, _0814491C @ =gSprites\n\ - lsls r2, r5, 2\n\ - adds r2, r5\n\ - lsls r2, 3\n\ - adds r2, r6\n\ - movs r0, 0xC\n\ - ldrsh r1, [r2, r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r1, 0x5\n\ - strh r1, [r0, 0x2E]\n\ - movs r0, 0xE\n\ - ldrsh r1, [r2, r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r3\n\ - movs r1, 0x3\n\ - strh r1, [r0, 0x2E]\n\ - movs r0, 0x32\n\ - strh r0, [r2, 0x8]\n\ - b _0814492C\n\ - .align 2, 0\n\ + ldr r3, _0814491C @ =gSprites\n\ + lsls r2, r5, 2\n\ + adds r2, r5\n\ + lsls r2, 3\n\ + adds r2, r6\n\ + movs r0, 0xC\n\ + ldrsh r1, [r2, r0]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r1, 0x5\n\ + strh r1, [r0, 0x2E]\n\ + movs r0, 0xE\n\ + ldrsh r1, [r2, r0]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + movs r1, 0x3\n\ + strh r1, [r0, 0x2E]\n\ + movs r0, 0x32\n\ + strh r0, [r2, 0x8]\n\ + b _0814492C\n\ + .align 2, 0\n\ _0814491C: .4byte gSprites\n\ _08144920:\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - movs r1, 0\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r6\n\ + movs r1, 0\n\ _0814492A:\n\ - strh r1, [r0, 0x8]\n\ + strh r1, [r0, 0x8]\n\ _0814492C:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } @@ -1455,107 +1455,107 @@ __attribute__((naked)) void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - adds r3, r0, 0\n\ - adds r4, r2, 0\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - lsls r1, 16\n\ - lsrs r7, r1, 16\n\ - lsls r4, 16\n\ - lsrs r5, r4, 16\n\ - ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx\n\ - movs r6, 0xC0\n\ - lsls r6, 19\n\ - adds r3, r6\n\ - adds r1, r3, 0\n\ - bl LZ77UnCompVram\n\ - ldr r0, _081451F0 @ =gIntroCopyright_Pal\n\ - adds r1, r5, 0\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ - lsrs r4, 20\n\ - lsls r4, 28\n\ - lsrs r4, 16\n\ - movs r2, 0\n\ - adds r1, r4, 0x1\n\ - ldr r3, _081451F4 @ =0x000003ff\n\ + push {r4-r7,lr}\n\ + adds r3, r0, 0\n\ + adds r4, r2, 0\n\ + lsls r3, 16\n\ + lsrs r3, 16\n\ + lsls r1, 16\n\ + lsrs r7, r1, 16\n\ + lsls r4, 16\n\ + lsrs r5, r4, 16\n\ + ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx\n\ + movs r6, 0xC0\n\ + lsls r6, 19\n\ + adds r3, r6\n\ + adds r1, r3, 0\n\ + bl LZ77UnCompVram\n\ + ldr r0, _081451F0 @ =gIntroCopyright_Pal\n\ + adds r1, r5, 0\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + lsrs r4, 20\n\ + lsls r4, 28\n\ + lsrs r4, 16\n\ + movs r2, 0\n\ + adds r1, r4, 0x1\n\ + ldr r3, _081451F4 @ =0x000003ff\n\ _0814515E:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r6\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, r3\n\ - bls _0814515E\n\ - movs r2, 0\n\ - adds r0, r4, 0x2\n\ - adds r6, r4, 0\n\ - adds r6, 0x17\n\ - movs r1, 0x2B\n\ - adds r1, r4\n\ - mov r12, r1\n\ - adds r4, 0x42\n\ - ldr r5, _081451F8 @ =0x060001c8\n\ - adds r3, r0, 0\n\ + lsls r0, r2, 1\n\ + adds r0, r7\n\ + adds r0, r6\n\ + strh r1, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, r3\n\ + bls _0814515E\n\ + movs r2, 0\n\ + adds r0, r4, 0x2\n\ + adds r6, r4, 0\n\ + adds r6, 0x17\n\ + movs r1, 0x2B\n\ + adds r1, r4\n\ + mov r12, r1\n\ + adds r4, 0x42\n\ + ldr r5, _081451F8 @ =0x060001c8\n\ + adds r3, r0, 0\n\ _08145184:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r5\n\ - adds r1, r2, r3\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x14\n\ - bls _08145184\n\ - movs r2, 0\n\ - ldr r5, _081451FC @ =0x06000248\n\ - adds r3, r6, 0\n\ + lsls r0, r2, 1\n\ + adds r0, r7\n\ + adds r0, r5\n\ + adds r1, r2, r3\n\ + strh r1, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x14\n\ + bls _08145184\n\ + movs r2, 0\n\ + ldr r5, _081451FC @ =0x06000248\n\ + adds r3, r6, 0\n\ _0814519E:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r5\n\ - adds r1, r2, r3\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x13\n\ - bls _0814519E\n\ - movs r2, 0\n\ - ldr r5, _08145200 @ =0x060002c8\n\ - mov r3, r12\n\ + lsls r0, r2, 1\n\ + adds r0, r7\n\ + adds r0, r5\n\ + adds r1, r2, r3\n\ + strh r1, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x13\n\ + bls _0814519E\n\ + movs r2, 0\n\ + ldr r5, _08145200 @ =0x060002c8\n\ + mov r3, r12\n\ _081451B8:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r5\n\ - adds r1, r2, r3\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x16\n\ - bls _081451B8\n\ - movs r2, 0\n\ - ldr r3, _08145204 @ =0x06000348\n\ + lsls r0, r2, 1\n\ + adds r0, r7\n\ + adds r0, r5\n\ + adds r1, r2, r3\n\ + strh r1, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x16\n\ + bls _081451B8\n\ + movs r2, 0\n\ + ldr r3, _08145204 @ =0x06000348\n\ _081451D0:\n\ - lsls r0, r2, 1\n\ - adds r0, r7\n\ - adds r0, r3\n\ - adds r1, r2, r4\n\ - strh r1, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0xB\n\ - bls _081451D0\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + lsls r0, r2, 1\n\ + adds r0, r7\n\ + adds r0, r3\n\ + adds r1, r2, r4\n\ + strh r1, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0xB\n\ + bls _081451D0\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _081451EC: .4byte gCreditsCopyrightEnd_Gfx\n\ _081451F0: .4byte gIntroCopyright_Pal\n\ _081451F4: .4byte 0x000003ff\n\ @@ -1593,73 +1593,73 @@ __attribute__((naked)) void sub_814524C(void *arg0, u8 arg1, u8 arg2, u16 arg3, int arg4) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - str r0, [sp]\n\ - ldr r0, [sp, 0x2C]\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r10, r1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp, 0x4]\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - str r3, [sp, 0x8]\n\ - lsls r0, 16\n\ - lsrs r0, 20\n\ - lsls r0, 28\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - movs r5, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + str r0, [sp]\n\ + ldr r0, [sp, 0x2C]\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r10, r1\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp, 0x4]\n\ + lsls r3, 16\n\ + lsrs r3, 16\n\ + str r3, [sp, 0x8]\n\ + lsls r0, 16\n\ + lsrs r0, 20\n\ + lsls r0, 28\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + movs r5, 0\n\ _0814527A:\n\ - movs r4, 0\n\ - lsls r7, r5, 1\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1, r5\n\ - adds r2, r5, 0x1\n\ - mov r8, r2\n\ - lsls r0, 6\n\ - ldr r1, [sp, 0x8]\n\ - adds r6, r0, r1\n\ + movs r4, 0\n\ + lsls r7, r5, 1\n\ + ldr r1, [sp, 0x4]\n\ + adds r0, r1, r5\n\ + adds r2, r5, 0x1\n\ + mov r8, r2\n\ + lsls r0, 6\n\ + ldr r1, [sp, 0x8]\n\ + adds r6, r0, r1\n\ _0814528C:\n\ - adds r0, r7, r5\n\ - adds r0, r4\n\ - ldr r2, [sp]\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - bl sub_8145208\n\ - mov r2, r10\n\ - adds r1, r2, r4\n\ - lsls r1, 1\n\ - adds r1, r6\n\ - movs r2, 0xC0\n\ - lsls r2, 19\n\ - adds r1, r2\n\ - add r0, r9\n\ - strh r0, [r1]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x2\n\ - bls _0814528C\n\ - mov r1, r8\n\ - lsls r0, r1, 24\n\ - lsrs r5, r0, 24\n\ - cmp r5, 0x4\n\ - bls _0814527A\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + adds r0, r7, r5\n\ + adds r0, r4\n\ + ldr r2, [sp]\n\ + adds r0, r2, r0\n\ + ldrb r0, [r0]\n\ + bl sub_8145208\n\ + mov r2, r10\n\ + adds r1, r2, r4\n\ + lsls r1, 1\n\ + adds r1, r6\n\ + movs r2, 0xC0\n\ + lsls r2, 19\n\ + adds r1, r2\n\ + add r0, r9\n\ + strh r0, [r1]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0x2\n\ + bls _0814528C\n\ + mov r1, r8\n\ + lsls r0, r1, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x4\n\ + bls _0814527A\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } @@ -1788,238 +1788,238 @@ __attribute__((naked)) void spritecb_81454E0(struct Sprite *sprite) { asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - sub sp, 0x4\n\ - adds r5, r0, 0\n\ - ldr r0, _081454F8 @ =gUnknown_0203935C\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - cmp r0, 0\n\ - beq _081454FC\n\ - adds r0, r5, 0\n\ - bl DestroySprite\n\ - b _081456A6\n\ - .align 2, 0\n\ + push {r4,r5,lr}\n\ + sub sp, 0x4\n\ + adds r5, r0, 0\n\ + ldr r0, _081454F8 @ =gUnknown_0203935C\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + cmp r0, 0\n\ + beq _081454FC\n\ + adds r0, r5, 0\n\ + bl DestroySprite\n\ + b _081456A6\n\ + .align 2, 0\n\ _081454F8: .4byte gUnknown_0203935C\n\ _081454FC:\n\ - ldrh r0, [r5, 0x3C]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x3C]\n\ - movs r2, 0x2E\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0xA\n\ - bhi _08145544\n\ - lsls r0, 2\n\ - ldr r1, _08145514 @ =_08145518\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .align 2, 0\n\ + ldrh r0, [r5, 0x3C]\n\ + adds r0, 0x1\n\ + strh r0, [r5, 0x3C]\n\ + movs r2, 0x2E\n\ + ldrsh r0, [r5, r2]\n\ + cmp r0, 0xA\n\ + bhi _08145544\n\ + lsls r0, 2\n\ + ldr r1, _08145514 @ =_08145518\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ _08145514: .4byte _08145518\n\ - .align 2, 0\n\ + .align 2, 0\n\ _08145518:\n\ - .4byte _08145544\n\ - .4byte _0814559E\n\ - .4byte _08145620\n\ - .4byte _08145660\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145544\n\ - .4byte _08145696\n\ + .4byte _08145544\n\ + .4byte _0814559E\n\ + .4byte _08145620\n\ + .4byte _08145660\n\ + .4byte _08145544\n\ + .4byte _08145544\n\ + .4byte _08145544\n\ + .4byte _08145544\n\ + .4byte _08145544\n\ + .4byte _08145544\n\ + .4byte _08145696\n\ _08145544:\n\ - ldrb r1, [r5, 0x1]\n\ - movs r0, 0x4\n\ - negs r0, r0\n\ - ands r0, r1\n\ - movs r1, 0x1\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x1]\n\ - movs r0, 0x30\n\ - ldrsh r1, [r5, r0]\n\ - movs r0, 0x1F\n\ - ands r1, r0\n\ - lsls r1, 1\n\ - ldrb r2, [r5, 0x3]\n\ - movs r0, 0x3F\n\ - negs r0, r0\n\ - ands r0, r2\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x3]\n\ - movs r0, 0x10\n\ - strh r0, [r5, 0x32]\n\ - ldrh r4, [r5, 0x30]\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r0, 0x80\n\ - lsls r0, 9\n\ - movs r1, 0x10\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - str r1, [sp]\n\ - adds r0, r4, 0\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl SetOamMatrix\n\ - adds r2, r5, 0\n\ - adds r2, 0x3E\n\ - ldrb r1, [r2]\n\ - movs r0, 0x5\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - movs r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ - b _081456A6\n\ + ldrb r1, [r5, 0x1]\n\ + movs r0, 0x4\n\ + negs r0, r0\n\ + ands r0, r1\n\ + movs r1, 0x1\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x1]\n\ + movs r0, 0x30\n\ + ldrsh r1, [r5, r0]\n\ + movs r0, 0x1F\n\ + ands r1, r0\n\ + lsls r1, 1\n\ + ldrb r2, [r5, 0x3]\n\ + movs r0, 0x3F\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x3]\n\ + movs r0, 0x10\n\ + strh r0, [r5, 0x32]\n\ + ldrh r4, [r5, 0x30]\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + movs r0, 0x80\n\ + lsls r0, 9\n\ + movs r1, 0x10\n\ + bl __divsi3\n\ + adds r1, r0, 0\n\ + str r1, [sp]\n\ + adds r0, r4, 0\n\ + movs r2, 0\n\ + movs r3, 0\n\ + bl SetOamMatrix\n\ + adds r2, r5, 0\n\ + adds r2, 0x3E\n\ + ldrb r1, [r2]\n\ + movs r0, 0x5\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ + movs r0, 0x1\n\ + strh r0, [r5, 0x2E]\n\ + b _081456A6\n\ _0814559E:\n\ - ldrh r1, [r5, 0x32]\n\ - movs r2, 0x32\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0xFF\n\ - bgt _081455D4\n\ - adds r0, r1, 0\n\ - adds r0, 0x8\n\ - strh r0, [r5, 0x32]\n\ - ldrh r4, [r5, 0x30]\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r0, 0x32\n\ - ldrsh r1, [r5, r0]\n\ - movs r0, 0x80\n\ - lsls r0, 9\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - str r1, [sp]\n\ - adds r0, r4, 0\n\ - movs r2, 0\n\ - movs r3, 0\n\ - bl SetOamMatrix\n\ - b _081455DA\n\ + ldrh r1, [r5, 0x32]\n\ + movs r2, 0x32\n\ + ldrsh r0, [r5, r2]\n\ + cmp r0, 0xFF\n\ + bgt _081455D4\n\ + adds r0, r1, 0\n\ + adds r0, 0x8\n\ + strh r0, [r5, 0x32]\n\ + ldrh r4, [r5, 0x30]\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + movs r0, 0x32\n\ + ldrsh r1, [r5, r0]\n\ + movs r0, 0x80\n\ + lsls r0, 9\n\ + bl __divsi3\n\ + adds r1, r0, 0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + str r1, [sp]\n\ + adds r0, r4, 0\n\ + movs r2, 0\n\ + movs r3, 0\n\ + bl SetOamMatrix\n\ + b _081455DA\n\ _081455D4:\n\ - ldrh r0, [r5, 0x2E]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ + ldrh r0, [r5, 0x2E]\n\ + adds r0, 0x1\n\ + strh r0, [r5, 0x2E]\n\ _081455DA:\n\ - movs r2, 0x30\n\ - ldrsh r1, [r5, r2]\n\ - cmp r1, 0x2\n\ - beq _081456A6\n\ - cmp r1, 0x2\n\ - bgt _081455EC\n\ - cmp r1, 0x1\n\ - beq _081455F2\n\ - b _081456A6\n\ + movs r2, 0x30\n\ + ldrsh r1, [r5, r2]\n\ + cmp r1, 0x2\n\ + beq _081456A6\n\ + cmp r1, 0x2\n\ + bgt _081455EC\n\ + cmp r1, 0x1\n\ + beq _081455F2\n\ + b _081456A6\n\ _081455EC:\n\ - cmp r1, 0x3\n\ - beq _0814560A\n\ - b _081456A6\n\ + cmp r1, 0x3\n\ + beq _0814560A\n\ + b _081456A6\n\ _081455F2:\n\ - ldrh r1, [r5, 0x3C]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08145602\n\ - ldrh r0, [r5, 0x22]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x22]\n\ + ldrh r1, [r5, 0x3C]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08145602\n\ + ldrh r0, [r5, 0x22]\n\ + adds r0, 0x1\n\ + strh r0, [r5, 0x22]\n\ _08145602:\n\ - ldrh r0, [r5, 0x20]\n\ - subs r0, 0x2\n\ - strh r0, [r5, 0x20]\n\ - b _081456A6\n\ + ldrh r0, [r5, 0x20]\n\ + subs r0, 0x2\n\ + strh r0, [r5, 0x20]\n\ + b _081456A6\n\ _0814560A:\n\ - ldrh r0, [r5, 0x3C]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _08145618\n\ - ldrh r0, [r5, 0x22]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x22]\n\ + ldrh r0, [r5, 0x3C]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _08145618\n\ + ldrh r0, [r5, 0x22]\n\ + adds r0, 0x1\n\ + strh r0, [r5, 0x22]\n\ _08145618:\n\ - ldrh r0, [r5, 0x20]\n\ - adds r0, 0x2\n\ - strh r0, [r5, 0x20]\n\ - b _081456A6\n\ + ldrh r0, [r5, 0x20]\n\ + adds r0, 0x2\n\ + strh r0, [r5, 0x20]\n\ + b _081456A6\n\ _08145620:\n\ - ldrh r1, [r5, 0x34]\n\ - movs r2, 0x34\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0\n\ - beq _08145630\n\ - subs r0, r1, 0x1\n\ - strh r0, [r5, 0x34]\n\ - b _081456A6\n\ + ldrh r1, [r5, 0x34]\n\ + movs r2, 0x34\n\ + ldrsh r0, [r5, r2]\n\ + cmp r0, 0\n\ + beq _08145630\n\ + subs r0, r1, 0x1\n\ + strh r0, [r5, 0x34]\n\ + b _081456A6\n\ _08145630:\n\ - ldr r1, _0814565C @ =REG_BLDCNT\n\ - movs r2, 0xF4\n\ - lsls r2, 4\n\ - adds r0, r2, 0\n\ - strh r0, [r1]\n\ - adds r1, 0x2\n\ - movs r0, 0x10\n\ - strh r0, [r1]\n\ - ldrb r1, [r5, 0x1]\n\ - movs r0, 0xD\n\ - negs r0, r0\n\ - ands r0, r1\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - strb r0, [r5, 0x1]\n\ - movs r0, 0x10\n\ - strh r0, [r5, 0x34]\n\ - ldrh r0, [r5, 0x2E]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ - b _081456A6\n\ - .align 2, 0\n\ + ldr r1, _0814565C @ =REG_BLDCNT\n\ + movs r2, 0xF4\n\ + lsls r2, 4\n\ + adds r0, r2, 0\n\ + strh r0, [r1]\n\ + adds r1, 0x2\n\ + movs r0, 0x10\n\ + strh r0, [r1]\n\ + ldrb r1, [r5, 0x1]\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r1\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x1]\n\ + movs r0, 0x10\n\ + strh r0, [r5, 0x34]\n\ + ldrh r0, [r5, 0x2E]\n\ + adds r0, 0x1\n\ + strh r0, [r5, 0x2E]\n\ + b _081456A6\n\ + .align 2, 0\n\ _0814565C: .4byte REG_BLDCNT\n\ _08145660:\n\ - ldrh r1, [r5, 0x34]\n\ - movs r2, 0x34\n\ - ldrsh r0, [r5, r2]\n\ - cmp r0, 0\n\ - beq _08145684\n\ - subs r1, 0x1\n\ - strh r1, [r5, 0x34]\n\ - ldr r3, _08145680 @ =REG_BLDALPHA\n\ - movs r0, 0x34\n\ - ldrsh r2, [r5, r0]\n\ - movs r0, 0x10\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - adds r1, r0\n\ - strh r1, [r3]\n\ - b _081456A6\n\ - .align 2, 0\n\ + ldrh r1, [r5, 0x34]\n\ + movs r2, 0x34\n\ + ldrsh r0, [r5, r2]\n\ + cmp r0, 0\n\ + beq _08145684\n\ + subs r1, 0x1\n\ + strh r1, [r5, 0x34]\n\ + ldr r3, _08145680 @ =REG_BLDALPHA\n\ + movs r0, 0x34\n\ + ldrsh r2, [r5, r0]\n\ + movs r0, 0x10\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + adds r1, r0\n\ + strh r1, [r3]\n\ + b _081456A6\n\ + .align 2, 0\n\ _08145680: .4byte REG_BLDALPHA\n\ _08145684:\n\ - adds r2, r5, 0\n\ - adds r2, 0x3E\n\ - ldrb r0, [r2]\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - strb r0, [r2]\n\ - movs r0, 0xA\n\ - strh r0, [r5, 0x2E]\n\ - b _081456A6\n\ + adds r2, r5, 0\n\ + adds r2, 0x3E\n\ + ldrb r0, [r2]\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + strb r0, [r2]\n\ + movs r0, 0xA\n\ + strh r0, [r5, 0x2E]\n\ + b _081456A6\n\ _08145696:\n\ - ldr r0, _081456B0 @ =REG_BLDCNT\n\ - movs r1, 0\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, r5, 0\n\ - bl DestroySprite\n\ + ldr r0, _081456B0 @ =REG_BLDCNT\n\ + movs r1, 0\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, r5, 0\n\ + bl DestroySprite\n\ _081456A6:\n\ - add sp, 0x4\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0x4\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _081456B0: .4byte REG_BLDCNT\n\ .syntax divided\n"); } @@ -2083,155 +2083,155 @@ __attribute__((naked)) u8 sub_81456B4(u16 nationalNum, u16 x, u16 y, u16 arg3) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - lsls r0, 16\n\ - lsrs r6, r0, 16\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - mov r10, r1\n\ - lsls r2, 16\n\ - lsrs r2, 16\n\ - str r2, [sp, 0x10]\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - mov r9, r3\n\ - adds r0, r6, 0\n\ - bl NationalPokedexNumToSpecies\n\ - adds r6, r0, 0\n\ - cmp r6, 0xC9\n\ - beq _081456F8\n\ - movs r0, 0x9A\n\ - lsls r0, 1\n\ - cmp r6, r0\n\ - beq _081456EE\n\ - movs r7, 0\n\ - b _081456FC\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + mov r10, r1\n\ + lsls r2, 16\n\ + lsrs r2, 16\n\ + str r2, [sp, 0x10]\n\ + lsls r3, 16\n\ + lsrs r3, 16\n\ + mov r9, r3\n\ + adds r0, r6, 0\n\ + bl NationalPokedexNumToSpecies\n\ + adds r6, r0, 0\n\ + cmp r6, 0xC9\n\ + beq _081456F8\n\ + movs r0, 0x9A\n\ + lsls r0, 1\n\ + cmp r6, r0\n\ + beq _081456EE\n\ + movs r7, 0\n\ + b _081456FC\n\ _081456EE:\n\ - ldr r0, _081456F4 @ =gSaveBlock2\n\ - ldr r7, [r0, 0x20]\n\ - b _081456FC\n\ - .align 2, 0\n\ + ldr r0, _081456F4 @ =gSaveBlock2\n\ + ldr r7, [r0, 0x20]\n\ + b _081456FC\n\ + .align 2, 0\n\ _081456F4: .4byte gSaveBlock2\n\ _081456F8:\n\ - ldr r0, _081457E8 @ =gSaveBlock2\n\ - ldr r7, [r0, 0x1C]\n\ + ldr r0, _081457E8 @ =gSaveBlock2\n\ + ldr r7, [r0, 0x1C]\n\ _081456FC:\n\ - lsls r0, r6, 3\n\ - ldr r1, _081457EC @ =gMonFrontPicTable\n\ - adds r0, r1\n\ - ldr r1, _081457F0 @ =gMonFrontPicCoords\n\ - lsls r2, r6, 2\n\ - adds r2, r1\n\ - ldrb r1, [r2]\n\ - ldrb r2, [r2, 0x1]\n\ - movs r3, 0x80\n\ - lsls r3, 18\n\ - ldr r4, _081457F4 @ =gUnknown_0840B5A0\n\ - mov r8, r4\n\ - mov r5, r9\n\ - lsls r4, r5, 2\n\ - add r4, r8\n\ - ldr r4, [r4]\n\ - str r4, [sp]\n\ - str r6, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r4, 0x1\n\ - str r4, [sp, 0xC]\n\ - bl LoadSpecialPokePic\n\ - ldr r2, _081457F8 @ =0x0000ffff\n\ - adds r0, r6, 0\n\ - movs r1, 0\n\ - bl species_and_otid_get_pal\n\ - lsls r5, 4\n\ - mov r8, r5\n\ - movs r1, 0x80\n\ - lsls r1, 1\n\ - add r1, r8\n\ - lsls r1, 16\n\ - lsrs r1, 16\n\ - movs r2, 0x20\n\ - bl LoadCompressedPalette\n\ - mov r7, r9\n\ - lsls r6, r7, 24\n\ - lsrs r6, 24\n\ - mov r0, r9\n\ - adds r1, r6, 0\n\ - bl sub_8143648\n\ - ldr r0, _081457FC @ =gUnknown_02024E8C\n\ - mov r2, r10\n\ - lsls r1, r2, 16\n\ - asrs r1, 16\n\ - ldr r3, [sp, 0x10]\n\ - lsls r2, r3, 16\n\ - asrs r2, 16\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - adds r4, r0, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r5, _08145800 @ =gSprites\n\ - lsls r2, r4, 4\n\ - adds r2, r4\n\ - lsls r2, 2\n\ - adds r3, r2, r5\n\ - ldrb r1, [r3, 0x5]\n\ - movs r0, 0xF\n\ - ands r0, r1\n\ - mov r7, r8\n\ - orrs r0, r7\n\ - movs r1, 0xD\n\ - negs r1, r1\n\ - ands r0, r1\n\ - movs r1, 0x4\n\ - orrs r0, r1\n\ - strb r0, [r3, 0x5]\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - strh r0, [r3, 0x30]\n\ - movs r0, 0x3E\n\ - adds r0, r3\n\ - mov r8, r0\n\ - ldrb r0, [r0]\n\ - orrs r0, r1\n\ - mov r1, r8\n\ - strb r0, [r1]\n\ - adds r0, r5, 0\n\ - adds r0, 0x1C\n\ - adds r2, r0\n\ - ldr r0, _08145804 @ =spritecb_81454E0\n\ - str r0, [r2]\n\ - ldr r0, _08145808 @ =gSpriteTemplate_840CAEC\n\ - movs r2, 0x20\n\ - ldrsh r1, [r3, r2]\n\ - movs r7, 0x22\n\ - ldrsh r2, [r3, r7]\n\ - movs r3, 0x1\n\ - bl CreateSprite\n\ - adds r1, r0, 0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r5\n\ - strh r4, [r0, 0x2E]\n\ - adds r1, r6, 0\n\ - bl StartSpriteAnimIfDifferent\n\ - adds r0, r4, 0\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + lsls r0, r6, 3\n\ + ldr r1, _081457EC @ =gMonFrontPicTable\n\ + adds r0, r1\n\ + ldr r1, _081457F0 @ =gMonFrontPicCoords\n\ + lsls r2, r6, 2\n\ + adds r2, r1\n\ + ldrb r1, [r2]\n\ + ldrb r2, [r2, 0x1]\n\ + movs r3, 0x80\n\ + lsls r3, 18\n\ + ldr r4, _081457F4 @ =gUnknown_0840B5A0\n\ + mov r8, r4\n\ + mov r5, r9\n\ + lsls r4, r5, 2\n\ + add r4, r8\n\ + ldr r4, [r4]\n\ + str r4, [sp]\n\ + str r6, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r4, 0x1\n\ + str r4, [sp, 0xC]\n\ + bl LoadSpecialPokePic\n\ + ldr r2, _081457F8 @ =0x0000ffff\n\ + adds r0, r6, 0\n\ + movs r1, 0\n\ + bl species_and_otid_get_pal\n\ + lsls r5, 4\n\ + mov r8, r5\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + add r1, r8\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ + mov r7, r9\n\ + lsls r6, r7, 24\n\ + lsrs r6, 24\n\ + mov r0, r9\n\ + adds r1, r6, 0\n\ + bl sub_8143648\n\ + ldr r0, _081457FC @ =gUnknown_02024E8C\n\ + mov r2, r10\n\ + lsls r1, r2, 16\n\ + asrs r1, 16\n\ + ldr r3, [sp, 0x10]\n\ + lsls r2, r3, 16\n\ + asrs r2, 16\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + adds r4, r0, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r5, _08145800 @ =gSprites\n\ + lsls r2, r4, 4\n\ + adds r2, r4\n\ + lsls r2, 2\n\ + adds r3, r2, r5\n\ + ldrb r1, [r3, 0x5]\n\ + movs r0, 0xF\n\ + ands r0, r1\n\ + mov r7, r8\n\ + orrs r0, r7\n\ + movs r1, 0xD\n\ + negs r1, r1\n\ + ands r0, r1\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + strb r0, [r3, 0x5]\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + strh r0, [r3, 0x30]\n\ + movs r0, 0x3E\n\ + adds r0, r3\n\ + mov r8, r0\n\ + ldrb r0, [r0]\n\ + orrs r0, r1\n\ + mov r1, r8\n\ + strb r0, [r1]\n\ + adds r0, r5, 0\n\ + adds r0, 0x1C\n\ + adds r2, r0\n\ + ldr r0, _08145804 @ =spritecb_81454E0\n\ + str r0, [r2]\n\ + ldr r0, _08145808 @ =gSpriteTemplate_840CAEC\n\ + movs r2, 0x20\n\ + ldrsh r1, [r3, r2]\n\ + movs r7, 0x22\n\ + ldrsh r2, [r3, r7]\n\ + movs r3, 0x1\n\ + bl CreateSprite\n\ + adds r1, r0, 0\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r5\n\ + strh r4, [r0, 0x2E]\n\ + adds r1, r6, 0\n\ + bl StartSpriteAnimIfDifferent\n\ + adds r0, r4, 0\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _081457E8: .4byte gSaveBlock2\n\ _081457EC: .4byte gMonFrontPicTable\n\ _081457F0: .4byte gMonFrontPicCoords\n\ @@ -2265,219 +2265,219 @@ __attribute__((naked)) void sub_81458DC(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - ldr r7, _0814597C @ =0x0201c000\n\ - ldr r0, _08145980 @ =0x00004023\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - bl GetStarterPokemon\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - bl SpeciesToNationalPokedexNum\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r10, r0\n\ - movs r4, 0x1\n\ - movs r5, 0\n\ - ldr r0, _08145984 @ =0x00000181\n\ - mov r8, r0\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + ldr r7, _0814597C @ =0x0201c000\n\ + ldr r0, _08145980 @ =0x00004023\n\ + bl VarGet\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + bl GetStarterPokemon\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + bl SpeciesToNationalPokedexNum\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r10, r0\n\ + movs r4, 0x1\n\ + movs r5, 0\n\ + ldr r0, _08145984 @ =0x00000181\n\ + mov r8, r0\n\ _0814590E:\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_8090D90\n\ - lsls r0, 24\n\ - adds r6, r7, 0\n\ - adds r6, 0x90\n\ - cmp r0, 0\n\ - beq _0814592C\n\ - lsls r0, r5, 1\n\ - adds r0, r6, r0\n\ - strh r4, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ + adds r0, r4, 0\n\ + movs r1, 0x1\n\ + bl sub_8090D90\n\ + lsls r0, 24\n\ + adds r6, r7, 0\n\ + adds r6, 0x90\n\ + cmp r0, 0\n\ + beq _0814592C\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + strh r4, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ _0814592C:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, r8\n\ - bls _0814590E\n\ - adds r4, r5, 0\n\ - ldr r0, _08145984 @ =0x00000181\n\ - lsls r1, r4, 16\n\ - mov r9, r1\n\ - movs r2, 0x8E\n\ - adds r2, r7\n\ - mov r8, r2\n\ - adds r1, r7, 0\n\ - adds r1, 0x86\n\ - str r1, [sp]\n\ - cmp r4, r0\n\ - bhi _08145964\n\ - adds r1, r6, 0\n\ - movs r3, 0\n\ - adds r2, r0, 0\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, r8\n\ + bls _0814590E\n\ + adds r4, r5, 0\n\ + ldr r0, _08145984 @ =0x00000181\n\ + lsls r1, r4, 16\n\ + mov r9, r1\n\ + movs r2, 0x8E\n\ + adds r2, r7\n\ + mov r8, r2\n\ + adds r1, r7, 0\n\ + adds r1, 0x86\n\ + str r1, [sp]\n\ + cmp r4, r0\n\ + bhi _08145964\n\ + adds r1, r6, 0\n\ + movs r3, 0\n\ + adds r2, r0, 0\n\ _08145954:\n\ - lsls r0, r4, 1\n\ - adds r0, r1, r0\n\ - strh r3, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, r2\n\ - bls _08145954\n\ + lsls r0, r4, 1\n\ + adds r0, r1, r0\n\ + strh r3, [r0]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, r2\n\ + bls _08145954\n\ _08145964:\n\ - movs r2, 0xE5\n\ - lsls r2, 2\n\ - adds r0, r7, r2\n\ - strh r5, [r0]\n\ - mov r1, r9\n\ - lsrs r0, r1, 16\n\ - cmp r0, 0x43\n\ - bhi _08145988\n\ - mov r2, r8\n\ - strh r5, [r2]\n\ - b _0814598E\n\ - .align 2, 0\n\ + movs r2, 0xE5\n\ + lsls r2, 2\n\ + adds r0, r7, r2\n\ + strh r5, [r0]\n\ + mov r1, r9\n\ + lsrs r0, r1, 16\n\ + cmp r0, 0x43\n\ + bhi _08145988\n\ + mov r2, r8\n\ + strh r5, [r2]\n\ + b _0814598E\n\ + .align 2, 0\n\ _0814597C: .4byte 0x0201c000\n\ _08145980: .4byte 0x00004023\n\ _08145984: .4byte 0x00000181\n\ _08145988:\n\ - movs r0, 0x44\n\ - mov r1, r8\n\ - strh r0, [r1]\n\ + movs r0, 0x44\n\ + mov r1, r8\n\ + strh r0, [r1]\n\ _0814598E:\n\ - movs r5, 0\n\ - movs r2, 0xE5\n\ - lsls r2, 2\n\ - adds r4, r7, r2\n\ - mov r9, r5\n\ - b _0814599E\n\ + movs r5, 0\n\ + movs r2, 0xE5\n\ + lsls r2, 2\n\ + adds r4, r7, r2\n\ + mov r9, r5\n\ + b _0814599E\n\ _0814599A:\n\ - cmp r5, 0x43\n\ - bhi _081459EE\n\ + cmp r5, 0x43\n\ + bhi _081459EE\n\ _0814599E:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - ldrh r1, [r4]\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - lsls r1, r5, 1\n\ - adds r1, r7, r1\n\ - lsls r0, r2, 1\n\ - adds r3, r6, r0\n\ - ldrh r0, [r3]\n\ - strh r0, [r1]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - mov r0, r9\n\ - strh r0, [r3]\n\ - ldrh r0, [r4]\n\ - subs r0, 0x1\n\ - strh r0, [r4]\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r2, r0\n\ - beq _081459E8\n\ - ldrh r0, [r4]\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - ldrh r0, [r0]\n\ - strh r0, [r3]\n\ - ldrh r0, [r4]\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - mov r1, r9\n\ - strh r1, [r0]\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + ldrh r1, [r4]\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + lsls r1, r5, 1\n\ + adds r1, r7, r1\n\ + lsls r0, r2, 1\n\ + adds r3, r6, r0\n\ + ldrh r0, [r3]\n\ + strh r0, [r1]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + mov r0, r9\n\ + strh r0, [r3]\n\ + ldrh r0, [r4]\n\ + subs r0, 0x1\n\ + strh r0, [r4]\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r2, r0\n\ + beq _081459E8\n\ + ldrh r0, [r4]\n\ + lsls r0, 1\n\ + adds r0, r6, r0\n\ + ldrh r0, [r0]\n\ + strh r0, [r3]\n\ + ldrh r0, [r4]\n\ + lsls r0, 1\n\ + adds r0, r6, r0\n\ + mov r1, r9\n\ + strh r1, [r0]\n\ _081459E8:\n\ - ldrh r0, [r4]\n\ - cmp r0, 0\n\ - bne _0814599A\n\ + ldrh r0, [r4]\n\ + cmp r0, 0\n\ + bne _0814599A\n\ _081459EE:\n\ - mov r2, r8\n\ - ldrh r0, [r2]\n\ - cmp r0, 0x43\n\ - bhi _08145A26\n\ - adds r5, r0, 0\n\ - movs r2, 0\n\ - cmp r5, 0x43\n\ - bhi _08145A5C\n\ - mov r3, r8\n\ + mov r2, r8\n\ + ldrh r0, [r2]\n\ + cmp r0, 0x43\n\ + bhi _08145A26\n\ + adds r5, r0, 0\n\ + movs r2, 0\n\ + cmp r5, 0x43\n\ + bhi _08145A5C\n\ + mov r3, r8\n\ _08145A00:\n\ - lsls r1, r5, 1\n\ - adds r1, r7, r1\n\ - lsls r0, r2, 1\n\ - adds r0, r7, r0\n\ - ldrh r0, [r0]\n\ - strh r0, [r1]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - ldrh r0, [r3]\n\ - cmp r2, r0\n\ - bne _08145A1A\n\ - movs r2, 0\n\ + lsls r1, r5, 1\n\ + adds r1, r7, r1\n\ + lsls r0, r2, 1\n\ + adds r0, r7, r0\n\ + ldrh r0, [r0]\n\ + strh r0, [r1]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + ldrh r0, [r3]\n\ + cmp r2, r0\n\ + bne _08145A1A\n\ + movs r2, 0\n\ _08145A1A:\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, 0x43\n\ - bls _08145A00\n\ - b _08145A5C\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, 0x43\n\ + bls _08145A00\n\ + b _08145A5C\n\ _08145A26:\n\ - movs r4, 0\n\ - ldrh r0, [r7]\n\ - cmp r0, r10\n\ - beq _08145A42\n\ + movs r4, 0\n\ + ldrh r0, [r7]\n\ + cmp r0, r10\n\ + beq _08145A42\n\ _08145A2E:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - lsls r0, r4, 1\n\ - adds r0, r7, r0\n\ - ldrh r0, [r0]\n\ - cmp r0, r10\n\ - beq _08145A42\n\ - cmp r4, 0x43\n\ - bls _08145A2E\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + lsls r0, r4, 1\n\ + adds r0, r7, r0\n\ + ldrh r0, [r0]\n\ + cmp r0, r10\n\ + beq _08145A42\n\ + cmp r4, 0x43\n\ + bls _08145A2E\n\ _08145A42:\n\ - mov r1, r8\n\ - ldrh r0, [r1]\n\ - subs r0, 0x1\n\ - cmp r4, r0\n\ - bge _08145A5C\n\ - lsls r0, r4, 1\n\ - adds r0, r7, r0\n\ - ldr r2, [sp]\n\ - ldrh r1, [r2]\n\ - strh r1, [r0]\n\ - mov r0, r10\n\ - strh r0, [r2]\n\ - b _08145A62\n\ + mov r1, r8\n\ + ldrh r0, [r1]\n\ + subs r0, 0x1\n\ + cmp r4, r0\n\ + bge _08145A5C\n\ + lsls r0, r4, 1\n\ + adds r0, r7, r0\n\ + ldr r2, [sp]\n\ + ldrh r1, [r2]\n\ + strh r1, [r0]\n\ + mov r0, r10\n\ + strh r0, [r2]\n\ + b _08145A62\n\ _08145A5C:\n\ - mov r2, r10\n\ - ldr r1, [sp]\n\ - strh r2, [r1]\n\ + mov r2, r10\n\ + ldr r1, [sp]\n\ + strh r2, [r1]\n\ _08145A62:\n\ - movs r0, 0x44\n\ - mov r1, r8\n\ - strh r0, [r1]\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ + movs r0, 0x44\n\ + mov r1, r8\n\ + strh r0, [r1]\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } diff --git a/src/decompress.c b/src/decompress.c index 5906491c6..fb91ebd67 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -74,7 +74,7 @@ void HandleLoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 { u32 frontOrBack; - // gUnknown_081FAF4C appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front. + // gUnknown_081FAF4C appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front. if (dest == gUnknown_081FAF4C[0] || dest == gUnknown_081FAF4C[2]) frontOrBack = 0; // backPic else @@ -91,7 +91,7 @@ void LoadSpecialPokePic(const struct SpriteSheet *spriteSheet, u32 b, u32 c, u32 { u16 i = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C; - // if it is Unown A, set the index to where Unown begins, otherwise add the egg index to get the correct letter to load. + // if it is Unown A, set the index to where Unown begins, otherwise add the egg index to get the correct letter to load. if (i == 0) i = SPECIES_UNOWN; else diff --git a/src/dewford_trend.c b/src/dewford_trend.c index babdea45a..751d6c416 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -107,173 +107,173 @@ __attribute__((naked)) void sub_80FA220(u16 a) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - lsls r0, 16\n\ - lsrs r1, r0, 16\n\ - cmp r1, 0\n\ - bne _080FA236\n\ - b _080FA34E\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + lsls r0, 16\n\ + lsrs r1, r0, 16\n\ + cmp r1, 0\n\ + bne _080FA236\n\ + b _080FA34E\n\ _080FA236:\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - mov r10, r0\n\ - movs r1, 0x7F\n\ - mov r9, r1\n\ - movs r2, 0x80\n\ - negs r2, r2\n\ - mov r8, r2\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + mov r10, r0\n\ + movs r1, 0x7F\n\ + mov r9, r1\n\ + movs r2, 0x80\n\ + negs r2, r2\n\ + mov r8, r2\n\ _080FA24A:\n\ - ldr r2, [sp]\n\ - mov r4, r10\n\ - lsls r0, r4, 3\n\ - ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4\n\ - adds r5, r0, r1\n\ - ldrb r6, [r5, 0x1]\n\ - movs r0, 0x40\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - bne _080FA2A0\n\ - ldrb r4, [r5]\n\ - lsls r3, r4, 25\n\ - lsrs r1, r3, 25\n\ - lsls r0, r2, 16\n\ - lsrs r0, 16\n\ - cmp r1, r0\n\ - bcc _080FA290\n\ - adds r0, r1, 0\n\ - subs r0, r2\n\ - mov r2, r9\n\ - ands r0, r2\n\ - mov r1, r8\n\ - ands r1, r4\n\ - orrs r1, r0\n\ - strb r1, [r5]\n\ - movs r0, 0x7F\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _080FA336\n\ - movs r0, 0x40\n\ - orrs r0, r6\n\ - b _080FA334\n\ - .align 2, 0\n\ + ldr r2, [sp]\n\ + mov r4, r10\n\ + lsls r0, r4, 3\n\ + ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4\n\ + adds r5, r0, r1\n\ + ldrb r6, [r5, 0x1]\n\ + movs r0, 0x40\n\ + ands r0, r6\n\ + cmp r0, 0\n\ + bne _080FA2A0\n\ + ldrb r4, [r5]\n\ + lsls r3, r4, 25\n\ + lsrs r1, r3, 25\n\ + lsls r0, r2, 16\n\ + lsrs r0, 16\n\ + cmp r1, r0\n\ + bcc _080FA290\n\ + adds r0, r1, 0\n\ + subs r0, r2\n\ + mov r2, r9\n\ + ands r0, r2\n\ + mov r1, r8\n\ + ands r1, r4\n\ + orrs r1, r0\n\ + strb r1, [r5]\n\ + movs r0, 0x7F\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _080FA336\n\ + movs r0, 0x40\n\ + orrs r0, r6\n\ + b _080FA334\n\ + .align 2, 0\n\ _080FA28C: .4byte gSaveBlock1 + 0x2DD4\n\ _080FA290:\n\ - lsrs r0, r3, 25\n\ - subs r2, r0\n\ - mov r0, r8\n\ - ands r0, r4\n\ - strb r0, [r5]\n\ - movs r0, 0x40\n\ - orrs r0, r6\n\ - strb r0, [r5, 0x1]\n\ + lsrs r0, r3, 25\n\ + subs r2, r0\n\ + mov r0, r8\n\ + ands r0, r4\n\ + strb r0, [r5]\n\ + movs r0, 0x40\n\ + orrs r0, r6\n\ + strb r0, [r5, 0x1]\n\ _080FA2A0:\n\ - ldrb r7, [r5]\n\ - lsls r0, r7, 25\n\ - lsrs r0, 25\n\ - adds r4, r0, r2\n\ - ldrh r0, [r5]\n\ - lsls r6, r0, 18\n\ - lsls r0, r4, 16\n\ - lsrs r0, 16\n\ - lsrs r1, r6, 25\n\ - cmp r0, r1\n\ - bls _080FA310\n\ - adds r0, r4, 0\n\ - bl __umodsi3\n\ - adds r3, r0, 0\n\ - lsrs r1, r6, 25\n\ - adds r0, r4, 0\n\ - str r3, [sp, 0x4]\n\ - bl __udivsi3\n\ - adds r4, r0, 0\n\ - movs r0, 0x1\n\ - eors r4, r0\n\ - ands r4, r0\n\ - lsls r2, r4, 6\n\ - ldrb r0, [r5, 0x1]\n\ - movs r4, 0x41\n\ - negs r4, r4\n\ - adds r1, r4, 0\n\ - ands r0, r1\n\ - orrs r0, r2\n\ - strb r0, [r5, 0x1]\n\ - movs r1, 0x40\n\ - ands r0, r1\n\ - ldr r3, [sp, 0x4]\n\ - cmp r0, 0\n\ - beq _080FA2FA\n\ - adds r1, r3, 0\n\ - mov r0, r9\n\ - ands r1, r0\n\ - mov r0, r8\n\ - ands r0, r7\n\ - orrs r0, r1\n\ - strb r0, [r5]\n\ - b _080FA336\n\ + ldrb r7, [r5]\n\ + lsls r0, r7, 25\n\ + lsrs r0, 25\n\ + adds r4, r0, r2\n\ + ldrh r0, [r5]\n\ + lsls r6, r0, 18\n\ + lsls r0, r4, 16\n\ + lsrs r0, 16\n\ + lsrs r1, r6, 25\n\ + cmp r0, r1\n\ + bls _080FA310\n\ + adds r0, r4, 0\n\ + bl __umodsi3\n\ + adds r3, r0, 0\n\ + lsrs r1, r6, 25\n\ + adds r0, r4, 0\n\ + str r3, [sp, 0x4]\n\ + bl __udivsi3\n\ + adds r4, r0, 0\n\ + movs r0, 0x1\n\ + eors r4, r0\n\ + ands r4, r0\n\ + lsls r2, r4, 6\n\ + ldrb r0, [r5, 0x1]\n\ + movs r4, 0x41\n\ + negs r4, r4\n\ + adds r1, r4, 0\n\ + ands r0, r1\n\ + orrs r0, r2\n\ + strb r0, [r5, 0x1]\n\ + movs r1, 0x40\n\ + ands r0, r1\n\ + ldr r3, [sp, 0x4]\n\ + cmp r0, 0\n\ + beq _080FA2FA\n\ + adds r1, r3, 0\n\ + mov r0, r9\n\ + ands r1, r0\n\ + mov r0, r8\n\ + ands r0, r7\n\ + orrs r0, r1\n\ + strb r0, [r5]\n\ + b _080FA336\n\ _080FA2FA:\n\ - ldrh r0, [r5]\n\ - lsls r0, 18\n\ - lsrs r0, 25\n\ - subs r0, r3\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r8\n\ - ands r1, r7\n\ - orrs r1, r0\n\ - strb r1, [r5]\n\ - b _080FA336\n\ + ldrh r0, [r5]\n\ + lsls r0, 18\n\ + lsrs r0, 25\n\ + subs r0, r3\n\ + mov r1, r9\n\ + ands r0, r1\n\ + mov r1, r8\n\ + ands r1, r7\n\ + orrs r1, r0\n\ + strb r1, [r5]\n\ + b _080FA336\n\ _080FA310:\n\ - mov r2, r9\n\ - ands r4, r2\n\ - mov r0, r8\n\ - ands r0, r7\n\ - orrs r0, r4\n\ - strb r0, [r5]\n\ - lsls r0, 25\n\ - ldrh r1, [r5]\n\ - lsls r1, 18\n\ - lsrs r0, 25\n\ - lsrs r1, 25\n\ - cmp r0, r1\n\ - bne _080FA336\n\ - ldrb r0, [r5, 0x1]\n\ - movs r4, 0x41\n\ - negs r4, r4\n\ - adds r1, r4, 0\n\ - ands r0, r1\n\ + mov r2, r9\n\ + ands r4, r2\n\ + mov r0, r8\n\ + ands r0, r7\n\ + orrs r0, r4\n\ + strb r0, [r5]\n\ + lsls r0, 25\n\ + ldrh r1, [r5]\n\ + lsls r1, 18\n\ + lsrs r0, 25\n\ + lsrs r1, 25\n\ + cmp r0, r1\n\ + bne _080FA336\n\ + ldrb r0, [r5, 0x1]\n\ + movs r4, 0x41\n\ + negs r4, r4\n\ + adds r1, r4, 0\n\ + ands r0, r1\n\ _080FA334:\n\ - strb r0, [r5, 0x1]\n\ + strb r0, [r5, 0x1]\n\ _080FA336:\n\ - mov r0, r10\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r10, r0\n\ - cmp r0, 0x4\n\ - bls _080FA24A\n\ - ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4\n\ - movs r1, 0x5\n\ - movs r2, 0\n\ - bl sub_80FA46C\n\ + mov r0, r10\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r10, r0\n\ + cmp r0, 0x4\n\ + bls _080FA24A\n\ + ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4\n\ + movs r1, 0x5\n\ + movs r2, 0\n\ + bl sub_80FA46C\n\ _080FA34E:\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0x8\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080FA360: .4byte gSaveBlock1 + 0x2DD4\n\ - .syntax divided\n"); + .syntax divided\n"); } #endif diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 6f36ddb0f..992e461eb 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -16,8 +16,8 @@ struct Coords32 { - s32 x; - s32 y; + s32 x; + s32 y; }; extern const struct Coords32 gUnknown_0821664C[]; @@ -137,7 +137,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) if ((r6 == 2 && forcedMove == FALSE) || r6 == 0) { - if (sub_80E6034() != 4) + if (GetPlayerSpeed() != 4) { if (newKeys & START_BUTTON) input->pressedStartButton = TRUE; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 4a96187c1..e4c3b78c9 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -489,7 +489,7 @@ u8 ForcedMovement_MuddySlope(void) { struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; - if (playerMapObj->placeholder18 != 2 || sub_80E6034() <= 3) + if (playerMapObj->placeholder18 != 2 || GetPlayerSpeed() <= 3) { sub_80E6010(0); playerMapObj->mapobj_bit_9 = 1; @@ -555,7 +555,7 @@ void sub_8058D0C(u8 direction, u16 heldKeys) return; } if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (heldKeys & B_BUTTON) && FlagGet(SYS_B_DASH) - && sub_80E5DEC(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E) == 0) + && IsRunningDisallowed(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E) == 0) { sub_805940C(direction); gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_DASH; diff --git a/src/heal_location.c b/src/heal_location.c index a780ee470..42bc18567 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -1,9 +1,34 @@ #include "global.h" #include "heal_location.h" +#include "map_constants.h" #define NUM_HEAL_LOCATIONS 22 -extern const struct HealLocation gHealLocations[]; +static const struct HealLocation sHealLocations[] = +{ + {MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, 4, 2}, + {MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F, MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, 4, 2}, + {MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, 20, 17}, + {MAP_GROUP_SLATEPORT_CITY, MAP_ID_SLATEPORT_CITY, 19, 20}, + {MAP_GROUP_MAUVILLE_CITY, MAP_ID_MAUVILLE_CITY, 22, 6}, + {MAP_GROUP_RUSTBORO_CITY, MAP_ID_RUSTBORO_CITY, 16, 39}, + {MAP_GROUP_FORTREE_CITY, MAP_ID_FORTREE_CITY, 5, 7}, + {MAP_GROUP_LILYCOVE_CITY, MAP_ID_LILYCOVE_CITY, 24, 15}, + {MAP_GROUP_MOSSDEEP_CITY, MAP_ID_MOSSDEEP_CITY, 28, 17}, + {MAP_GROUP_SOOTOPOLIS_CITY, MAP_ID_SOOTOPOLIS_CITY, 43, 32}, + {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 27, 49}, + {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 5, 9}, + {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 14, 9}, + {MAP_GROUP_OLDALE_TOWN, MAP_ID_OLDALE_TOWN, 6, 17}, + {MAP_GROUP_DEWFORD_TOWN, MAP_ID_DEWFORD_TOWN, 2, 11}, + {MAP_GROUP_LAVARIDGE_TOWN, MAP_ID_LAVARIDGE_TOWN, 9, 7}, + {MAP_GROUP_FALLARBOR_TOWN, MAP_ID_FALLARBOR_TOWN, 14, 8}, + {MAP_GROUP_VERDANTURF_TOWN, MAP_ID_VERDANTURF_TOWN, 16, 4}, + {MAP_GROUP_PACIFIDLOG_TOWN, MAP_ID_PACIFIDLOG_TOWN, 8, 16}, + {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 18, 6}, + {MAP_GROUP_BATTLE_TOWER_OUTSIDE, MAP_ID_BATTLE_TOWER_OUTSIDE, 14, 9}, + {MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR, MAP_ID_SOUTHERN_ISLAND_EXTERIOR, 15, 20}, +}; u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) { @@ -11,7 +36,7 @@ u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) for (i = 0; i < NUM_HEAL_LOCATIONS; i++) { - if (gHealLocations[i].group == mapGroup && gHealLocations[i].map == mapNum) + if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum) return i + 1; } return 0; @@ -24,7 +49,7 @@ const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum) if (index == 0) return NULL; else - return &gHealLocations[index - 1]; + return &sHealLocations[index - 1]; } const struct HealLocation *GetHealLocation(u32 index) @@ -34,5 +59,5 @@ const struct HealLocation *GetHealLocation(u32 index) else if (index > NUM_HEAL_LOCATIONS) return NULL; else - return &gHealLocations[index - 1]; + return &sHealLocations[index - 1]; } diff --git a/src/intro.c b/src/intro.c index e2fcf3a1c..72478b773 100644 --- a/src/intro.c +++ b/src/intro.c @@ -33,7 +33,6 @@ extern u16 gUnknown_02039318; extern u16 gUnknown_0203931A; extern u16 gUnknown_02039358; extern u16 gUnknown_0203935A; - extern u32 gIntroFrameCounter; extern struct GcmbStruct gUnknown_03005EE0; extern u16 gSaveFileStatus; @@ -45,64 +44,735 @@ extern struct MonCoords gMonBackPicCoords[]; extern struct SpriteSheet gTrainerBackPicTable[]; extern struct MonCoords gTrainerBackPicCoords[]; extern struct SpritePalette gTrainerBackPicPaletteTable[]; - -extern const u16 gIntro1BGPals[]; -extern const u8 gIntro1BG0_Tilemap[]; -extern const u8 gIntro1BG1_Tilemap[]; -extern const u8 gIntro1BG2_Tilemap[]; -extern const u8 gIntro1BG3_Tilemap[]; -extern const u8 gIntro1BGLeavesGfx[]; -extern const u8 gIntro3PokeballPal[]; -extern const u8 gIntro3Pokeball_Tilemap[]; -extern const u8 gIntro3Pokeball_Gfx[]; -extern const u16 gIntro3Streaks_Pal[]; -extern const u8 gIntro3Streaks_Gfx[]; -extern const u8 gIntro3Streaks_Tilemap[]; -extern union AnimCmd *gUnknown_0840AE80[]; -extern const struct SpriteTemplate gSpriteTemplate_840AFF0; -extern const struct SpriteSheet gUnknown_0840B008; -extern const struct SpriteSheet gUnknown_0840B018; -extern const struct SpritePalette gUnknown_0840B028[]; -extern const struct SpriteTemplate gSpriteTemplate_840B1F4; -extern const struct SpriteSheet gIntro3PokeballGfx_Table; -extern const struct SpriteSheet gIntro3MiscGfx_Table; -extern const struct SpritePalette gInterfacePokeballPal_Table; -extern const struct SpritePalette gIntro3MiscPal_Table[]; +extern const u8 gInterfaceGfx_PokeBall[]; +extern const u16 gInterfacePal_PokeBall[]; extern const struct SpriteSheet gIntro2BrendanSpriteSheet; extern const struct SpriteSheet gIntro2MaySpriteSheet; extern const struct SpriteSheet gIntro2BicycleSpriteSheet; extern const struct SpriteSheet gIntro2LatiosSpriteSheet; extern const struct SpriteSheet gIntro2LatiasSpriteSheet; extern const struct SpritePalette gIntro2SpritePalettes[]; - -extern const struct SpriteTemplate gSpriteTemplate_840AE20; - extern const u8 gIntroCopyright_Gfx[]; extern const u16 gIntroCopyright_Pal[]; extern const u16 gIntroCopyright_Tilemap[]; - extern const u16 gUnknown_08393E64[]; -extern const s16 gUnknown_0840AF50[][2]; -extern const s16 gUnknown_0840AF74[][2]; -extern const struct SpriteTemplate gSpriteTemplate_840AF94; -extern const struct SpriteTemplate gSpriteTemplate_840AFAC; -extern const struct SpriteTemplate gSpriteTemplate_840AFC4; -extern union AnimCmd *gUnknown_0840B064[]; -extern const struct SpriteTemplate gSpriteTemplate_840B084; -extern const struct SpriteTemplate gSpriteTemplate_840B0B0; -extern const struct SpriteTemplate gSpriteTemplate_840B0DC; -extern const struct SpriteTemplate gSpriteTemplate_840B0F4; -extern const struct SpriteTemplate gSpriteTemplate_840B124; -extern const struct SpriteTemplate gSpriteTemplate_840B150; -extern const u8 gUnknown_0840B168[]; -extern const struct SpriteTemplate gSpriteTemplate_840B170; -extern const u16 gUnknown_0840B188[]; -extern const struct SpriteTemplate gSpriteTemplate_840B1B0; -extern const struct SpriteTemplate gSpriteTemplate_840B1C8; -extern void *gUnknown_0840B5A0[]; - +extern void *const gUnknown_0840B5A0[]; extern const s16 gSineTable[]; +//-------------------------------------------------- +// Graphics Data +//-------------------------------------------------- + +static const u16 Palette_406340[] = INCBIN_U16("graphics/intro/unknown1.gbapal"); +static const u16 Palette_406360[] = INCBIN_U16("graphics/intro/unknown2.gbapal"); +static const u8 gIntroTiles[] = INCBIN_U8("graphics/intro/intro.4bpp.lz"); +static const u16 gIntro1BGPals[][16] = +{ + INCBIN_U16("graphics/intro/intro1_bgpal1.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal2.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal3.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal4.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal5.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal6.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal7.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal8.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal9.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal10.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal11.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal12.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal13.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal14.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal15.gbapal"), + INCBIN_U16("graphics/intro/intro1_bgpal16.gbapal"), +}; +static const u8 gIntro1BG0_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg0_map.bin.lz"); +static const u8 gIntro1BG1_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg1_map.bin.lz"); +static const u8 gIntro1BG2_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg2_map.bin.lz"); +static const u8 gIntro1BG3_Tilemap[] = INCBIN_U8("graphics/intro/intro1_bg3_map.bin.lz"); +static const u8 gIntro1BGLeavesGfx[] = INCBIN_U8("graphics/intro/introgfx.4bpp.lz"); +static const u16 gIntro3PokeballPal[] = INCBIN_U16("graphics/intro/intro3_pokeball.gbapal"); +static const u8 gIntro3Pokeball_Tilemap[] = INCBIN_U8("graphics/intro/intro3_pokeball_map.bin.lz"); +static const u8 gIntro3Pokeball_Gfx[] = INCBIN_U8("graphics/intro/intro3_pokeball.8bpp.lz"); +static const u16 gIntro3Streaks_Pal[] = INCBIN_U16("graphics/intro/intro3_streaks.gbapal"); +static const u8 gIntro3Streaks_Gfx[] = INCBIN_U8("graphics/intro/intro3_streaks.4bpp.lz"); +static const u8 gIntro3Streaks_Tilemap[] = INCBIN_U8("graphics/intro/intro3_streaks_map.bin.lz"); +static const u16 gIntro3Misc1Palette[] = INCBIN_U16("graphics/intro/intro3_misc1.gbapal"); +static const u16 gIntro3Misc2Palette[] = INCBIN_U16("graphics/intro/intro3_misc2.gbapal"); +static const u8 gIntro3MiscTiles[] = INCBIN_U8("graphics/intro/intro3_misc.4bpp.lz"); +static const u16 gIntro1EonPalette[] = INCBIN_U16("graphics/intro/intro1_eon.gbapal"); +static const u8 gIntro1EonTiles[] = INCBIN_U8("graphics/intro/intro1_eon.4bpp.lz"); +static const struct OamData gOamData_840ADE8 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840ADF0[] = +{ + ANIMCMD_FRAME(16, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840ADF8[] = +{ + ANIMCMD_FRAME(24, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AE00[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AE08[] = +{ + ANIMCMD_FRAME(48, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840AE10[] = +{ + gSpriteAnim_840ADF0, + gSpriteAnim_840ADF8, + gSpriteAnim_840AE00, + gSpriteAnim_840AE08, +}; +static void sub_813D208(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840AE20 = +{ + .tileTag = 2000, + .paletteTag = 2000, + .oam = &gOamData_840ADE8, + .anims = gSpriteAnimTable_840AE10, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D208, +}; +static const union AnimCmd Unknown_40AE38[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(128, 4), + ANIMCMD_FRAME(192, 4), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd Unknown_40AE4C[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(64, 8), + ANIMCMD_FRAME(128, 8), + ANIMCMD_FRAME(192, 8), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd Unknown_40AE60[] = +{ + ANIMCMD_FRAME(256, 4), + ANIMCMD_FRAME(0x140, 4), + ANIMCMD_FRAME(0x180, 4), + ANIMCMD_END, +}; +static const union AnimCmd Unknown_40AE70[] = +{ + ANIMCMD_FRAME(0x180, 16), + ANIMCMD_FRAME(0x140, 16), + ANIMCMD_FRAME(256, 16), + ANIMCMD_END, +}; +static const union AnimCmd *const gUnknown_0840AE80[] = +{ + Unknown_40AE38, + Unknown_40AE4C, + Unknown_40AE60, + Unknown_40AE70, +}; +static const struct OamData gOamData_840AE90 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_840AE98 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_840AEA0 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840AEA8[] = +{ + ANIMCMD_FRAME(80, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEB0[] = +{ + ANIMCMD_FRAME(84, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEB8[] = +{ + ANIMCMD_FRAME(88, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEC0[] = +{ + ANIMCMD_FRAME(92, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEC8[] = +{ + ANIMCMD_FRAME(96, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AED0[] = +{ + ANIMCMD_FRAME(100, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AED8[] = +{ + ANIMCMD_FRAME(104, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEE0[] = +{ + ANIMCMD_FRAME(112, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEE8[] = +{ + ANIMCMD_FRAME(113, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEF0[] = +{ + ANIMCMD_FRAME(114, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AEF8[] = +{ + ANIMCMD_FRAME(115, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AF00[] = +{ + ANIMCMD_FRAME(116, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AF08[] = +{ + ANIMCMD_FRAME(117, 8), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_840AF10[] = +{ + ANIMCMD_FRAME(128, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840AF18[] = +{ + gSpriteAnim_840AEA8, + gSpriteAnim_840AEB0, + gSpriteAnim_840AEB8, + gSpriteAnim_840AEC0, + gSpriteAnim_840AEC8, + gSpriteAnim_840AED0, + gSpriteAnim_840AED8, +}; +static const union AnimCmd *const gSpriteAnimTable_840AF34[] = +{ + gSpriteAnim_840AEE0, + gSpriteAnim_840AEE8, + gSpriteAnim_840AEF0, + gSpriteAnim_840AEF8, + gSpriteAnim_840AF00, + gSpriteAnim_840AF08, +}; +static const union AnimCmd *const gSpriteAnimTable_840AF4C[] = +{ + gSpriteAnim_840AF10, +}; +static const s16 gUnknown_0840AF50[][2] = +{ + {0, -72}, + {1, -56}, + {2, -40}, + {3, -24}, + {4, 8}, + {5, 24}, + {3, 40}, + {1, 56}, + {6, 72}, +}; +static const s16 gUnknown_0840AF74[][2] = +{ + {0, -28}, + {1, -20}, + {2, -12}, + {3, -4}, + {2, 4}, + {4, 12}, + {5, 20}, + {3, 28}, +}; +static void sub_813D908(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840AF94 = +{ + .tileTag = 2000, + .paletteTag = 2001, + .oam = &gOamData_840AE90, + .anims = gSpriteAnimTable_840AF18, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D908, +}; +static const struct SpriteTemplate gSpriteTemplate_840AFAC = +{ + .tileTag = 2000, + .paletteTag = 2001, + .oam = &gOamData_840AE98, + .anims = gSpriteAnimTable_840AF34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D908, +}; +static const struct SpriteTemplate gSpriteTemplate_840AFC4 = +{ + .tileTag = 2000, + .paletteTag = 2001, + .oam = &gOamData_840AEA0, + .anims = gSpriteAnimTable_840AF4C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813D908, +}; +static const struct OamData gOamData_840AFDC = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840AFE4[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd *const gSpriteAnimTable_840AFEC[] = +{ + gSpriteAnim_840AFE4, +}; +static void sub_813DA64(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840AFF0 = +{ + .tileTag = 2002, + .paletteTag = 2002, + .oam = &gOamData_840AFDC, + .anims = gSpriteAnimTable_840AFEC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813DA64, +}; +const struct SpriteSheet gUnknown_0840B008[] = +{ + {gIntroTiles, 0x1400, 2000}, + {NULL}, +}; +const struct SpriteSheet gUnknown_0840B018[] = +{ + {gIntro1EonTiles, 0x400, 2002}, + {NULL}, +}; +const struct SpritePalette gUnknown_0840B028[] = +{ + {Palette_406340, 2000}, + {Palette_406360, 2001}, + {gIntro1EonPalette, 2002}, + {NULL}, +}; +static const union AnimCmd gUnknown_0840B048[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; +static const union AnimCmd gUnknown_0840B050[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +static const union AnimCmd gUnknown_0840B058[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gUnknown_0840B064[] = +{ + gUnknown_0840B048, + gUnknown_0840B050, + gUnknown_0840B058, +}; +static const struct OamData gOamData_840B070 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B078[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B080[] = +{ + gSpriteAnim_840B078, +}; +static void sub_813E30C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B084 = +{ + .tileTag = 2002, + .paletteTag = 2002, + .oam = &gOamData_840B070, + .anims = gSpriteAnimTable_840B080, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E30C, +}; +static const struct OamData gOamData_840B09C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B0A4[] = +{ + ANIMCMD_FRAME(1, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B0AC[] = +{ + gSpriteAnim_840B0A4, +}; +static void sub_813E4B8(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B0B0 = +{ + .tileTag = 2003, + .paletteTag = 2003, + .oam = &gOamData_840B09C, + .anims = gSpriteAnimTable_840B0AC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E4B8, +}; +static const struct OamData gOamData_840B0C8 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B0D0[] = +{ + ANIMCMD_FRAME(14, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B0D8[] = +{ + gSpriteAnim_840B0D0, +}; +static void sub_813E5E0(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B0DC = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B0C8, + .anims = gSpriteAnimTable_840B0D8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E5E0, +}; +static void sub_813E6C0(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B0F4 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B0C8, + .anims = gSpriteAnimTable_840B0D8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E6C0, +}; +static const struct OamData gOamData_840B10C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B114[] = +{ + ANIMCMD_FRAME(6, 8), + ANIMCMD_FRAME(6, 8, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd *const gSpriteAnimTable_840B120[] = +{ + gSpriteAnim_840B114, +}; +static void sub_813E804(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B124 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B10C, + .anims = gSpriteAnimTable_840B120, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E804, +}; +static const struct OamData gOamData_840B13C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B144[] = +{ + ANIMCMD_FRAME(10, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B14C[] = +{ + gSpriteAnim_840B144, +}; +static void sub_813E980(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B150 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B13C, + .anims = gSpriteAnimTable_840B14C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813E980, +}; +static const u8 gUnknown_0840B168[] = {0xE6, 0xEB, 0xE4, 0xEA, 0xE5, 0xE9, 0xE7, 0xE8}; +static void sub_813EA60(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B170 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B13C, + .anims = gSpriteAnimTable_840B14C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EA60, +}; +static const u16 gUnknown_0840B188[] = {0x200, 0x1C0, 0x180, 0x140, 0x100, 0xE0, 0xC0, 0xA0, 0x80, 0x80}; +static const struct OamData gOamData_840B19C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B1A4[] = +{ + ANIMCMD_FRAME(2, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B1AC[] = +{ + gSpriteAnim_840B1A4, +}; +static void sub_813EBBC(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B1B0 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B19C, + .anims = gSpriteAnimTable_840B1AC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EBBC, +}; +static void sub_813EC90(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B1C8 = +{ + .tileTag = 2003, + .paletteTag = 2004, + .oam = &gOamData_840B19C, + .anims = gSpriteAnimTable_840B1AC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EC90, +}; +static const struct OamData gOamData_840B1E0 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_840B1E8[] = +{ + ANIMCMD_FRAME(16, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_840B1F0[] = +{ + gSpriteAnim_840B1E8, +}; +static void sub_813EDFC(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_840B1F4 = +{ + .tileTag = 2003, + .paletteTag = 2003, + .oam = &gOamData_840B1E0, + .anims = gSpriteAnimTable_840B1F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813EDFC, +}; +const struct SpriteSheet gIntro3PokeballGfx_Table[] = +{ + {gInterfaceGfx_PokeBall, 0x100, 2002}, + {NULL}, +}; +const struct SpriteSheet gIntro3MiscGfx_Table[] = +{ + {gIntro3MiscTiles, 0xa00, 2003}, + {NULL}, +}; +const struct SpritePalette gInterfacePokeballPal_Table[] = +{ + {gInterfacePal_PokeBall, 2002}, + {NULL}, +}; +const struct SpritePalette gIntro3MiscPal_Table[] = +{ + {gIntro3Misc1Palette, 2003}, + {gIntro3Misc2Palette, 2004}, + {NULL}, +}; +const u32 unusedData = 0x02000000; + static void MainCB2_EndIntro(void); static void Task_IntroLoadPart1Graphics(u8); static void Task_IntroFadeIn(u8); @@ -129,18 +799,18 @@ static void sub_813CCE8(u8); static u16 sub_813CE88(u16, s16, s16, u16, u8); static u8 sub_813CFA8(u16, u16, u16, u16); static void sub_813D084(u8); -void sub_813D220(struct Sprite *); -void sub_813D368(struct Sprite *); -void sub_813D414(struct Sprite *); -void SpriteCB_WaterDropFall(struct Sprite *); +static void sub_813D220(struct Sprite *); +static void sub_813D368(struct Sprite *); +static void sub_813D414(struct Sprite *); +static void SpriteCB_WaterDropFall(struct Sprite *); static u8 CreateWaterDrop(s16, s16, u16, u16, u16, u8); -void sub_813D788(struct Sprite *); -void sub_813D880(struct Sprite *); +static void sub_813D788(struct Sprite *); +static void sub_813D880(struct Sprite *); static u8 CreateGameFreakLogo(s16, s16, u8); -void sub_813DB9C(struct Sprite *); -void sub_813DE70(struct Sprite *); -void sub_813E10C(struct Sprite *); -void sub_813E210(struct Sprite *); +static void sub_813DB9C(struct Sprite *); +static void sub_813DE70(struct Sprite *); +static void sub_813E10C(struct Sprite *); +static void sub_813E210(struct Sprite *); static void sub_813E580(u16, u16); static void sub_813E7C0(u8); static void sub_813E930(u8); @@ -209,7 +879,11 @@ static u8 SetUpCopyrightScreen(void) ResetSpriteData(); FreeAllSpritePalettes(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); - REG_BG0CNT = 1792; + REG_BG0CNT = BGCNT_PRIORITY(0) + | BGCNT_CHARBASE(0) + | BGCNT_SCREENBASE(7) + | BGCNT_16COLOR + | BGCNT_TXT256x256; ime = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; @@ -288,13 +962,13 @@ static void Task_IntroLoadPart1Graphics(u8 taskId) DmaClear16(3, VRAM + 0xA800, 0x800); LZ77UnCompVram(gIntro1BG3_Tilemap, (void *)(VRAM + 0xB000)); DmaClear16(3, VRAM + 0xB800, 0x800); - LoadPalette(gIntro1BGPals, 0, 0x200); - REG_BG3CNT = 0x9603; - REG_BG2CNT = 0x9402; - REG_BG1CNT = 0x9201; - REG_BG0CNT = 0x9000; - LoadCompressedObjectPic(&gUnknown_0840B008); - LoadCompressedObjectPic(&gUnknown_0840B018); + LoadPalette(gIntro1BGPals, 0, sizeof(gIntro1BGPals)); + REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(22) | BGCNT_16COLOR | BGCNT_TXT256x512; + REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512; + REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(18) | BGCNT_16COLOR | BGCNT_TXT256x512; + REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(16) | BGCNT_16COLOR | BGCNT_TXT256x512; + LoadCompressedObjectPic(&gUnknown_0840B008[0]); + LoadCompressedObjectPic(&gUnknown_0840B018[0]); LoadSpritePalettes(gUnknown_0840B028); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1F0, 0x20); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1E1, 0x1E); @@ -509,7 +1183,7 @@ static void Task_IntroLoadPart3Graphics(u8 taskId) ResetSpriteData(); FreeAllSpritePalettes(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); - REG_BG2CNT = 0x4883; + REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(8) | BGCNT_256COLOR | BGCNT_AFF256x256; REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON; gTasks[taskId].func = Task_IntroSpinAndZoomPokeball; gIntroFrameCounter = 0; @@ -574,9 +1248,9 @@ static void Task_IntroLoadPart3Streaks(u8 taskId) ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&gIntro3PokeballGfx_Table); - LoadCompressedObjectPic(&gIntro3MiscGfx_Table); - LoadCompressedObjectPalette(&gInterfacePokeballPal_Table); + LoadCompressedObjectPic(&gIntro3PokeballGfx_Table[0]); + LoadCompressedObjectPic(&gIntro3MiscGfx_Table[0]); + LoadCompressedObjectPalette(&gInterfacePokeballPal_Table[0]); LoadSpritePalettes(gIntro3MiscPal_Table); gTasks[taskId].func = task_intro_14; } @@ -587,8 +1261,16 @@ static void task_intro_14(u8 taskId) REG_WIN0V = 0xA0; REG_WININ = 0x1C; REG_WINOUT = 0x1D; - REG_BG3CNT = 0x603; - REG_BG0CNT = 0x700; + REG_BG3CNT = BGCNT_PRIORITY(3) + | BGCNT_CHARBASE(0) + | BGCNT_SCREENBASE(6) + | BGCNT_16COLOR + | BGCNT_TXT256x256; + REG_BG0CNT = BGCNT_PRIORITY(0) + | BGCNT_CHARBASE(0) + | BGCNT_SCREENBASE(7) + | BGCNT_16COLOR + | BGCNT_TXT256x256; REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; gTasks[taskId].data[15] = CreateTask(task_intro_20, 0); gTasks[gTasks[taskId].data[15]].data[0] = 0; @@ -742,18 +1424,21 @@ static void task_intro_19(u8 taskId) static void task_intro_20(u8 taskId) { +#define BG2_FLAGS (BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256) +#define DISPCNT_FLAGS (DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON) + gTasks[taskId].data[15]++; switch (gTasks[taskId].data[0]) { case 0: - REG_DISPCNT = 0x3940; + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; REG_BG2CNT = 0; gTasks[taskId].data[0] = 0xFF; break; case 2: BeginNormalPaletteFade(1, 0, 0x10, 0, 0xFFFF); - REG_BG2CNT = 0x0E07; - REG_DISPCNT = 0x3D40; + REG_BG2CNT = BG2_FLAGS; + REG_DISPCNT = DISPCNT_FLAGS; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; gTasks[taskId].data[0] = 20; @@ -766,8 +1451,8 @@ static void task_intro_20(u8 taskId) break; case 3: BeginNormalPaletteFade(1, 0, 0x10, 0, 0xFFFF); - REG_BG2CNT = 0x0E07; - REG_DISPCNT = 0x3D40; + REG_BG2CNT = BG2_FLAGS; + REG_DISPCNT = DISPCNT_FLAGS; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; gTasks[taskId].data[0] = 0x1E; @@ -780,8 +1465,8 @@ static void task_intro_20(u8 taskId) break; case 4: BeginNormalPaletteFade(1, 5, 0, 0x10, 0x37F7); - REG_BG2CNT = 0x0E07; - REG_DISPCNT = 0x3D40; + REG_BG2CNT = BG2_FLAGS; + REG_DISPCNT = DISPCNT_FLAGS; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 8; @@ -798,6 +1483,9 @@ static void task_intro_20(u8 taskId) case 0xFF: //needed to prevent jump table optimization break; } + +#undef BG2_FLAGS +#undef DISPCNT_FLAGS } static void intro_reset_and_hide_bgs(void) @@ -1147,7 +1835,7 @@ static void sub_813D084(u8 a) gPlttBufferFaded[241] = color; } -void sub_813D0CC(struct Sprite *sprite) +static void sub_813D0CC(struct Sprite *sprite) { u8 r0; @@ -1174,7 +1862,7 @@ void sub_813D0CC(struct Sprite *sprite) } } -void sub_813D158(struct Sprite *sprite) +static void sub_813D158(struct Sprite *sprite) { if (gSprites[sprite->data7].data7 != 0) { @@ -1198,13 +1886,13 @@ void sub_813D158(struct Sprite *sprite) } } -void sub_813D208(struct Sprite *sprite) +static void sub_813D208(struct Sprite *sprite) { if (sprite->data0 != 0) sprite->callback = sub_813D220; } -void sub_813D220(struct Sprite *sprite) +static void sub_813D220(struct Sprite *sprite) { if (sprite->pos1.x <= 116) { @@ -1253,7 +1941,7 @@ void sub_813D220(struct Sprite *sprite) } } -void sub_813D368(struct Sprite *sprite) +static void sub_813D368(struct Sprite *sprite) { SetOamMatrix(sprite->data1, sprite->data6 + 64, 0, 0, sprite->data6 + 64); SetOamMatrix(sprite->data1 + 1, sprite->data6 + 64, 0, 0, sprite->data6 + 64); @@ -1274,7 +1962,7 @@ void sub_813D368(struct Sprite *sprite) } } -void sub_813D414(struct Sprite *sprite) +static void sub_813D414(struct Sprite *sprite) { if (sprite->data0 != 2) { @@ -1291,7 +1979,7 @@ void sub_813D414(struct Sprite *sprite) } } -void SpriteCB_WaterDropFall(struct Sprite *sprite) +static void SpriteCB_WaterDropFall(struct Sprite *sprite) { if (sprite->pos1.y < sprite->data5) { @@ -1314,7 +2002,7 @@ void SpriteCB_WaterDropFall(struct Sprite *sprite) } //Duplicate function -void SpriteCB_WaterDropFall_2(struct Sprite *sprite) +static void SpriteCB_WaterDropFall_2(struct Sprite *sprite) { if (sprite->pos1.y < sprite->data5) { @@ -1383,7 +2071,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) return oldSpriteId; } -void sub_813D788(struct Sprite *sprite) +static void sub_813D788(struct Sprite *sprite) { switch (sprite->data0) { @@ -1435,7 +2123,7 @@ void sub_813D788(struct Sprite *sprite) } } -void sub_813D880(struct Sprite *sprite) +static void sub_813D880(struct Sprite *sprite) { switch (sprite->data0) { @@ -1462,7 +2150,7 @@ void sub_813D880(struct Sprite *sprite) sprite->data1 += 4; } -void sub_813D908(struct Sprite *sprite) +static void sub_813D908(struct Sprite *sprite) { if (gTasks[sprite->data0].data[0] == 0) { @@ -1502,7 +2190,7 @@ static u8 CreateGameFreakLogo(s16 a, s16 b, u8 c) } #ifdef NONMATCHING -void sub_813DA64(struct Sprite *sprite) +static void sub_813DA64(struct Sprite *sprite) { sprite->data7++; @@ -1563,178 +2251,178 @@ void sub_813DA64(struct Sprite *sprite) } #else __attribute__((naked)) -void sub_813DA64(struct Sprite *sprite) +static void sub_813DA64(struct Sprite *sprite) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x4\n\ - adds r4, r0, 0\n\ - ldrh r0, [r4, 0x3C]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x3C]\n\ - movs r1, 0x2E\n\ - ldrsh r0, [r4, r1]\n\ - cmp r0, 0\n\ - beq _0813DA7C\n\ - cmp r0, 0x1\n\ - beq _0813DAC0\n\ + push {r4-r6,lr}\n\ + sub sp, 0x4\n\ + adds r4, r0, 0\n\ + ldrh r0, [r4, 0x3C]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x3C]\n\ + movs r1, 0x2E\n\ + ldrsh r0, [r4, r1]\n\ + cmp r0, 0\n\ + beq _0813DA7C\n\ + cmp r0, 0x1\n\ + beq _0813DAC0\n\ _0813DA7C:\n\ - ldrb r0, [r4, 0x1]\n\ - movs r1, 0x3\n\ - orrs r0, r1\n\ - strb r0, [r4, 0x1]\n\ - ldrb r1, [r4, 0x3]\n\ - movs r0, 0x3F\n\ - negs r0, r0\n\ - ands r0, r1\n\ - movs r1, 0x2\n\ - orrs r0, r1\n\ - strb r0, [r4, 0x3]\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - movs r2, 0x3\n\ - movs r3, 0x3\n\ - bl CalcCenterToCornerVec\n\ - adds r2, r4, 0\n\ - adds r2, 0x3E\n\ - ldrb r1, [r2]\n\ - movs r0, 0x5\n\ - negs r0, r0\n\ - ands r0, r1\n\ - strb r0, [r2]\n\ - movs r0, 0x1\n\ - strh r0, [r4, 0x2E]\n\ - movs r0, 0x80\n\ - strh r0, [r4, 0x30]\n\ - ldr r0, _0813DABC @ =0x0000ffe8\n\ - strh r0, [r4, 0x32]\n\ - movs r0, 0\n\ - b _0813DB92\n\ - .align 2, 0\n\ + ldrb r0, [r4, 0x1]\n\ + movs r1, 0x3\n\ + orrs r0, r1\n\ + strb r0, [r4, 0x1]\n\ + ldrb r1, [r4, 0x3]\n\ + movs r0, 0x3F\n\ + negs r0, r0\n\ + ands r0, r1\n\ + movs r1, 0x2\n\ + orrs r0, r1\n\ + strb r0, [r4, 0x3]\n\ + adds r0, r4, 0\n\ + movs r1, 0x1\n\ + movs r2, 0x3\n\ + movs r3, 0x3\n\ + bl CalcCenterToCornerVec\n\ + adds r2, r4, 0\n\ + adds r2, 0x3E\n\ + ldrb r1, [r2]\n\ + movs r0, 0x5\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ + movs r0, 0x1\n\ + strh r0, [r4, 0x2E]\n\ + movs r0, 0x80\n\ + strh r0, [r4, 0x30]\n\ + ldr r0, _0813DABC @ =0x0000ffe8\n\ + strh r0, [r4, 0x32]\n\ + movs r0, 0\n\ + b _0813DB92\n\ + .align 2, 0\n\ _0813DABC: .4byte 0x0000ffe8\n\ _0813DAC0:\n\ - ldrh r1, [r4, 0x34]\n\ - movs r2, 0x34\n\ - ldrsh r0, [r4, r2]\n\ - cmp r0, 0x4F\n\ - bgt _0813DAF8\n\ - lsls r0, r1, 24\n\ - lsrs r0, 24\n\ - movs r1, 0x78\n\ - bl Sin\n\ - negs r0, r0\n\ - strh r0, [r4, 0x26]\n\ - ldrh r0, [r4, 0x34]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - movs r1, 0x8C\n\ - bl Sin\n\ - negs r0, r0\n\ - strh r0, [r4, 0x24]\n\ - movs r1, 0x34\n\ - ldrsh r0, [r4, r1]\n\ - cmp r0, 0x40\n\ - ble _0813DAF8\n\ - ldrb r0, [r4, 0x5]\n\ - movs r1, 0xC\n\ - orrs r0, r1\n\ - strb r0, [r4, 0x5]\n\ + ldrh r1, [r4, 0x34]\n\ + movs r2, 0x34\n\ + ldrsh r0, [r4, r2]\n\ + cmp r0, 0x4F\n\ + bgt _0813DAF8\n\ + lsls r0, r1, 24\n\ + lsrs r0, 24\n\ + movs r1, 0x78\n\ + bl Sin\n\ + negs r0, r0\n\ + strh r0, [r4, 0x26]\n\ + ldrh r0, [r4, 0x34]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + movs r1, 0x8C\n\ + bl Sin\n\ + negs r0, r0\n\ + strh r0, [r4, 0x24]\n\ + movs r1, 0x34\n\ + ldrsh r0, [r4, r1]\n\ + cmp r0, 0x40\n\ + ble _0813DAF8\n\ + ldrb r0, [r4, 0x5]\n\ + movs r1, 0xC\n\ + orrs r0, r1\n\ + strb r0, [r4, 0x5]\n\ _0813DAF8:\n\ - ldr r2, _0813DB60 @ =gSineTable\n\ - ldrh r1, [r4, 0x32]\n\ - lsls r0, r1, 24\n\ - lsrs r0, 23\n\ - adds r0, r2\n\ - ldrh r3, [r0]\n\ - adds r1, 0x40\n\ - lsls r1, 24\n\ - lsrs r1, 23\n\ - adds r1, r2\n\ - movs r2, 0\n\ - ldrsh r0, [r1, r2]\n\ - movs r1, 0x30\n\ - ldrsh r2, [r4, r1]\n\ - adds r1, r0, 0\n\ - muls r1, r2\n\ - adds r0, r1, 0\n\ - cmp r1, 0\n\ - bge _0813DB20\n\ - adds r0, 0xFF\n\ + ldr r2, _0813DB60 @ =gSineTable\n\ + ldrh r1, [r4, 0x32]\n\ + lsls r0, r1, 24\n\ + lsrs r0, 23\n\ + adds r0, r2\n\ + ldrh r3, [r0]\n\ + adds r1, 0x40\n\ + lsls r1, 24\n\ + lsrs r1, 23\n\ + adds r1, r2\n\ + movs r2, 0\n\ + ldrsh r0, [r1, r2]\n\ + movs r1, 0x30\n\ + ldrsh r2, [r4, r1]\n\ + adds r1, r0, 0\n\ + muls r1, r2\n\ + adds r0, r1, 0\n\ + cmp r1, 0\n\ + bge _0813DB20\n\ + adds r0, 0xFF\n\ _0813DB20:\n\ - lsls r0, 8\n\ - lsrs r6, r0, 16\n\ - lsls r0, r3, 16\n\ - asrs r3, r0, 16\n\ - negs r0, r3\n\ - muls r0, r2\n\ - cmp r0, 0\n\ - bge _0813DB32\n\ - adds r0, 0xFF\n\ + lsls r0, 8\n\ + lsrs r6, r0, 16\n\ + lsls r0, r3, 16\n\ + asrs r3, r0, 16\n\ + negs r0, r3\n\ + muls r0, r2\n\ + cmp r0, 0\n\ + bge _0813DB32\n\ + adds r0, 0xFF\n\ _0813DB32:\n\ - lsls r0, 8\n\ - lsrs r5, r0, 16\n\ - adds r0, r3, 0\n\ - muls r0, r2\n\ - cmp r0, 0\n\ - bge _0813DB40\n\ - adds r0, 0xFF\n\ + lsls r0, 8\n\ + lsrs r5, r0, 16\n\ + adds r0, r3, 0\n\ + muls r0, r2\n\ + cmp r0, 0\n\ + bge _0813DB40\n\ + adds r0, 0xFF\n\ _0813DB40:\n\ - lsls r0, 8\n\ - lsrs r2, r0, 16\n\ - adds r1, r6, 0\n\ - adds r3, r5, 0\n\ - str r1, [sp]\n\ - movs r0, 0x1\n\ - bl SetOamMatrix\n\ - ldrh r1, [r4, 0x30]\n\ - movs r2, 0x30\n\ - ldrsh r0, [r4, r2]\n\ - cmp r0, 0xFF\n\ - bgt _0813DB64\n\ - adds r0, r1, 0\n\ - adds r0, 0x8\n\ - b _0813DB68\n\ - .align 2, 0\n\ + lsls r0, 8\n\ + lsrs r2, r0, 16\n\ + adds r1, r6, 0\n\ + adds r3, r5, 0\n\ + str r1, [sp]\n\ + movs r0, 0x1\n\ + bl SetOamMatrix\n\ + ldrh r1, [r4, 0x30]\n\ + movs r2, 0x30\n\ + ldrsh r0, [r4, r2]\n\ + cmp r0, 0xFF\n\ + bgt _0813DB64\n\ + adds r0, r1, 0\n\ + adds r0, 0x8\n\ + b _0813DB68\n\ + .align 2, 0\n\ _0813DB60: .4byte gSineTable\n\ _0813DB64:\n\ - adds r0, r1, 0\n\ - adds r0, 0x20\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ _0813DB68:\n\ - strh r0, [r4, 0x30]\n\ - ldrh r1, [r4, 0x32]\n\ - movs r2, 0x32\n\ - ldrsh r0, [r4, r2]\n\ - cmp r0, 0x17\n\ - bgt _0813DB78\n\ - adds r0, r1, 0x1\n\ - strh r0, [r4, 0x32]\n\ + strh r0, [r4, 0x30]\n\ + ldrh r1, [r4, 0x32]\n\ + movs r2, 0x32\n\ + ldrsh r0, [r4, r2]\n\ + cmp r0, 0x17\n\ + bgt _0813DB78\n\ + adds r0, r1, 0x1\n\ + strh r0, [r4, 0x32]\n\ _0813DB78:\n\ - ldrh r2, [r4, 0x34]\n\ - movs r1, 0x34\n\ - ldrsh r0, [r4, r1]\n\ - cmp r0, 0x3F\n\ - bgt _0813DB86\n\ - adds r0, r2, 0x2\n\ - b _0813DB92\n\ + ldrh r2, [r4, 0x34]\n\ + movs r1, 0x34\n\ + ldrsh r0, [r4, r1]\n\ + cmp r0, 0x3F\n\ + bgt _0813DB86\n\ + adds r0, r2, 0x2\n\ + b _0813DB92\n\ _0813DB86:\n\ - ldrh r1, [r4, 0x3C]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0813DB94\n\ - adds r0, r2, 0x1\n\ + ldrh r1, [r4, 0x3C]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0813DB94\n\ + adds r0, r2, 0x1\n\ _0813DB92:\n\ - strh r0, [r4, 0x34]\n\ + strh r0, [r4, 0x34]\n\ _0813DB94:\n\ - add sp, 0x4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ + add sp, 0x4\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } #endif -void sub_813DB9C(struct Sprite *sprite) +static void sub_813DB9C(struct Sprite *sprite) { switch (sprite->data0) { @@ -1810,7 +2498,7 @@ void sub_813DB9C(struct Sprite *sprite) } } -void sub_813DD58(struct Sprite *sprite) +static void sub_813DD58(struct Sprite *sprite) { switch (sprite->data0) { @@ -1853,7 +2541,7 @@ void sub_813DD58(struct Sprite *sprite) } } -void sub_813DE70(struct Sprite *sprite) +static void sub_813DE70(struct Sprite *sprite) { switch (sprite->data0) { @@ -1931,7 +2619,7 @@ void sub_813DE70(struct Sprite *sprite) } } -void sub_813E10C(struct Sprite *sprite) +static void sub_813E10C(struct Sprite *sprite) { switch (sprite->data0) { @@ -1999,7 +2687,7 @@ void sub_813E10C(struct Sprite *sprite) } } -void sub_813E210(struct Sprite *sprite) +static void sub_813E210(struct Sprite *sprite) { switch (sprite->data0) { @@ -2067,7 +2755,7 @@ void sub_813E210(struct Sprite *sprite) } } -void sub_813E30C(struct Sprite *sprite) +static void sub_813E30C(struct Sprite *sprite) { u16 r4, r1; @@ -2122,7 +2810,7 @@ void sub_813E30C(struct Sprite *sprite) } } -void sub_813E4B8(struct Sprite *sprite) +static void sub_813E4B8(struct Sprite *sprite) { u16 r4; u16 r2; @@ -2168,7 +2856,7 @@ static void sub_813E580(u16 x, u16 y) } } -void sub_813E5E0(struct Sprite *sprite) +static void sub_813E5E0(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2190,7 +2878,7 @@ void sub_813E5E0(struct Sprite *sprite) } } -void sub_813E6C0(struct Sprite *sprite) +static void sub_813E6C0(struct Sprite *sprite) { u8 spriteId; u8 i; @@ -2246,7 +2934,7 @@ static void sub_813E7C0(u8 a) } } -void sub_813E804(struct Sprite *sprite) +static void sub_813E804(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2287,7 +2975,7 @@ static void sub_813E930(u8 a) } } -void sub_813E980(struct Sprite *sprite) +static void sub_813E980(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2313,7 +3001,7 @@ void sub_813E980(struct Sprite *sprite) } } -void sub_813EA60(struct Sprite *sprite) +static void sub_813EA60(struct Sprite *sprite) { bool32 r6; s16 r1, r2; @@ -2370,7 +3058,7 @@ static void InitIntroTorchicAttackAnim(u8 a) } } -void sub_813EBBC(struct Sprite *sprite) +static void sub_813EBBC(struct Sprite *sprite) { if (gUnknown_0203931A != 0) { @@ -2390,7 +3078,7 @@ void sub_813EBBC(struct Sprite *sprite) } } -void sub_813EC90(struct Sprite *sprite) +static void sub_813EC90(struct Sprite *sprite) { bool32 r6; s16 r1, r2; @@ -2449,7 +3137,7 @@ static void InitIntroMudkipAttackAnim(u8 a) } } -void sub_813EDFC(struct Sprite *sprite) +static void sub_813EDFC(struct Sprite *sprite) { u16 foo; diff --git a/src/mail.c b/src/mail.c index 570128095..466a64c9c 100644 --- a/src/mail.c +++ b/src/mail.c @@ -152,144 +152,144 @@ __attribute__((naked)) void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x4\n\ - adds r4, r0, 0\n\ - adds r6, r1, 0\n\ - lsls r2, 24\n\ - lsrs r5, r2, 24\n\ - ldr r2, _080F8958 @ =0x02000000\n\ - adds r1, r2, 0\n\ - adds r1, 0xFF\n\ - movs r0, 0x2\n\ - strb r0, [r1]\n\ - adds r0, 0xFE\n\ - adds r1, r2, r0\n\ - movs r0, 0x1\n\ - strb r0, [r1]\n\ - movs r0, 0x82\n\ - lsls r0, 1\n\ - adds r1, r2, r0\n\ - ldr r0, _080F895C @ =sub_80EB3FC\n\ - str r0, [r1]\n\ - movs r0, 0x84\n\ - lsls r0, 1\n\ - adds r1, r2, r0\n\ - ldr r0, _080F8960 @ =ConvertEasyChatWordsToString\n\ - str r0, [r1]\n\ - ldrh r1, [r4, 0x20]\n\ - adds r0, r1, 0\n\ - subs r0, 0x79\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0xB\n\ - bhi _080F8964\n\ - subs r1, 0x79\n\ - adds r0, r2, 0\n\ - adds r0, 0xFA\n\ - strb r1, [r0]\n\ - b _080F896E\n\ - .align 2, 0\n\ + push {r4-r6,lr}\n\ + sub sp, 0x4\n\ + adds r4, r0, 0\n\ + adds r6, r1, 0\n\ + lsls r2, 24\n\ + lsrs r5, r2, 24\n\ + ldr r2, _080F8958 @ =0x02000000\n\ + adds r1, r2, 0\n\ + adds r1, 0xFF\n\ + movs r0, 0x2\n\ + strb r0, [r1]\n\ + adds r0, 0xFE\n\ + adds r1, r2, r0\n\ + movs r0, 0x1\n\ + strb r0, [r1]\n\ + movs r0, 0x82\n\ + lsls r0, 1\n\ + adds r1, r2, r0\n\ + ldr r0, _080F895C @ =sub_80EB3FC\n\ + str r0, [r1]\n\ + movs r0, 0x84\n\ + lsls r0, 1\n\ + adds r1, r2, r0\n\ + ldr r0, _080F8960 @ =ConvertEasyChatWordsToString\n\ + str r0, [r1]\n\ + ldrh r1, [r4, 0x20]\n\ + adds r0, r1, 0\n\ + subs r0, 0x79\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0xB\n\ + bhi _080F8964\n\ + subs r1, 0x79\n\ + adds r0, r2, 0\n\ + adds r0, 0xFA\n\ + strb r1, [r0]\n\ + b _080F896E\n\ + .align 2, 0\n\ _080F8958: .4byte 0x02000000\n\ _080F895C: .4byte sub_80EB3FC\n\ _080F8960: .4byte ConvertEasyChatWordsToString\n\ _080F8964:\n\ - adds r1, r2, 0\n\ - adds r1, 0xFA\n\ - movs r0, 0\n\ - strb r0, [r1]\n\ - movs r5, 0\n\ + adds r1, r2, 0\n\ + adds r1, 0xFA\n\ + movs r0, 0\n\ + strb r0, [r1]\n\ + movs r5, 0\n\ _080F896E:\n\ - ldr r1, _080F8994 @ =0x02000000\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _080F8980\n\ - cmp r0, 0x1\n\ - beq _080F899C\n\ + ldr r1, _080F8994 @ =0x02000000\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + adds r0, r1, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080F8980\n\ + cmp r0, 0x1\n\ + beq _080F899C\n\ _080F8980:\n\ - movs r0, 0x86\n\ - lsls r0, 1\n\ - adds r2, r1, r0\n\ - adds r0, r1, 0\n\ - adds r0, 0xFA\n\ - ldrb r0, [r0]\n\ - lsls r0, 3\n\ - ldr r1, _080F8998 @ =gUnknown_083E5730\n\ - b _080F89AC\n\ - .align 2, 0\n\ + movs r0, 0x86\n\ + lsls r0, 1\n\ + adds r2, r1, r0\n\ + adds r0, r1, 0\n\ + adds r0, 0xFA\n\ + ldrb r0, [r0]\n\ + lsls r0, 3\n\ + ldr r1, _080F8998 @ =gUnknown_083E5730\n\ + b _080F89AC\n\ + .align 2, 0\n\ _080F8994: .4byte 0x02000000\n\ _080F8998: .4byte gUnknown_083E5730\n\ _080F899C:\n\ - movs r0, 0x86\n\ - lsls r0, 1\n\ - adds r2, r1, r0\n\ - adds r0, r1, 0\n\ - adds r0, 0xFA\n\ - ldrb r0, [r0]\n\ - lsls r0, 3\n\ - ldr r1, _080F89DC @ =gUnknown_083E57A4\n\ + movs r0, 0x86\n\ + lsls r0, 1\n\ + adds r2, r1, r0\n\ + adds r0, r1, 0\n\ + adds r0, 0xFA\n\ + ldrb r0, [r0]\n\ + lsls r0, 3\n\ + ldr r1, _080F89DC @ =gUnknown_083E57A4\n\ _080F89AC:\n\ - adds r0, r1\n\ - str r0, [r2]\n\ - ldrh r0, [r4, 0x1E]\n\ - mov r1, sp\n\ - bl sub_80A2D64\n\ - lsls r0, 16\n\ - ldr r1, _080F89E0 @ =0xffff0000\n\ - adds r0, r1\n\ - movs r1, 0xCD\n\ - lsls r1, 17\n\ - cmp r0, r1\n\ - bhi _080F89F8\n\ - ldr r0, _080F89E4 @ =0x02000000\n\ - adds r1, r0, 0\n\ - adds r1, 0xFA\n\ - ldrb r2, [r1]\n\ - adds r1, r0, 0\n\ - cmp r2, 0x6\n\ - beq _080F89E8\n\ - cmp r2, 0x9\n\ - beq _080F89F0\n\ - b _080F89FA\n\ - .align 2, 0\n\ + adds r0, r1\n\ + str r0, [r2]\n\ + ldrh r0, [r4, 0x1E]\n\ + mov r1, sp\n\ + bl sub_80A2D64\n\ + lsls r0, 16\n\ + ldr r1, _080F89E0 @ =0xffff0000\n\ + adds r0, r1\n\ + movs r1, 0xCD\n\ + lsls r1, 17\n\ + cmp r0, r1\n\ + bhi _080F89F8\n\ + ldr r0, _080F89E4 @ =0x02000000\n\ + adds r1, r0, 0\n\ + adds r1, 0xFA\n\ + ldrb r2, [r1]\n\ + adds r1, r0, 0\n\ + cmp r2, 0x6\n\ + beq _080F89E8\n\ + cmp r2, 0x9\n\ + beq _080F89F0\n\ + b _080F89FA\n\ + .align 2, 0\n\ _080F89DC: .4byte gUnknown_083E57A4\n\ _080F89E0: .4byte 0xffff0000\n\ _080F89E4: .4byte 0x02000000\n\ _080F89E8:\n\ - adds r2, r1, 0\n\ - adds r2, 0xFB\n\ - movs r0, 0x1\n\ - b _080F8A00\n\ + adds r2, r1, 0\n\ + adds r2, 0xFB\n\ + movs r0, 0x1\n\ + b _080F8A00\n\ _080F89F0:\n\ - adds r2, r1, 0\n\ - adds r2, 0xFB\n\ - movs r0, 0x2\n\ - b _080F8A00\n\ + adds r2, r1, 0\n\ + adds r2, 0xFB\n\ + movs r0, 0x2\n\ + b _080F8A00\n\ _080F89F8:\n\ - ldr r1, _080F8A20 @ =0x02000000\n\ + ldr r1, _080F8A20 @ =0x02000000\n\ _080F89FA:\n\ - adds r2, r1, 0\n\ - adds r2, 0xFB\n\ - movs r0, 0\n\ + adds r2, r1, 0\n\ + adds r2, 0xFB\n\ + movs r0, 0\n\ _080F8A00:\n\ - strb r0, [r2]\n\ - adds r0, r1, 0\n\ - adds r0, 0xF4\n\ - str r4, [r0]\n\ - subs r0, 0x8\n\ - str r6, [r0]\n\ - adds r0, 0xC\n\ - strb r5, [r0]\n\ - ldr r0, _080F8A24 @ =sub_80F8D50\n\ - bl SetMainCallback2\n\ - add sp, 0x4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + strb r0, [r2]\n\ + adds r0, r1, 0\n\ + adds r0, 0xF4\n\ + str r4, [r0]\n\ + subs r0, 0x8\n\ + str r6, [r0]\n\ + adds r0, 0xC\n\ + strb r5, [r0]\n\ + ldr r0, _080F8A24 @ =sub_80F8D50\n\ + bl SetMainCallback2\n\ + add sp, 0x4\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080F8A20: .4byte 0x02000000\n\ _080F8A24: .4byte sub_80F8D50\n\ .syntax divided\n"); @@ -514,111 +514,111 @@ __attribute__((naked)) static void sub_80F8DA0(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - movs r6, 0\n\ - movs r5, 0\n\ - ldr r2, _080F8E3C @ =0x02000000\n\ - movs r0, 0x86\n\ - lsls r0, 1\n\ - adds r1, r2, r0\n\ - ldr r0, [r1]\n\ - ldrb r0, [r0]\n\ - cmp r5, r0\n\ - bcs _080F8E04\n\ - mov r8, r2\n\ - adds r7, r1, 0\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + movs r6, 0\n\ + movs r5, 0\n\ + ldr r2, _080F8E3C @ =0x02000000\n\ + movs r0, 0x86\n\ + lsls r0, 1\n\ + adds r1, r2, r0\n\ + ldr r0, [r1]\n\ + ldrb r0, [r0]\n\ + cmp r5, r0\n\ + bcs _080F8E04\n\ + mov r8, r2\n\ + adds r7, r1, 0\n\ _080F8DBE:\n\ - lsls r0, r5, 3\n\ - subs r0, r5\n\ - lsls r0, 2\n\ - subs r0, r5\n\ - add r0, r8\n\ - mov r1, r8\n\ - adds r1, 0xF4\n\ - lsls r2, r6, 1\n\ - ldr r1, [r1]\n\ - adds r1, r2\n\ - ldr r2, [r7]\n\ - ldr r2, [r2, 0x4]\n\ - lsls r4, r5, 2\n\ - adds r2, r4, r2\n\ - ldr r2, [r2]\n\ - lsls r2, 28\n\ - lsrs r2, 30\n\ - movs r3, 0x1\n\ - bl ConvertEasyChatWordsToString\n\ - ldr r1, [r7]\n\ - ldr r0, [r1, 0x4]\n\ - adds r4, r0\n\ - ldr r0, [r4]\n\ - lsls r0, 28\n\ - lsrs r0, 30\n\ - adds r0, r6, r0\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - ldrb r1, [r1]\n\ - cmp r5, r1\n\ - bcc _080F8DBE\n\ + lsls r0, r5, 3\n\ + subs r0, r5\n\ + lsls r0, 2\n\ + subs r0, r5\n\ + add r0, r8\n\ + mov r1, r8\n\ + adds r1, 0xF4\n\ + lsls r2, r6, 1\n\ + ldr r1, [r1]\n\ + adds r1, r2\n\ + ldr r2, [r7]\n\ + ldr r2, [r2, 0x4]\n\ + lsls r4, r5, 2\n\ + adds r2, r4, r2\n\ + ldr r2, [r2]\n\ + lsls r2, 28\n\ + lsrs r2, 30\n\ + movs r3, 0x1\n\ + bl ConvertEasyChatWordsToString\n\ + ldr r1, [r7]\n\ + ldr r0, [r1, 0x4]\n\ + adds r4, r0\n\ + ldr r0, [r4]\n\ + lsls r0, 28\n\ + lsrs r0, 30\n\ + adds r0, r6, r0\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldrb r1, [r1]\n\ + cmp r5, r1\n\ + bcc _080F8DBE\n\ _080F8E04:\n\ - ldr r2, _080F8E40 @ =0x020000d8\n\ - adds r4, r2, 0\n\ - subs r4, 0xD8\n\ - adds r0, r2, 0\n\ - adds r0, 0x28\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _080F8E48\n\ - ldr r1, [r2, 0x1C]\n\ - adds r1, 0x12\n\ - adds r0, r2, 0\n\ - bl sub_80F8D7C\n\ - adds r2, r0, 0\n\ - ldr r1, _080F8E44 @ =gOtherText_From\n\ - bl StringCopy\n\ - ldr r0, _080F8E40 @ =0x020000d8\n\ - bl StringLength\n\ - movs r2, 0x86\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - ldr r1, [r1]\n\ - ldrb r1, [r1, 0x2]\n\ - subs r1, r0\n\ - b _080F8E6A\n\ - .align 2, 0\n\ + ldr r2, _080F8E40 @ =0x020000d8\n\ + adds r4, r2, 0\n\ + subs r4, 0xD8\n\ + adds r0, r2, 0\n\ + adds r0, 0x28\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080F8E48\n\ + ldr r1, [r2, 0x1C]\n\ + adds r1, 0x12\n\ + adds r0, r2, 0\n\ + bl sub_80F8D7C\n\ + adds r2, r0, 0\n\ + ldr r1, _080F8E44 @ =gOtherText_From\n\ + bl StringCopy\n\ + ldr r0, _080F8E40 @ =0x020000d8\n\ + bl StringLength\n\ + movs r2, 0x86\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + ldr r1, [r1]\n\ + ldrb r1, [r1, 0x2]\n\ + subs r1, r0\n\ + b _080F8E6A\n\ + .align 2, 0\n\ _080F8E3C: .4byte 0x02000000\n\ _080F8E40: .4byte 0x020000d8\n\ _080F8E44: .4byte gOtherText_From\n\ _080F8E48:\n\ - ldr r1, _080F8E7C @ =gOtherText_From\n\ - adds r0, r2, 0\n\ - bl StringCopy\n\ - adds r2, r0, 0\n\ - adds r0, r4, 0\n\ - adds r0, 0xF4\n\ - ldr r1, [r0]\n\ - adds r1, 0x12\n\ - adds r0, r2, 0\n\ - bl sub_80F8D7C\n\ - movs r1, 0x86\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldr r0, [r0]\n\ - ldrb r1, [r0, 0x2]\n\ + ldr r1, _080F8E7C @ =gOtherText_From\n\ + adds r0, r2, 0\n\ + bl StringCopy\n\ + adds r2, r0, 0\n\ + adds r0, r4, 0\n\ + adds r0, 0xF4\n\ + ldr r1, [r0]\n\ + adds r1, 0x12\n\ + adds r0, r2, 0\n\ + bl sub_80F8D7C\n\ + movs r1, 0x86\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldr r0, [r0]\n\ + ldrb r1, [r0, 0x2]\n\ _080F8E6A:\n\ - adds r0, r4, 0\n\ - adds r0, 0xF9\n\ - strb r1, [r0]\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + adds r0, r4, 0\n\ + adds r0, 0xF9\n\ + strb r1, [r0]\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080F8E7C: .4byte gOtherText_From\n\ .syntax divided\n"); } diff --git a/src/main_menu.c b/src/main_menu.c index c586e2b08..f47b3bb47 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -69,7 +69,7 @@ extern const u8 gUnknown_081E7834[]; extern const u8 gUnknown_081E796C[]; extern const u8 gSystemText_NewPara[]; -extern u8 gSpriteAffineAnimTable_81E79AC[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[]; extern u8 unk_2000000[]; @@ -1256,7 +1256,7 @@ static void Task_NewGameSpeech30(u8 taskId) spriteId = gTasks[taskId].data[TD_TRAINER_SPRITE_ID]; gSprites[spriteId].oam.affineMode = 1; - gSprites[spriteId].affineAnims = (union AffineAnimCmd **)gSpriteAffineAnimTable_81E79AC; + gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_81E79AC; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); gSprites[spriteId].callback = ShrinkPlayerSprite; diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c new file mode 100644 index 000000000..d03042ca5 --- /dev/null +++ b/src/mauville_old_man.c @@ -0,0 +1,407 @@ +#include "global.h" +#include "string_util.h" +#include "menu.h" +#include "script.h" +#include "asm.h" +#include "rng.h" + +extern u16 gScriptResult; +extern u16 gSpecialVar_0x8004; + +extern void sub_80F83F8(void); +extern void sub_81099CC(void); +extern void sub_80F83D0(void); +extern void sub_80F7F80(u8); +extern u16 sub_80EB8EC(void); +extern void sub_80F7DC0(void); +extern u8 gOtherText_Is[]; +extern u8 gOtherText_DontYouAgree[]; +extern u32 gUnknown_083E5388[]; +extern u32 gUnknown_083E53A8[]; + +extern u16 gUnknown_083E537C[]; + +void sub_80F7A34(void) +{ + u16 i; + OldMan *oldMan = &gSaveBlock1.oldMan; + + oldMan->oldMan1.unk_2D94 = 0; + oldMan->oldMan1.unk_2DBD = 0; + + for(i = 0; i < 6; i++) + oldMan->oldMan1.mauvilleOldMan_ecArray[i] = gUnknown_083E537C[i]; +} + +void sub_80F7A6C(void) +{ + struct UnkMauvilleOldManStruct *bard = &gSaveBlock1.oldMan.oldMan1; + + bard->unk_2D94 = 1; + bard->unk_2D95 = 0; +} + +void sub_80F7A7C(void) +{ + sub_80F83F8(); +} + +void sub_80F7A88(void) +{ + OldMan *oldMan = &gSaveBlock1.oldMan; + + oldMan->oldMan1.unk_2D94 = 4; + oldMan->oldMan1.unk_2D95 = 0; +} + +void sub_80F7A98(void) +{ + sub_81099CC(); +} + +void SetMauvilleOldMan(void) +{ + u32 var = ((u16)((gSaveBlock2.playerTrainerId[1] << 8 | gSaveBlock2.playerTrainerId[0])) % 10) / 2; + + switch(var) + { + case 0: + sub_80F7A34(); + break; + case 1: + sub_80F7A6C(); + break; + case 2: + sub_80F7A98(); + break; + case 3: + sub_80F7A7C(); + break; + case 4: + sub_80F7A88(); + break; + } + sub_80F83D0(); +} + +u8 GetCurrentMauvilleOldMan(void) +{ + OldMan *oldMan = &gSaveBlock1.oldMan; + + return oldMan->oldMan1.unk_2D94; +} + +void sub_80F7B14(void) +{ + gScriptResult = GetCurrentMauvilleOldMan(); +} + +void sub_80F7B2C(void) +{ + u16 *scriptPtr = &gScriptResult; // why?? + OldMan *oldMan = &gSaveBlock1.oldMan; + + *scriptPtr = oldMan->oldMan1.unk_2DBD; +} + +void sub_80F7B40(void) +{ + u16 i; + OldMan *oldMan = &gSaveBlock1.oldMan; + //struct UnkMauvilleOldManStruct *oldManStruct = &gSaveBlock1.oldManStruct; + + StringCopy(oldMan->oldMan1.playerName, gSaveBlock2.playerName); + + for(i = 0; i < 4; i++) + oldMan->oldMan1.playerTrainerId[i] = gSaveBlock2.playerTrainerId[i]; + + for(i = 0; i < 6; i++) + oldMan->oldMan1.mauvilleOldMan_ecArray[i] = oldMan->oldMan1.mauvilleOldMan_ecArray2[i]; + + oldMan->oldMan1.unk_2DBD = 1; +} + +// too mathy +__attribute__((naked)) +void sub_80F7BA0(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94\n\ + ldr r0, _080F7C4C @ =gSpecialVar_0x8004\n\ + ldrh r0, [r0]\n\ + adds r5, r1, 0\n\ + adds r5, 0xE\n\ + cmp r0, 0\n\ + bne _080F7BB2\n\ + adds r5, r1, 0x2\n\ +_080F7BB2:\n\ + ldr r2, _080F7C50 @ =gStringVar4\n\ + adds r4, r2, 0\n\ + movs r6, 0\n\ +_080F7BB8:\n\ + ldrh r1, [r5]\n\ + adds r5, 0x2\n\ + adds r0, r2, 0\n\ + bl sub_80EB3FC\n\ + adds r2, r0, 0\n\ + adds r7, r6, 0x1\n\ + cmp r2, r4\n\ + beq _080F7BDA\n\ + movs r1, 0x37\n\ +_080F7BCC:\n\ + ldrb r0, [r4]\n\ + cmp r0, 0\n\ + bne _080F7BD4\n\ + strb r1, [r4]\n\ +_080F7BD4:\n\ + adds r4, 0x1\n\ + cmp r2, r4\n\ + bne _080F7BCC\n\ +_080F7BDA:\n\ + adds r4, 0x1\n\ + movs r0, 0\n\ + strb r0, [r2]\n\ + adds r2, 0x1\n\ + ldrh r1, [r5]\n\ + adds r5, 0x2\n\ + adds r0, r2, 0\n\ + bl sub_80EB3FC\n\ + adds r2, r0, 0\n\ + cmp r2, r4\n\ + beq _080F7C02\n\ + movs r1, 0x37\n\ +_080F7BF4:\n\ + ldrb r0, [r4]\n\ + cmp r0, 0\n\ + bne _080F7BFC\n\ + strb r1, [r4]\n\ +_080F7BFC:\n\ + adds r4, 0x1\n\ + cmp r2, r4\n\ + bne _080F7BF4\n\ +_080F7C02:\n\ + adds r4, 0x1\n\ + movs r0, 0xFE\n\ + strb r0, [r2]\n\ + adds r2, 0x1\n\ + ldrh r1, [r5]\n\ + adds r5, 0x2\n\ + adds r0, r2, 0\n\ + bl sub_80EB3FC\n\ + adds r2, r0, 0\n\ + cmp r2, r4\n\ + beq _080F7C2A\n\ + movs r1, 0x37\n\ +_080F7C1C:\n\ + ldrb r0, [r4]\n\ + cmp r0, 0\n\ + bne _080F7C24\n\ + strb r1, [r4]\n\ +_080F7C24:\n\ + adds r4, 0x1\n\ + cmp r2, r4\n\ + bne _080F7C1C\n\ +_080F7C2A:\n\ + cmp r6, 0\n\ + bne _080F7C3A\n\ + movs r0, 0xFC\n\ + strb r0, [r2]\n\ + adds r2, 0x1\n\ + movs r0, 0xF\n\ + strb r0, [r2]\n\ + adds r2, 0x1\n\ +_080F7C3A:\n\ + lsls r0, r7, 16\n\ + lsrs r6, r0, 16\n\ + cmp r6, 0x1\n\ + bls _080F7BB8\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080F7C48: .4byte gSaveBlock1 + 0x2D94\n\ +_080F7C4C: .4byte gSpecialVar_0x8004\n\ +_080F7C50: .4byte gStringVar4\n\ + .syntax divided"); +} + +void sub_80F7C54(void) +{ + sub_80F7F80(gSpecialVar_0x8004); + MenuDisplayMessageBox(); + ScriptContext1_Stop(); +} + +void sub_80F7C70(void) +{ + u16 *scriptPtr = &gScriptResult; // again?? + OldMan *oldMan = &gSaveBlock1.oldMan; + + *scriptPtr = oldMan->oldMan1.unk_2D95; +} + +void sub_80F7C84(void) +{ + OldMan *oldMan = &gSaveBlock1.oldMan; + + oldMan->oldMan1.unk_2D95 = 1; +} + +void sub_80F7C90(void) +{ + u16 var = sub_80EB8EC(); + + if(var == 0xFFFF) + { + gScriptResult = FALSE; + } + else + { + sub_80EB3FC(gStringVar1, var); + gScriptResult = TRUE; + } +} + +void sub_80F7CC8(void) +{ + OldMan *oldMan = &gSaveBlock1.oldMan; + + if(oldMan->oldMan1.unk_2D95 == 10) + { + gScriptResult = FALSE; + oldMan->oldMan1.unk_2D95 = 0; + } + else + gScriptResult = TRUE; +} + +// someone fix this +#ifdef NONMATCHING +void sub_80F7CF4(void) +{ + u8 *stringPtr; + OldMan *oldMan = &gSaveBlock1.oldMan; + + if(oldMan->oldMan2.unk1 == 0) + sub_80F7DC0(); + + if(oldMan->oldMan2.mauvilleOldMan_ecArray[oldMan->oldMan2.unk1] != 0xFFFF) // is not the last element of the array? + { + int random = (u16)Random(); + random &= 7; + sub_80EB3FC(gStringVar4, oldMan->oldMan2.mauvilleOldMan_ecArray[oldMan->oldMan2.unk1]); + stringPtr = StringCopy(gStringVar4, gOtherText_Is); + stringPtr = StringCopy(stringPtr, (u8 *)gUnknown_083E5388[random]); + StringCopy(stringPtr, gOtherText_DontYouAgree); + } + else + { + StringCopy(gStringVar4, (u8 *)gUnknown_083E53A8[oldMan->oldMan2.mauvilleOldMan_ecArray2[oldMan->oldMan2.unk2++]]); + } + if(!(Random() % 10)) + oldMan->oldMan2.unk1 = 10; + else + oldMan->oldMan2.unk1++; + + gScriptResult = TRUE; +} +#else +__attribute__((naked)) +void sub_80F7CF4(void) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94\n\ + ldrb r0, [r5, 0x1]\n\ + cmp r0, 0\n\ + bne _080F7D02\n\ + bl sub_80F7DC0\n\ +_080F7D02:\n\ + ldrb r0, [r5, 0x1]\n\ + lsls r0, 1\n\ + adds r6, r5, 0x4\n\ + adds r0, r6\n\ + ldrh r1, [r0]\n\ + ldr r0, _080F7D54 @ =0x0000ffff\n\ + cmp r1, r0\n\ + beq _080F7D68\n\ + bl Random\n\ + adds r4, r0, 0\n\ + lsls r4, 16\n\ + lsrs r4, 16\n\ + movs r0, 0x7\n\ + ands r4, r0\n\ + ldr r0, _080F7D58 @ =gStringVar4\n\ + ldrb r1, [r5, 0x1]\n\ + lsls r1, 1\n\ + adds r1, r6\n\ + ldrh r1, [r1]\n\ + bl sub_80EB3FC\n\ + adds r2, r0, 0\n\ + ldr r1, _080F7D5C @ =gOtherText_Is\n\ + bl StringCopy\n\ + adds r2, r0, 0\n\ + ldr r0, _080F7D60 @ =gUnknown_083E5388\n\ + lsls r4, 2\n\ + adds r4, r0\n\ + ldr r1, [r4]\n\ + adds r0, r2, 0\n\ + bl StringCopy\n\ + adds r2, r0, 0\n\ + ldr r1, _080F7D64 @ =gOtherText_DontYouAgree\n\ + bl StringCopy\n\ + b _080F7D88\n\ + .align 2, 0\n\ +_080F7D50: .4byte gSaveBlock1 + 0x2D94\n\ +_080F7D54: .4byte 0x0000ffff\n\ +_080F7D58: .4byte gStringVar4\n\ +_080F7D5C: .4byte gOtherText_Is\n\ +_080F7D60: .4byte gUnknown_083E5388\n\ +_080F7D64: .4byte gOtherText_DontYouAgree\n\ +_080F7D68:\n\ + ldr r0, _080F7DA0 @ =gStringVar4\n\ + ldr r3, _080F7DA4 @ =gUnknown_083E53A8\n\ + ldrb r1, [r5, 0x2]\n\ + adds r2, r1, 0x1\n\ + strb r2, [r5, 0x2]\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + adds r2, r5, 0\n\ + adds r2, 0x18\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + lsls r1, 2\n\ + adds r1, r3\n\ + ldr r1, [r1]\n\ + bl StringCopy\n\ +_080F7D88:\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + bne _080F7DA8\n\ + movs r0, 0xA\n\ + b _080F7DAC\n\ + .align 2, 0\n\ +_080F7DA0: .4byte gStringVar4\n\ +_080F7DA4: .4byte gUnknown_083E53A8\n\ +_080F7DA8:\n\ + ldrb r0, [r5, 0x1]\n\ + adds r0, 0x1\n\ +_080F7DAC:\n\ + strb r0, [r5, 0x1]\n\ + ldr r1, _080F7DBC @ =gScriptResult\n\ + movs r0, 0x1\n\ + strh r0, [r1]\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080F7DBC: .4byte gScriptResult\n\ + .syntax divided"); +} +#endif diff --git a/src/menu.c b/src/menu.c index a4e5d9065..ba98ff057 100644 --- a/src/menu.c +++ b/src/menu.c @@ -654,7 +654,7 @@ u8 *sub_8072C44(u8 *a1, s32 a2, u8 a3, u8 a4) return AlignInt2(gMenuWindowPtr, a1, a2, a3, a4); } -u8 *sub_8072C74(u8 *a1, u8 *a2, u8 a3, u8 a4) +u8 *sub_8072C74(u8 *a1, const u8 *a2, u8 a3, u8 a4) { return AlignString(gMenuWindowPtr, a1, a2, a3, a4); } diff --git a/src/naming_screen.c b/src/naming_screen.c index 1c718b3ca..568fdf092 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -11,10 +11,22 @@ #include "text.h" #include "trig.h" -struct UnknownStruct2 +extern u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); +extern u8 CreateMonIcon(); +extern void sub_809D51C(void); +extern void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); + +enum +{ + NAMING_SCREEN_TEMPLATE_PLAYER_NAME, + NAMING_SCREEN_TEMPLATE_BOX_NAME, + NAMING_SCREEN_TEMPLATE_MON_NAME, +}; + +struct NamingScreenTemplate { u8 unk0; - u8 unk1; + u8 maxChars; u8 unk2; u8 unk3; u8 unk4; //mode? @@ -24,36 +36,29 @@ struct UnknownStruct2 const u8 *title; }; -struct UnknownStruct1 +struct NamingScreenData { - u8 state; //state - u8 mode; + u8 state; + u8 templateNum; u16 unk2; - u16 unk4; - u16 unk6; + u16 bg1vOffset; + u16 bg2vOffset; u16 unk8; u16 unkA; u8 unkC; u8 unkD; - u8 currentPage; //page? - u8 cursorSpriteId; //spriteId + u8 currentPage; + u8 cursorSpriteId; u8 unk10; u8 textBuffer[0x10]; u8 filler21[0x13]; - /*0x34*/ const struct UnknownStruct2 *unk34; - /*0x38*/ u8 *nameBuffer; + const struct NamingScreenTemplate *template; + u8 *destBuffer; u16 unk3C; //savedKeyRepeatStartDelay u16 unk3E; u16 unk40; u32 unk44; - /*0x48*/ MainCallback returnCallback; -}; - -enum -{ - NAMING_SCREEN_MODE_PLAYER_NAME, - NAMING_SCREEN_MODE_BOX_NAME, - NAMING_SCREEN_MODE_MON_NAME, + MainCallback returnCallback; }; enum @@ -67,7 +72,7 @@ extern u16 gKeyRepeatStartDelay; extern u8 unk_2000000[]; -#define EWRAM_000000 (*(struct UnknownStruct1 *)(unk_2000000)) +#define namingScreenData (*(struct NamingScreenData *)(unk_2000000)) const u32 gSpriteImage_83CE094[] = INCBIN_U32("graphics/naming_screen/pc_icon/0.4bpp"); const u32 gSpriteImage_83CE154[] = INCBIN_U32("graphics/naming_screen/pc_icon/1.4bpp"); @@ -75,11 +80,10 @@ const u32 gSpriteImage_83CE154[] = INCBIN_U32("graphics/naming_screen/pc_icon/1. //Some unused pointer, perhaps. asm(".section .rodata\n\ @ XXX: what is this?\n\ - .align 2\n\ - .4byte 0x2000000\n"); + .align 2\n\ + .4byte 0x2000000\n"); extern u16 *const gUnknown_083CE28C[]; -extern const struct UnknownStruct2 *const gUnknown_083CE398[]; extern const struct SubspriteTable gSubspriteTables_83CE558[]; extern const struct SubspriteTable gSubspriteTables_83CE560[]; extern const struct SubspriteTable gSubspriteTables_83CE578[]; @@ -93,92 +97,129 @@ extern const struct SpriteTemplate gSpriteTemplate_83CE640; extern const struct SpriteTemplate gSpriteTemplate_83CE658; extern const struct SpriteTemplate gSpriteTemplate_83CE670; extern const struct SpriteTemplate gSpriteTemplate_83CE688; +extern const struct SpriteSheet gUnknown_083CE6A0[]; +extern const struct SpritePalette gUnknown_083CE708[]; +extern const u8 gOtherText_SentToPC[]; +extern const u8 gNamingScreenMenu_Gfx[]; +extern u16 gMenuMessageBoxContentTileOffset; +extern const u16 gNamingScreenPalettes[]; +extern const u16 gUnknown_083CE748[]; +extern const u16 gUnknown_083CEBF8[]; +extern const u16 gUnknown_083CF0A8[]; +extern const u16 gUnknown_08E86258[]; +extern const u8 gSpeciesNames[][11]; +extern const u8 OtherText_YourName[]; +extern const u8 OtherText_BoxName[]; +extern const u8 OtherText_PokeName[]; + +static void C2_NamingScreen(void); +static void sub_80B5AA0(void); +static void StoreNamingScreenParameters(u8, u8 *, u16, u16, u32, MainCallback); +static void NamingScreen_TurnOffScreen(void); +static void NamingScreen_Init(void); +static void NamingScreen_ClearVram(void); +static void NamingScreen_ClearOam(void); +static void NamingScreen_SetUpVideoRegs(void); +static void NamingScreen_SetUpWindow(void); +static void NamingScreen_ResetObjects(void); +static void sub_80B5DFC(void); +static void sub_80B5E20(void); +static void sub_80B5E3C(void); +static void NamingScreen_InitDisplayMode(void); +static void Task_DoNothing(u8); +static void sub_80B7558(void); +static void sub_80B753C(void); +static void sub_80B7680(void); +static void sub_80B75C4(void); +static void sub_80B7794(void); +static void sub_80B78A8(void); +static void sub_80B7960(void); +static void CursorInit(void); +static void sub_80B6A80(void); +static void sub_80B6CA8(void); +static void sub_80B6D04(void); +static void sub_80B6E44(void); +static void InputInit(void); +static void sub_80B6438(void); +static void sub_80B5E50(void); +static void Task_NamingScreenMain(u8); +static void SetInputState(u8); +static void sub_80B68D8(u8); +static bool8 HandleKeyboardEvent(void); +static bool8 IsCursorAnimFinished(void); +static void MoveCursorToOKButton(void); +static void sub_80B6B14(void); +static void StartPageSwapAnim(void); +static void sub_80B6888(u8); +static void sub_80B6460(u8, u8, u8); +static bool8 IsPageSwapAnimNotInProgress(void); +static void sub_80B7614(void); +static void GetCursorPos(s16 *, s16 *); +static void SetCursorPos(s16, s16); +static void sub_80B77F8(void); +static void sub_80B74B0(void); +static void DisplaySentToPCMessage(void); +static u8 GetKeyRoleAtCursorPos(void); +static u8 sub_80B61C8(void); +static void DeleteTextCharacter(void); +static void sub_80B7090(void); +static u8 GetInputEvent(void); +static bool8 sub_80B7004(void); +static void sub_80B6914(void); +static void Task_HandlePageSwapAnim(u8); +static void sub_80B6C48(u8, struct Sprite *, struct Sprite *); +static u8 GetTextCaretPosition(void); +static u8 GetCharAtKeyboardPos(s16, s16); +static bool8 sub_80B7104(void); +static bool8 sub_80B713C(void); +static void AddTextCharacter(u8); +static bool8 sub_80B7198(u8); +static bool8 sub_80B7264(u8); +static void sub_80B7370(u8, u8); +static void sub_80B73CC(u8, u8); +static bool8 sub_80B71E4(u8); +static void sub_80B7474(u8, u8); +static void sub_80B72A4(u8, u8); +static bool8 sub_80B720C(u8); +static void sub_80B7568(void); +static void sub_80B75B0(void); +static void sub_80B7698(u16 *, const u16 *); +static void sub_80B76E0(); +static void nullsub_20(u8, u8); +static void PrintKeyboardCharacters(u8); -void C2_NamingScreen(void); -void sub_80B5AA0(void); -//void AddNamingScreenTask(); -void AddNamingScreenTask(u8, u8 *, u16, u16, u32, MainCallback); -void NamingScreen_TurnOffScreen(void); -void NamingScreen_Init(void); -void NamingScreen_ClearVram(void); -void NamingScreen_ClearOam(void); -void NamingScreen_SetUpVideoRegs(void); -void sub_80B5DC8(void); -void NamingScreen_ResetObjects(void); -void sub_80B5DFC(void); -void sub_80B5E20(void); -void sub_80B5E3C(void); -void sub_80B5C04(void); -void NamingScreenDummyTask(u8); -void sub_80B7558(void); -void sub_80B753C(void); -void sub_80B7680(void); -void sub_80B75C4(void); -void sub_80B7794(void); -void sub_80B78A8(void); -void sub_80B7960(void); -void sub_80B6774(void); -void sub_80B6A80(void); -void sub_80B6CA8(void); -void sub_80B6D04(void); -void sub_80B6E44(void); -void InitInput(void); -void sub_80B6438(void); -void sub_80B5E50(void); -void sub_80B5E70(u8); -void SetInputState(u8); -void sub_80B68D8(u8); -u8 sub_80B60B8(void); -bool8 sub_80B6938(void); -void sub_80B6878(void); -void sub_80B6B14(void); -void sub_80B65F0(void); -void sub_80B6888(u8); -void sub_80B6460(u8, u8, u8); -bool8 sub_80B6610(void); -void sub_80B7614(void); -void get_cursor_pos(s16 *, s16 *); -void set_cursor_pos(s16, s16); -void sub_80B77F8(void); -void sub_80B74B0(void); -void sub_80B74FC(void); -u8 sub_80B6958(void); -u8 sub_80B61C8(void); -void sub_80B6FBC(void); -void sub_80B7090(void); -u8 GetInputPressedButton(void); -u8 sub_80B7004(void); -void sub_80B6914(void); -void Task_HandleInput(u8); -void HandleDpadMovement(struct Task *); -void sub_80B64D4(u8); -void sub_80B65AC(u8); -void sub_80B65D4(struct Task *, u8, u8); -u16 sub_80B654C(u8); -extern void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); -void sub_80B6630(u8); -void sub_80B6C48(u8, struct Sprite *, struct Sprite *); -u8 sub_80B6F44(void); -extern u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8); -extern u8 CreateMonIcon(); -extern void sub_809D51C(void); -u8 sub_80B7768(s16, s16); -u8 sub_80B7104(void); -u8 sub_80B713C(void); -void sub_80B7174(u8); +enum +{ + MAIN_STATE_BEGIN_FADE_IN, + MAIN_STATE_WAIT_FADE_IN, + MAIN_STATE_HANDLE_INPUT, + MAIN_STATE_MOVE_TO_OK_BUTTON, + MAIN_STATE_START_PAGE_SWAP, + MAIN_STATE_WAIT_PAGE_SWAP, + MAIN_STATE_6, + MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE, + MAIN_STATE_BEGIN_FADE_OUT, +}; -#define NAMING_SCREEN_A_BUTTON 5 -#define NAMING_SCREEN_B_BUTTON 6 -#define NAMING_SCREEN_SELECT_BUTTON 8 -#define NAMING_SCREEN_START_BUTTON 9 +enum +{ + INPUT_STATE_DISABLED, + INPUT_STATE_ENABLED, +}; + +#define KBEVENT_NONE 0 +#define KBEVENT_PRESSED_A 5 +#define KBEVENT_PRESSED_B 6 +#define KBEVENT_PRESSED_SELECT 8 +#define KBEVENT_PRESSED_START 9 -void DoNamingScreen(u8 mode, u8 *nameBuffer, u16 c, u16 d, u32 e, MainCallback returnCallback) +void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 c, u16 d, u32 e, MainCallback returnCallback) { - AddNamingScreenTask(mode, nameBuffer, c, d, e, returnCallback); + StoreNamingScreenParameters(templateNum, destBuffer, c, d, e, returnCallback); SetMainCallback2(C2_NamingScreen); } -void C2_NamingScreen(void) +static void C2_NamingScreen(void) { switch (gMain.state) { @@ -200,7 +241,7 @@ void C2_NamingScreen(void) gMain.state++; break; case 4: - sub_80B5DC8(); + NamingScreen_SetUpWindow(); gMain.state++; break; case 5: @@ -214,13 +255,13 @@ void C2_NamingScreen(void) case 7: sub_80B5E20(); sub_80B5E3C(); - sub_80B5C04(); + NamingScreen_InitDisplayMode(); SetMainCallback2(sub_80B5AA0); break; } } -void sub_80B5AA0(void) +static void sub_80B5AA0(void) { RunTasks(); AnimateSprites(); @@ -228,65 +269,66 @@ void sub_80B5AA0(void) UpdatePaletteFade(); } -void sub_80B5AB8(void) +static void VBlankCB_NamingScreen(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - REG_BG1VOFS = EWRAM_000000.unk4; - REG_BG2VOFS = EWRAM_000000.unk6; + REG_BG1VOFS = namingScreenData.bg1vOffset; + REG_BG2VOFS = namingScreenData.bg2vOffset; REG_BG1CNT &= 0xFFFC; - REG_BG1CNT |= EWRAM_000000.unk8; + REG_BG1CNT |= namingScreenData.unk8; REG_BG2CNT &= 0xFFFC; - REG_BG2CNT |= EWRAM_000000.unkA; + REG_BG2CNT |= namingScreenData.unkA; } -void AddNamingScreenTask(u8 mode, u8 *nameBuffer, u16 c, u16 d, u32 e, MainCallback returnCallback) +static void StoreNamingScreenParameters(u8 templateNum, u8 *destBuffer, u16 c, u16 d, u32 e, MainCallback returnCallback) { struct Task *task; - task = &gTasks[CreateTask(NamingScreenDummyTask, 0xFF)]; - task->data[0] = mode; + //Create a task that does nothing, and use it as a temporary space to store parameters + task = &gTasks[CreateTask(Task_DoNothing, 0xFF)]; + task->data[0] = templateNum; task->data[1] = c; task->data[2] = d; task->data[3] = e >> 16; task->data[4] = e; - StoreWordInTwoHalfwords(&task->data[5], (u32)nameBuffer); + StoreWordInTwoHalfwords(&task->data[5], (u32)destBuffer); StoreWordInTwoHalfwords(&task->data[7], (u32)returnCallback); } -void GetNamingScreenParameters(void) +static void GetNamingScreenParameters(void) { u8 taskId; struct Task *task; - taskId = FindTaskIdByFunc(NamingScreenDummyTask); + taskId = FindTaskIdByFunc(Task_DoNothing); task = &gTasks[taskId]; - EWRAM_000000.mode = task->data[0]; - EWRAM_000000.unk3E = task->data[1]; - EWRAM_000000.unk40 = task->data[2]; - EWRAM_000000.unk44 = (task->data[3] << 16) | (u16)task->data[4]; - LoadWordFromTwoHalfwords(&task->data[5], (u32 *)&EWRAM_000000.nameBuffer); - LoadWordFromTwoHalfwords(&task->data[7], (u32 *)&EWRAM_000000.returnCallback); + namingScreenData.templateNum = task->data[0]; + namingScreenData.unk3E = task->data[1]; + namingScreenData.unk40 = task->data[2]; + namingScreenData.unk44 = (task->data[3] << 16) | (u16)task->data[4]; + LoadWordFromTwoHalfwords(&task->data[5], (u32 *)&namingScreenData.destBuffer); + LoadWordFromTwoHalfwords(&task->data[7], (u32 *)&namingScreenData.returnCallback); DestroyTask(taskId); } -void NamingScreenDummyTask(u8 taskId) +static void Task_DoNothing(u8 taskId) { } -void NamingScreen_TurnOffScreen(void) +static void NamingScreen_TurnOffScreen(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); REG_DISPCNT = 0; } -void sub_80B5C04(void) +static void NamingScreen_InitDisplayMode(void) { u16 savedIme; - SetVBlankCallback(sub_80B5AB8); + SetVBlankCallback(VBlankCB_NamingScreen); savedIme = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; @@ -295,7 +337,7 @@ void sub_80B5C04(void) REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON; } -void NamingScreen_ClearVram(void) +static void NamingScreen_ClearVram(void) { u8 *addr = (void *)VRAM; u32 size = 0x10000; @@ -313,12 +355,12 @@ void NamingScreen_ClearVram(void) } } -void NamingScreen_ClearOam(void) +static void NamingScreen_ClearOam(void) { DmaClear16(3, (void *)OAM, 0x400); } -void NamingScreen_SetUpVideoRegs(void) +static void NamingScreen_SetUpVideoRegs(void) { REG_BG0CNT = 0; REG_BG1CNT = 0; @@ -340,33 +382,35 @@ void NamingScreen_SetUpVideoRegs(void) REG_BLDALPHA = 0x80C; } -void NamingScreen_Init(void) +static const struct NamingScreenTemplate *const sNamingScreenTemplates[]; //forward declaration + +static void NamingScreen_Init(void) { GetNamingScreenParameters(); - EWRAM_000000.state = 0; - EWRAM_000000.unk4 = 0; - EWRAM_000000.unk6 = 0; - EWRAM_000000.unk8 = 1; - EWRAM_000000.unkA = 2; - EWRAM_000000.unkC = 0; - EWRAM_000000.unkD = 1; - EWRAM_000000.unk34 = gUnknown_083CE398[EWRAM_000000.mode]; - EWRAM_000000.currentPage = EWRAM_000000.unk34->unk4; - EWRAM_000000.unk2 = 14 - EWRAM_000000.unk34->unk1 / 2; - EWRAM_000000.unk3C = gKeyRepeatStartDelay; - memset(EWRAM_000000.textBuffer, 0xFF, 0x10); - if (EWRAM_000000.unk34->unk0 != 0) - StringCopy(EWRAM_000000.textBuffer, EWRAM_000000.nameBuffer); + namingScreenData.state = 0; + namingScreenData.bg1vOffset = 0; + namingScreenData.bg2vOffset = 0; + namingScreenData.unk8 = 1; + namingScreenData.unkA = 2; + namingScreenData.unkC = 0; + namingScreenData.unkD = 1; + namingScreenData.template = sNamingScreenTemplates[namingScreenData.templateNum]; + namingScreenData.currentPage = namingScreenData.template->unk4; + namingScreenData.unk2 = 14 - namingScreenData.template->maxChars / 2; + namingScreenData.unk3C = gKeyRepeatStartDelay; + memset(namingScreenData.textBuffer, 0xFF, 0x10); + if (namingScreenData.template->unk0 != 0) + StringCopy(namingScreenData.textBuffer, namingScreenData.destBuffer); gKeyRepeatStartDelay = 16; } -void sub_80B5DC8(void) +static void NamingScreen_SetUpWindow(void) { SetUpWindowConfig(&gWindowConfig_81E6E88); InitMenuWindow(&gWindowConfig_81E6E88); } -void NamingScreen_ResetObjects(void) +static void NamingScreen_ResetObjects(void) { ResetPaletteFade(); ResetSpriteData(); @@ -374,7 +418,7 @@ void NamingScreen_ResetObjects(void) ResetTasks(); } -void sub_80B5DFC(void) +static void sub_80B5DFC(void) { sub_80B7558(); sub_80B753C(); @@ -385,257 +429,272 @@ void sub_80B5DFC(void) sub_80B7960(); } -void sub_80B5E20(void) +static void sub_80B5E20(void) { - sub_80B6774(); + CursorInit(); sub_80B6A80(); sub_80B6CA8(); sub_80B6D04(); sub_80B6E44(); } -void sub_80B5E3C(void) +static void sub_80B5E3C(void) { - InitInput(); + InputInit(); sub_80B6438(); sub_80B5E50(); } -void sub_80B5E50(void) +//-------------------------------------------------- +// Naming screen main +//-------------------------------------------------- + +static bool8 MainState_BeginFadeIn(struct Task *); +static bool8 MainState_WaitFadeIn(struct Task *); +static bool8 MainState_HandleInput(struct Task *); +static bool8 MainState_MoveToOKButton(struct Task *); +static bool8 MainState_StartPageSwap(struct Task *); +static bool8 MainState_WaitPageSwap(struct Task *); +static bool8 MainState_6(struct Task *); +static bool8 MainState_UpdateSentToPCMessage(struct Task *); +static bool8 MainState_BeginFadeInOut(struct Task *); +static bool8 MainState_WaitFadeOutAndExit(struct Task *); + +static bool8 (*const sMainStateFuncs[])(struct Task *) = +{ + MainState_BeginFadeIn, + MainState_WaitFadeIn, + MainState_HandleInput, + MainState_MoveToOKButton, + MainState_StartPageSwap, + MainState_WaitPageSwap, + MainState_6, + MainState_UpdateSentToPCMessage, + MainState_BeginFadeInOut, + MainState_WaitFadeOutAndExit, +}; + +static void sub_80B5E50(void) { u8 taskId; - taskId = CreateTask(sub_80B5E70, 2); - sub_80B5E70(taskId); + taskId = CreateTask(Task_NamingScreenMain, 2); + Task_NamingScreenMain(taskId); } -// - -u8 sub_80B5EA8(struct Task *); -u8 sub_80B5ED0(struct Task *); -u8 sub_80B5F00(struct Task *); -u8 sub_80B5F10(struct Task *); -u8 sub_80B5F38(struct Task *); -u8 sub_80B5F70(struct Task *); -u8 pokemon_store(struct Task *); -u8 sub_80B604C(struct Task *); -u8 sub_80B606C(struct Task *); -u8 sub_80B6094(struct Task *); - -static u8 (*const gUnknown_083CE218[])(struct Task *) = -{ - sub_80B5EA8, - sub_80B5ED0, - sub_80B5F00, - sub_80B5F10, - sub_80B5F38, - sub_80B5F70, - pokemon_store, - sub_80B604C, - sub_80B606C, - sub_80B6094, -}; - -void sub_80B5E70(u8 taskId) +static void Task_NamingScreenMain(u8 taskId) { - while (gUnknown_083CE218[EWRAM_000000.state](&gTasks[taskId]) != 0) + while (sMainStateFuncs[namingScreenData.state](&gTasks[taskId]) != 0) ; } -u8 sub_80B5EA8(struct Task *task) +static bool8 MainState_BeginFadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - EWRAM_000000.state++; + namingScreenData.state++; return 0; } -u8 sub_80B5ED0(struct Task *task) +static bool8 MainState_WaitFadeIn(struct Task *task) { if (!gPaletteFade.active) { - SetInputState(1); + SetInputState(INPUT_STATE_ENABLED); sub_80B68D8(1); - EWRAM_000000.state++; + namingScreenData.state++; } - return 0; + return FALSE; } -u8 sub_80B5F00(struct Task *task) +static bool8 MainState_HandleInput(struct Task *task) { - return sub_80B60B8(); + return HandleKeyboardEvent(); } -u8 sub_80B5F10(struct Task *task) +static bool8 MainState_MoveToOKButton(struct Task *task) { - if (sub_80B6938() != 0) + if (IsCursorAnimFinished()) { - SetInputState(1); - sub_80B6878(); - EWRAM_000000.state = 2; + SetInputState(INPUT_STATE_ENABLED); + MoveCursorToOKButton(); + namingScreenData.state = MAIN_STATE_HANDLE_INPUT; } - return 0; + return FALSE; } -u8 sub_80B5F38(struct Task *task) +static bool8 MainState_StartPageSwap(struct Task *task) { - SetInputState(0); + SetInputState(INPUT_STATE_DISABLED); sub_80B6B14(); - sub_80B65F0(); + StartPageSwapAnim(); sub_80B6888(1); sub_80B6460(0, 0, 1); PlaySE(SE_WIN_OPEN); - EWRAM_000000.state = 5; - return 0; + namingScreenData.state = MAIN_STATE_WAIT_PAGE_SWAP; + return FALSE; } -u8 sub_80B5F70(struct Task *task) +static bool8 MainState_WaitPageSwap(struct Task *task) { s16 cursorX; s16 cursorY; - if (sub_80B6610()) + if (IsPageSwapAnimNotInProgress()) { - EWRAM_000000.state = 2; - EWRAM_000000.currentPage++; - EWRAM_000000.currentPage %= 3; + namingScreenData.state = MAIN_STATE_HANDLE_INPUT; + namingScreenData.currentPage++; + namingScreenData.currentPage %= 3; sub_80B7614(); sub_80B77F8(); - SetInputState(1); - get_cursor_pos(&cursorX, &cursorY); - if (EWRAM_000000.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) + SetInputState(INPUT_STATE_ENABLED); + GetCursorPos(&cursorX, &cursorY); + if (namingScreenData.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) cursorX = 5; - set_cursor_pos(cursorX, cursorY); + SetCursorPos(cursorX, cursorY); sub_80B6888(0); } - return 0; + return FALSE; } -u8 pokemon_store(struct Task *task) +static bool8 MainState_6(struct Task *task) { sub_80B74B0(); - SetInputState(0); + SetInputState(INPUT_STATE_DISABLED); sub_80B68D8(0); sub_80B6460(3, 0, 1); - gKeyRepeatStartDelay = EWRAM_000000.unk3C; - if (EWRAM_000000.mode == NAMING_SCREEN_MODE_MON_NAME - && CalculatePlayerPartyCount() > 5) + gKeyRepeatStartDelay = namingScreenData.unk3C; + if (namingScreenData.templateNum == NAMING_SCREEN_TEMPLATE_MON_NAME + && CalculatePlayerPartyCount() >= 6) { - sub_80B74FC(); - EWRAM_000000.state = 7; - return 0; + DisplaySentToPCMessage(); + namingScreenData.state = MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE; + return FALSE; } else { - EWRAM_000000.state = 8; - return 1; + namingScreenData.state = MAIN_STATE_BEGIN_FADE_OUT; + return TRUE; //Exit the naming screen } } -u8 sub_80B604C(struct Task *task) +static bool8 MainState_UpdateSentToPCMessage(struct Task *task) { if (MenuUpdateWindowText()) - EWRAM_000000.state++; - return 0; + namingScreenData.state++; + return FALSE; } -u8 sub_80B606C(struct Task *task) +static bool8 MainState_BeginFadeInOut(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - EWRAM_000000.state++; - return 0; + namingScreenData.state++; + return FALSE; } -u8 sub_80B6094(struct Task *task) +static bool8 MainState_WaitFadeOutAndExit(struct Task *task) { if (!gPaletteFade.active) - SetMainCallback2(EWRAM_000000.returnCallback); - return 0; + SetMainCallback2(namingScreenData.returnCallback); + return FALSE; } -u8 sub_80B6108(u8); -u8 sub_80B6148(u8); -u8 sub_80B6170(u8); -u8 sub_80B6194(u8); +//-------------------------------------------------- +// Keyboard handling +//-------------------------------------------------- -static u8 (*const gUnknown_083CE240[])(u8) = +enum { - sub_80B6108, - sub_80B6148, - sub_80B6170, - sub_80B6194, + KEY_ROLE_CHAR, + KEY_ROLE_PAGE, + KEY_ROLE_BACKSPACE, + KEY_ROLE_OK, }; -u8 sub_80B60B8(void) + +static bool8 KeyboardKeyHandler_Character(u8); +static bool8 KeyboardKeyHandler_Page(u8); +static bool8 KeyboardKeyHandler_Backspace(u8); +static bool8 KeyboardKeyHandler_OK(u8); + +static bool8 (*const sKeyboardKeyHandlers[])(u8) = { - u8 button = GetInputPressedButton(); - u8 r0 = sub_80B6958(); + KeyboardKeyHandler_Character, + KeyboardKeyHandler_Page, + KeyboardKeyHandler_Backspace, + KeyboardKeyHandler_OK, +}; + +static bool8 HandleKeyboardEvent(void) +{ + u8 event = GetInputEvent(); + u8 keyRole = GetKeyRoleAtCursorPos(); - if (button == 8) + if (event == KBEVENT_PRESSED_SELECT) return sub_80B61C8(); - else if (button == 6) + else if (event == KBEVENT_PRESSED_B) { - sub_80B6FBC(); - return 0; + DeleteTextCharacter(); + return FALSE; } - else if (button == 7) + else if (event == 7) { sub_80B7090(); - return 0; + return FALSE; } - return gUnknown_083CE240[r0](button); + return sKeyboardKeyHandlers[keyRole](event); } -u8 sub_80B6108(u8 a) +static bool8 KeyboardKeyHandler_Character(u8 event) { sub_80B6460(3, 0, 0); - if (a == 5) + if (event == KBEVENT_PRESSED_A) { u8 var = sub_80B7004(); sub_80B6914(); - if (var != 0) + if (var) { - SetInputState(0); - EWRAM_000000.state = 3; + SetInputState(INPUT_STATE_DISABLED); + namingScreenData.state = MAIN_STATE_MOVE_TO_OK_BUTTON; } } - return 0; + return FALSE; } -u8 sub_80B6148(u8 a) +static bool8 KeyboardKeyHandler_Page(u8 event) { sub_80B6460(0, 1, 0); - if (a == 5) + if (event == KBEVENT_PRESSED_A) return sub_80B61C8(); else - return 0; + return FALSE; } -u8 sub_80B6170(u8 a) +static bool8 KeyboardKeyHandler_Backspace(u8 event) { sub_80B6460(1, 1, 0); - if (a == 5) - sub_80B6FBC(); - return 0; + if (event == KBEVENT_PRESSED_A) + DeleteTextCharacter(); + return FALSE; } -u8 sub_80B6194(u8 a) +static bool8 KeyboardKeyHandler_OK(u8 event) { sub_80B6460(2, 1, 0); - if (a == 5) + if (event == KBEVENT_PRESSED_A) { PlaySE(SE_SELECT); - EWRAM_000000.state = 6; - return 1; + namingScreenData.state = MAIN_STATE_6; + return TRUE; } else - return 0; + return FALSE; } -u8 sub_80B61C8(void) +static bool8 sub_80B61C8(void) { - EWRAM_000000.state = 4; - return 1; + namingScreenData.state = MAIN_STATE_START_PAGE_SWAP; + return TRUE; } //-------------------------------------------------- @@ -650,69 +709,72 @@ enum }; #define tState data[0] -#define tPressedButton data[1] +#define tKeyboardEvent data[1] #define tKbFunctionKey data[2] -void InitInput(void) +static void InputState_Disabled(struct Task *); +static void InputState_Enabled(struct Task *); + +static void (*const sInputStateFuncs[])(struct Task *) = +{ + InputState_Disabled, + InputState_Enabled, +}; + +static void Task_HandleInput(u8); +static void HandleDpadMovement(struct Task *); + +static void InputInit(void) { CreateTask(Task_HandleInput, 1); } -u8 GetInputPressedButton(void) +static u8 GetInputEvent(void) { u8 taskId = FindTaskIdByFunc(Task_HandleInput); - return gTasks[taskId].tPressedButton; + return gTasks[taskId].tKeyboardEvent; } -void SetInputState(u8 state) +static void SetInputState(u8 state) { u8 taskId = FindTaskIdByFunc(Task_HandleInput); gTasks[taskId].tState = state; } -static void sub_80B626C(struct Task *); -static void sub_80B6274(struct Task *); - -static void (*const sInputStateHandlers[])(struct Task *) = -{ - sub_80B626C, - sub_80B6274, -}; - -void Task_HandleInput(u8 taskId) +static void Task_HandleInput(u8 taskId) { - sInputStateHandlers[gTasks[taskId].tState](&gTasks[taskId]); + sInputStateFuncs[gTasks[taskId].tState](&gTasks[taskId]); } -static void sub_80B626C(struct Task *task) +static void InputState_Disabled(struct Task *task) { - task->tPressedButton = 0; + task->tKeyboardEvent = 0; } -static void sub_80B6274(struct Task *task) +static void InputState_Enabled(struct Task *task) { - task->tPressedButton = 0; + task->tKeyboardEvent = 0; if (gMain.newKeys & A_BUTTON) { - task->tPressedButton = 5; + task->tKeyboardEvent = KBEVENT_PRESSED_A; return; } if (gMain.newKeys & B_BUTTON) { - task->tPressedButton = 6; + task->tKeyboardEvent = KBEVENT_PRESSED_B; return; } if (gMain.newKeys & SELECT_BUTTON) { - task->tPressedButton = 8; + task->tKeyboardEvent = KBEVENT_PRESSED_SELECT; return; } if (gMain.newKeys & START_BUTTON) { - task->tPressedButton = 9; - sub_80B6878(); + task->tKeyboardEvent = KBEVENT_PRESSED_START; + MoveCursorToOKButton(); return; } HandleDpadMovement(task); @@ -739,14 +801,14 @@ static const s16 sDpadDeltaY[] = static const s16 s4RowTo3RowTableY[] = {0, 1, 1, 2}; static const s16 gUnknown_083CE274[] = {0, 0, 3, 0}; -void HandleDpadMovement(struct Task *task) +static void HandleDpadMovement(struct Task *task) { s16 cursorX; s16 cursorY; u16 dpadDir; s16 prevCursorX; - get_cursor_pos(&cursorX, &cursorY); + GetCursorPos(&cursorX, &cursorY); dpadDir = 0; if (gMain.newAndRepeatedKeys & DPAD_UP) dpadDir = 1; @@ -772,7 +834,7 @@ void HandleDpadMovement(struct Task *task) if (sDpadDeltaX[dpadDir] != 0) { //The "others" page only has 5 columns - if (EWRAM_000000.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) + if (namingScreenData.currentPage == PAGE_OTHERS && (cursorX == 6 || cursorX == 7)) { if (sDpadDeltaX[dpadDir] > 0) cursorX = 8; @@ -815,28 +877,34 @@ void HandleDpadMovement(struct Task *task) if (cursorY > 3) cursorY = 0; } - set_cursor_pos(cursorX, cursorY); + SetCursorPos(cursorX, cursorY); } #undef tState -#undef tPressedButton +#undef tKeyboardEvent #undef tKbFunctionKey //-------------------------------------------------- +// +//-------------------------------------------------- + +static void Task_80B64D4(u8); +static u16 sub_80B654C(u8); +static void sub_80B65AC(u8); +static void sub_80B65D4(struct Task *, u8, u8); -void sub_80B6438(void) +static void sub_80B6438(void) { u8 taskId; - taskId = CreateTask(sub_80B64D4, 3); + taskId = CreateTask(Task_80B64D4, 3); gTasks[taskId].data[0] = 3; } -void sub_80B6460(u8 a, u8 b, u8 c) +static void sub_80B6460(u8 a, u8 b, u8 c) { - struct Task *task; + struct Task *task = &gTasks[FindTaskIdByFunc(Task_80B64D4)]; - task = &gTasks[FindTaskIdByFunc(sub_80B64D4)]; if (a == task->data[0] && c == 0) { task->data[1] = b; @@ -850,7 +918,7 @@ void sub_80B6460(u8 a, u8 b, u8 c) sub_80B65D4(task, a, b); } -void sub_80B64D4(u8 taskId) +static void Task_80B64D4(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -874,7 +942,7 @@ void sub_80B64D4(u8 taskId) } } -u16 sub_80B654C(u8 a) +static u16 sub_80B654C(u8 a) { const u16 arr[] = { @@ -886,14 +954,14 @@ u16 sub_80B654C(u8 a) return arr[a]; } -void sub_80B65AC(u8 a) +static void sub_80B65AC(u8 a) { u16 index = sub_80B654C(a); gPlttBufferFaded[index] = gPlttBufferUnfaded[index]; } -void sub_80B65D4(struct Task *task, u8 b, u8 c) +static void sub_80B65D4(struct Task *task, u8 b, u8 c) { task->data[0] = b; task->data[1] = c; @@ -903,103 +971,117 @@ void sub_80B65D4(struct Task *task, u8 b, u8 c) task->data[5] = 0; } -// +//-------------------------------------------------- +// Page Swap +//-------------------------------------------------- + +#define tState data[0] +#define tFrameCount data[1] -u8 sub_80B6668(struct Task *); -u8 sub_80B6680(struct Task *); -u8 sub_80B66EC(struct Task *); -u8 sub_80B6758(struct Task *); +static bool8 PageSwapAnimState_Init(struct Task *); +static bool8 PageSwapAnimState_1(struct Task *); +static bool8 PageSwapAnimState_2(struct Task *); +static bool8 PageSwapAnimState_Done(struct Task *); -u8 (*const gUnknown_083CE27C[])(struct Task *) = +static bool8 (*const sPageSwapAnimStateFuncs[])(struct Task *) = { - sub_80B6668, - sub_80B6680, - sub_80B66EC, - sub_80B6758, + PageSwapAnimState_Init, + PageSwapAnimState_1, + PageSwapAnimState_2, + PageSwapAnimState_Done, }; -void sub_80B65F0(void) +static void StartPageSwapAnim(void) { u8 taskId; - taskId = CreateTask(sub_80B6630, 0); - sub_80B6630(taskId); + taskId = CreateTask(Task_HandlePageSwapAnim, 0); + Task_HandlePageSwapAnim(taskId); } -bool8 sub_80B6610(void) +static bool8 IsPageSwapAnimNotInProgress(void) { - if (FindTaskIdByFunc(sub_80B6630) == 0xFF) + if (FindTaskIdByFunc(Task_HandlePageSwapAnim) == 0xFF) return TRUE; else return FALSE; } -void sub_80B6630(u8 taskId) +static void Task_HandlePageSwapAnim(u8 taskId) { - while (gUnknown_083CE27C[gTasks[taskId].data[0]](&gTasks[taskId]) != 0) + while (sPageSwapAnimStateFuncs[gTasks[taskId].tState](&gTasks[taskId]) != 0) ; } -u8 sub_80B6668(struct Task *task) +static bool8 PageSwapAnimState_Init(struct Task *task) { - EWRAM_000000.unk4 = 0; - EWRAM_000000.unk6 = 0; - task->data[0]++; + namingScreenData.bg1vOffset = 0; + namingScreenData.bg2vOffset = 0; + task->tState++; return 0; } -u8 sub_80B6680(struct Task *task) +static bool8 PageSwapAnimState_1(struct Task *task) { - u16 *const arr[] = {&EWRAM_000000.unk6, &EWRAM_000000.unk4}; + u16 *const arr[] = + { + &namingScreenData.bg2vOffset, + &namingScreenData.bg1vOffset + }; - task->data[1] += 4; - *arr[EWRAM_000000.unkC] = Sin(task->data[1], 0x28); - *arr[EWRAM_000000.unkD] = Sin((task->data[1] + 0x80) & 0xFF, 0x28); - if (task->data[1] > 0x3F) + task->tFrameCount += 4; + *arr[namingScreenData.unkC] = Sin(task->tFrameCount, 40); + *arr[namingScreenData.unkD] = Sin((task->tFrameCount + 128) & 0xFF, 40); + if (task->tFrameCount >= 64) { - u8 temp = EWRAM_000000.unk8; //Why u8 and not u16? + u8 temp = namingScreenData.unk8; //Why u8 and not u16? - EWRAM_000000.unk8 = EWRAM_000000.unkA; - EWRAM_000000.unkA = temp; - task->data[0]++; + namingScreenData.unk8 = namingScreenData.unkA; + namingScreenData.unkA = temp; + task->tState++; } return 0; } -u8 sub_80B66EC(struct Task *task) +static bool8 PageSwapAnimState_2(struct Task *task) { - u16 *const arr[] = {&EWRAM_000000.unk6, &EWRAM_000000.unk4}; + u16 *const arr[] = {&namingScreenData.bg2vOffset, &namingScreenData.bg1vOffset}; - task->data[1] += 4; - *arr[EWRAM_000000.unkC] = Sin(task->data[1], 0x28); - *arr[EWRAM_000000.unkD] = Sin((task->data[1] + 0x80) & 0xFF, 0x28); - if (task->data[1] > 0x7F) + task->tFrameCount += 4; + *arr[namingScreenData.unkC] = Sin(task->tFrameCount, 40); + *arr[namingScreenData.unkD] = Sin((task->tFrameCount + 128) & 0xFF, 40); + if (task->tFrameCount >= 128) { - u8 temp = EWRAM_000000.unkC; + u8 temp = namingScreenData.unkC; - EWRAM_000000.unkC = EWRAM_000000.unkD; - EWRAM_000000.unkD = temp; - task->data[0]++; + namingScreenData.unkC = namingScreenData.unkD; + namingScreenData.unkD = temp; + task->tState++; } return 0; } -u8 sub_80B6758(struct Task *task) +static bool8 PageSwapAnimState_Done(struct Task *task) { - DestroyTask(FindTaskIdByFunc(sub_80B6630)); + DestroyTask(FindTaskIdByFunc(Task_HandlePageSwapAnim)); return 0; } -// +#undef tState +#undef tFrameCount + +//-------------------------------------------------- +// Cursor +//-------------------------------------------------- -void sub_80B6774(void) +static void CursorInit(void) { - EWRAM_000000.cursorSpriteId = CreateSprite(&gSpriteTemplate_83CE640, 0, 0, 0); - gSprites[EWRAM_000000.cursorSpriteId].oam.priority = 1; - gSprites[EWRAM_000000.cursorSpriteId].oam.objMode = 1; - gSprites[EWRAM_000000.cursorSpriteId].data6 = 1; - gSprites[EWRAM_000000.cursorSpriteId].data6 = 2; - set_cursor_pos(0, 0); + namingScreenData.cursorSpriteId = CreateSprite(&gSpriteTemplate_83CE640, 0, 0, 0); + gSprites[namingScreenData.cursorSpriteId].oam.priority = 1; + gSprites[namingScreenData.cursorSpriteId].oam.objMode = 1; + gSprites[namingScreenData.cursorSpriteId].data6 = 1; + gSprites[namingScreenData.cursorSpriteId].data6 = 2; + SetCursorPos(0, 0); } static const u8 sKeyboardSymbolPositions[][9] = @@ -1009,73 +1091,72 @@ static const u8 sKeyboardSymbolPositions[][9] = {1, 4, 7, 10, 13, 16, 16, 16, 19}, //Others page }; -u8 sub_80B67EC(s16 x) +static u8 CursorColToKeyboardCol(s16 x) { - return sKeyboardSymbolPositions[EWRAM_000000.currentPage][x]; + return sKeyboardSymbolPositions[namingScreenData.currentPage][x]; } -void set_cursor_pos(s16 x, s16 y) +static void SetCursorPos(s16 x, s16 y) { - struct Sprite *sprite = &gSprites[EWRAM_000000.cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[namingScreenData.cursorSpriteId]; - sprite->pos1.x = sub_80B67EC(x) * 8 + 27; - sprite->pos1.y = y * 16 + 80; - sprite->data2 = sprite->data0; - sprite->data3 = sprite->data1; - sprite->data0 = x; - sprite->data1 = y; + cursorSprite->pos1.x = CursorColToKeyboardCol(x) * 8 + 27; + cursorSprite->pos1.y = y * 16 + 80; + cursorSprite->data2 = cursorSprite->data0; + cursorSprite->data3 = cursorSprite->data1; + cursorSprite->data0 = x; + cursorSprite->data1 = y; } -void get_cursor_pos(s16 *x, s16 *y) +static void GetCursorPos(s16 *x, s16 *y) { - struct Sprite *sprite = &gSprites[EWRAM_000000.cursorSpriteId]; + struct Sprite *cursorSprite = &gSprites[namingScreenData.cursorSpriteId]; - *x = sprite->data0; - *y = sprite->data1; + *x = cursorSprite->data0; + *y = cursorSprite->data1; } -void sub_80B6878(void) +static void MoveCursorToOKButton(void) { - set_cursor_pos(8, 2); + SetCursorPos(8, 2); } -void sub_80B6888(u8 a) +static void sub_80B6888(u8 a) { - gSprites[EWRAM_000000.cursorSpriteId].data4 &= -256; - gSprites[EWRAM_000000.cursorSpriteId].data4 |= a; - StartSpriteAnim(&gSprites[EWRAM_000000.cursorSpriteId], 0); + gSprites[namingScreenData.cursorSpriteId].data4 &= -256; + gSprites[namingScreenData.cursorSpriteId].data4 |= a; + StartSpriteAnim(&gSprites[namingScreenData.cursorSpriteId], 0); } -void sub_80B68D8(u8 a) +static void sub_80B68D8(u8 a) { - gSprites[EWRAM_000000.cursorSpriteId].data4 &= 0xFF; - gSprites[EWRAM_000000.cursorSpriteId].data4 |= a << 8; + gSprites[namingScreenData.cursorSpriteId].data4 &= 0xFF; + gSprites[namingScreenData.cursorSpriteId].data4 |= a << 8; } -void sub_80B6914(void) +static void sub_80B6914(void) { - StartSpriteAnim(&gSprites[EWRAM_000000.cursorSpriteId], 1); + StartSpriteAnim(&gSprites[namingScreenData.cursorSpriteId], 1); } -bool8 sub_80B6938(void) +static bool8 IsCursorAnimFinished(void) { - return gSprites[EWRAM_000000.cursorSpriteId].animEnded; + return gSprites[namingScreenData.cursorSpriteId].animEnded; } -u8 sub_80B6958(void) +static u8 GetKeyRoleAtCursorPos(void) { - const u8 arr[] = {1, 2, 3}; - s16 var1; - s16 var2; + const u8 keyRoles[] = {KEY_ROLE_PAGE, KEY_ROLE_BACKSPACE, KEY_ROLE_OK}; + s16 cursorX; + s16 cursorY; - get_cursor_pos(&var1, &var2); - if (var1 < 8) - return 0; + GetCursorPos(&cursorX, &cursorY); + if (cursorX < 8) + return KEY_ROLE_CHAR; else - return arr[var2]; + return keyRoles[cursorY]; } -#ifdef NONMATCHING void sub_80B6998(struct Sprite *sprite) { if (sprite->animEnded) @@ -1098,156 +1179,24 @@ void sub_80B6998(struct Sprite *sprite) sprite->data6 = -sprite->data6; sprite->data7 = 2; } - //_080B6A3E if ((sprite->data4 & 0xFF00) != 0) { - //Can't get this part to match - u16 var = sprite->data5; - s8 r5 = var; - s16 var2 = var / 2; - s8 r4 = var2; + s8 gb = sprite->data5; + s8 r = sprite->data5 >> 1; u16 index = IndexOfSpritePaletteTag(5) * 16 + 0x0101; - MultiplyInvertedPaletteRGBComponents(index, r4, r5, r5); + MultiplyInvertedPaletteRGBComponents(index, r, gb, gb); } } -#else -__attribute__((naked)) -void sub_80B6998(struct Sprite *sprite) -{ - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - adds r4, r0, 0\n\ - adds r0, 0x3F\n\ - ldrb r1, [r0]\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080B69B0\n\ - adds r0, r4, 0\n\ - movs r1, 0\n\ - bl StartSpriteAnim\n\ -_080B69B0:\n\ - ldrh r1, [r4, 0x36]\n\ - movs r0, 0xFF\n\ - ands r0, r1\n\ - adds r3, r4, 0\n\ - adds r3, 0x3E\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - lsls r0, 2\n\ - ldrb r1, [r3]\n\ - movs r2, 0x5\n\ - negs r2, r2\n\ - ands r2, r1\n\ - orrs r2, r0\n\ - strb r2, [r3]\n\ - movs r1, 0x2E\n\ - ldrsh r0, [r4, r1]\n\ - cmp r0, 0x8\n\ - bne _080B69DA\n\ - movs r0, 0x4\n\ - orrs r2, r0\n\ - strb r2, [r3]\n\ -_080B69DA:\n\ - ldrb r1, [r3]\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080B6A0A\n\ - movs r2, 0x36\n\ - ldrsh r0, [r4, r2]\n\ - movs r1, 0xFF\n\ - lsls r1, 8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080B6A0A\n\ - movs r0, 0x2E\n\ - ldrsh r1, [r4, r0]\n\ - movs r2, 0x32\n\ - ldrsh r0, [r4, r2]\n\ - cmp r1, r0\n\ - bne _080B6A0A\n\ - movs r0, 0x30\n\ - ldrsh r1, [r4, r0]\n\ - movs r2, 0x34\n\ - ldrsh r0, [r4, r2]\n\ - cmp r1, r0\n\ - beq _080B6A16\n\ -_080B6A0A:\n\ - movs r0, 0\n\ - strh r0, [r4, 0x38]\n\ - movs r0, 0x1\n\ - strh r0, [r4, 0x3A]\n\ - movs r0, 0x2\n\ - strh r0, [r4, 0x3C]\n\ -_080B6A16:\n\ - ldrh r0, [r4, 0x3C]\n\ - subs r0, 0x1\n\ - strh r0, [r4, 0x3C]\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - bne _080B6A3E\n\ - ldrh r1, [r4, 0x3A]\n\ - ldrh r2, [r4, 0x38]\n\ - adds r0, r1, r2\n\ - strh r0, [r4, 0x38]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x10\n\ - beq _080B6A36\n\ - cmp r0, 0\n\ - bne _080B6A3A\n\ -_080B6A36:\n\ - negs r0, r1\n\ - strh r0, [r4, 0x3A]\n\ -_080B6A3A:\n\ - movs r0, 0x2\n\ - strh r0, [r4, 0x3C]\n\ -_080B6A3E:\n\ - movs r1, 0x36\n\ - ldrsh r0, [r4, r1]\n\ - movs r1, 0xFF\n\ - lsls r1, 8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080B6A74\n\ - ldrh r4, [r4, 0x38]\n\ - lsls r5, r4, 24\n\ - lsrs r5, 24\n\ - lsls r4, 16\n\ - asrs r4, 17\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - movs r0, 0x5\n\ - bl IndexOfSpritePaletteTag\n\ - lsls r0, 24\n\ - lsrs r0, 4\n\ - ldr r2, _080B6A7C @ =0x01010000\n\ - adds r0, r2\n\ - lsrs r0, 16\n\ - adds r1, r4, 0\n\ - adds r2, r5, 0\n\ - adds r3, r5, 0\n\ - bl MultiplyInvertedPaletteRGBComponents\n\ -_080B6A74:\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080B6A7C: .4byte 0x01010000\n\ - .syntax divided\n"); -} -#endif - -void sub_80B6A80(void) + +static void sub_80B6A80(void) { u8 spriteId1; u8 spriteId2; u8 spriteId3; spriteId1 = CreateSprite(&gSpriteTemplate_83CE5C8, 0xCC, 0x50, 0); - EWRAM_000000.unk10 = spriteId1; + namingScreenData.unk10 = spriteId1; SetSubspriteTables(&gSprites[spriteId1], gSubspriteTables_83CE558); spriteId2 = CreateSprite(&gSpriteTemplate_83CE5F8, 0xCC, 0x4C, 1); @@ -1259,18 +1208,18 @@ void sub_80B6A80(void) gSprites[spriteId1].data7 = spriteId3; } -void sub_80B6B14(void) +static void sub_80B6B14(void) { - struct Sprite *sprite = &gSprites[EWRAM_000000.unk10]; + struct Sprite *sprite = &gSprites[namingScreenData.unk10]; sprite->data0 = 2; - sprite->data1 = EWRAM_000000.currentPage; + sprite->data1 = namingScreenData.currentPage; } -u8 sub_80B6B5C(struct Sprite *); -u8 sub_80B6B98(struct Sprite *); -u8 sub_80B6B9C(struct Sprite *); -u8 sub_80B6C08(struct Sprite *); +static u8 sub_80B6B5C(struct Sprite *); +static u8 sub_80B6B98(struct Sprite *); +static u8 sub_80B6B9C(struct Sprite *); +static u8 sub_80B6C08(struct Sprite *); static u8 (*const gUnknown_083CE2B4[])(struct Sprite *) = { @@ -1286,22 +1235,22 @@ void sub_80B6B34(struct Sprite *sprite) ; } -u8 sub_80B6B5C(struct Sprite *sprite) +static u8 sub_80B6B5C(struct Sprite *sprite) { struct Sprite *sprite1 = &gSprites[sprite->data6]; struct Sprite *sprite2 = &gSprites[sprite->data7]; - sub_80B6C48(EWRAM_000000.currentPage, sprite1, sprite2); + sub_80B6C48(namingScreenData.currentPage, sprite1, sprite2); sprite->data0++; return 0; } -u8 sub_80B6B98(struct Sprite *sprite) +static u8 sub_80B6B98(struct Sprite *sprite) { return 0; } -u8 sub_80B6B9C(struct Sprite *sprite) +static u8 sub_80B6B9C(struct Sprite *sprite) { struct Sprite *r4 = &gSprites[sprite->data6]; struct Sprite *r5 = &gSprites[sprite->data7]; @@ -1317,7 +1266,7 @@ u8 sub_80B6B9C(struct Sprite *sprite) return 0; } -u8 sub_80B6C08(struct Sprite *sprite) +static u8 sub_80B6C08(struct Sprite *sprite) { struct Sprite *r2 = &gSprites[sprite->data6]; @@ -1334,7 +1283,7 @@ u8 sub_80B6C08(struct Sprite *sprite) static const u16 gUnknown_083CE2C4[] = {1, 3, 2}; static const u16 gUnknown_083CE2CA[] = {4, 6, 5}; -void sub_80B6C48(u8 a, struct Sprite *b, struct Sprite *c) +static void sub_80B6C48(u8 a, struct Sprite *b, struct Sprite *c) { c->oam.paletteNum = IndexOfSpritePaletteTag(gUnknown_083CE2C4[a]); b->sheetTileStart = GetSpriteTileStartByTag(gUnknown_083CE2CA[a]); @@ -1343,7 +1292,7 @@ void sub_80B6C48(u8 a, struct Sprite *b, struct Sprite *c) // -void sub_80B6CA8(void) +static void sub_80B6CA8(void) { u8 spriteId; @@ -1354,17 +1303,17 @@ void sub_80B6CA8(void) SetSubspriteTables(&gSprites[spriteId], gSubspriteTables_83CE578); } -void sub_80B6D04(void) +static void sub_80B6D04(void) { u8 spriteId; s16 r1; u8 i; - r1 = (EWRAM_000000.unk2 - 1) * 8 + 4; + r1 = (namingScreenData.unk2 - 1) * 8 + 4; spriteId = CreateSprite(&gSpriteTemplate_83CE658, r1, 0x28, 0); gSprites[spriteId].oam.priority = 3; - r1 = EWRAM_000000.unk2 * 8 + 4; - for (i = 0; i < EWRAM_000000.unk34->unk1; i++, r1 += 8) + r1 = namingScreenData.unk2 * 8 + 4; + for (i = 0; i < namingScreenData.template->maxChars; i++, r1 += 8) { spriteId = CreateSprite(&gSpriteTemplate_83CE670, r1, 0x2C, 0); gSprites[spriteId].oam.priority = 3; @@ -1389,7 +1338,7 @@ void sub_80B6DE8(struct Sprite *sprite) const s16 arr[] = {2, 3, 2, 1}; u8 var; - var = sub_80B6F44(); + var = GetTextCaretPosition(); if (var != (u8)sprite->data0) { sprite->pos2.y = 0; @@ -1410,10 +1359,10 @@ void sub_80B6DE8(struct Sprite *sprite) // -void nullsub_40(void); -void sub_80B6E68(void); -void sub_80B6EBC(void); -void sub_80B6EFC(void); +static void nullsub_40(void); +static void sub_80B6E68(void); +static void sub_80B6EBC(void); +static void sub_80B6EFC(void); static void (*const gUnknown_083CE2E0[])(void) = { @@ -1423,27 +1372,27 @@ static void (*const gUnknown_083CE2E0[])(void) = sub_80B6EFC, }; -void sub_80B6E44(void) +static void sub_80B6E44(void) { - gUnknown_083CE2E0[EWRAM_000000.unk34->unk2](); + gUnknown_083CE2E0[namingScreenData.template->unk2](); } -void nullsub_40(void) +static void nullsub_40(void) { } -void sub_80B6E68(void) +static void sub_80B6E68(void) { u8 rivalGfxId; u8 spriteId; - rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, EWRAM_000000.unk3E); + rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, namingScreenData.unk3E); spriteId = AddPseudoFieldObject(rivalGfxId, SpriteCallbackDummy, 0x38, 0x18, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], 4); } -void sub_80B6EBC(void) +static void sub_80B6EBC(void) { u8 spriteId; @@ -1452,77 +1401,684 @@ void sub_80B6EBC(void) gSprites[spriteId].oam.priority = 3; } -void sub_80B6EFC(void) +static void sub_80B6EFC(void) { u8 spriteId; sub_809D51C(); - spriteId = CreateMonIcon(EWRAM_000000.unk3E, SpriteCallbackDummy, 0x34, 0x18, 0, EWRAM_000000.unk44); + spriteId = CreateMonIcon(namingScreenData.unk3E, SpriteCallbackDummy, 0x34, 0x18, 0, namingScreenData.unk44); gSprites[spriteId].oam.priority = 3; } -u8 sub_80B6F44(void) +static u8 GetTextCaretPosition(void) { u8 i; - for (i = 0; i < EWRAM_000000.unk34->unk1; i++) + for (i = 0; i < namingScreenData.template->maxChars; i++) { - if (EWRAM_000000.textBuffer[i] == 0xFF) + if (namingScreenData.textBuffer[i] == EOS) return i; } - return EWRAM_000000.unk34->unk1 - 1; + return namingScreenData.template->maxChars - 1; } -u8 sub_80B6F84(void) +static u8 GetPreviousTextCaretPosition(void) { s8 i; - for (i = EWRAM_000000.unk34->unk1 - 1; i > 0; i--) + for (i = namingScreenData.template->maxChars - 1; i > 0; i--) { - if (EWRAM_000000.textBuffer[i] != 0xFF) + if (namingScreenData.textBuffer[i] != EOS) return i; } return 0; } -void sub_80B6FBC(void) +static void DeleteTextCharacter(void) { - u8 var; + u8 index; u8 var2; - var = sub_80B6F84(); - EWRAM_000000.textBuffer[var] = 0; + index = GetPreviousTextCaretPosition(); + namingScreenData.textBuffer[index] = 0; sub_80B7960(); - EWRAM_000000.textBuffer[var] = 0xFF; - var2 = sub_80B6958(); + namingScreenData.textBuffer[index] = EOS; + var2 = GetKeyRoleAtCursorPos(); if (var2 == 0 || var2 == 2) sub_80B6460(1, 0, 1); PlaySE(SE_BOWA); } -u8 sub_80B7004(void) +static bool8 sub_80B7004(void) { s16 x; s16 y; - u8 var; - u8 r4; + u8 ch; + bool8 r4; - get_cursor_pos(&x, &y); - x = sub_80B67EC(x); - var = sub_80B7768(x, y); + GetCursorPos(&x, &y); + x = CursorColToKeyboardCol(x); + ch = GetCharAtKeyboardPos(x, y); r4 = 1; - if (var == 0xFF) + if (ch == 0xFF) r4 = sub_80B7104(); - else if (var == 0xFE) + else if (ch == 0xFE) r4 = sub_80B713C(); else - sub_80B7174(var); + AddTextCharacter(ch); sub_80B7960(); PlaySE(SE_SELECT); - if (r4 != 0) + if (r4) { - if (sub_80B6F84() == EWRAM_000000.unk34->unk1 - 1) - return 1; + if (GetPreviousTextCaretPosition() == namingScreenData.template->maxChars - 1) + return TRUE; } - return 0; + return FALSE; +} + +static void sub_80B7090(void) +{ + u8 r5; + u8 r4; + + r5 = GetPreviousTextCaretPosition(); + r4 = namingScreenData.textBuffer[r5]; + if (sub_80B7198(r4)) + { + if (sub_80B7264(r4)) + sub_80B7370(r4, r5); + else + sub_80B73CC(r4, r5); + } + else + { + if (sub_80B71E4(r4)) + sub_80B7474(r4, r5); + else + sub_80B72A4(r4, r5); + } + sub_80B7960(); + PlaySE(SE_SELECT); +} + +static bool8 sub_80B7104(void) +{ + u8 r5; + u8 r4; + + r5 = GetPreviousTextCaretPosition(); + r4 = namingScreenData.textBuffer[r5]; + if (sub_80B720C(r4)) + { + sub_80B72A4(r4, r5); + return TRUE; + } + return FALSE; +} + +static bool8 sub_80B713C(void) +{ + u8 r5; + u8 r4; + + r5 = GetPreviousTextCaretPosition(); + r4 = namingScreenData.textBuffer[r5]; + if (sub_80B7264(r4)) + { + sub_80B7370(r4, r5); + return TRUE; + } + return FALSE; +} + +static void AddTextCharacter(u8 ch) +{ + u8 index = GetTextCaretPosition(); + + namingScreenData.textBuffer[index] = ch; } + +static bool8 sub_80B7198(u8 a) +{ + if ((a >= 55 && a <= 74) + || (a >= 135 && a <= 139) + || (a >= 140 && a <= 144) + || (a >= 145 && a <= 149) + || (a >= 150 && a <= 154)) + return TRUE; + else + return FALSE; +} + +static bool8 sub_80B71E4(u8 a) +{ + if ((a >= 75 && a <= 79) + || (a >= 155 && a <= 159)) + return TRUE; + else + return FALSE; +} + +static bool8 sub_80B720C(u8 a) +{ + if ((a >= 6 && a <= 20) + || (a >= 26 && a <= 30) + || (a >= 75 && a <= 79) + || (a >= 86 && a <= 100) + || (a >= 106 && a <= 110) + || (a >= 155 && a <= 159)) + return TRUE; + else + return FALSE; +} + +static bool8 sub_80B7264(u8 a) +{ + if ((a >= 26 && a <= 30) + || (a >= 70 && a <= 74) + || (a >= 106 && a <= 110) + || (a >= 150 && a <= 154)) + return TRUE; + else + return FALSE; +} + +static void sub_80B72A4(u8 a, u8 b) +{ + u8 chr = a; + + if (a >= 6 && a <= 10) + chr = a + 0x31; + else if (a >= 11 && a <= 15) + chr = a + 0x31; + else if (a >= 16 && a <= 20) + chr = a + 0x31; + else if (a >= 26 && a <= 30) + chr = a + 0x2C; + else if (a >= 75 && a <= 79) + chr = a + 0xFB; + else if (a >= 86 && a <= 90) + chr = a + 0x31; + else if (a >= 91 && a <= 95) + chr = a + 0x31; + else if (a >= 96 && a <= 100) + chr = a + 0x31; + else if (a >= 106 && a <= 110) + chr = a + 0x2C; + else if (a >= 155 && a <= 159) + chr = a + 0xFB; + namingScreenData.textBuffer[b] = chr; +} + +static void sub_80B7370(u8 a, u8 b) +{ + u8 chr = a; + + if (a >= 26 && a <= 30) + chr = a + 0x31; + else if (a >= 70 && a <= 74) + chr = a + 5; + else if (a >= 106 && a <= 110) + chr = a + 0x31; + else if (a >= 150 && a <= 154) + chr = a + 5; + namingScreenData.textBuffer[b] = chr; +} + +static void sub_80B73CC(u8 a, u8 b) +{ + u8 chr = a; + + if (a >= 55 && a <= 59) + chr = a + 0xCF; + else if (a >= 60 && a <= 64) + chr = a + 0xCF; + else if (a >= 65 && a <= 69) + chr = a + 0xCF; + else if (a >= 70 && a <= 74) + chr = a + 0xD4; + else if (a >= 135 && a <= 139) + chr = a + 0xCF; + else if (a >= 140 && a <= 144) + chr = a + 0xCF; + else if (a >= 145 && a <= 149) + chr = a + 0xCF; + else if (a >= 150 && a <= 154) + chr = a + 0xD4; + namingScreenData.textBuffer[b] = chr; +} + +static void sub_80B7474(u8 a, u8 b) +{ + u8 chr = a; + + if (a >= 75 && a <= 79) + chr = a + 0xCF; + else if (a >= 155 && a <= 159) + chr = a + 0xCF; + namingScreenData.textBuffer[b] = chr; +} + +static void sub_80B74B0(void) +{ + u8 i; + + for (i = 0; i < namingScreenData.template->maxChars; i++) + { + if (namingScreenData.textBuffer[i] != 0 && namingScreenData.textBuffer[i] != 0xFF) + { + StringCopyN(namingScreenData.destBuffer, namingScreenData.textBuffer, namingScreenData.template->maxChars + 1); + break; + } + } +} + +static void DisplaySentToPCMessage(void) +{ + StringCopy(gStringVar1, namingScreenData.destBuffer); + StringExpandPlaceholders(gStringVar4, gOtherText_SentToPC); + BasicInitMenuWindow(&gWindowConfig_81E6E88); + MenuDisplayMessageBox(); + sub_8072044(gStringVar4); +} + +static void sub_80B753C(void) +{ + LoadSpriteSheets(gUnknown_083CE6A0); + LoadSpritePalettes(gUnknown_083CE708); +} + +static void sub_80B7558(void) +{ + sub_80B7568(); + sub_80B75B0(); +} + +static void sub_80B7568(void) +{ + const void *src; + void *dst; + + src = gNamingScreenMenu_Gfx; + dst = (void *)(VRAM + gMenuMessageBoxContentTileOffset * 32); + DmaCopy16(3, src, dst, 0x800); + + src = gNamingScreenMenu_Gfx; + dst = (void *)(VRAM + 0x8000 + gMenuMessageBoxContentTileOffset * 32); + DmaCopy16(3, src, dst, 0x800); +} + +static void sub_80B75B0(void) +{ + LoadPalette(gNamingScreenPalettes, 0, 0x80); +} + +static void sub_80B7650(u16 *); +static void sub_80B7660(u16 *); +static void sub_80B7670(u16 *); + +static void (*const gUnknown_083CE2F0[][2])(u16 *) = +{ + {sub_80B7660, sub_80B7650}, + {sub_80B7650, sub_80B7670}, + {sub_80B7670, sub_80B7660}, +}; + +static void sub_80B75C4(void) +{ + u16 *const arr[] = + { + (u16 *)(VRAM + 0xE000), + (u16 *)(VRAM + 0xE800), + }; + + gUnknown_083CE2F0[namingScreenData.currentPage][0](arr[namingScreenData.unkC]); + gUnknown_083CE2F0[namingScreenData.currentPage][1](arr[namingScreenData.unkD]); +} + +static void sub_80B7614(void) +{ + u16 *const arr[] = + { + (u16 *)(VRAM + 0xE000), + (u16 *)(VRAM + 0xE800), + }; + + gUnknown_083CE2F0[namingScreenData.currentPage][1](arr[namingScreenData.unkD]); +} + +static void sub_80B7650(u16 *vramBuffer) +{ + sub_80B7698(vramBuffer, gUnknown_083CE748); +} + +static void sub_80B7660(u16 *vramBuffer) +{ + sub_80B7698(vramBuffer, gUnknown_083CEBF8); +} + +static void sub_80B7670(u16 *vramBuffer) +{ + sub_80B7698(vramBuffer, gUnknown_083CF0A8); +} + +static void sub_80B7680(void) +{ + sub_80B76E0(VRAM + 0xF000, gUnknown_08E86258); +} + +static void sub_80B7698(u16 *vramBuffer, const u16 *src) +{ + s16 i; + s16 j; + + for (i = 0; i < 20; i++) + { + for (j = 0; j < 30; j++, src++) + { + vramBuffer[i * 32 + j] = *src + gMenuMessageBoxContentTileOffset; + } + } +} + +static void sub_80B76E0(u16 *vramBuffer, const u16 *src) +{ + s16 i; + s16 j; + + for (i = 0; i < 20; i++) + { + for (j = 0; j < 30; j++, src++) + { + vramBuffer[i * 32 + j] = *src + gMenuMessageBoxContentTileOffset; + } + src += 2; + } +} + +static void sub_80B772C(void) +{ + nullsub_20(namingScreenData.currentPage, namingScreenData.unkC); +} + +static void sub_80B7740(void) +{ + nullsub_20((namingScreenData.currentPage + 1) % 3, namingScreenData.unkD); +} + +static void nullsub_20(u8 a, u8 b) +{ +} + +static void sub_80B7838(void); +static void sub_80B7844(void); +static void sub_80B7850(void); + +static void (*const gUnknown_083CE310[][2])(void) = +{ + sub_80B7844, + sub_80B7838, + sub_80B7838, + sub_80B7850, + sub_80B7850, + sub_80B7844, +}; + +static const struct WindowConfig *const gUnknown_083CE328[][2][2] = +{ + { + {&gWindowConfig_81E6EDC, &gWindowConfig_81E6EF8}, + {&gWindowConfig_81E6EA4, &gWindowConfig_81E6EC0}, + }, + { + {&gWindowConfig_81E6EA4, &gWindowConfig_81E6EC0}, + {&gWindowConfig_81E6F14, &gWindowConfig_81E6F30}, + }, + { + {&gWindowConfig_81E6F14, &gWindowConfig_81E6F30}, + {&gWindowConfig_81E6EDC, &gWindowConfig_81E6EF8}, + }, +}; + +static void nullsub_61(void); +static void sub_80B78F8(void); + +static void (*const gUnknown_083CE358[])(void) = +{ + nullsub_61, + nullsub_61, + sub_80B78F8, + sub_80B78F8, +}; + +static void nullsub_62(void); +static void sub_80B7924(void); + +static void (*const gUnknown_083CE368[])(void) = +{ + nullsub_62, + sub_80B7924, +}; + +static const u8 sKeyboardCharacters[][4][20]; //forward declaration + +static u8 GetCharAtKeyboardPos(s16 a, s16 b) +{ + return sKeyboardCharacters[namingScreenData.currentPage][b][a]; +} + +static void sub_80B7794(void) +{ + BasicInitMenuWindow(gUnknown_083CE328[namingScreenData.currentPage][0][namingScreenData.unkC]); + gUnknown_083CE310[namingScreenData.currentPage][0](); + BasicInitMenuWindow(gUnknown_083CE328[namingScreenData.currentPage][1][namingScreenData.unkD]); + gUnknown_083CE310[namingScreenData.currentPage][1](); + sub_80B772C(); + sub_80B7740(); +} + +static void sub_80B77F8(void) +{ + BasicInitMenuWindow(gUnknown_083CE328[namingScreenData.currentPage][1][namingScreenData.unkD]); + gUnknown_083CE310[namingScreenData.currentPage][1](); + sub_80B7740(); +} + +static void sub_80B7838(void) +{ + PrintKeyboardCharacters(1); +} + +static void sub_80B7844(void) +{ + PrintKeyboardCharacters(0); +} + +static void sub_80B7850(void) +{ + PrintKeyboardCharacters(2); +} + +static void PrintKeyboardCharacters(u8 page) //print letters on page +{ + s16 i; + s16 r5; + + for (i = 0, r5 = 9; i < 4; i++, r5 += 2) + MenuPrint(sKeyboardCharacters[page][i], 3, r5); +} + +static void sub_80B78A8(void) +{ + BasicInitMenuWindow(&gWindowConfig_81E6F4C); + gUnknown_083CE358[namingScreenData.templateNum](); + gUnknown_083CE368[namingScreenData.template->unk3](); + MenuPrint(namingScreenData.template->title, 9, 2); +} + +static void nullsub_61(void) +{ +} + +static void sub_80B78F8(void) +{ + StringCopy(gStringVar1, gSpeciesNames[(s16)namingScreenData.unk3E]); +} + +static void nullsub_62(void) +{ +} + +static void sub_80B7924(void) +{ + u8 genderSymbol[2] = _("♂"); + + if ((s16)namingScreenData.unk40 != MON_GENDERLESS) + { + if ((s16)namingScreenData.unk40 == MON_FEMALE) + genderSymbol[0] = 0xB6; //female symbol + MenuPrint(genderSymbol, 0x14, 4); + } +} + +static void sub_80B7960(void) +{ + u8 *string = gStringVar1; + + string[0] = 0xFC; + string[1] = 0x14; + string[2] = 8; + string[3] = 0xFC; + string[4] = 0x11; + string[5] = 1; + string += 6; + StringCopy(string, namingScreenData.textBuffer); + BasicInitMenuWindow(&gWindowConfig_81E6F4C); + MenuPrint(gStringVar1, namingScreenData.unk2, 4); +} + +//-------------------------------------------------- +// Forward-declared variables +//-------------------------------------------------- + +static const struct NamingScreenTemplate playerNamingScreenTemplate = +{ + .unk0 = 0, + .maxChars = 7, + .unk2 = 1, + .unk3 = 0, + .unk4 = 0, + .unk5 = 0, + .unk6 = 0, + .unk7 = 0, + .title = OtherText_YourName, +}; + +static const struct NamingScreenTemplate pcBoxNamingTemplate = +{ + .unk0 = 0, + .maxChars = 8, + .unk2 = 2, + .unk3 = 0, + .unk4 = 0, + .unk5 = 0, + .unk6 = 0, + .unk7 = 0, + .title = OtherText_BoxName, +}; + +static const struct NamingScreenTemplate monNamingScreenTemplate = +{ + .unk0 = 0, + .maxChars = 10, + .unk2 = 3, + .unk3 = 1, + .unk4 = 0, + .unk5 = 0, + .unk6 = 0, + .unk7 = 0, + .title = OtherText_PokeName, +}; + +static const struct NamingScreenTemplate *const sNamingScreenTemplates[] = +{ + &playerNamingScreenTemplate, + &pcBoxNamingTemplate, + &monNamingScreenTemplate, + &monNamingScreenTemplate, +}; + +static const u8 sKeyboardCharacters[][4][20] = +{ + { + _(" A B C D E F . "), + _(" G H I J K L , "), + _(" M N O P Q R S "), + _(" T U V W X Y Z "), + }, + { + _(" a b c d e f . "), + _(" g h i j k l , "), + _(" m n o p q r s "), + _(" t u v w x y z "), + }, + { + _(" 0 1 2 3 4 "), + _(" 5 6 7 8 9 "), + _(" ! ? ♂ ♀ / - "), + _(" … “ ” ‘ ’ "), + }, +}; + +const struct OamData gOamData_83CE498 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct OamData gOamData_83CE4A0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct OamData gOamData_83CE4A8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +//TODO: dump sprite data diff --git a/src/new_game.c b/src/new_game.c index ddc9ea403..99c7839eb 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -70,6 +70,7 @@ void ClearPokedexFlags(void) void sub_8052DA8(void) { s32 i; + sub_80B2D1C(); for (i = 0; i < 5; i++) gSaveBlock1.sb1_2EFC_struct[i] = gUnknown_08216604; @@ -139,7 +140,7 @@ void NewGameInitData(void) sub_810C994(); sub_8133F80(); sub_80E6764(); - sub_80F7AA4(); + SetMauvilleOldMan(); sub_80FA17C(); sub_810FA54(); ResetLotteryCorner(); diff --git a/src/party_menu.c b/src/party_menu.c index 25d36bf87..d473eae6d 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -128,149 +128,149 @@ __attribute__((naked)) void sub_8070088(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r1, _08070120 @ =gTasks\n\ - mov r10, r1\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - mov r2, r10\n\ - adds r7, r1, r2\n\ - ldr r5, _08070124 @ =TaskDummy\n\ - str r5, [r7]\n\ - ldr r4, _08070128 @ =0x0201c000\n\ - ldrb r0, [r4, 0x5]\n\ - movs r1, 0x64\n\ - mov r9, r1\n\ - mov r2, r9\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - ldr r1, _0807012C @ =gPlayerParty\n\ - mov r8, r1\n\ - add r0, r8\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - cmp r0, 0\n\ - beq _08070118\n\ - adds r0, r5, 0\n\ - movs r1, 0x5\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - str r0, [sp]\n\ - mov r0, r10\n\ - adds r0, 0x8\n\ - ldr r2, [sp]\n\ - adds r6, r2, r0\n\ - ldrb r0, [r4, 0x5]\n\ - mov r1, r9\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - add r0, r8\n\ - str r0, [r4]\n\ - movs r1, 0x3A\n\ - bl GetMonData\n\ - strh r0, [r6, 0x14]\n\ - ldr r0, [r4]\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - strh r0, [r6, 0x16]\n\ - ldrb r0, [r4, 0x5]\n\ - ldrh r1, [r4, 0x6]\n\ - movs r2, 0\n\ - bl ExecuteTableBasedItemEffect__\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08070134\n\ - adds r0, r5, 0\n\ - bl DestroyTask\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r1, _08070120 @ =gTasks\n\ + mov r10, r1\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + mov r2, r10\n\ + adds r7, r1, r2\n\ + ldr r5, _08070124 @ =TaskDummy\n\ + str r5, [r7]\n\ + ldr r4, _08070128 @ =0x0201c000\n\ + ldrb r0, [r4, 0x5]\n\ + movs r1, 0x64\n\ + mov r9, r1\n\ + mov r2, r9\n\ + muls r2, r0\n\ + adds r0, r2, 0\n\ + ldr r1, _0807012C @ =gPlayerParty\n\ + mov r8, r1\n\ + add r0, r8\n\ + movs r1, 0xB\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _08070118\n\ + adds r0, r5, 0\n\ + movs r1, 0x5\n\ + bl CreateTask\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + str r0, [sp]\n\ + mov r0, r10\n\ + adds r0, 0x8\n\ + ldr r2, [sp]\n\ + adds r6, r2, r0\n\ + ldrb r0, [r4, 0x5]\n\ + mov r1, r9\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + add r0, r8\n\ + str r0, [r4]\n\ + movs r1, 0x3A\n\ + bl GetMonData\n\ + strh r0, [r6, 0x14]\n\ + ldr r0, [r4]\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + strh r0, [r6, 0x16]\n\ + ldrb r0, [r4, 0x5]\n\ + ldrh r1, [r4, 0x6]\n\ + movs r2, 0\n\ + bl ExecuteTableBasedItemEffect__\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _08070134\n\ + adds r0, r5, 0\n\ + bl DestroyTask\n\ _08070118:\n\ - ldr r0, _08070130 @ =sub_80701DC\n\ - str r0, [r7]\n\ - b _080701B0\n\ - .align 2, 0\n\ + ldr r0, _08070130 @ =sub_80701DC\n\ + str r0, [r7]\n\ + b _080701B0\n\ + .align 2, 0\n\ _08070120: .4byte gTasks\n\ _08070124: .4byte TaskDummy\n\ _08070128: .4byte 0x0201c000\n\ _0807012C: .4byte gPlayerParty\n\ _08070130: .4byte sub_80701DC\n\ _08070134:\n\ - ldr r1, _080701C0 @ =gUnknown_0202E8F4\n\ - movs r0, 0x1\n\ - strb r0, [r1]\n\ - movs r0, 0x3\n\ - movs r1, 0xE\n\ - movs r2, 0x1A\n\ - movs r3, 0x13\n\ - bl MenuZeroFillWindowRect\n\ - movs r0, 0x1\n\ - bl PlaySE\n\ - ldr r0, [r4]\n\ - ldrb r1, [r4, 0x5]\n\ - bl PartyMenuUpdateLevelOrStatus\n\ - bl IsDoubleBattle\n\ - adds r1, r0, 0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldrb r1, [r4, 0x5]\n\ - lsls r1, 1\n\ - adds r0, r1\n\ - ldr r1, _080701C4 @ =gUnknown_083769A8\n\ - adds r0, r1\n\ - movs r1, 0x9\n\ - bl task_pc_turn_off\n\ - ldr r2, _080701C8 @ =0xfffff261\n\ - adds r1, r4, r2\n\ - movs r0, 0x2\n\ - strb r0, [r1]\n\ - ldr r0, [r4]\n\ - movs r1, 0x39\n\ - bl GetMonData\n\ - ldrh r1, [r6, 0x16]\n\ - subs r0, r1\n\ - strh r0, [r6, 0x18]\n\ - movs r0, 0x1\n\ - strh r0, [r6, 0x1C]\n\ - ldr r1, _080701CC @ =0xfffff27e\n\ - adds r0, r4, r1\n\ - movs r1, 0x1\n\ - strh r1, [r0]\n\ - ldr r2, _080701D0 @ =0xfffff280\n\ - adds r0, r4, r2\n\ - strh r1, [r0]\n\ - ldrh r1, [r6, 0x16]\n\ - adds r2, 0x2\n\ - adds r0, r4, r2\n\ - strh r1, [r0]\n\ - ldr r0, _080701D4 @ =0xffff8000\n\ - str r0, [r4, 0xC]\n\ - ldr r1, [sp]\n\ - add r1, r10\n\ - ldr r0, _080701D8 @ =sub_806F8AC\n\ - str r0, [r1]\n\ + ldr r1, _080701C0 @ =gUnknown_0202E8F4\n\ + movs r0, 0x1\n\ + strb r0, [r1]\n\ + movs r0, 0x3\n\ + movs r1, 0xE\n\ + movs r2, 0x1A\n\ + movs r3, 0x13\n\ + bl MenuZeroFillWindowRect\n\ + movs r0, 0x1\n\ + bl PlaySE\n\ + ldr r0, [r4]\n\ + ldrb r1, [r4, 0x5]\n\ + bl PartyMenuUpdateLevelOrStatus\n\ + bl IsDoubleBattle\n\ + adds r1, r0, 0\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + ldrb r1, [r4, 0x5]\n\ + lsls r1, 1\n\ + adds r0, r1\n\ + ldr r1, _080701C4 @ =gUnknown_083769A8\n\ + adds r0, r1\n\ + movs r1, 0x9\n\ + bl task_pc_turn_off\n\ + ldr r2, _080701C8 @ =0xfffff261\n\ + adds r1, r4, r2\n\ + movs r0, 0x2\n\ + strb r0, [r1]\n\ + ldr r0, [r4]\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + ldrh r1, [r6, 0x16]\n\ + subs r0, r1\n\ + strh r0, [r6, 0x18]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0x1C]\n\ + ldr r1, _080701CC @ =0xfffff27e\n\ + adds r0, r4, r1\n\ + movs r1, 0x1\n\ + strh r1, [r0]\n\ + ldr r2, _080701D0 @ =0xfffff280\n\ + adds r0, r4, r2\n\ + strh r1, [r0]\n\ + ldrh r1, [r6, 0x16]\n\ + adds r2, 0x2\n\ + adds r0, r4, r2\n\ + strh r1, [r0]\n\ + ldr r0, _080701D4 @ =0xffff8000\n\ + str r0, [r4, 0xC]\n\ + ldr r1, [sp]\n\ + add r1, r10\n\ + ldr r0, _080701D8 @ =sub_806F8AC\n\ + str r0, [r1]\n\ _080701B0:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080701C0: .4byte gUnknown_0202E8F4\n\ _080701C4: .4byte gUnknown_083769A8\n\ _080701C8: .4byte 0xfffff261\n\ diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 87d95e1fa..c591e893a 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -22,8 +22,8 @@ extern u8 gUnknown_02024A60; extern struct BattlePokemon gBattleMons[4]; extern u16 gUnknown_02024BE6; extern u8 byte_2024C06; -extern u8 gUnknown_02024C07; -extern u8 gUnknown_02024C08; +extern u8 gPlayerMonIndex; +extern u8 gEnemyMonIndex; extern u8 gUnknown_02024C0C; extern u8 gXXX_CritRelated; extern u16 gBattleWeather; @@ -39,10 +39,11 @@ extern u32 gBitTable[]; extern struct BaseStats gBaseStats[]; extern u8 gSpeciesNames[][11]; extern struct BattleMove gBattleMoves[]; -extern struct SpriteTemplate gSpriteTemplate_8208288[]; -extern union AmimCmd *gSpriteAnimTable_81E7C64[]; -extern union AnimCmd **gUnknown_081EC2A4[]; -extern union AnimCmd **gUnknown_081ECACC[]; +extern const struct SpriteTemplate gSpriteTemplate_8208288[]; +extern const union AmimCmd *const gSpriteAnimTable_81E7C64[]; +//array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.) +extern const union AnimCmd *const *const gUnknown_081EC2A4[]; +extern const union AnimCmd *const *const gUnknown_081ECACC[]; extern u8 gTrainerClassToPicIndex[]; extern u8 gTrainerClassToNameIndex[]; extern u8 gSecretBaseTrainerClasses[]; @@ -68,14 +69,14 @@ u8 sub_803C348(u8 a1) case 1: for (i = 0; i < 4; i++) { - if (battle_side_get_owner(i) == battle_side_get_owner(gUnknown_02024C07) && !(gUnknown_02024C0C & gBitTable[i])) + if (battle_side_get_owner(i) == battle_side_get_owner(gPlayerMonIndex) && !(gUnknown_02024C0C & gBitTable[i])) retVal++; } break; case 2: for (i = 0; i < 4; i++) { - if (battle_side_get_owner(i) == battle_side_get_owner(gUnknown_02024C08) && !(gUnknown_02024C0C & gBitTable[i])) + if (battle_side_get_owner(i) == battle_side_get_owner(gEnemyMonIndex) && !(gUnknown_02024C0C & gBitTable[i])) retVal++; } break; @@ -136,70 +137,70 @@ __attribute__((naked)) u8 sub_803C434(u8 a1) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl battle_get_per_side_status\n\ - movs r1, 0x1\n\ - movs r6, 0x1\n\ - adds r4, r6, 0\n\ - ands r4, r0\n\ - eors r4, r1\n\ - adds r5, r4, 0\n\ - ldr r0, _0803C45C\n\ - ldrh r1, [r0]\n\ - adds r0, r6, 0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0803C460\n\ - adds r0, r4, 0\n\ - b _0803C4AA\n\ - .align 2, 0\n\ + push {r4-r6,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl battle_get_per_side_status\n\ + movs r1, 0x1\n\ + movs r6, 0x1\n\ + adds r4, r6, 0\n\ + ands r4, r0\n\ + eors r4, r1\n\ + adds r5, r4, 0\n\ + ldr r0, _0803C45C\n\ + ldrh r1, [r0]\n\ + adds r0, r6, 0\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0803C460\n\ + adds r0, r4, 0\n\ + b _0803C4AA\n\ + .align 2, 0\n\ _0803C45C: .4byte gBattleTypeFlags\n\ _0803C460:\n\ - movs r0, 0\n\ - bl sub_803C348\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - bls _0803C484\n\ - bl Random\n\ - adds r1, r6, 0\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0803C480\n\ - movs r0, 0x2\n\ - eors r0, r4\n\ - b _0803C4AA\n\ + movs r0, 0\n\ + bl sub_803C348\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bls _0803C484\n\ + bl Random\n\ + adds r1, r6, 0\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _0803C480\n\ + movs r0, 0x2\n\ + eors r0, r4\n\ + b _0803C4AA\n\ _0803C480:\n\ - adds r0, r4, 0\n\ - b _0803C4AA\n\ + adds r0, r4, 0\n\ + b _0803C4AA\n\ _0803C484:\n\ - ldr r0, _0803C49C\n\ - ldrb r1, [r0]\n\ - ldr r2, _0803C4A0\n\ - lsls r0, r4, 2\n\ - adds r0, r2\n\ - ldr r0, [r0]\n\ - ands r1, r0\n\ - cmp r1, 0\n\ - bne _0803C4A4\n\ - adds r0, r4, 0\n\ - b _0803C4AA\n\ - .align 2, 0\n\ + ldr r0, _0803C49C\n\ + ldrb r1, [r0]\n\ + ldr r2, _0803C4A0\n\ + lsls r0, r4, 2\n\ + adds r0, r2\n\ + ldr r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _0803C4A4\n\ + adds r0, r4, 0\n\ + b _0803C4AA\n\ + .align 2, 0\n\ _0803C49C: .4byte gUnknown_02024C0C\n\ _0803C4A0: .4byte gBitTable\n\ _0803C4A4:\n\ - movs r0, 0x2\n\ - eors r5, r0\n\ - adds r0, r5, 0\n\ + movs r0, 0x2\n\ + eors r5, r0\n\ + adds r0, r5, 0\n\ _0803C4AA:\n\ - bl battle_get_side_with_given_state\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ + bl battle_get_side_with_given_state\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1\n\ .syntax divided\n"); } #endif @@ -248,7 +249,8 @@ void GetMonSpriteTemplate_803C56C(u16 species, u8 a2) { gUnknown_02024E8C = gSpriteTemplate_8208288[a2]; gUnknown_02024E8C.paletteTag = species; - gUnknown_02024E8C.anims = (union AnimCmd **)gSpriteAnimTable_81E7C64; + //Don't know why the compiler says this is incompatible + gUnknown_02024E8C.anims = (const union AnimCmd *const *)gSpriteAnimTable_81E7C64; } void GetMonSpriteTemplate_803C5A0(u16 species, u8 a2) diff --git a/src/pokemon_3.c b/src/pokemon_3.c index f313bff49..5f186292f 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -58,8 +58,8 @@ extern u16 gSpeciesIdToCryId[]; extern u8 gUnknown_030041C0[]; extern u8 gUnknown_03004290[]; extern u8 gUnknown_020238CC[]; -extern u8 gUnknown_02024C07; -extern u8 gUnknown_02024C08; +extern u8 gPlayerMonIndex; +extern u8 gEnemyMonIndex; extern u8 gUnknown_02024C0B; extern u8 gUnknown_02024E6C; @@ -203,7 +203,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit) void sub_803F324(int stat) { - gUnknown_02024C08 = gUnknown_02024E6C; + gEnemyMonIndex = gUnknown_02024E6C; StringCopy(gUnknown_030041C0, gUnknown_08400F58[gUnknown_082082F8[stat]]); StringCopy(gUnknown_03004290, gUnknown_083FFDB3); get_battle_strings_(gUnknown_083FFDD3); @@ -244,7 +244,7 @@ u8 *sub_803F378(u16 itemId) } else { - gUnknown_02024C07 = gUnknown_02024E6C; + gPlayerMonIndex = gUnknown_02024E6C; get_battle_strings_(gUnknown_083FEE92); } } @@ -252,7 +252,7 @@ u8 *sub_803F378(u16 itemId) if (itemEffect[3] & 0x80) { - gUnknown_02024C07 = gUnknown_02024E6C; + gPlayerMonIndex = gUnknown_02024E6C; get_battle_strings_(gUnknown_083FEE5D); } diff --git a/src/record_mixing.c b/src/record_mixing.c index 7263bd323..b148fa644 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -80,84 +80,84 @@ void sub_80B92AC(void) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ - bl sub_80BC300\n\ - bl sub_80C045C\n\ - ldr r6, _080B9364 @ =0x02018000\n\ - ldr r0, _080B9368 @ =recordMixingSecretBases\n\ - ldr r1, [r0]\n\ - movs r2, 0xC8\n\ - lsls r2, 4\n\ - adds r0, r6, 0\n\ - bl memcpy\n\ - movs r1, 0xC8\n\ - lsls r1, 4\n\ - adds r0, r6, r1\n\ - ldr r1, _080B936C @ =recordMixingTvShows\n\ - ldr r1, [r1]\n\ - movs r2, 0xE1\n\ - lsls r2, 2\n\ - bl memcpy\n\ - ldr r2, _080B9370 @ =0x00001004\n\ - adds r0, r6, r2\n\ - ldr r1, _080B9374 @ =gUnknown_083D0274\n\ - ldr r1, [r1]\n\ - movs r2, 0x40\n\ - bl memcpy\n\ - ldr r1, _080B9378 @ =0x00001044\n\ - adds r0, r6, r1\n\ - ldr r1, _080B937C @ =gUnknown_083D0278\n\ - ldr r1, [r1]\n\ - movs r2, 0x40\n\ - bl memcpy\n\ - ldr r2, _080B9380 @ =0x00001084\n\ - adds r0, r6, r2\n\ - ldr r1, _080B9384 @ =recordMixingEasyChatPairs\n\ - ldr r1, [r1]\n\ - movs r2, 0x28\n\ - bl memcpy\n\ - ldr r5, _080B9388 @ =gUnknown_02038738\n\ - ldr r4, _080B938C @ =gSaveBlock1\n\ - ldr r0, _080B9390 @ =0x0000303c\n\ - adds r1, r4, r0\n\ - adds r0, r5, 0\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldr r2, _080B9394 @ =0x00003074\n\ - adds r1, r4, r2\n\ - adds r0, r5, 0\n\ - adds r0, 0x38\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldr r0, _080B9398 @ =0x00002f9c\n\ - adds r4, r0\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - bl sub_8041324\n\ - ldr r1, _080B939C @ =0x000010ac\n\ - adds r0, r6, r1\n\ - ldr r1, _080B93A0 @ =gUnknown_083D0280\n\ - ldr r1, [r1]\n\ - movs r2, 0x78\n\ - bl memcpy\n\ - ldr r2, _080B93A4 @ =0x00001124\n\ - adds r0, r6, r2\n\ - ldr r1, _080B93A8 @ =gUnknown_083D0284\n\ - ldr r1, [r1]\n\ - movs r2, 0xA4\n\ - bl memcpy\n\ - bl GetMultiplayerId\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080B935C\n\ - bl sub_8126338\n\ - ldr r2, _080B93AC @ =0x000011c8\n\ - adds r1, r6, r2\n\ - strh r0, [r1]\n\ + bl sub_80BC300\n\ + bl sub_80C045C\n\ + ldr r6, _080B9364 @ =0x02018000\n\ + ldr r0, _080B9368 @ =recordMixingSecretBases\n\ + ldr r1, [r0]\n\ + movs r2, 0xC8\n\ + lsls r2, 4\n\ + adds r0, r6, 0\n\ + bl memcpy\n\ + movs r1, 0xC8\n\ + lsls r1, 4\n\ + adds r0, r6, r1\n\ + ldr r1, _080B936C @ =recordMixingTvShows\n\ + ldr r1, [r1]\n\ + movs r2, 0xE1\n\ + lsls r2, 2\n\ + bl memcpy\n\ + ldr r2, _080B9370 @ =0x00001004\n\ + adds r0, r6, r2\n\ + ldr r1, _080B9374 @ =gUnknown_083D0274\n\ + ldr r1, [r1]\n\ + movs r2, 0x40\n\ + bl memcpy\n\ + ldr r1, _080B9378 @ =0x00001044\n\ + adds r0, r6, r1\n\ + ldr r1, _080B937C @ =gUnknown_083D0278\n\ + ldr r1, [r1]\n\ + movs r2, 0x40\n\ + bl memcpy\n\ + ldr r2, _080B9380 @ =0x00001084\n\ + adds r0, r6, r2\n\ + ldr r1, _080B9384 @ =recordMixingEasyChatPairs\n\ + ldr r1, [r1]\n\ + movs r2, 0x28\n\ + bl memcpy\n\ + ldr r5, _080B9388 @ =gUnknown_02038738\n\ + ldr r4, _080B938C @ =gSaveBlock1\n\ + ldr r0, _080B9390 @ =0x0000303c\n\ + adds r1, r4, r0\n\ + adds r0, r5, 0\n\ + movs r2, 0x38\n\ + bl memcpy\n\ + ldr r2, _080B9394 @ =0x00003074\n\ + adds r1, r4, r2\n\ + adds r0, r5, 0\n\ + adds r0, 0x38\n\ + movs r2, 0x38\n\ + bl memcpy\n\ + ldr r0, _080B9398 @ =0x00002f9c\n\ + adds r4, r0\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + bl sub_8041324\n\ + ldr r1, _080B939C @ =0x000010ac\n\ + adds r0, r6, r1\n\ + ldr r1, _080B93A0 @ =gUnknown_083D0280\n\ + ldr r1, [r1]\n\ + movs r2, 0x78\n\ + bl memcpy\n\ + ldr r2, _080B93A4 @ =0x00001124\n\ + adds r0, r6, r2\n\ + ldr r1, _080B93A8 @ =gUnknown_083D0284\n\ + ldr r1, [r1]\n\ + movs r2, 0xA4\n\ + bl memcpy\n\ + bl GetMultiplayerId\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _080B935C\n\ + bl sub_8126338\n\ + ldr r2, _080B93AC @ =0x000011c8\n\ + adds r1, r6, r2\n\ + strh r0, [r1]\n\ _080B935C:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080B9364: .4byte 0x02018000\n\ _080B9368: .4byte recordMixingSecretBases\n\ _080B936C: .4byte recordMixingTvShows\n\ @@ -551,70 +551,70 @@ void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ - mov r6, r10\n\ - mov r5, r9\n\ - mov r4, r8\n\ - push {r4-r6}\n\ - sub sp, 0x38\n\ - mov r8, r0\n\ - mov r10, r1\n\ - mov r9, r2\n\ - adds r4, r3, 0\n\ - ldr r5, [sp, 0x54]\n\ - lsls r4, 24\n\ - lsls r5, 24\n\ - lsrs r5, 24\n\ - lsrs r4, 23\n\ - add r4, r9\n\ - ldrb r0, [r4]\n\ - mov r6, r10\n\ - muls r6, r0\n\ - add r6, r8\n\ - ldrb r0, [r4, 0x1]\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 3\n\ - adds r1, r6, r1\n\ - mov r0, sp\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - lsls r5, 1\n\ - add r5, r9\n\ - ldrb r0, [r5]\n\ - mov r1, r10\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - add r8, r0\n\ - ldrb r1, [r4, 0x1]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 3\n\ - adds r6, r0\n\ - ldrb r0, [r5, 0x1]\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 3\n\ - add r1, r8\n\ - adds r0, r6, 0\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldrb r1, [r5, 0x1]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 3\n\ - add r8, r0\n\ - mov r0, r8\n\ - mov r1, sp\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - add sp, 0x38\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ + mov r6, r10\n\ + mov r5, r9\n\ + mov r4, r8\n\ + push {r4-r6}\n\ + sub sp, 0x38\n\ + mov r8, r0\n\ + mov r10, r1\n\ + mov r9, r2\n\ + adds r4, r3, 0\n\ + ldr r5, [sp, 0x54]\n\ + lsls r4, 24\n\ + lsls r5, 24\n\ + lsrs r5, 24\n\ + lsrs r4, 23\n\ + add r4, r9\n\ + ldrb r0, [r4]\n\ + mov r6, r10\n\ + muls r6, r0\n\ + add r6, r8\n\ + ldrb r0, [r4, 0x1]\n\ + lsls r1, r0, 3\n\ + subs r1, r0\n\ + lsls r1, 3\n\ + adds r1, r6, r1\n\ + mov r0, sp\n\ + movs r2, 0x38\n\ + bl memcpy\n\ + lsls r5, 1\n\ + add r5, r9\n\ + ldrb r0, [r5]\n\ + mov r1, r10\n\ + muls r1, r0\n\ + adds r0, r1, 0\n\ + add r8, r0\n\ + ldrb r1, [r4, 0x1]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 3\n\ + adds r6, r0\n\ + ldrb r0, [r5, 0x1]\n\ + lsls r1, r0, 3\n\ + subs r1, r0\n\ + lsls r1, 3\n\ + add r1, r8\n\ + adds r0, r6, 0\n\ + movs r2, 0x38\n\ + bl memcpy\n\ + ldrb r1, [r5, 0x1]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 3\n\ + add r8, r0\n\ + mov r0, r8\n\ + mov r1, sp\n\ + movs r2, 0x38\n\ + bl memcpy\n\ + add sp, 0x38\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ .syntax divided\n"); } #endif diff --git a/src/rom3.c b/src/rom3.c index a5227d9d9..84032c933 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -34,8 +34,8 @@ extern u16 gUnknown_02024BE6; extern u16 gUnknown_02024BE8; extern u16 gUnknown_02024C04; extern u8 byte_2024C06; -extern u8 gUnknown_02024C07; -extern u8 gUnknown_02024C08; +extern u8 gPlayerMonIndex; +extern u8 gEnemyMonIndex; extern u8 gUnknown_02024C0A; extern u8 gUnknown_02024C0B; extern u8 gUnknown_02024C0C; @@ -422,8 +422,8 @@ void dp01_prepare_buffer_wireless_probably(u8 a, u16 b, u8 *c) } unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14000] = a; unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14001] = gUnknown_02024A60; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gUnknown_02024C07; - unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gUnknown_02024C08; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14002] = gPlayerMonIndex; + unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14003] = gEnemyMonIndex; unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14004] = r9; unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14005] = (r9 & 0x0000FF00) >> 8; unk_2000000[gTasks[gUnknown_020238C4].data[14] + 0x14006] = gUnknown_02024C0C; @@ -565,8 +565,8 @@ void sub_800C47C(u8 taskId) sub_80155A4(r4); if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) { - gUnknown_02024C07 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2]; - gUnknown_02024C08 = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3]; + gPlayerMonIndex = unk_2000000[0x15000 + gTasks[taskId].data[15] + 2]; + gEnemyMonIndex = unk_2000000[0x15000 + gTasks[taskId].data[15] + 3]; gUnknown_02024C0C = unk_2000000[0x15000 + gTasks[taskId].data[15] + 6]; gUnknown_02024C0A = unk_2000000[0x15000 + gTasks[taskId].data[15] + 7]; } diff --git a/src/rom4.c b/src/rom4.c index bc9af5c66..05396cfc3 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -2162,8 +2162,8 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1) return TradeRoom_TooBusyToNotice; if (!sub_8083BF4(linkPlayerId)) return TradeRoom_ReadTrainerCard1; - else - return TradeRoom_ReadTrainerCard2; + else + return TradeRoom_ReadTrainerCard2; } return sub_80682A8(&unkStruct, a1->field_C, a1->d); diff --git a/src/sprite.c b/src/sprite.c index 9e7e3c9ff..43ee5696b 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -36,7 +36,7 @@ struct OamMatrix struct SpriteCopyRequest { - u8 *src; + const u8 *src; u8 *dest; u16 size; }; @@ -95,7 +95,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC static void ResetAffineAnimData(void); static u8 IndexOfSpriteTileTag(u16 tag); static void AllocSpriteTileRange(u16 tag, u16 start, u16 count); -static void DoLoadSpritePalette(u16 *src, u16 paletteOffset); +static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset); typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); @@ -171,51 +171,51 @@ static const u8 sCenterToCornerVecTable[3][4][2] = static const struct Sprite sDummySprite = { - DUMMY_OAM_DATA, - (union AnimCmd **)gDummySpriteAnimTable, - NULL, - (union AffineAnimCmd **)gDummySpriteAffineAnimTable, - (struct SpriteTemplate *)&gDummySpriteTemplate, - NULL, - SpriteCallbackDummy, - { 304, 160 }, - { 0, 0 }, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0xFF + .oam = DUMMY_OAM_DATA, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .template = &gDummySpriteTemplate, + .subspriteTables = NULL, + .callback = SpriteCallbackDummy, + .pos1 = { 304, 160 }, + .pos2 = { 0, 0 }, + .centerToCornerVecX = 0, + .centerToCornerVecY = 0, + .animNum = 0, + .animCmdIndex = 0, + .animDelayCounter = 0, + .animPaused = 0, + .affineAnimPaused = 0, + .animLoopCounter = 0, + .data0 = 0, + .data1 = 0, + .data2 = 0, + .data3 = 0, + .data4 = 0, + .data5 = 0, + .data6 = 0, + .data7 = 0, + .inUse = 0, + .coordOffsetEnabled = 0, + .invisible = 0, + .flags_3 = 0, + .flags_4 = 0, + .flags_5 = 0, + .flags_6 = 0, + .flags_7 = 0, + .hFlip = 0, + .vFlip = 0, + .animBeginning = 0, + .affineAnimBeginning = 0, + .animEnded = 0, + .affineAnimEnded = 0, + .usingSheet = 0, + .flags_f = 0, + .sheetTileStart = 0, + .subspriteTableNum = 0, + .subspriteMode = 0, + .subpriority = 0xFF }; const struct OamData gDummyOamData = DUMMY_OAM_DATA; @@ -230,13 +230,13 @@ const union AffineAnimCmd * const gDummySpriteAffineAnimTable[] = { &sDummyAffin const struct SpriteTemplate gDummySpriteTemplate = { - 0, - 0xFFFF, - (struct OamData *)&gDummyOamData, - (union AnimCmd **)gDummySpriteAnimTable, - NULL, - (union AffineAnimCmd **)gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = 0, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; // TODO: Find out what these are used for. @@ -840,7 +840,7 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, struct SpriteFra } } -void RequestSpriteCopy(u8 *src, u8 *dest, u16 size) +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size) { if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { @@ -1468,7 +1468,7 @@ void SetOamMatrixRotationScaling(u8 matrixNum, s16 xScale, s16 yScale, u16 rotat CopyOamMatrix(matrixNum, &matrix); } -u16 LoadSpriteSheet(struct SpriteSheet *sheet) +u16 LoadSpriteSheet(const struct SpriteSheet *sheet) { s16 tileStart = AllocSpriteTiles(sheet->size / TILE_SIZE_4BPP); @@ -1484,7 +1484,7 @@ u16 LoadSpriteSheet(struct SpriteSheet *sheet) } } -void LoadSpriteSheets(struct SpriteSheet *sheets) +void LoadSpriteSheets(const struct SpriteSheet *sheets) { u8 i; for (i = 0; sheets[i].data != NULL; i++) @@ -1515,7 +1515,7 @@ void AllocTilesForSpriteSheets(struct SpriteSheet *sheets) void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet) { - u8 *data = sheet->data; + const u8 *data = sheet->data; u16 tileStart = GetSpriteTileStartByTag(sheet->tag); CpuCopy16(data, (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size); } @@ -1601,7 +1601,7 @@ static void AllocSpriteTileRange(u16 tag, u16 start, u16 count) void RequestSpriteSheetCopy(const struct SpriteSheet *sheet) { - u8 *data = sheet->data; + const u8 *data = sheet->data; u16 tileStart = GetSpriteTileStartByTag(sheet->tag); RequestSpriteCopy(data, (u8 *)OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size); } @@ -1659,7 +1659,7 @@ void LoadSpritePalettes(const struct SpritePalette *palettes) break; } -static void DoLoadSpritePalette(u16 *src, u16 paletteOffset) +static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset) { LoadPalette(src, paletteOffset + 0x100, 32); } diff --git a/src/start_menu.c b/src/start_menu.c index 8a56b6c33..9c10c4cae 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -283,7 +283,7 @@ void CreateStartMenuTask(void (*func)(u8)) void sub_80712B4(u8 taskId) { - struct Task *task = &gTasks[taskId]; + struct Task *task = &gTasks[taskId]; switch (task->data[0]) { diff --git a/src/starter_choose.c b/src/starter_choose.c index 4a6fb11eb..63d153ebd 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -8,6 +8,7 @@ #include "pokedex.h" #include "songs.h" #include "sound.h" +#include "species.h" #include "sprite.h" #include "string_util.h" #include "task.h" @@ -19,32 +20,219 @@ struct MonCoords }; extern void * const gUnknown_081FAF4C[]; -extern const u8 gStarterChoose_PokeballCoords[][2]; -extern u8 gBirchHelpGfx[]; -extern u8 gBirchBagTilemap[]; -extern u8 gBirchGrassTilemap[]; -extern struct SpriteSheet gUnknown_083F7794; -extern struct SpriteSheet gUnknown_083F77A4; -extern u8 gBirchBagGrassPal[]; -extern const u8 gStarterChoose_LabelCoords[][2]; -extern u16 gStarterMons[]; -extern union AffineAnimCmd *gSpriteAffineAnimTable_83F778C[]; -extern u8 gOtherText_DoYouChoosePoke[]; +extern const u8 gOtherText_DoYouChoosePoke[]; extern u16 gScriptResult; -extern u8 gSpeciesNames[][11]; -extern u8 gOtherText_Poke[]; +extern const u8 gSpeciesNames[][11]; +extern const u8 gOtherText_Poke[]; extern const struct SpriteSheet gMonFrontPicTable[]; extern const struct MonCoords gMonFrontPicCoords[]; extern const struct SpritePalette gMonPaletteTable[]; -extern u8 gUnknown_083F76E4[][2]; -extern u8 gOtherText_BirchInTrouble[]; - -extern struct SpriteTemplate gSpriteTemplate_83F77E4; -extern struct SpriteTemplate gSpriteTemplate_83F77CC; -extern struct SpritePalette gUnknown_083F77B4[]; -extern struct SpriteTemplate gSpriteTemplate_83F77FC; +extern const u8 gOtherText_BirchInTrouble[]; extern struct SpriteTemplate gUnknown_02024E8C; +//-------------------------------------------------- +// Graphics Data +//-------------------------------------------------- + +const u16 gBirchBagGrassPal[][16] = +{ + INCBIN_U16("graphics/misc/birch_bag.gbapal"), + INCBIN_U16("graphics/misc/birch_grass.gbapal"), +}; +static const u16 gBirchBallarrow_Pal[] = INCBIN_U16("graphics/misc/birch_ballarrow.gbapal"); +static const u16 gBirchCircle_Pal[] = INCBIN_U16("graphics/misc/birch_circle.gbapal"); +const u8 gBirchBagTilemap[] = INCBIN_U8("graphics/misc/birch_bag_map.bin.lz"); +const u8 gBirchGrassTilemap[] = INCBIN_U8("graphics/misc/birch_grass_map.bin.lz"); +const u8 gBirchHelpGfx[] = INCBIN_U8("graphics/misc/birch_help.4bpp.lz"); +static const u8 gBirchBallarrow_Gfx[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); +static const u8 gBirchCircle_Gfx[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); +static const u8 gStarterChoose_PokeballCoords[][2] = +{ + {60, 64}, + {120, 88}, + {180, 64}, +}; +static const u8 gStarterChoose_LabelCoords[][2] = +{ + {0, 9}, + {16, 10}, + {8, 4}, +}; +static const u16 sStarterMons[] = {SPECIES_TREECKO, SPECIES_TORCHIC, SPECIES_MUDKIP}; +static const struct OamData gOamData_83F76CC = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83F76D4 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83F76DC = +{ + .y = 160, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const u8 gUnknown_083F76E4[][2] = +{ + {60, 32}, + {120, 56}, + {180, 32}, + {0, 0}, +}; +static const union AnimCmd gSpriteAnim_83F76EC[] = +{ + ANIMCMD_FRAME(48, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83F76F4[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83F76FC[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_JUMP(0), +}; +static const union AnimCmd gSpriteAnim_83F7744[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83F774C[] = +{ + gSpriteAnim_83F76EC, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7750[] = +{ + gSpriteAnim_83F76F4, + gSpriteAnim_83F76FC, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7758[] = +{ + gSpriteAnim_83F7744, +}; +static const union AffineAnimCmd gSpriteAffineAnim_83F775C[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(16, 16, 0, 15), + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd gSpriteAffineAnim_83F7774[] = +{ + AFFINEANIMCMD_FRAME(20, 20, 0, 0), + AFFINEANIMCMD_FRAME(20, 20, 0, 15), + AFFINEANIMCMD_END, +}; +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F778C[] = +{ + gSpriteAffineAnim_83F775C, +}; +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7790[] = +{ + gSpriteAffineAnim_83F7774, +}; +static const struct SpriteSheet gUnknown_083F7794[] = +{ + {gBirchBallarrow_Gfx, 0x0800, 0x1000}, + {NULL}, +}; +static const struct SpriteSheet gUnknown_083F77A4[] = +{ + {gBirchCircle_Gfx, 0x0800, 0x1001}, + {NULL}, +}; +const struct SpritePalette gUnknown_083F77B4[] = +{ + {gBirchBallarrow_Pal, 0x1000}, + {gBirchCircle_Pal, 0x1001}, + {NULL}, +}; +static void sub_810A62C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77CC = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83F76CC, + .anims = gSpriteAnimTable_83F774C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810A62C, +}; +static void sub_810A68C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77E4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83F76D4, + .anims = gSpriteAnimTable_83F7750, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810A68C, +}; +static void StarterPokemonSpriteAnimCallback(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F77FC = +{ + .tileTag = 4097, + .paletteTag = 4097, + .oam = &gOamData_83F76DC, + .anims = gSpriteAnimTable_83F7758, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83F7790, + .callback = StarterPokemonSpriteAnimCallback, +}; + static void MainCallback2(void); static void Task_StarterChoose1(u8 taskId); static void Task_StarterChoose2(u8 taskId); @@ -60,19 +248,12 @@ static u8 CreatePokemonFrontSprite(u16, u8, u8); #define STARTER_PKMN_POS_X 120 #define STARTER_PKMN_POS_Y 64 -//Task data -enum { - TD_STARTERSELECTION, - TD_PKMN_SPRITE_ID, - TD_CIRCLE_SPRITE_ID, -}; - //Retrieves one of the available starter Pokemon u16 GetStarterPokemon(u16 n) { if (n > 3) n = 0; - return gStarterMons[n]; + return sStarterMons[n]; } static void VblankCallback(void) @@ -82,6 +263,10 @@ static void VblankCallback(void) TransferPlttBuffer(); } +#define tStarterSelection data[0] +#define tPkmnSpriteId data[1] +#define tCircleSpriteId data[2] + void CB2_ChooseStarter(void) { u16 savedIme; @@ -116,9 +301,9 @@ void CB2_ChooseStarter(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadPalette(gBirchBagGrassPal, 0, 0x40); - LoadCompressedObjectPic(&gUnknown_083F7794); - LoadCompressedObjectPic(&gUnknown_083F77A4); + LoadPalette(gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal)); + LoadCompressedObjectPic(&gUnknown_083F7794[0]); + LoadCompressedObjectPic(&gUnknown_083F77A4[0]); LoadSpritePalettes(gUnknown_083F77B4); SetUpWindowConfig(&gWindowConfig_81E6C3C); InitMenuWindow(&gWindowConfig_81E6CE4); @@ -146,7 +331,7 @@ void CB2_ChooseStarter(void) REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; taskId = CreateTask(Task_StarterChoose1, 0); - gTasks[taskId].data[TD_STARTERSELECTION] = 1; + gTasks[taskId].tStarterSelection = 1; //Create hand sprite spriteId = CreateSprite(&gSpriteTemplate_83F77CC, 120, 56, 2); @@ -180,7 +365,7 @@ static void MainCallback2(void) static void Task_StarterChoose1(u8 taskId) { - CreateStarterPokemonLabel(0xFF, gTasks[taskId].data[TD_STARTERSELECTION]); + CreateStarterPokemonLabel(0xFF, gTasks[taskId].tStarterSelection); MenuDrawTextWindow(2, 14, 27, 19); MenuPrint(gOtherText_BirchInTrouble, 3, 15); gTasks[taskId].func = Task_StarterChoose2; @@ -188,7 +373,7 @@ static void Task_StarterChoose1(u8 taskId) static void Task_StarterChoose2(u8 taskId) { - u8 selection = gTasks[taskId].data[TD_STARTERSELECTION]; + u8 selection = gTasks[taskId].tStarterSelection; if (gMain.newKeys & A_BUTTON) { @@ -209,16 +394,16 @@ static void Task_StarterChoose2(u8 taskId) gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1], 1); - gTasks[taskId].data[TD_CIRCLE_SPRITE_ID] = spriteId; + gTasks[taskId].tCircleSpriteId = spriteId; //Create Pokemon sprite spriteId = CreatePokemonFrontSprite( - GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), + GetStarterPokemon(gTasks[taskId].tStarterSelection), gStarterChoose_PokeballCoords[selection][0], gStarterChoose_PokeballCoords[selection][1]); gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_83F778C; gSprites[spriteId].callback = StarterPokemonSpriteAnimCallback; - gTasks[taskId].data[TD_PKMN_SPRITE_ID] = spriteId; + gTasks[taskId].tPkmnSpriteId = spriteId; gTasks[taskId].func = Task_StarterChoose3; } @@ -226,22 +411,22 @@ static void Task_StarterChoose2(u8 taskId) { if ((gMain.newKeys & DPAD_LEFT) && selection > 0) { - gTasks[taskId].data[TD_STARTERSELECTION]--; - CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); + gTasks[taskId].tStarterSelection--; + CreateStarterPokemonLabel(selection, gTasks[taskId].tStarterSelection); } else if ((gMain.newKeys & DPAD_RIGHT) && selection < 2) { - gTasks[taskId].data[TD_STARTERSELECTION]++; - CreateStarterPokemonLabel(selection, gTasks[taskId].data[TD_STARTERSELECTION]); + gTasks[taskId].tStarterSelection++; + CreateStarterPokemonLabel(selection, gTasks[taskId].tStarterSelection); } } } static void Task_StarterChoose3(u8 taskId) { - if (gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].affineAnimEnded && - gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.x == STARTER_PKMN_POS_X && - gSprites[gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]].pos1.y == STARTER_PKMN_POS_Y) + if (gSprites[gTasks[taskId].tCircleSpriteId].affineAnimEnded && + gSprites[gTasks[taskId].tCircleSpriteId].pos1.x == STARTER_PKMN_POS_X && + gSprites[gTasks[taskId].tCircleSpriteId].pos1.y == STARTER_PKMN_POS_Y) { gTasks[taskId].func = Task_StarterChoose4; } @@ -249,7 +434,7 @@ static void Task_StarterChoose3(u8 taskId) static void Task_StarterChoose4(u8 taskId) { - PlayCry1(GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]), 0); + PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); MenuDrawTextWindow(2, 14, 27, 19); //"Do you choose this POKEMON?" MenuPrint(gOtherText_DoYouChoosePoke, 3, 15); @@ -263,22 +448,22 @@ static void Task_StarterChoose5(u8 taskId) switch (ProcessMenuInputNoWrap_()) { - case 0: //YES + case 0: // YES //Return the starter choice and exit. - gScriptResult = gTasks[taskId].data[TD_STARTERSELECTION]; + gScriptResult = gTasks[taskId].tStarterSelection; SetMainCallback2(gMain.savedCallback); break; - case 1: //NO - case -1: //B button + case 1: // NO + case -1: // B button PlaySE(SE_SELECT); MenuZeroFillWindowRect(21, 7, 27, 12); - spriteId = gTasks[taskId].data[TD_PKMN_SPRITE_ID]; + spriteId = gTasks[taskId].tPkmnSpriteId; FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); - spriteId = gTasks[taskId].data[TD_CIRCLE_SPRITE_ID]; + spriteId = gTasks[taskId].tCircleSpriteId; FreeOamMatrix(gSprites[spriteId].oam.matrixNum); DestroySprite(&gSprites[spriteId]); gTasks[taskId].func = Task_StarterChoose6; @@ -372,9 +557,8 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) REG_WIN0V = WIN_RANGE(labelTop, labelBottom); } -void nullsub_72(struct Sprite *sprite) +static void nullsub_72(struct Sprite *sprite) { - } static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) @@ -395,25 +579,25 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) } //Sprite callback -void sub_810A62C(struct Sprite *sprite) +static void sub_810A62C(struct Sprite *sprite) { - sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].data[TD_STARTERSELECTION]][0]; - sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].data[TD_STARTERSELECTION]][1]; + sprite->pos1.x = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][0]; + sprite->pos1.y = gUnknown_083F76E4[gTasks[sprite->data0].tStarterSelection][1]; sprite->pos2.y = Sin(sprite->data1, 8); sprite->data1 = (u8)sprite->data1 + 4; } //Sprite callback -void sub_810A68C(struct Sprite *sprite) +static void sub_810A68C(struct Sprite *sprite) { - if (gTasks[sprite->data0].data[TD_STARTERSELECTION] == sprite->data1) + if (gTasks[sprite->data0].tStarterSelection == sprite->data1) StartSpriteAnimIfDifferent(sprite, 1); else StartSpriteAnimIfDifferent(sprite, 0); } //Sprite callback -void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) +static void StarterPokemonSpriteAnimCallback(struct Sprite *sprite) { //Move sprite to upper center of screen if (sprite->pos1.x > STARTER_PKMN_POS_X) diff --git a/src/title_screen.c b/src/title_screen.c index 35f3d049c..1565abf62 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -19,32 +19,270 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern u8 gUnknown_0202F7E4; extern u16 gUnknown_030041B4; extern u16 gUnknown_030042C0; -extern u8 gUnknown_08393210[]; -extern u8 gUnknown_08393250[]; -extern u8 gUnknown_083939EC[]; -extern u8 gUnknown_08393BF8[]; -extern u16 gUnknown_08393E64[]; -extern struct SpriteTemplate gSpriteTemplate_8393ECC; -extern struct SpriteTemplate gSpriteTemplate_8393EE4; -extern struct SpriteSheet gUnknown_08393EFC; -extern struct SpriteTemplate gSpriteTemplate_8393F74; -extern struct SpriteSheet gUnknown_08393F8C; -extern const struct SpritePalette gUnknown_08393F9C[]; -extern struct SpriteTemplate gSpriteTemplate_8393FC0; -extern struct SpriteSheet gUnknown_08393FD8; -extern u8 gUnknown_08E9D8CC[]; -extern u8 gUnknown_08E9F624[]; -extern u8 gUnknown_08E9F7E4[]; +extern const u8 gUnknown_08E9D8CC[]; +extern const u16 gUnknown_08E9F624[]; +extern const u8 gUnknown_08E9F7E4[]; +extern const u8 gVersionTiles[]; +extern const u8 gTitleScreenPressStart_Gfx[]; +extern const u16 gTitleScreenLogoShinePalette[]; -static void MainCB2(void); -static void Task_TitleScreenPhase1(u8); -static void Task_TitleScreenPhase2(u8); -static void Task_TitleScreenPhase3(u8); -static void CB2_GoToMainMenu(void); -static void CB2_GoToClearSaveDataScreen(void); -static void CB2_GoToResetRtcScreen(void); -static void CB2_GoToCopyrightScreen(void); -static void UpdateLegendaryMarkingColor(u8); +#ifdef SAPPHIRE +static const u16 sLegendaryMonPalettes[][16] = +{ + INCBIN_U16("graphics/title_screen/kyogre_dark.gbapal"), + INCBIN_U16("graphics/title_screen/kyogre_glow.gbapal"), +}; +static const u8 sLegendaryMonPixelData[] = INCBIN_U8("graphics/title_screen/kyogre.4bpp.lz"); +static const u8 sLegendaryMonTilemap[] = INCBIN_U8("graphics/title_screen/kyogre_map.bin.lz"); +static const u8 sBackdropTilemap[] = INCBIN_U8("graphics/title_screen/water_map.bin.lz"); +#else +static const u16 sLegendaryMonPalettes[][16] = +{ + INCBIN_U16("graphics/title_screen/groudon_dark.gbapal"), + INCBIN_U16("graphics/title_screen/groudon_glow.gbapal"), +}; +static const u8 sLegendaryMonPixelData[] = INCBIN_U8("graphics/title_screen/groudon.4bpp.lz"); +static const u8 sLegendaryMonTilemap[] = INCBIN_U8("graphics/title_screen/groudon_map.bin.lz"); +static const u8 sBackdropTilemap[] = INCBIN_U8("graphics/title_screen/lava_map.bin.lz"); +#endif +static const u8 sLogoShineTiles[] = INCBIN_U8("graphics/title_screen/logo_shine.4bpp.lz"); +const u16 gUnknown_08393E64[] = +{ + 0x10, + 0x110, + 0x210, + 0x310, + 0x410, + 0x510, + 0x610, + 0x710, + 0x810, + 0x910, + 0xA10, + 0xB10, + 0xC10, + 0xD10, + 0xE10, + 0xF10, + 0x100F, + 0x100E, + 0x100D, + 0x100C, + 0x100B, + 0x100A, + 0x1009, + 0x1008, + 0x1007, + 0x1006, + 0x1005, + 0x1004, + 0x1003, + 0x1002, + 0x1001, + 0x1000, +}; +static const struct OamData sVersionBannerLeftOamData = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 1, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData sVersionBannerRightOamData = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 1, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd sVersionBannerLeftAnimSequence[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +static const union AnimCmd sVersionBannerRightAnimSequence[] = +{ + ANIMCMD_FRAME(64, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const sVersionBannerLeftAnimTable[] = +{ + sVersionBannerLeftAnimSequence, +}; +static const union AnimCmd *const sVersionBannerRightAnimTable[] = +{ + sVersionBannerRightAnimSequence, +}; +static const struct SpriteTemplate sVersionBannerLeftSpriteTemplate = +{ + .tileTag = 1000, + .paletteTag = 1000, + .oam = &sVersionBannerLeftOamData, + .anims = sVersionBannerLeftAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_VersionBannerLeft, +}; +static const struct SpriteTemplate sVersionBannerRightSpriteTemplate = +{ + .tileTag = 1000, + .paletteTag = 1000, + .oam = &sVersionBannerRightOamData, + .anims = sVersionBannerRightAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_VersionBannerRight, +}; +static const struct SpriteSheet gUnknown_08393EFC[] = +{ + {gVersionTiles, 0x1000, 1000}, + {NULL}, +}; +static const struct OamData gOamData_8393F0C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_8393F14[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F1C[] = +{ + ANIMCMD_FRAME(4, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F24[] = +{ + ANIMCMD_FRAME(8, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F2C[] = +{ + ANIMCMD_FRAME(12, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F34[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F3C[] = +{ + ANIMCMD_FRAME(20, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F44[] = +{ + ANIMCMD_FRAME(24, 4), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_8393F4C[] = +{ + ANIMCMD_FRAME(28, 4), + ANIMCMD_END, +}; +static const union AnimCmd *const sStartCopyrightBannerAnimTable[] = +{ + gSpriteAnim_8393F14, + gSpriteAnim_8393F1C, + gSpriteAnim_8393F24, + gSpriteAnim_8393F2C, + gSpriteAnim_8393F34, + gSpriteAnim_8393F3C, + gSpriteAnim_8393F44, + gSpriteAnim_8393F4C, +}; +static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate = +{ + .tileTag = 1001, + .paletteTag = 1001, + .oam = &gOamData_8393F0C, + .anims = sStartCopyrightBannerAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_PressStartCopyrightBanner, +}; +static const struct SpriteSheet gUnknown_08393F8C[] = +{ + {gTitleScreenPressStart_Gfx, 0x520, 1001}, + {NULL}, +}; +const struct SpritePalette sPokemonLogoShinePalette[] = +{ + {gTitleScreenLogoShinePalette, 1001}, + {NULL}, +}; +static const struct OamData sPokemonLogoShineOamData = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd sPokemonLogoShineAnimSequence[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; +static const union AnimCmd *const sPokemonLogoShineAnimTable[] = +{ + sPokemonLogoShineAnimSequence, +}; +static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate = +{ + .tileTag = 1002, + .paletteTag = 1001, + .oam = &sPokemonLogoShineOamData, + .anims = sPokemonLogoShineAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_PokemonLogoShine, +}; +static const struct SpriteSheet sPokemonLogoShineSpriteSheet[] = +{ + {sLogoShineTiles, 0x800, 1002}, + {NULL}, +}; #define _RGB(r, g, b) ((((b) & 31) << 10) + (((g) & 31) << 5) + ((r) & 31)) @@ -66,6 +304,16 @@ static void UpdateLegendaryMarkingColor(u8); #define RESET_RTC_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_LEFT) #define A_B_START_SELECT (A_BUTTON | B_BUTTON | START_BUTTON | SELECT_BUTTON) +static void MainCB2(void); +static void Task_TitleScreenPhase1(u8); +static void Task_TitleScreenPhase2(u8); +static void Task_TitleScreenPhase3(u8); +static void CB2_GoToMainMenu(void); +static void CB2_GoToClearSaveDataScreen(void); +static void CB2_GoToResetRtcScreen(void); +static void CB2_GoToCopyrightScreen(void); +static void UpdateLegendaryMarkingColor(u8); + void SpriteCallback_VersionBannerLeft(struct Sprite *sprite) { struct Task *task = &gTasks[sprite->data1]; @@ -134,7 +382,7 @@ static void CreatePressStartBanner(s16 x, s16 y) x -= 32; for (i = 0; i < 3; i++, x += 32) { - spriteId = CreateSprite(&gSpriteTemplate_8393F74, x, y, 0); + spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0); StartSpriteAnim(&gSprites[spriteId], i); gSprites[spriteId].data0 = 1; } @@ -148,7 +396,7 @@ static void CreateCopyrightBanner(s16 x, s16 y) x -= 64; for (i = 0; i < 5; i++, x += 32) { - spriteId = CreateSprite(&gSpriteTemplate_8393F74, x, y, 0); + spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0); StartSpriteAnim(&gSprites[spriteId], i + 3); } } @@ -193,7 +441,7 @@ void SpriteCallback_PokemonLogoShine(struct Sprite *sprite) static void StartPokemonLogoShine(bool8 flashBackground) { - u8 spriteId = CreateSprite(&gSpriteTemplate_8393FC0, 0, 68, 0); + u8 spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0); gSprites[spriteId].oam.objMode = 2; gSprites[spriteId].data0 = flashBackground; @@ -208,11 +456,9 @@ static void VBlankCB(void) REG_BG1VOFS = gUnknown_030041B4; } -enum -{ - TD_COUNTER, - TD_SKIP, -}; + +#define tCounter data[0] +#define tSkipToNext data[1] void CB2_InitTitleScreen(void) { @@ -245,28 +491,28 @@ void CB2_InitTitleScreen(void) LZ77UnCompVram(gUnknown_08E9D8CC, (void *)VRAM); LZ77UnCompVram(gUnknown_08E9F7E4, (void *)(VRAM + 0x4800)); LoadPalette(gUnknown_08E9F624, 0, 0x1C0); - LZ77UnCompVram(gUnknown_08393250, (void *)(VRAM + 0x8000)); - LZ77UnCompVram(gUnknown_083939EC, (void *)(VRAM + 0xC000)); - LZ77UnCompVram(gUnknown_08393BF8, (void *)(VRAM + 0xC800)); - LoadPalette(gUnknown_08393210, 0xE0, 0x40); + LZ77UnCompVram(sLegendaryMonPixelData, (void *)(VRAM + 0x8000)); + LZ77UnCompVram(sLegendaryMonTilemap, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(sBackdropTilemap, (void *)(VRAM + 0xC800)); + LoadPalette(sLegendaryMonPalettes, 0xE0, sizeof(sLegendaryMonPalettes)); remove_some_task(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 14; - LoadCompressedObjectPic(&gUnknown_08393EFC); - LoadCompressedObjectPic(&gUnknown_08393F8C); - LoadCompressedObjectPic(&gUnknown_08393FD8); + LoadCompressedObjectPic(&gUnknown_08393EFC[0]); + LoadCompressedObjectPic(&gUnknown_08393F8C[0]); + LoadCompressedObjectPic(&sPokemonLogoShineSpriteSheet[0]); LoadPalette(gUnknown_08E9F624, 0x100, 0x1C0); - LoadSpritePalette(&gUnknown_08393F9C[0]); + LoadSpritePalette(&sPokemonLogoShinePalette[0]); gMain.state = 2; break; case 2: { u8 taskId = CreateTask(Task_TitleScreenPhase1, 0); - gTasks[taskId].data[TD_COUNTER] = 0x100; - gTasks[taskId].data[TD_SKIP] = FALSE; + gTasks[taskId].tCounter = 256; + gTasks[taskId].tSkipToNext = FALSE; gTasks[taskId].data[2] = -16; gTasks[taskId].data[3] = -32; gUnknown_0202F7E4 = taskId; @@ -294,9 +540,9 @@ void CB2_InitTitleScreen(void) REG_BLDCNT = 0x84; REG_BLDALPHA = 0; REG_BLDY = 0x8; - REG_BG0CNT = 0x180B; - REG_BG1CNT = 0x190A; - REG_BG2CNT = 0x4981; + REG_BG0CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x256; + REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(25) | BGCNT_16COLOR | BGCNT_TXT256x256; + REG_BG2CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(9) | BGCNT_256COLOR | BGCNT_AFF256x256; savedIme = REG_IME; REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; @@ -337,17 +583,17 @@ static void Task_TitleScreenPhase1(u8 taskId) //Skip to next phase when A, B, Start, or Select is pressed if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].data[1] != 0) { - gTasks[taskId].data[TD_SKIP] = TRUE; - gTasks[taskId].data[TD_COUNTER] = 0; + gTasks[taskId].tSkipToNext = TRUE; + gTasks[taskId].tCounter = 0; } - if (gTasks[taskId].data[TD_COUNTER] != 0) + if (gTasks[taskId].tCounter != 0) { - u16 frameNum = gTasks[taskId].data[TD_COUNTER]; + u16 frameNum = gTasks[taskId].tCounter; if (frameNum == 160 || frameNum == 64) StartPokemonLogoShine(TRUE); - gTasks[taskId].data[TD_COUNTER]--; + gTasks[taskId].tCounter--; } else { @@ -361,17 +607,17 @@ static void Task_TitleScreenPhase1(u8 taskId) REG_BLDY = 0; //Create left side of version banner - spriteId = CreateSprite(&gSpriteTemplate_8393ECC, 0x62, 0x1A, 0); + spriteId = CreateSprite(&sVersionBannerLeftSpriteTemplate, 0x62, 0x1A, 0); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data1 = taskId; //Create right side of version banner - spriteId = CreateSprite(&gSpriteTemplate_8393EE4, 0xA2, 0x1A, 0); + spriteId = CreateSprite(&sVersionBannerRightSpriteTemplate, 0xA2, 0x1A, 0); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data1 = taskId; gTasks[taskId].data[5] = 88; - gTasks[taskId].data[TD_COUNTER] = 144; + gTasks[taskId].tCounter = 144; gTasks[taskId].func = Task_TitleScreenPhase2; } } @@ -380,17 +626,17 @@ static void Task_TitleScreenPhase1(u8 taskId) static void Task_TitleScreenPhase2(u8 taskId) { //Skip to next phase when A, B, Start, or Select is pressed - if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].data[TD_SKIP]) + if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].tSkipToNext) { - gTasks[taskId].data[TD_SKIP] = TRUE; - gTasks[taskId].data[TD_COUNTER] = 0; + gTasks[taskId].tSkipToNext = TRUE; + gTasks[taskId].tCounter = 0; } - if (gTasks[taskId].data[TD_COUNTER] != 0) - gTasks[taskId].data[TD_COUNTER]--; + if (gTasks[taskId].tCounter != 0) + gTasks[taskId].tCounter--; else { - gTasks[taskId].data[TD_SKIP] = TRUE; + gTasks[taskId].tSkipToNext = TRUE; REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON @@ -403,7 +649,7 @@ static void Task_TitleScreenPhase2(u8 taskId) gTasks[taskId].func = Task_TitleScreenPhase3; } - if (!(gTasks[taskId].data[TD_COUNTER] & 1) && gTasks[taskId].data[3] != 0) + if (!(gTasks[taskId].tCounter & 1) && gTasks[taskId].data[3] != 0) gTasks[taskId].data[3]++; //Slide Pokemon logo up @@ -437,14 +683,14 @@ static void Task_TitleScreenPhase3(u8 taskId) else { REG_BG2Y = 0; - gTasks[taskId].data[TD_COUNTER]++; - if (gTasks[taskId].data[TD_COUNTER] & 1) + gTasks[taskId].tCounter++; + if (gTasks[taskId].tCounter & 1) { gTasks[taskId].data[4]++; gUnknown_030041B4 = gTasks[taskId].data[4]; gUnknown_030042C0 = 0; } - UpdateLegendaryMarkingColor(gTasks[taskId].data[TD_COUNTER]); + UpdateLegendaryMarkingColor(gTasks[taskId].tCounter); if ((gMPlay_BGM.status & 0xFFFF) == 0) { BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF); diff --git a/src/trainer_card.c b/src/trainer_card.c index 3b40fa6e7..5239c6c90 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -432,46 +432,46 @@ __attribute__((naked)) void sub_8093598() { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - movs r2, 0xC0\n\ - lsls r2, 19\n\ - movs r3, 0x80\n\ - lsls r3, 9\n\ - mov r4, sp\n\ - movs r6, 0\n\ - ldr r1, _080935E4 @ =0x040000d4\n\ - movs r5, 0x80\n\ - lsls r5, 5\n\ - ldr r7, _080935E8 @ =0x81000800\n\ - movs r0, 0x81\n\ - lsls r0, 24\n\ - mov r12, r0\n\ + push {r4-r7,lr}\n\ + sub sp, 0x4\n\ + movs r2, 0xC0\n\ + lsls r2, 19\n\ + movs r3, 0x80\n\ + lsls r3, 9\n\ + mov r4, sp\n\ + movs r6, 0\n\ + ldr r1, _080935E4 @ =0x040000d4\n\ + movs r5, 0x80\n\ + lsls r5, 5\n\ + ldr r7, _080935E8 @ =0x81000800\n\ + movs r0, 0x81\n\ + lsls r0, 24\n\ + mov r12, r0\n\ _080935B6:\n\ - strh r6, [r4]\n\ - mov r0, sp\n\ - str r0, [r1]\n\ - str r2, [r1, 0x4]\n\ - str r7, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - adds r2, r5\n\ - subs r3, r5\n\ - cmp r3, r5\n\ - bhi _080935B6\n\ - strh r6, [r4]\n\ - mov r0, sp\n\ - str r0, [r1]\n\ - str r2, [r1, 0x4]\n\ - lsrs r0, r3, 1\n\ - mov r2, r12\n\ - orrs r0, r2\n\ - str r0, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + strh r6, [r4]\n\ + mov r0, sp\n\ + str r0, [r1]\n\ + str r2, [r1, 0x4]\n\ + str r7, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + adds r2, r5\n\ + subs r3, r5\n\ + cmp r3, r5\n\ + bhi _080935B6\n\ + strh r6, [r4]\n\ + mov r0, sp\n\ + str r0, [r1]\n\ + str r2, [r1, 0x4]\n\ + lsrs r0, r3, 1\n\ + mov r2, r12\n\ + orrs r0, r2\n\ + str r0, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + add sp, 0x4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080935E4: .4byte 0x040000d4\n\ _080935E8: .4byte 0x81000800\n\ .syntax divided\n"); @@ -481,21 +481,21 @@ __attribute__((naked)) void sub_80935EC() { asm(".syntax unified\n\ - sub sp, 0x4\n\ - movs r2, 0xE0\n\ - lsls r2, 19\n\ - mov r1, sp\n\ - movs r0, 0\n\ - strh r0, [r1]\n\ - ldr r0, _08093608 @ =0x040000d4\n\ - str r1, [r0]\n\ - str r2, [r0, 0x4]\n\ - ldr r1, _0809360C @ =0x81000200\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - add sp, 0x4\n\ - bx lr\n\ - .align 2, 0\n\ + sub sp, 0x4\n\ + movs r2, 0xE0\n\ + lsls r2, 19\n\ + mov r1, sp\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + ldr r0, _08093608 @ =0x040000d4\n\ + str r1, [r0]\n\ + str r2, [r0, 0x4]\n\ + ldr r1, _0809360C @ =0x81000200\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + add sp, 0x4\n\ + bx lr\n\ + .align 2, 0\n\ _08093608: .4byte 0x040000d4\n\ _0809360C: .4byte 0x81000200\n\ .syntax divided\n"); @@ -505,48 +505,48 @@ __attribute__((naked)) void sub_8093610() { asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - ldr r5, _08093664 @ =REG_BG0CNT\n\ - movs r1, 0\n\ - strh r1, [r5]\n\ - ldr r2, _08093668 @ =REG_BG1CNT\n\ - strh r1, [r2]\n\ - ldr r3, _0809366C @ =REG_BG2CNT\n\ - strh r1, [r3]\n\ - ldr r4, _08093670 @ =REG_BG3CNT\n\ - strh r1, [r4]\n\ - ldr r0, _08093674 @ =REG_BG0HOFS\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - ldr r1, _08093678 @ =0x00001e08\n\ - adds r0, r1, 0\n\ - strh r0, [r5]\n\ - ldr r1, _0809367C @ =0x00000801\n\ - adds r0, r1, 0\n\ - strh r0, [r2]\n\ - ldr r1, _08093680 @ =0x00000902\n\ - adds r0, r1, 0\n\ - strh r0, [r3]\n\ - ldr r1, _08093684 @ =0x00000a03\n\ - adds r0, r1, 0\n\ - strh r0, [r4]\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + push {r4,r5,lr}\n\ + ldr r5, _08093664 @ =REG_BG0CNT\n\ + movs r1, 0\n\ + strh r1, [r5]\n\ + ldr r2, _08093668 @ =REG_BG1CNT\n\ + strh r1, [r2]\n\ + ldr r3, _0809366C @ =REG_BG2CNT\n\ + strh r1, [r3]\n\ + ldr r4, _08093670 @ =REG_BG3CNT\n\ + strh r1, [r4]\n\ + ldr r0, _08093674 @ =REG_BG0HOFS\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + ldr r1, _08093678 @ =0x00001e08\n\ + adds r0, r1, 0\n\ + strh r0, [r5]\n\ + ldr r1, _0809367C @ =0x00000801\n\ + adds r0, r1, 0\n\ + strh r0, [r2]\n\ + ldr r1, _08093680 @ =0x00000902\n\ + adds r0, r1, 0\n\ + strh r0, [r3]\n\ + ldr r1, _08093684 @ =0x00000a03\n\ + adds r0, r1, 0\n\ + strh r0, [r4]\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08093664: .4byte 0x4000008 @ REG_BG0CNT\n\ _08093668: .4byte 0x400000A @ REG_BG1CNT\n\ _0809366C: .4byte 0x400000C @ REG_BG2CNT\n\ @@ -589,41 +589,41 @@ __attribute__((naked)) static void sub_8093688(void) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - bl sub_8093324\n\ - ldr r2, _080936D0 @ =0x02000000\n\ - movs r1, 0\n\ - strb r1, [r2]\n\ - strb r1, [r2, 0x3]\n\ - strb r1, [r2, 0x4]\n\ - adds r0, r2, 0\n\ - adds r0, 0x65\n\ - ldrb r0, [r0]\n\ - strb r0, [r2, 0x2]\n\ - strb r1, [r2, 0x5]\n\ - strb r1, [r2, 0x6]\n\ - movs r4, 0\n\ - adds r6, r2, 0\n\ - adds r6, 0x20\n\ - adds r5, r2, 0\n\ - adds r5, 0x8C\n\ + push {r4-r6,lr}\n\ + bl sub_8093324\n\ + ldr r2, _080936D0 @ =0x02000000\n\ + movs r1, 0\n\ + strb r1, [r2]\n\ + strb r1, [r2, 0x3]\n\ + strb r1, [r2, 0x4]\n\ + adds r0, r2, 0\n\ + adds r0, 0x65\n\ + ldrb r0, [r0]\n\ + strb r0, [r2, 0x2]\n\ + strb r1, [r2, 0x5]\n\ + strb r1, [r2, 0x6]\n\ + movs r4, 0\n\ + adds r6, r2, 0\n\ + adds r6, 0x20\n\ + adds r5, r2, 0\n\ + adds r5, 0x8C\n\ _080936AE:\n\ - lsls r0, r4, 4\n\ - adds r0, r6\n\ - lsls r1, r4, 1\n\ - adds r1, r5, r1\n\ - ldrh r1, [r1]\n\ - bl sub_80EB3FC\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x3\n\ - bls _080936AE\n\ - bl sub_80936D4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + lsls r0, r4, 4\n\ + adds r0, r6\n\ + lsls r1, r4, 1\n\ + adds r1, r5, r1\n\ + ldrh r1, [r1]\n\ + bl sub_80EB3FC\n\ + adds r0, r4, 0x1\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0x3\n\ + bls _080936AE\n\ + bl sub_80936D4\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080936D0: .4byte 0x02000000\n\ .syntax divided\n"); } @@ -750,29 +750,29 @@ __attribute__((naked)) static void sub_809382C(u8 taskId) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r7, _08093858 @ =gUnknown_083B5EBC\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r4, r1, 3\n\ - ldr r6, _0809385C @ =0x02000000\n\ - ldr r5, _08093860 @ =gTasks\n\ + push {r4-r7,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r7, _08093858 @ =gUnknown_083B5EBC\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r4, r1, 3\n\ + ldr r6, _0809385C @ =0x02000000\n\ + ldr r5, _08093860 @ =gTasks\n\ _0809383E:\n\ - ldrb r0, [r6]\n\ - lsls r0, 2\n\ - adds r0, r7\n\ - ldr r1, [r0]\n\ - adds r0, r4, r5\n\ - bl _call_via_r1\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _0809383E\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + ldrb r0, [r6]\n\ + lsls r0, 2\n\ + adds r0, r7\n\ + ldr r1, [r0]\n\ + adds r0, r4, r5\n\ + bl _call_via_r1\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0809383E\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08093858: .4byte gUnknown_083B5EBC\n\ _0809385C: .4byte 0x02000000\n\ _08093860: .4byte gTasks\n\ @@ -783,34 +783,34 @@ __attribute__((naked)) bool8 sub_8093864() { asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - sub sp, 0x4\n\ - ldr r4, _080938A0 @ =0x02000000\n\ - ldr r2, _080938A4 @ =gSaveBlock2\n\ - ldrb r1, [r2, 0x11]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - movs r5, 0\n\ - strb r0, [r4, 0x5]\n\ - ldrb r0, [r2, 0x12]\n\ - strb r0, [r4, 0x6]\n\ - bl sub_80939A4\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - str r5, [sp]\n\ - movs r1, 0\n\ - movs r2, 0x10\n\ - movs r3, 0\n\ - bl BeginNormalPaletteFade\n\ - ldrb r0, [r4]\n\ - adds r0, 0x1\n\ - strb r0, [r4]\n\ - movs r0, 0\n\ - add sp, 0x4\n\ - pop {r4,r5}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + push {r4,r5,lr}\n\ + sub sp, 0x4\n\ + ldr r4, _080938A0 @ =0x02000000\n\ + ldr r2, _080938A4 @ =gSaveBlock2\n\ + ldrb r1, [r2, 0x11]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + movs r5, 0\n\ + strb r0, [r4, 0x5]\n\ + ldrb r0, [r2, 0x12]\n\ + strb r0, [r4, 0x6]\n\ + bl sub_80939A4\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + str r5, [sp]\n\ + movs r1, 0\n\ + movs r2, 0x10\n\ + movs r3, 0\n\ + bl BeginNormalPaletteFade\n\ + ldrb r0, [r4]\n\ + adds r0, 0x1\n\ + strb r0, [r4]\n\ + movs r0, 0\n\ + add sp, 0x4\n\ + pop {r4,r5}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _080938A0: .4byte 0x02000000\n\ _080938A4: .4byte gSaveBlock2\n\ .syntax divided\n"); @@ -820,22 +820,22 @@ __attribute__((naked)) bool8 sub_80938A8() { asm(".syntax unified\n\ - push {lr}\n\ - ldr r0, _080938C4 @ =gPaletteFade\n\ - ldrb r1, [r0, 0x7]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080938BE\n\ - ldr r1, _080938C8 @ =0x02000000\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ + push {lr}\n\ + ldr r0, _080938C4 @ =gPaletteFade\n\ + ldrb r1, [r0, 0x7]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080938BE\n\ + ldr r1, _080938C8 @ =0x02000000\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ _080938BE:\n\ - movs r0, 0\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + movs r0, 0\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _080938C4: .4byte gPaletteFade\n\ _080938C8: .4byte 0x02000000\n\ .syntax divided\n"); @@ -845,48 +845,48 @@ __attribute__((naked)) bool8 sub_80938CC() { asm(".syntax unified\n\ - push {lr}\n\ - ldr r0, _080938E4 @ =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080938EC\n\ - ldr r1, _080938E8 @ =0x02000000\n\ - movs r0, 0x5\n\ - strb r0, [r1]\n\ - movs r0, 0x1\n\ - b _08093914\n\ - .align 2, 0\n\ + push {lr}\n\ + ldr r0, _080938E4 @ =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080938EC\n\ + ldr r1, _080938E8 @ =0x02000000\n\ + movs r0, 0x5\n\ + strb r0, [r1]\n\ + movs r0, 0x1\n\ + b _08093914\n\ + .align 2, 0\n\ _080938E4: .4byte gMain\n\ _080938E8: .4byte 0x02000000\n\ _080938EC:\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08093912\n\ - ldr r2, _08093900 @ =0x02000000\n\ - ldrb r1, [r2, 0x3]\n\ - cmp r1, 0\n\ - beq _08093904\n\ - movs r0, 0x5\n\ - b _0809390C\n\ - .align 2, 0\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08093912\n\ + ldr r2, _08093900 @ =0x02000000\n\ + ldrb r1, [r2, 0x3]\n\ + cmp r1, 0\n\ + beq _08093904\n\ + movs r0, 0x5\n\ + b _0809390C\n\ + .align 2, 0\n\ _08093900: .4byte 0x02000000\n\ _08093904:\n\ - movs r0, 0x1\n\ - eors r0, r1\n\ - strb r0, [r2, 0x3]\n\ - movs r0, 0x3\n\ + movs r0, 0x1\n\ + eors r0, r1\n\ + strb r0, [r2, 0x3]\n\ + movs r0, 0x3\n\ _0809390C:\n\ - strb r0, [r2]\n\ - movs r0, 0x1\n\ - b _08093914\n\ + strb r0, [r2]\n\ + movs r0, 0x1\n\ + b _08093914\n\ _08093912:\n\ - movs r0, 0\n\ + movs r0, 0\n\ _08093914:\n\ - pop {r1}\n\ - bx r1\n\ + pop {r1}\n\ + bx r1\n\ .syntax divided\n"); } @@ -914,25 +914,25 @@ __attribute__((naked)) bool8 sub_8093954() { asm(".syntax unified\n\ - push {lr}\n\ - sub sp, 0x4\n\ - bl sub_80939C0\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - movs r1, 0\n\ - str r1, [sp]\n\ - movs r2, 0\n\ - movs r3, 0x10\n\ - bl BeginNormalPaletteFade\n\ - ldr r1, _0809397C @ =0x02000000\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - movs r0, 0\n\ - add sp, 0x4\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + push {lr}\n\ + sub sp, 0x4\n\ + bl sub_80939C0\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + movs r1, 0\n\ + str r1, [sp]\n\ + movs r2, 0\n\ + movs r3, 0x10\n\ + bl BeginNormalPaletteFade\n\ + ldr r1, _0809397C @ =0x02000000\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + movs r0, 0\n\ + add sp, 0x4\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _0809397C: .4byte 0x02000000\n\ .syntax divided\n"); } @@ -993,22 +993,22 @@ __attribute__((naked)) static u8 sub_8093A48() { asm(".syntax unified\n\ - push {lr}\n\ - ldr r0, _08093A5C @ =sub_8093A68\n\ - bl FindTaskIdByFunc\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xFF\n\ - beq _08093A60\n\ - movs r0, 0\n\ - b _08093A62\n\ - .align 2, 0\n\ + push {lr}\n\ + ldr r0, _08093A5C @ =sub_8093A68\n\ + bl FindTaskIdByFunc\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0xFF\n\ + beq _08093A60\n\ + movs r0, 0\n\ + b _08093A62\n\ + .align 2, 0\n\ _08093A5C: .4byte sub_8093A68\n\ _08093A60:\n\ - movs r0, 0x1\n\ + movs r0, 0x1\n\ _08093A62:\n\ - pop {r1}\n\ - bx r1\n\ + pop {r1}\n\ + bx r1\n\ .syntax divided\n"); } @@ -1016,30 +1016,30 @@ __attribute__((naked)) static void sub_8093A68(u8 taskId) { asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r5, _08093A98 @ =gUnknown_083B5ED8\n\ - ldr r2, _08093A9C @ =gTasks\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r4, r1, r2\n\ + push {r4,r5,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r5, _08093A98 @ =gUnknown_083B5ED8\n\ + ldr r2, _08093A9C @ =gTasks\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r4, r1, r2\n\ _08093A7A:\n\ - movs r1, 0x8\n\ - ldrsh r0, [r4, r1]\n\ - lsls r0, 2\n\ - adds r0, r5\n\ - ldr r1, [r0]\n\ - adds r0, r4, 0\n\ - bl _call_via_r1\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08093A7A\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + movs r1, 0x8\n\ + ldrsh r0, [r4, r1]\n\ + lsls r0, 2\n\ + adds r0, r5\n\ + ldr r1, [r0]\n\ + adds r0, r4, 0\n\ + bl _call_via_r1\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08093A7A\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08093A98: .4byte gUnknown_083B5ED8\n\ _08093A9C: .4byte gTasks\n\ .syntax divided\n"); @@ -1049,37 +1049,37 @@ __attribute__((naked)) bool8 sub_8093AA0() { asm(".syntax unified\n\ - push {r4,lr}\n\ - adds r4, r0, 0\n\ - ldr r0, _08093AE0 @ =0x02000000\n\ - movs r1, 0\n\ - strb r1, [r0, 0x4]\n\ - bl dp12_8087EA4\n\ - movs r1, 0\n\ - ldr r0, _08093AE4 @ =gUnknown_03004DE0\n\ - ldr r2, _08093AE8 @ =0x0000fffc\n\ - movs r3, 0xF0\n\ - lsls r3, 3\n\ - adds r0, r3\n\ + push {r4,lr}\n\ + adds r4, r0, 0\n\ + ldr r0, _08093AE0 @ =0x02000000\n\ + movs r1, 0\n\ + strb r1, [r0, 0x4]\n\ + bl dp12_8087EA4\n\ + movs r1, 0\n\ + ldr r0, _08093AE4 @ =gUnknown_03004DE0\n\ + ldr r2, _08093AE8 @ =0x0000fffc\n\ + movs r3, 0xF0\n\ + lsls r3, 3\n\ + adds r0, r3\n\ _08093ABA:\n\ - strh r2, [r0]\n\ - adds r0, 0x2\n\ - adds r1, 0x1\n\ - cmp r1, 0x9F\n\ - bls _08093ABA\n\ - ldr r0, _08093AEC @ =sub_8093D7C\n\ - bl SetHBlankCallback\n\ - ldr r1, _08093AE0 @ =0x02000000\n\ - movs r0, 0x1\n\ - strb r0, [r1, 0x4]\n\ - ldrh r0, [r4, 0x8]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x8]\n\ - movs r0, 0\n\ - pop {r4}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + strh r2, [r0]\n\ + adds r0, 0x2\n\ + adds r1, 0x1\n\ + cmp r1, 0x9F\n\ + bls _08093ABA\n\ + ldr r0, _08093AEC @ =sub_8093D7C\n\ + bl SetHBlankCallback\n\ + ldr r1, _08093AE0 @ =0x02000000\n\ + movs r0, 0x1\n\ + strb r0, [r1, 0x4]\n\ + ldrh r0, [r4, 0x8]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x8]\n\ + movs r0, 0\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _08093AE0: .4byte 0x02000000\n\ _08093AE4: .4byte gUnknown_03004DE0\n\ _08093AE8: .4byte 0x0000fffc\n\ @@ -1091,147 +1091,147 @@ __attribute__((naked)) bool8 sub_8093AF0() { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - mov r8, r0\n\ - ldr r1, _08093BFC @ =0x02000000\n\ - movs r0, 0\n\ - strb r0, [r1, 0x4]\n\ - mov r2, r8\n\ - ldrh r0, [r2, 0xA]\n\ - adds r0, 0x3\n\ - strh r0, [r2, 0xA]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x4F\n\ - ble _08093B18\n\ - movs r0, 0x4F\n\ - strh r0, [r2, 0xA]\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + mov r8, r0\n\ + ldr r1, _08093BFC @ =0x02000000\n\ + movs r0, 0\n\ + strb r0, [r1, 0x4]\n\ + mov r2, r8\n\ + ldrh r0, [r2, 0xA]\n\ + adds r0, 0x3\n\ + strh r0, [r2, 0xA]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x4F\n\ + ble _08093B18\n\ + movs r0, 0x4F\n\ + strh r0, [r2, 0xA]\n\ _08093B18:\n\ - mov r4, r8\n\ - movs r0, 0xA\n\ - ldrsh r7, [r4, r0]\n\ - movs r0, 0xA0\n\ - subs r0, r7\n\ - mov r9, r0\n\ - subs r4, r0, r7\n\ - negs r0, r7\n\ - lsls r6, r0, 16\n\ - movs r0, 0xA0\n\ - lsls r0, 16\n\ - adds r1, r4, 0\n\ - bl __udivsi3\n\ - adds r5, r0, 0\n\ - ldr r1, _08093C00 @ =0xffff0000\n\ - adds r5, r1\n\ - adds r0, r5, 0\n\ - muls r0, r4\n\ - adds r0, r6\n\ - mov r10, r0\n\ - adds r0, r5, 0\n\ - adds r1, r4, 0\n\ - bl __udivsi3\n\ - str r0, [sp]\n\ - lsls r5, 1\n\ - movs r3, 0\n\ - cmp r3, r7\n\ - bcs _08093B74\n\ - ldr r2, _08093C04 @ =gUnknown_03004DE0\n\ - mov r12, r2\n\ - ldr r0, _08093C08 @ =0x0000fffc\n\ - adds r4, r0, 0\n\ + mov r4, r8\n\ + movs r0, 0xA\n\ + ldrsh r7, [r4, r0]\n\ + movs r0, 0xA0\n\ + subs r0, r7\n\ + mov r9, r0\n\ + subs r4, r0, r7\n\ + negs r0, r7\n\ + lsls r6, r0, 16\n\ + movs r0, 0xA0\n\ + lsls r0, 16\n\ + adds r1, r4, 0\n\ + bl __udivsi3\n\ + adds r5, r0, 0\n\ + ldr r1, _08093C00 @ =0xffff0000\n\ + adds r5, r1\n\ + adds r0, r5, 0\n\ + muls r0, r4\n\ + adds r0, r6\n\ + mov r10, r0\n\ + adds r0, r5, 0\n\ + adds r1, r4, 0\n\ + bl __udivsi3\n\ + str r0, [sp]\n\ + lsls r5, 1\n\ + movs r3, 0\n\ + cmp r3, r7\n\ + bcs _08093B74\n\ + ldr r2, _08093C04 @ =gUnknown_03004DE0\n\ + mov r12, r2\n\ + ldr r0, _08093C08 @ =0x0000fffc\n\ + adds r4, r0, 0\n\ _08093B5C:\n\ - lsls r0, r3, 16\n\ - asrs r0, 16\n\ - lsls r1, r0, 1\n\ - add r1, r12\n\ - subs r2, r4, r0\n\ - strh r2, [r1]\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - asrs r0, 16\n\ - cmp r0, r7\n\ - bcc _08093B5C\n\ + lsls r0, r3, 16\n\ + asrs r0, 16\n\ + lsls r1, r0, 1\n\ + add r1, r12\n\ + subs r2, r4, r0\n\ + strh r2, [r1]\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + asrs r0, 16\n\ + cmp r0, r7\n\ + bcc _08093B5C\n\ _08093B74:\n\ - lsls r2, r3, 16\n\ - mov r1, r9\n\ - lsls r0, r1, 16\n\ - asrs r1, r0, 16\n\ - mov r4, r10\n\ - lsrs r7, r4, 16\n\ - cmp r2, r0\n\ - bge _08093BAE\n\ - ldr r0, _08093C04 @ =gUnknown_03004DE0\n\ - mov r9, r0\n\ - ldr r4, _08093C08 @ =0x0000fffc\n\ - mov r12, r4\n\ - adds r4, r1, 0\n\ + lsls r2, r3, 16\n\ + mov r1, r9\n\ + lsls r0, r1, 16\n\ + asrs r1, r0, 16\n\ + mov r4, r10\n\ + lsrs r7, r4, 16\n\ + cmp r2, r0\n\ + bge _08093BAE\n\ + ldr r0, _08093C04 @ =gUnknown_03004DE0\n\ + mov r9, r0\n\ + ldr r4, _08093C08 @ =0x0000fffc\n\ + mov r12, r4\n\ + adds r4, r1, 0\n\ _08093B8E:\n\ - lsrs r1, r6, 16\n\ - adds r6, r5\n\ - ldr r0, [sp]\n\ - subs r5, r0\n\ - asrs r2, 16\n\ - lsls r0, r2, 1\n\ - add r0, r9\n\ - add r1, r12\n\ - strh r1, [r0]\n\ - adds r2, 0x1\n\ - lsls r2, 16\n\ - lsrs r3, r2, 16\n\ - lsls r2, r3, 16\n\ - asrs r0, r2, 16\n\ - cmp r0, r4\n\ - blt _08093B8E\n\ + lsrs r1, r6, 16\n\ + adds r6, r5\n\ + ldr r0, [sp]\n\ + subs r5, r0\n\ + asrs r2, 16\n\ + lsls r0, r2, 1\n\ + add r0, r9\n\ + add r1, r12\n\ + strh r1, [r0]\n\ + adds r2, 0x1\n\ + lsls r2, 16\n\ + lsrs r3, r2, 16\n\ + lsls r2, r3, 16\n\ + asrs r0, r2, 16\n\ + cmp r0, r4\n\ + blt _08093B8E\n\ _08093BAE:\n\ - adds r1, r7, 0\n\ - lsls r0, r3, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x9F\n\ - bgt _08093BD4\n\ - ldr r4, _08093C04 @ =gUnknown_03004DE0\n\ - ldr r0, _08093C08 @ =0x0000fffc\n\ - adds r2, r1, r0\n\ + adds r1, r7, 0\n\ + lsls r0, r3, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x9F\n\ + bgt _08093BD4\n\ + ldr r4, _08093C04 @ =gUnknown_03004DE0\n\ + ldr r0, _08093C08 @ =0x0000fffc\n\ + adds r2, r1, r0\n\ _08093BBE:\n\ - lsls r1, r3, 16\n\ - asrs r1, 16\n\ - lsls r0, r1, 1\n\ - adds r0, r4\n\ - strh r2, [r0]\n\ - adds r1, 0x1\n\ - lsls r1, 16\n\ - lsrs r3, r1, 16\n\ - asrs r1, 16\n\ - cmp r1, 0x9F\n\ - ble _08093BBE\n\ + lsls r1, r3, 16\n\ + asrs r1, 16\n\ + lsls r0, r1, 1\n\ + adds r0, r4\n\ + strh r2, [r0]\n\ + adds r1, 0x1\n\ + lsls r1, 16\n\ + lsrs r3, r1, 16\n\ + asrs r1, 16\n\ + cmp r1, 0x9F\n\ + ble _08093BBE\n\ _08093BD4:\n\ - movs r0, 0x1\n\ - ldr r1, _08093BFC @ =0x02000000\n\ - strb r0, [r1, 0x4]\n\ - mov r2, r8\n\ - movs r4, 0xA\n\ - ldrsh r0, [r2, r4]\n\ - cmp r0, 0x4A\n\ - ble _08093BEA\n\ - ldrh r0, [r2, 0x8]\n\ - adds r0, 0x1\n\ - strh r0, [r2, 0x8]\n\ + movs r0, 0x1\n\ + ldr r1, _08093BFC @ =0x02000000\n\ + strb r0, [r1, 0x4]\n\ + mov r2, r8\n\ + movs r4, 0xA\n\ + ldrsh r0, [r2, r4]\n\ + cmp r0, 0x4A\n\ + ble _08093BEA\n\ + ldrh r0, [r2, 0x8]\n\ + adds r0, 0x1\n\ + strh r0, [r2, 0x8]\n\ _08093BEA:\n\ - movs r0, 0\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + movs r0, 0\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _08093BFC: .4byte 0x02000000\n\ _08093C00: .4byte 0xffff0000\n\ _08093C04: .4byte gUnknown_03004DE0\n\ @@ -1258,145 +1258,145 @@ __attribute__((naked)) bool8 sub_8093C38() { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - mov r8, r0\n\ - ldr r1, _08093D40 @ =0x02000000\n\ - movs r2, 0\n\ - strb r2, [r1, 0x4]\n\ - ldrh r0, [r0, 0xA]\n\ - subs r0, 0x3\n\ - mov r3, r8\n\ - strh r0, [r3, 0xA]\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - bgt _08093C5C\n\ - strh r2, [r3, 0xA]\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + mov r8, r0\n\ + ldr r1, _08093D40 @ =0x02000000\n\ + movs r2, 0\n\ + strb r2, [r1, 0x4]\n\ + ldrh r0, [r0, 0xA]\n\ + subs r0, 0x3\n\ + mov r3, r8\n\ + strh r0, [r3, 0xA]\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + bgt _08093C5C\n\ + strh r2, [r3, 0xA]\n\ _08093C5C:\n\ - mov r4, r8\n\ - movs r0, 0xA\n\ - ldrsh r7, [r4, r0]\n\ - movs r0, 0xA0\n\ - subs r0, r7\n\ - mov r9, r0\n\ - subs r4, r0, r7\n\ - negs r0, r7\n\ - lsls r6, r0, 16\n\ - movs r0, 0xA0\n\ - lsls r0, 16\n\ - adds r1, r4, 0\n\ - bl __udivsi3\n\ - adds r5, r0, 0\n\ - ldr r1, _08093D44 @ =0xffff0000\n\ - adds r5, r1\n\ - adds r0, r5, 0\n\ - muls r0, r4\n\ - adds r0, r6\n\ - mov r10, r0\n\ - adds r0, r5, 0\n\ - adds r1, r4, 0\n\ - bl __udivsi3\n\ - str r0, [sp]\n\ - lsrs r5, 1\n\ - movs r3, 0\n\ - cmp r3, r7\n\ - bcs _08093CB8\n\ - ldr r2, _08093D48 @ =gUnknown_03004DE0\n\ - mov r12, r2\n\ - ldr r0, _08093D4C @ =0x0000fffc\n\ - adds r4, r0, 0\n\ + mov r4, r8\n\ + movs r0, 0xA\n\ + ldrsh r7, [r4, r0]\n\ + movs r0, 0xA0\n\ + subs r0, r7\n\ + mov r9, r0\n\ + subs r4, r0, r7\n\ + negs r0, r7\n\ + lsls r6, r0, 16\n\ + movs r0, 0xA0\n\ + lsls r0, 16\n\ + adds r1, r4, 0\n\ + bl __udivsi3\n\ + adds r5, r0, 0\n\ + ldr r1, _08093D44 @ =0xffff0000\n\ + adds r5, r1\n\ + adds r0, r5, 0\n\ + muls r0, r4\n\ + adds r0, r6\n\ + mov r10, r0\n\ + adds r0, r5, 0\n\ + adds r1, r4, 0\n\ + bl __udivsi3\n\ + str r0, [sp]\n\ + lsrs r5, 1\n\ + movs r3, 0\n\ + cmp r3, r7\n\ + bcs _08093CB8\n\ + ldr r2, _08093D48 @ =gUnknown_03004DE0\n\ + mov r12, r2\n\ + ldr r0, _08093D4C @ =0x0000fffc\n\ + adds r4, r0, 0\n\ _08093CA0:\n\ - lsls r0, r3, 16\n\ - asrs r0, 16\n\ - lsls r1, r0, 1\n\ - add r1, r12\n\ - subs r2, r4, r0\n\ - strh r2, [r1]\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - asrs r0, 16\n\ - cmp r0, r7\n\ - bcc _08093CA0\n\ + lsls r0, r3, 16\n\ + asrs r0, 16\n\ + lsls r1, r0, 1\n\ + add r1, r12\n\ + subs r2, r4, r0\n\ + strh r2, [r1]\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + asrs r0, 16\n\ + cmp r0, r7\n\ + bcc _08093CA0\n\ _08093CB8:\n\ - lsls r2, r3, 16\n\ - mov r1, r9\n\ - lsls r0, r1, 16\n\ - asrs r1, r0, 16\n\ - mov r4, r10\n\ - lsrs r7, r4, 16\n\ - cmp r2, r0\n\ - bge _08093CF2\n\ - ldr r0, _08093D48 @ =gUnknown_03004DE0\n\ - mov r9, r0\n\ - ldr r3, _08093D4C @ =0x0000fffc\n\ - mov r12, r3\n\ - adds r4, r1, 0\n\ + lsls r2, r3, 16\n\ + mov r1, r9\n\ + lsls r0, r1, 16\n\ + asrs r1, r0, 16\n\ + mov r4, r10\n\ + lsrs r7, r4, 16\n\ + cmp r2, r0\n\ + bge _08093CF2\n\ + ldr r0, _08093D48 @ =gUnknown_03004DE0\n\ + mov r9, r0\n\ + ldr r3, _08093D4C @ =0x0000fffc\n\ + mov r12, r3\n\ + adds r4, r1, 0\n\ _08093CD2:\n\ - lsrs r1, r6, 16\n\ - adds r6, r5\n\ - ldr r0, [sp]\n\ - adds r5, r0\n\ - asrs r2, 16\n\ - lsls r0, r2, 1\n\ - add r0, r9\n\ - add r1, r12\n\ - strh r1, [r0]\n\ - adds r2, 0x1\n\ - lsls r2, 16\n\ - lsrs r3, r2, 16\n\ - lsls r2, r3, 16\n\ - asrs r0, r2, 16\n\ - cmp r0, r4\n\ - blt _08093CD2\n\ + lsrs r1, r6, 16\n\ + adds r6, r5\n\ + ldr r0, [sp]\n\ + adds r5, r0\n\ + asrs r2, 16\n\ + lsls r0, r2, 1\n\ + add r0, r9\n\ + add r1, r12\n\ + strh r1, [r0]\n\ + adds r2, 0x1\n\ + lsls r2, 16\n\ + lsrs r3, r2, 16\n\ + lsls r2, r3, 16\n\ + asrs r0, r2, 16\n\ + cmp r0, r4\n\ + blt _08093CD2\n\ _08093CF2:\n\ - adds r1, r7, 0\n\ - lsls r0, r3, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x9F\n\ - bgt _08093D18\n\ - ldr r4, _08093D48 @ =gUnknown_03004DE0\n\ - ldr r0, _08093D4C @ =0x0000fffc\n\ - adds r2, r1, r0\n\ + adds r1, r7, 0\n\ + lsls r0, r3, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x9F\n\ + bgt _08093D18\n\ + ldr r4, _08093D48 @ =gUnknown_03004DE0\n\ + ldr r0, _08093D4C @ =0x0000fffc\n\ + adds r2, r1, r0\n\ _08093D02:\n\ - lsls r1, r3, 16\n\ - asrs r1, 16\n\ - lsls r0, r1, 1\n\ - adds r0, r4\n\ - strh r2, [r0]\n\ - adds r1, 0x1\n\ - lsls r1, 16\n\ - lsrs r3, r1, 16\n\ - asrs r1, 16\n\ - cmp r1, 0x9F\n\ - ble _08093D02\n\ + lsls r1, r3, 16\n\ + asrs r1, 16\n\ + lsls r0, r1, 1\n\ + adds r0, r4\n\ + strh r2, [r0]\n\ + adds r1, 0x1\n\ + lsls r1, 16\n\ + lsrs r3, r1, 16\n\ + asrs r1, 16\n\ + cmp r1, 0x9F\n\ + ble _08093D02\n\ _08093D18:\n\ - movs r0, 0x1\n\ - ldr r1, _08093D40 @ =0x02000000\n\ - strb r0, [r1, 0x4]\n\ - mov r2, r8\n\ - movs r3, 0xA\n\ - ldrsh r0, [r2, r3]\n\ - cmp r0, 0\n\ - bgt _08093D2E\n\ - ldrh r0, [r2, 0x8]\n\ - adds r0, 0x1\n\ - strh r0, [r2, 0x8]\n\ + movs r0, 0x1\n\ + ldr r1, _08093D40 @ =0x02000000\n\ + strb r0, [r1, 0x4]\n\ + mov r2, r8\n\ + movs r3, 0xA\n\ + ldrsh r0, [r2, r3]\n\ + cmp r0, 0\n\ + bgt _08093D2E\n\ + ldrh r0, [r2, 0x8]\n\ + adds r0, 0x1\n\ + strh r0, [r2, 0x8]\n\ _08093D2E:\n\ - movs r0, 0\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ + movs r0, 0\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .align 2, 0\n\ _08093D40: .4byte 0x02000000\n\ _08093D44: .4byte 0xffff0000\n\ _08093D48: .4byte gUnknown_03004DE0\n\ @@ -1422,25 +1422,25 @@ __attribute__((naked)) void sub_8093D7C(void) { asm(".syntax unified\n\ - ldr r1, _08093DA0 @ =gUnknown_03004DE0\n\ - ldr r0, _08093DA4 @ =REG_VCOUNT\n\ - ldrh r2, [r0]\n\ - movs r0, 0xFF\n\ - ands r0, r2\n\ - lsls r0, 1\n\ - movs r2, 0xF0\n\ - lsls r2, 3\n\ - adds r1, r2\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldr r0, _08093DA8 @ =REG_BG0VOFS\n\ - strh r1, [r0]\n\ - adds r0, 0x4\n\ - strh r1, [r0]\n\ - adds r0, 0x4\n\ - strh r1, [r0]\n\ - bx lr\n\ - .align 2, 0\n\ + ldr r1, _08093DA0 @ =gUnknown_03004DE0\n\ + ldr r0, _08093DA4 @ =REG_VCOUNT\n\ + ldrh r2, [r0]\n\ + movs r0, 0xFF\n\ + ands r0, r2\n\ + lsls r0, 1\n\ + movs r2, 0xF0\n\ + lsls r2, 3\n\ + adds r1, r2\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + ldr r0, _08093DA8 @ =REG_BG0VOFS\n\ + strh r1, [r0]\n\ + adds r0, 0x4\n\ + strh r1, [r0]\n\ + adds r0, 0x4\n\ + strh r1, [r0]\n\ + bx lr\n\ + .align 2, 0\n\ _08093DA0: .4byte gUnknown_03004DE0\n\ _08093DA4: .4byte 0x4000006 @ REG_VCOUNT\n\ _08093DA8: .4byte 0x4000012 @ REG_BG0VOFS\n\ @@ -1482,21 +1482,21 @@ __attribute__((naked)) static void sub_8093E04() { asm(".syntax unified\n\ - ldr r0, _08093E20 @ =REG_BG0VOFS\n\ - ldr r2, _08093E24 @ =0x0000fffc\n\ - adds r1, r2, 0\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - movs r2, 0\n\ - strh r2, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - adds r0, 0x2\n\ - strh r2, [r0]\n\ - adds r0, 0x2\n\ - strh r1, [r0]\n\ - bx lr\n\ - .align 2, 0\n\ + ldr r0, _08093E20 @ =REG_BG0VOFS\n\ + ldr r2, _08093E24 @ =0x0000fffc\n\ + adds r1, r2, 0\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + movs r2, 0\n\ + strh r2, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + adds r0, 0x2\n\ + strh r2, [r0]\n\ + adds r0, 0x2\n\ + strh r1, [r0]\n\ + bx lr\n\ + .align 2, 0\n\ _08093E20: .4byte 0x4000012 @ REG_BG0VOFS\n\ _08093E24: .4byte 0x0000fffc\n\ .syntax divided\n"); @@ -1506,51 +1506,51 @@ __attribute__((naked)) static void sub_8093E28(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - bl sub_8093EA0\n\ - ldr r0, _08093E84 @ =gUnknown_083B5F6C\n\ - movs r1, 0xE0\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ - ldr r3, _08093E88 @ =gMenuTrainerCard_Gfx\n\ - movs r4, 0xC0\n\ - lsls r4, 19\n\ - movs r5, 0xA4\n\ - lsls r5, 5\n\ - ldr r1, _08093E8C @ =0x040000d4\n\ - ldr r6, _08093E90 @ =0x80000800\n\ - movs r2, 0x80\n\ - lsls r2, 5\n\ - movs r7, 0x80\n\ - lsls r7, 24\n\ + push {r4-r7,lr}\n\ + bl sub_8093EA0\n\ + ldr r0, _08093E84 @ =gUnknown_083B5F6C\n\ + movs r1, 0xE0\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ + ldr r3, _08093E88 @ =gMenuTrainerCard_Gfx\n\ + movs r4, 0xC0\n\ + lsls r4, 19\n\ + movs r5, 0xA4\n\ + lsls r5, 5\n\ + ldr r1, _08093E8C @ =0x040000d4\n\ + ldr r6, _08093E90 @ =0x80000800\n\ + movs r2, 0x80\n\ + lsls r2, 5\n\ + movs r7, 0x80\n\ + lsls r7, 24\n\ _08093E4E:\n\ - str r3, [r1]\n\ - str r4, [r1, 0x4]\n\ - str r6, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - adds r3, r2\n\ - adds r4, r2\n\ - subs r5, r2\n\ - cmp r5, r2\n\ - bhi _08093E4E\n\ - str r3, [r1]\n\ - str r4, [r1, 0x4]\n\ - lsrs r0, r5, 1\n\ - orrs r0, r7\n\ - str r0, [r1, 0x8]\n\ - ldr r0, [r1, 0x8]\n\ - ldr r1, _08093E94 @ =gBadgesTiles\n\ - ldr r2, _08093E98 @ =0x06001480\n\ - ldr r0, _08093E8C @ =0x040000d4\n\ - str r1, [r0]\n\ - str r2, [r0, 0x4]\n\ - ldr r1, _08093E9C @ =0x80000200\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + str r3, [r1]\n\ + str r4, [r1, 0x4]\n\ + str r6, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + adds r3, r2\n\ + adds r4, r2\n\ + subs r5, r2\n\ + cmp r5, r2\n\ + bhi _08093E4E\n\ + str r3, [r1]\n\ + str r4, [r1, 0x4]\n\ + lsrs r0, r5, 1\n\ + orrs r0, r7\n\ + str r0, [r1, 0x8]\n\ + ldr r0, [r1, 0x8]\n\ + ldr r1, _08093E94 @ =gBadgesTiles\n\ + ldr r2, _08093E98 @ =0x06001480\n\ + ldr r0, _08093E8C @ =0x040000d4\n\ + str r1, [r0]\n\ + str r2, [r0, 0x4]\n\ + ldr r1, _08093E9C @ =0x80000200\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08093E84: .4byte gUnknown_083B5F6C\n\ _08093E88: .4byte gMenuTrainerCard_Gfx\n\ _08093E8C: .4byte 0x040000d4\n\ @@ -1582,26 +1582,26 @@ __attribute__((naked)) static void sub_8093F14(void) { asm(".syntax unified\n\ - push {lr}\n\ - sub sp, 0x8\n\ - ldr r0, _08093F3C @ =gUnknown_083B5EEC\n\ - ldr r1, [r0, 0x4]\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - str r1, [sp, 0x4]\n\ - ldr r0, _08093F40 @ =0x02000000\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 2\n\ - add r0, sp\n\ - ldr r0, [r0]\n\ - ldr r1, _08093F44 @ =0x06004800\n\ - movs r2, 0xA0\n\ - lsls r2, 1\n\ - bl CpuFastSet\n\ - add sp, 0x8\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + push {lr}\n\ + sub sp, 0x8\n\ + ldr r0, _08093F3C @ =gUnknown_083B5EEC\n\ + ldr r1, [r0, 0x4]\n\ + ldr r0, [r0]\n\ + str r0, [sp]\n\ + str r1, [sp, 0x4]\n\ + ldr r0, _08093F40 @ =0x02000000\n\ + ldrb r0, [r0, 0x1]\n\ + lsls r0, 2\n\ + add r0, sp\n\ + ldr r0, [r0]\n\ + ldr r1, _08093F44 @ =0x06004800\n\ + movs r2, 0xA0\n\ + lsls r2, 1\n\ + bl CpuFastSet\n\ + add sp, 0x8\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08093F3C: .4byte gUnknown_083B5EEC\n\ _08093F40: .4byte 0x02000000\n\ _08093F44: .4byte 0x06004800\n\ @@ -1622,46 +1622,46 @@ __attribute__((naked)) static void sub_8093F80(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - movs r5, 0xC4\n\ - ldr r7, _08093FCC @ =0x06004000\n\ - movs r1, 0x5\n\ - movs r0, 0xA0\n\ - lsls r0, 7\n\ - adds r6, r0, 0\n\ + push {r4-r7,lr}\n\ + movs r5, 0xC4\n\ + ldr r7, _08093FCC @ =0x06004000\n\ + movs r1, 0x5\n\ + movs r0, 0xA0\n\ + lsls r0, 7\n\ + adds r6, r0, 0\n\ _08093F8E:\n\ - movs r0, 0x13\n\ - lsls r3, r1, 16\n\ - asrs r4, r3, 11\n\ + movs r0, 0x13\n\ + lsls r3, r1, 16\n\ + asrs r4, r3, 11\n\ _08093F94:\n\ - lsls r2, r0, 16\n\ - asrs r2, 16\n\ - adds r1, r4, r2\n\ - lsls r1, 1\n\ - adds r1, r7\n\ - adds r0, r5, 0\n\ - orrs r0, r6\n\ - strh r0, [r1]\n\ - adds r2, 0x1\n\ - lsls r2, 16\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - lsrs r0, r2, 16\n\ - asrs r2, 16\n\ - cmp r2, 0x1A\n\ - ble _08093F94\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - adds r0, r3, r1\n\ - lsrs r1, r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0xC\n\ - ble _08093F8E\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + lsls r2, r0, 16\n\ + asrs r2, 16\n\ + adds r1, r4, r2\n\ + lsls r1, 1\n\ + adds r1, r7\n\ + adds r0, r5, 0\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ + adds r2, 0x1\n\ + lsls r2, 16\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + lsrs r0, r2, 16\n\ + asrs r2, 16\n\ + cmp r2, 0x1A\n\ + ble _08093F94\n\ + movs r1, 0x80\n\ + lsls r1, 9\n\ + adds r0, r3, r1\n\ + lsrs r1, r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0xC\n\ + ble _08093F8E\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08093FCC: .4byte 0x06004000\n\ .syntax divided\n"); } @@ -1670,56 +1670,56 @@ __attribute__((naked)) static void sub_8093FD0(void) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r4, _0809402C @ =0x06004000\n\ - movs r2, 0xF\n\ - ldr r0, _08094030 @ =0x02000000\n\ - ldrb r0, [r0, 0x2]\n\ - adds r0, 0xF\n\ - cmp r2, r0\n\ - bge _08094002\n\ - movs r6, 0xC0\n\ - lsls r6, 1\n\ - ldr r1, _08094034 @ =0x0000408f\n\ - adds r5, r1, 0\n\ - adds r3, r0, 0\n\ + push {r4-r6,lr}\n\ + ldr r4, _0809402C @ =0x06004000\n\ + movs r2, 0xF\n\ + ldr r0, _08094030 @ =0x02000000\n\ + ldrb r0, [r0, 0x2]\n\ + adds r0, 0xF\n\ + cmp r2, r0\n\ + bge _08094002\n\ + movs r6, 0xC0\n\ + lsls r6, 1\n\ + ldr r1, _08094034 @ =0x0000408f\n\ + adds r5, r1, 0\n\ + adds r3, r0, 0\n\ _08093FEA:\n\ - lsls r1, r2, 16\n\ - asrs r1, 16\n\ - lsls r0, r1, 1\n\ - adds r0, r4\n\ - adds r0, r6\n\ - strh r5, [r0]\n\ - adds r1, 0x1\n\ - lsls r1, 16\n\ - lsrs r2, r1, 16\n\ - asrs r1, 16\n\ - cmp r1, r3\n\ - blt _08093FEA\n\ + lsls r1, r2, 16\n\ + asrs r1, 16\n\ + lsls r0, r1, 1\n\ + adds r0, r4\n\ + adds r0, r6\n\ + strh r5, [r0]\n\ + adds r1, 0x1\n\ + lsls r1, 16\n\ + lsrs r2, r1, 16\n\ + asrs r1, 16\n\ + cmp r1, r3\n\ + blt _08093FEA\n\ _08094002:\n\ - lsls r1, r2, 16\n\ - asrs r0, r1, 16\n\ - cmp r0, 0x12\n\ - bgt _08094024\n\ - movs r3, 0xC0\n\ - lsls r3, 1\n\ - movs r2, 0\n\ + lsls r1, r2, 16\n\ + asrs r0, r1, 16\n\ + cmp r0, 0x12\n\ + bgt _08094024\n\ + movs r3, 0xC0\n\ + lsls r3, 1\n\ + movs r2, 0\n\ _08094010:\n\ - asrs r0, r1, 16\n\ - lsls r1, r0, 1\n\ - adds r1, r4\n\ - adds r1, r3\n\ - strh r2, [r1]\n\ - adds r0, 0x1\n\ - lsls r1, r0, 16\n\ - asrs r0, r1, 16\n\ - cmp r0, 0x12\n\ - ble _08094010\n\ + asrs r0, r1, 16\n\ + lsls r1, r0, 1\n\ + adds r1, r4\n\ + adds r1, r3\n\ + strh r2, [r1]\n\ + adds r0, 0x1\n\ + lsls r1, r0, 16\n\ + asrs r0, r1, 16\n\ + cmp r0, 0x12\n\ + ble _08094010\n\ _08094024:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _0809402C: .4byte 0x06004000\n\ _08094030: .4byte 0x02000000\n\ _08094034: .4byte 0x0000408f\n\ @@ -1730,85 +1730,85 @@ __attribute__((naked)) static void sub_8094038(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - ldr r1, _080940D0 @ =0x02000000\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0\n\ - bne _080940C2\n\ - ldr r0, _080940D4 @ =0x06004000\n\ - mov r9, r0\n\ - movs r0, 0\n\ - movs r2, 0x4\n\ - adds r1, 0xE\n\ - mov r8, r1\n\ - ldr r7, _080940D8 @ =gUnknown_083B5F8C\n\ - movs r1, 0xC0\n\ - lsls r1, 6\n\ - adds r6, r1, 0\n\ - adds r1, r7, 0x6\n\ - mov r12, r1\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + ldr r1, _080940D0 @ =0x02000000\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0\n\ + bne _080940C2\n\ + ldr r0, _080940D4 @ =0x06004000\n\ + mov r9, r0\n\ + movs r0, 0\n\ + movs r2, 0x4\n\ + adds r1, 0xE\n\ + mov r8, r1\n\ + ldr r7, _080940D8 @ =gUnknown_083B5F8C\n\ + movs r1, 0xC0\n\ + lsls r1, 6\n\ + adds r6, r1, 0\n\ + adds r1, r7, 0x6\n\ + mov r12, r1\n\ _08094060:\n\ - lsls r0, 16\n\ - asrs r4, r0, 16\n\ - mov r1, r8\n\ - adds r0, r4, r1\n\ - ldrb r0, [r0]\n\ - lsls r5, r2, 16\n\ - cmp r0, 0\n\ - beq _080940AE\n\ - asrs r1, r5, 15\n\ - add r1, r9\n\ - movs r2, 0xF0\n\ - lsls r2, 2\n\ - adds r3, r1, r2\n\ - lsls r2, r4, 3\n\ - adds r0, r2, r7\n\ - ldrh r0, [r0]\n\ - orrs r0, r6\n\ - strh r0, [r3]\n\ - ldr r0, _080940DC @ =0x000003c2\n\ - adds r3, r1, r0\n\ - adds r0, r7, 0x2\n\ - adds r0, r2, r0\n\ - ldrh r0, [r0]\n\ - orrs r0, r6\n\ - strh r0, [r3]\n\ - movs r0, 0x80\n\ - lsls r0, 3\n\ - adds r3, r1, r0\n\ - adds r0, r7, 0x4\n\ - adds r0, r2, r0\n\ - ldrh r0, [r0]\n\ - orrs r0, r6\n\ - strh r0, [r3]\n\ - ldr r0, _080940E0 @ =0x00000402\n\ - adds r1, r0\n\ - add r2, r12\n\ - ldrh r0, [r2]\n\ - orrs r0, r6\n\ - strh r0, [r1]\n\ + lsls r0, 16\n\ + asrs r4, r0, 16\n\ + mov r1, r8\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + lsls r5, r2, 16\n\ + cmp r0, 0\n\ + beq _080940AE\n\ + asrs r1, r5, 15\n\ + add r1, r9\n\ + movs r2, 0xF0\n\ + lsls r2, 2\n\ + adds r3, r1, r2\n\ + lsls r2, r4, 3\n\ + adds r0, r2, r7\n\ + ldrh r0, [r0]\n\ + orrs r0, r6\n\ + strh r0, [r3]\n\ + ldr r0, _080940DC @ =0x000003c2\n\ + adds r3, r1, r0\n\ + adds r0, r7, 0x2\n\ + adds r0, r2, r0\n\ + ldrh r0, [r0]\n\ + orrs r0, r6\n\ + strh r0, [r3]\n\ + movs r0, 0x80\n\ + lsls r0, 3\n\ + adds r3, r1, r0\n\ + adds r0, r7, 0x4\n\ + adds r0, r2, r0\n\ + ldrh r0, [r0]\n\ + orrs r0, r6\n\ + strh r0, [r3]\n\ + ldr r0, _080940E0 @ =0x00000402\n\ + adds r1, r0\n\ + add r2, r12\n\ + ldrh r0, [r2]\n\ + orrs r0, r6\n\ + strh r0, [r1]\n\ _080940AE:\n\ - adds r1, r4, 0x1\n\ - lsls r1, 16\n\ - movs r2, 0xC0\n\ - lsls r2, 10\n\ - adds r0, r5, r2\n\ - lsrs r2, r0, 16\n\ - lsrs r0, r1, 16\n\ - asrs r1, 16\n\ - cmp r1, 0x7\n\ - ble _08094060\n\ + adds r1, r4, 0x1\n\ + lsls r1, 16\n\ + movs r2, 0xC0\n\ + lsls r2, 10\n\ + adds r0, r5, r2\n\ + lsrs r2, r0, 16\n\ + lsrs r0, r1, 16\n\ + asrs r1, 16\n\ + cmp r1, 0x7\n\ + ble _08094060\n\ _080940C2:\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _080940D0: .4byte 0x02000000\n\ _080940D4: .4byte 0x06004000\n\ _080940D8: .4byte gUnknown_083B5F8C\n\ @@ -1821,26 +1821,26 @@ __attribute__((naked)) static void sub_80940E4() { asm(".syntax unified\n\ - push {r4,lr}\n\ - movs r2, 0\n\ - ldr r1, _08094108 @ =0x06004000\n\ - movs r4, 0\n\ - ldr r3, _0809410C @ =0x000003ff\n\ + push {r4,lr}\n\ + movs r2, 0\n\ + ldr r1, _08094108 @ =0x06004000\n\ + movs r4, 0\n\ + ldr r3, _0809410C @ =0x000003ff\n\ _080940EE:\n\ - strh r4, [r1]\n\ - lsls r0, r2, 16\n\ - movs r2, 0x80\n\ - lsls r2, 9\n\ - adds r0, r2\n\ - adds r1, 0x2\n\ - lsrs r2, r0, 16\n\ - asrs r0, 16\n\ - cmp r0, r3\n\ - ble _080940EE\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + strh r4, [r1]\n\ + lsls r0, r2, 16\n\ + movs r2, 0x80\n\ + lsls r2, 9\n\ + adds r0, r2\n\ + adds r1, 0x2\n\ + lsrs r2, r0, 16\n\ + asrs r0, 16\n\ + cmp r0, r3\n\ + ble _080940EE\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _08094108: .4byte 0x06004000\n\ _0809410C: .4byte 0x000003ff\n\ .syntax divided\n"); @@ -1850,30 +1850,30 @@ __attribute__((naked)) static void sub_8094110() { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r6, _0809413C @ =0x06004800\n\ - movs r2, 0x3\n\ - movs r5, 0xA0\n\ - lsls r5, 2\n\ - movs r3, 0x1\n\ - movs r4, 0xB0\n\ - lsls r4, 2\n\ + push {r4-r6,lr}\n\ + ldr r6, _0809413C @ =0x06004800\n\ + movs r2, 0x3\n\ + movs r5, 0xA0\n\ + lsls r5, 2\n\ + movs r3, 0x1\n\ + movs r4, 0xB0\n\ + lsls r4, 2\n\ _08094120:\n\ - lsls r0, r2, 1\n\ - adds r0, r6\n\ - adds r1, r0, r5\n\ - strh r3, [r1]\n\ - adds r0, r4\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x10\n\ - bls _08094120\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ + lsls r0, r2, 1\n\ + adds r0, r6\n\ + adds r1, r0, r5\n\ + strh r3, [r1]\n\ + adds r0, r4\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x10\n\ + bls _08094120\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ _0809413C: .4byte 0x06004800\n\ .syntax divided\n"); } diff --git a/src/wallclock.c b/src/wallclock.c index dc9d871e7..2f4d694a6 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -12,21 +12,142 @@ #include "trig.h" extern u16 gSpecialVar_0x8004; -extern u16 gMiscClockMale_Pal[]; -extern u16 gMiscClockFemale_Pal[]; extern u8 gMiscClock_Gfx[]; -extern struct SpriteSheet gUnknown_083F7A90; -extern struct SpritePalette gUnknown_083F7AA0; extern u8 gUnknown_08E95774[]; extern u8 gUnknown_08E954B0[]; extern u8 gOtherText_CorrectTimePrompt[]; extern const struct MenuAction gMenuYesNoItems[]; -extern s8 gClockHandCoords[][2]; +extern u16 gMiscClockMale_Pal[]; +extern u16 gMiscClockFemale_Pal[]; + +//-------------------------------------------------- +// Graphics Data +//-------------------------------------------------- -extern struct SpriteTemplate gSpriteTemplate_83F7AD8; -extern struct SpriteTemplate gSpriteTemplate_83F7AF0; -extern struct SpriteTemplate gSpriteTemplate_83F7B28; -extern struct SpriteTemplate gSpriteTemplate_83F7B40; +static const u8 ClockGfx_Misc[] = INCBIN_U8("graphics/misc/clock_misc.4bpp.lz"); +static const struct SpriteSheet gUnknown_083F7A90[] = +{ + {ClockGfx_Misc, 0x2000, 0x1000}, + {NULL}, +}; +static const struct SpritePalette gUnknown_083F7AA0[] = +{ + {gMiscClockMale_Pal, 0x1000}, + {gMiscClockFemale_Pal, 0x1001}, + {NULL}, +}; +static const struct OamData gOamData_83F7AB8 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_83F7AC0[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83F7AC8[] = +{ + ANIMCMD_FRAME(64, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7AD0[] = +{ + gSpriteAnim_83F7AC0, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7AD4[] = +{ + gSpriteAnim_83F7AC8, +}; +static void sub_810B05C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7AD8 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7AB8, + .anims = gSpriteAnimTable_83F7AD0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B05C, +}; +static void sub_810B0F4(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7AF0 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7AB8, + .anims = gSpriteAnimTable_83F7AD4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B0F4, +}; +static const struct OamData gOamData_83F7B08 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_83F7B10[] = +{ + ANIMCMD_FRAME(132, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83F7B18[] = +{ + ANIMCMD_FRAME(128, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7B20[] = +{ + gSpriteAnim_83F7B10, +}; +static const union AnimCmd *const gSpriteAnimTable_83F7B24[] = +{ + gSpriteAnim_83F7B18, +}; +static void sub_810B18C(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7B28 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7B08, + .anims = gSpriteAnimTable_83F7B20, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B18C, +}; +static void sub_810B230(struct Sprite *sprite); +static const struct SpriteTemplate gSpriteTemplate_83F7B40 = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_83F7B08, + .anims = gSpriteAnimTable_83F7B24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810B230, +}; static void WallClockVblankCallback(void); static void LoadWallClockGraphics(void); @@ -48,25 +169,17 @@ static u8 AdvanceClock(u8 taskId, u8 direction); static void UpdateClockPeriod(u8 taskId, u8 direction); static void InitClockWithRtc(u8 taskId); -//Task data -enum { - TD_MHAND_ANGLE, - TD_HHAND_ANGLE, - TD_HOURS, - TD_MINUTES, - TD_SETDIRECTION, //Movement direction when setting the clock - TD_PERIOD, //Whether the time is AM or PM - TD_SETSPEED, //Movement speed when setting the clock -}; - -enum { - AM, - PM +enum +{ + PERIOD_AM, + PERIOD_PM, }; -enum { - BACKWARD = 1, - FORWARD +enum +{ + MVMT_NONE, + MVMT_BACKWARD, + MVMT_FORWARD, }; static void WallClockVblankCallback(void) @@ -122,8 +235,8 @@ static void LoadWallClockGraphics(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadCompressedObjectPic(&gUnknown_083F7A90); - LoadSpritePalettes(&gUnknown_083F7AA0); + LoadCompressedObjectPic(&gUnknown_083F7A90[0]); + LoadSpritePalettes(gUnknown_083F7AA0); SetUpWindowConfig(&gWindowConfig_81E6C3C); InitMenuWindow(&gWindowConfig_81E6CE4); } @@ -149,6 +262,14 @@ static void WallClockInit(void) DISPCNT_BG3_ON | DISPCNT_OBJ_ON; } +#define tMinuteHandAngle data[0] +#define tHourHandAngle data[1] +#define tHours data[2] +#define tMinutes data[3] +#define tMvmtDir data[4] +#define tPeriod data[5] +#define tMvmtSpeed data[6] + //Allow player to set the clock void CB2_StartWallClock(void) { @@ -159,29 +280,29 @@ void CB2_StartWallClock(void) LZ77UnCompVram(&gUnknown_08E954B0, (void *)(VRAM + 0x3800)); taskId = CreateTask(Task_SetClock1, 0); - gTasks[taskId].data[TD_HOURS] = 10; - gTasks[taskId].data[TD_MINUTES] = 0; - gTasks[taskId].data[TD_SETDIRECTION] = 0; - gTasks[taskId].data[TD_PERIOD] = AM; - gTasks[taskId].data[TD_SETSPEED] = 0; - gTasks[taskId].data[TD_MHAND_ANGLE] = 0; - gTasks[taskId].data[TD_HHAND_ANGLE] = 300; - - spriteId = CreateSprite(&gSpriteTemplate_83F7AD8, 0x78, 0x50, 1); + gTasks[taskId].tHours = 10; + gTasks[taskId].tMinutes = 0; + gTasks[taskId].tMvmtDir = MVMT_NONE; + gTasks[taskId].tPeriod = PERIOD_AM; + gTasks[taskId].tMvmtSpeed = 0; + gTasks[taskId].tMinuteHandAngle = 0; + gTasks[taskId].tHourHandAngle = 300; + + spriteId = CreateSprite(&gSpriteTemplate_83F7AD8, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 1); gSprites[spriteId].data0 = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 0; - spriteId = CreateSprite(&gSpriteTemplate_83F7AF0, 0x78, 0x50, 0); + spriteId = CreateSprite(&gSpriteTemplate_83F7AF0, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 0); gSprites[spriteId].data0 = taskId; gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; - spriteId = CreateSprite(&gSpriteTemplate_83F7B28, 0x78, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83F7B28, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 2); gSprites[spriteId].data0 = taskId; gSprites[spriteId].data1 = 45; - spriteId = CreateSprite(&gSpriteTemplate_83F7B40, 0x78, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83F7B40, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, 2); gSprites[spriteId].data0 = taskId; gSprites[spriteId].data1 = 90; @@ -201,7 +322,7 @@ void CB2_ViewWallClock(void) taskId = CreateTask(Task_ViewClock1, 0); InitClockWithRtc(taskId); - if (gTasks[taskId].data[TD_PERIOD] == 0) + if (gTasks[taskId].tPeriod == PERIOD_AM) { angle1 = 45; angle2 = 90; @@ -250,17 +371,17 @@ static void Task_SetClock1(u8 taskId) //Handle keypresses when setting clock static void Task_SetClock2(u8 taskId) { - if (gTasks[taskId].data[TD_MHAND_ANGLE] % 6) + if (gTasks[taskId].tMinuteHandAngle % 6) { - gTasks[taskId].data[TD_MHAND_ANGLE] = CalcNewMinHandAngle( - gTasks[taskId].data[TD_MHAND_ANGLE], - gTasks[taskId].data[TD_SETDIRECTION], - gTasks[taskId].data[TD_SETSPEED]); + gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle( + gTasks[taskId].tMinuteHandAngle, + gTasks[taskId].tMvmtDir, + gTasks[taskId].tMvmtSpeed); } else { - gTasks[taskId].data[TD_MHAND_ANGLE] = gTasks[taskId].data[TD_MINUTES] * 6; - gTasks[taskId].data[TD_HHAND_ANGLE] = (gTasks[taskId].data[TD_HOURS] % 12) * 30 + (gTasks[taskId].data[TD_MINUTES] / 10) * 5; + gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6; + gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5; if (gMain.newKeys & A_BUTTON) { gTasks[taskId].func = Task_SetClock3; @@ -268,24 +389,24 @@ static void Task_SetClock2(u8 taskId) } else { - gTasks[taskId].data[TD_SETDIRECTION] = gMain.newKeys & A_BUTTON; + gTasks[taskId].tMvmtDir = gMain.newKeys & A_BUTTON; if (gMain.heldKeys & DPAD_LEFT) - gTasks[taskId].data[TD_SETDIRECTION] = BACKWARD; + gTasks[taskId].tMvmtDir = MVMT_BACKWARD; if (gMain.heldKeys & DPAD_RIGHT) - gTasks[taskId].data[TD_SETDIRECTION] = FORWARD; - if (gTasks[taskId].data[TD_SETDIRECTION]) + gTasks[taskId].tMvmtDir = MVMT_FORWARD; + if (gTasks[taskId].tMvmtDir) { - if (gTasks[taskId].data[TD_SETSPEED] <= 0xFE) - gTasks[taskId].data[TD_SETSPEED]++; - gTasks[taskId].data[TD_MHAND_ANGLE] = CalcNewMinHandAngle( - gTasks[taskId].data[TD_MHAND_ANGLE], - gTasks[taskId].data[TD_SETDIRECTION], - gTasks[taskId].data[TD_SETSPEED]); - AdvanceClock(taskId, gTasks[taskId].data[TD_SETDIRECTION]); + if (gTasks[taskId].tMvmtSpeed < 0xFF) + gTasks[taskId].tMvmtSpeed++; + gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle( + gTasks[taskId].tMinuteHandAngle, + gTasks[taskId].tMvmtDir, + gTasks[taskId].tMvmtSpeed); + AdvanceClock(taskId, gTasks[taskId].tMvmtDir); } else { - gTasks[taskId].data[TD_SETSPEED] = 0; + gTasks[taskId].tMvmtSpeed = 0; } } } @@ -324,7 +445,7 @@ static void Task_SetClock4(u8 taskId) //Set the time offset based on the wall clock's time static void Task_SetClock5(u8 taskId) { - RtcInitLocalTimeOffset(gTasks[taskId].data[TD_HOURS], gTasks[taskId].data[TD_MINUTES]); + RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes); BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = Task_SetClock6; } @@ -373,20 +494,20 @@ static u8 CalcMinHandDelta(u16 speed) return 1; } -//Calculates the new position of the minute hand when setting the clock +//Calculates the new angle of the minute hand when setting the clock static u16 CalcNewMinHandAngle(u16 angle, u8 direction, u8 speed) { u8 delta = CalcMinHandDelta(speed); switch (direction) { - case BACKWARD: + case MVMT_BACKWARD: if (angle) angle = angle - delta; else angle = 360 - delta; break; - case FORWARD: + case MVMT_FORWARD: if (angle < 360 - delta) angle = angle + delta; else @@ -401,29 +522,29 @@ static u8 AdvanceClock(u8 taskId, u8 direction) { switch (direction) { - case BACKWARD: - if (gTasks[taskId].data[TD_MINUTES] > 0) - gTasks[taskId].data[TD_MINUTES]--; + case MVMT_BACKWARD: + if (gTasks[taskId].tMinutes > 0) + gTasks[taskId].tMinutes--; else { - gTasks[taskId].data[TD_MINUTES] = 59; - if (gTasks[taskId].data[TD_HOURS] > 0) - gTasks[taskId].data[TD_HOURS]--; + gTasks[taskId].tMinutes = 59; + if (gTasks[taskId].tHours > 0) + gTasks[taskId].tHours--; else - gTasks[taskId].data[TD_HOURS] = 23; + gTasks[taskId].tHours = 23; UpdateClockPeriod(taskId, direction); } break; - case FORWARD: - if (gTasks[taskId].data[TD_MINUTES] <= 58) - gTasks[taskId].data[TD_MINUTES]++; + case MVMT_FORWARD: + if (gTasks[taskId].tMinutes < 59) + gTasks[taskId].tMinutes++; else { - gTasks[taskId].data[TD_MINUTES] = 0; - if (gTasks[taskId].data[TD_HOURS] <= 22) - gTasks[taskId].data[TD_HOURS]++; + gTasks[taskId].tMinutes = 0; + if (gTasks[taskId].tHours < 23) + gTasks[taskId].tHours++; else - gTasks[taskId].data[TD_HOURS] = 0; + gTasks[taskId].tHours = 0; UpdateClockPeriod(taskId, direction); } break; @@ -434,29 +555,29 @@ static u8 AdvanceClock(u8 taskId, u8 direction) //Updates the clock period (AM/PM) if it needs to change static void UpdateClockPeriod(u8 taskId, u8 direction) { - u8 hours = gTasks[taskId].data[TD_HOURS]; + u8 hours = gTasks[taskId].tHours; switch (direction) { - case BACKWARD: + case MVMT_BACKWARD: switch (hours) { case 11: - gTasks[taskId].data[TD_PERIOD] = AM; + gTasks[taskId].tPeriod = PERIOD_AM; break; case 23: - gTasks[taskId].data[TD_PERIOD] = PM; + gTasks[taskId].tPeriod = PERIOD_PM; break; } break; - case FORWARD: + case MVMT_FORWARD: switch (hours) { case 0: - gTasks[taskId].data[TD_PERIOD] = AM; + gTasks[taskId].tPeriod = PERIOD_AM; break; case 12: - gTasks[taskId].data[TD_PERIOD] = PM; + gTasks[taskId].tPeriod = PERIOD_PM; break; } break; @@ -466,17 +587,381 @@ static void UpdateClockPeriod(u8 taskId, u8 direction) static void InitClockWithRtc(u8 taskId) { RtcCalcLocalTime(); - gTasks[taskId].data[TD_HOURS] = gLocalTime.hours; - gTasks[taskId].data[TD_MINUTES] = gLocalTime.minutes; - gTasks[taskId].data[TD_MHAND_ANGLE] = gTasks[taskId].data[TD_MINUTES] * 6; - gTasks[taskId].data[TD_HHAND_ANGLE] = (gTasks[taskId].data[TD_HOURS] % 12) * 30 + (gTasks[taskId].data[TD_MINUTES] / 10) * 5; + gTasks[taskId].tHours = gLocalTime.hours; + gTasks[taskId].tMinutes = gLocalTime.minutes; + gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6; + gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5; if (gLocalTime.hours <= 11) - gTasks[taskId].data[TD_PERIOD] = AM; + gTasks[taskId].tPeriod = PERIOD_AM; else - gTasks[taskId].data[TD_PERIOD] = PM; + gTasks[taskId].tPeriod = PERIOD_PM; } -void sub_810B05C(struct Sprite *sprite) +static const s8 gClockHandCoords[][2] = +{ + { 0, -24}, + { 1, -25}, + { 1, -25}, + { 2, -25}, + { 2, -25}, + { 2, -25}, + { 3, -24}, + { 3, -25}, + { 4, -25}, + { 4, -25}, + { 4, -25}, + { 5, -25}, + { 5, -25}, + { 6, -24}, + { 6, -24}, + { 6, -24}, + { 7, -24}, + { 7, -24}, + { 7, -24}, + { 8, -24}, + { 8, -24}, + { 9, -24}, + { 9, -24}, + { 10, -23}, + { 10, -23}, + { 11, -22}, + { 11, -22}, + { 11, -22}, + { 12, -22}, + { 12, -21}, + { 13, -21}, + { 13, -21}, + { 13, -21}, + { 14, -21}, + { 14, -21}, + { 14, -20}, + { 14, -20}, + { 15, -20}, + { 15, -19}, + { 16, -19}, + { 16, -19}, + { 16, -19}, + { 16, -18}, + { 16, -18}, + { 17, -18}, + { 17, -17}, + { 17, -17}, + { 18, -17}, + { 18, -17}, + { 18, -16}, + { 18, -16}, + { 19, -16}, + { 19, -15}, + { 19, -15}, + { 20, -15}, + { 20, -14}, + { 20, -14}, + { 20, -13}, + { 20, -13}, + { 21, -13}, + { 21, -13}, + { 21, -12}, + { 22, -12}, + { 22, -12}, + { 22, -11}, + { 22, -11}, + { 22, -10}, + { 23, -10}, + { 23, -9}, + { 23, -9}, + { 23, -9}, + { 23, -9}, + { 23, -8}, + { 23, -8}, + { 23, -7}, + { 23, -7}, + { 23, -6}, + { 24, -6}, + { 24, -6}, + { 25, -5}, + { 25, -5}, + { 24, -4}, + { 25, -4}, + { 24, -3}, + { 25, -3}, + { 25, -3}, + { 25, -2}, + { 25, -2}, + { 24, -1}, + { 25, -1}, + { 24, 0}, + { 24, 0}, + { 24, 0}, + { 24, 1}, + { 24, 1}, + { 25, 2}, + { 24, 2}, + { 25, 2}, + { 24, 3}, + { 24, 3}, + { 25, 4}, + { 24, 4}, + { 24, 5}, + { 24, 5}, + { 24, 5}, + { 24, 6}, + { 23, 6}, + { 23, 6}, + { 23, 7}, + { 23, 8}, + { 23, 8}, + { 23, 8}, + { 23, 9}, + { 23, 9}, + { 23, 10}, + { 22, 10}, + { 22, 10}, + { 22, 11}, + { 22, 11}, + { 22, 11}, + { 22, 12}, + { 21, 12}, + { 21, 12}, + { 21, 13}, + { 20, 13}, + { 20, 13}, + { 19, 13}, + { 19, 13}, + { 19, 14}, + { 19, 14}, + { 19, 15}, + { 19, 15}, + { 18, 15}, + { 18, 16}, + { 17, 16}, + { 17, 16}, + { 17, 17}, + { 17, 17}, + { 16, 17}, + { 16, 18}, + { 16, 18}, + { 15, 18}, + { 14, 18}, + { 15, 19}, + { 14, 19}, + { 14, 19}, + { 13, 19}, + { 13, 20}, + { 13, 20}, + { 13, 20}, + { 12, 20}, + { 12, 20}, + { 12, 21}, + { 11, 21}, + { 11, 21}, + { 11, 21}, + { 10, 21}, + { 10, 22}, + { 10, 22}, + { 9, 22}, + { 9, 22}, + { 8, 22}, + { 7, 22}, + { 7, 23}, + { 7, 23}, + { 6, 23}, + { 6, 23}, + { 5, 23}, + { 5, 23}, + { 5, 24}, + { 4, 24}, + { 4, 24}, + { 4, 24}, + { 3, 24}, + { 2, 24}, + { 2, 24}, + { 1, 24}, + { 1, 24}, + { 0, 24}, + { 0, 24}, + { -1, 23}, + { 0, 24}, + { 0, 24}, + { -1, 24}, + { -1, 24}, + { -2, 24}, + { -2, 24}, + { -3, 24}, + { -3, 24}, + { -4, 24}, + { -4, 24}, + { -5, 24}, + { -5, 23}, + { -5, 23}, + { -6, 23}, + { -6, 23}, + { -7, 23}, + { -7, 23}, + { -7, 23}, + { -8, 23}, + { -8, 22}, + { -9, 22}, + { -9, 22}, + {-10, 22}, + {-10, 22}, + {-10, 21}, + {-11, 21}, + {-11, 21}, + {-11, 21}, + {-11, 20}, + {-12, 20}, + {-12, 20}, + {-13, 20}, + {-13, 20}, + {-13, 19}, + {-14, 19}, + {-14, 19}, + {-14, 19}, + {-14, 18}, + {-15, 18}, + {-15, 18}, + {-15, 17}, + {-16, 17}, + {-16, 17}, + {-17, 17}, + {-17, 16}, + {-17, 16}, + {-18, 16}, + {-17, 15}, + {-18, 15}, + {-18, 15}, + {-19, 15}, + {-19, 14}, + {-19, 14}, + {-19, 13}, + {-19, 13}, + {-20, 13}, + {-20, 12}, + {-20, 12}, + {-21, 12}, + {-21, 12}, + {-21, 11}, + {-21, 11}, + {-21, 10}, + {-21, 10}, + {-21, 9}, + {-22, 9}, + {-22, 9}, + {-22, 8}, + {-22, 8}, + {-22, 7}, + {-23, 7}, + {-23, 7}, + {-23, 6}, + {-23, 6}, + {-23, 5}, + {-24, 5}, + {-23, 4}, + {-23, 4}, + {-24, 4}, + {-24, 4}, + {-24, 3}, + {-24, 3}, + {-24, 2}, + {-24, 2}, + {-24, 1}, + {-24, 1}, + {-24, 1}, + {-24, 0}, + {-25, 0}, + {-24, -1}, + {-25, -1}, + {-24, -1}, + {-24, -2}, + {-24, -2}, + {-24, -3}, + {-24, -3}, + {-24, -4}, + {-24, -4}, + {-24, -4}, + {-24, -5}, + {-24, -5}, + {-24, -6}, + {-24, -6}, + {-23, -6}, + {-23, -7}, + {-23, -7}, + {-23, -8}, + {-23, -8}, + {-23, -9}, + {-23, -9}, + {-22, -9}, + {-22, -9}, + {-22, -10}, + {-22, -10}, + {-21, -10}, + {-21, -11}, + {-22, -11}, + {-22, -12}, + {-21, -12}, + {-21, -13}, + {-21, -13}, + {-20, -13}, + {-21, -14}, + {-20, -14}, + {-20, -14}, + {-19, -14}, + {-19, -15}, + {-19, -15}, + {-18, -16}, + {-18, -16}, + {-18, -16}, + {-18, -17}, + {-18, -17}, + {-17, -17}, + {-17, -18}, + {-17, -18}, + {-16, -18}, + {-16, -18}, + {-16, -19}, + {-16, -19}, + {-15, -19}, + {-15, -19}, + {-15, -20}, + {-14, -20}, + {-14, -20}, + {-14, -21}, + {-13, -21}, + {-13, -21}, + {-13, -21}, + {-12, -21}, + {-12, -22}, + {-11, -22}, + {-11, -22}, + {-11, -22}, + {-10, -22}, + {-10, -22}, + { -9, -22}, + { -9, -23}, + { -9, -23}, + { -8, -23}, + { -8, -23}, + { -7, -23}, + { -7, -23}, + { -7, -24}, + { -6, -24}, + { -6, -24}, + { -5, -24}, + { -5, -24}, + { -4, -24}, + { -4, -24}, + { -4, -24}, + { -4, -25}, + { -3, -25}, + { -2, -25}, + { -2, -24}, + { -2, -24}, + { -1, -25}, + { -1, -25}, + { 0, -25}, +}; + +static void sub_810B05C(struct Sprite *sprite) { u16 angle; s16 sin; @@ -484,7 +969,7 @@ void sub_810B05C(struct Sprite *sprite) u16 x; u16 y; - angle = gTasks[sprite->data0].data[TD_MHAND_ANGLE]; + angle = gTasks[sprite->data0].tMinuteHandAngle; sin = Sin2(angle) / 16; cos = Cos2(angle) / 16; SetOamMatrix(0, cos, sin, -sin, cos); @@ -501,7 +986,7 @@ void sub_810B05C(struct Sprite *sprite) sprite->pos2.y = y; } -void sub_810B0F4(struct Sprite *sprite) +static void sub_810B0F4(struct Sprite *sprite) { u16 angle; s16 sin; @@ -509,7 +994,7 @@ void sub_810B0F4(struct Sprite *sprite) u16 x; u16 y; - angle = gTasks[sprite->data0].data[TD_HHAND_ANGLE]; + angle = gTasks[sprite->data0].tHourHandAngle; sin = Sin2(angle) / 16; cos = Cos2(angle) / 16; SetOamMatrix(1, cos, sin, -sin, cos); @@ -526,21 +1011,21 @@ void sub_810B0F4(struct Sprite *sprite) sprite->pos2.y = y; } -void sub_810B18C(struct Sprite *sprite) +static void sub_810B18C(struct Sprite *sprite) { s16 sin; s16 cos; - if (gTasks[sprite->data0].data[TD_PERIOD] != AM) + if (gTasks[sprite->data0].tPeriod != PERIOD_AM) { - if ((u16)(sprite->data1 - 60) <= 29) + if (sprite->data1 >= 60 && sprite->data1 < 90) sprite->data1 += 5; - if (sprite->data1 <= 59) + if (sprite->data1 < 60) sprite->data1++; } else { - if ((u16)(sprite->data1 - 46) <= 29) + if (sprite->data1 > 45 && sprite->data1 <= 75) sprite->data1 -= 5; if (sprite->data1 > 75) sprite->data1--; @@ -551,12 +1036,12 @@ void sub_810B18C(struct Sprite *sprite) sprite->pos2.y = sin * 30 / 4096; } -void sub_810B230(struct Sprite *sprite) +static void sub_810B230(struct Sprite *sprite) { s16 sin; s16 cos; - if (gTasks[sprite->data0].data[TD_PERIOD] != AM) + if (gTasks[sprite->data0].tPeriod != PERIOD_AM) { if (sprite->data1 >= 105 && sprite->data1 < 135) sprite->data1 += 5; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 820ff34f5..f848873bb 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -10,6 +10,7 @@ #include "rom4.h" #include "safari_zone.h" #include "script.h" +#include "species.h" struct WildPokemon { @@ -21,7 +22,7 @@ struct WildPokemon struct WildPokemonInfo { u8 encounterRate; - struct WildPokemon *wildPokemon; + const struct WildPokemon *wildPokemon; }; struct WildPokemonHeader @@ -34,6 +35,2890 @@ struct WildPokemonHeader struct WildPokemonInfo *fishingMonsInfo; }; + +const struct WildPokemon PetalburgCity_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, +}; +const struct WildPokemonInfo PetalburgCity_WaterMonsInfo = {1, PetalburgCity_WaterMons}; + +const struct WildPokemon PetalburgCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, +}; +const struct WildPokemonInfo PetalburgCity_FishingMonsInfo = {10, PetalburgCity_FishingMons}; + +const struct WildPokemon SlateportCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo SlateportCity_WaterMonsInfo = {4, SlateportCity_WaterMons}; + +const struct WildPokemon SlateportCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SlateportCity_FishingMonsInfo = {10, SlateportCity_FishingMons}; + +const struct WildPokemon LilycoveCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo LilycoveCity_WaterMonsInfo = {4, LilycoveCity_WaterMons}; + +const struct WildPokemon LilycoveCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_STARYU}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo LilycoveCity_FishingMonsInfo = {10, LilycoveCity_FishingMons}; + +const struct WildPokemon MossdeepCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo MossdeepCity_WaterMonsInfo = {4, MossdeepCity_WaterMons}; + +const struct WildPokemon MossdeepCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo MossdeepCity_FishingMonsInfo = {10, MossdeepCity_FishingMons}; + +const struct WildPokemon SootopolisCity_WaterMons [] = +{ + {5, 35, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {15, 25, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, +}; +const struct WildPokemonInfo SootopolisCity_WaterMonsInfo = {1, SootopolisCity_WaterMons}; + +const struct WildPokemon SootopolisCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, +#ifdef SAPPHIRE + {5, 10, SPECIES_TENTACOOL}, +#else + {10, 15, SPECIES_MAGIKARP}, +#endif + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {35, 40, SPECIES_GYARADOS}, + {35, 45, SPECIES_GYARADOS}, + {5, 45, SPECIES_GYARADOS}, +}; +const struct WildPokemonInfo SootopolisCity_FishingMonsInfo = {10, SootopolisCity_FishingMons}; + +const struct WildPokemon EverGrandeCity_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo EverGrandeCity_WaterMonsInfo = {4, EverGrandeCity_WaterMons}; + +const struct WildPokemon EverGrandeCity_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_LUVDISC}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_LUVDISC}, + {30, 35, SPECIES_WAILMER}, + {30, 35, SPECIES_CORSOLA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo EverGrandeCity_FishingMonsInfo = {10, EverGrandeCity_FishingMons}; + +const struct WildPokemon MeteorFalls_1F_1R_LandMons [] = +{ + {16, 16, SPECIES_ZUBAT}, + {17, 17, SPECIES_ZUBAT}, + {18, 18, SPECIES_ZUBAT}, + {15, 15, SPECIES_ZUBAT}, + {14, 14, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {16, 16, SPECIES_LUNATONE}, + {18, 18, SPECIES_LUNATONE}, + {14, 14, SPECIES_LUNATONE}, +#else + {16, 16, SPECIES_SOLROCK}, + {18, 18, SPECIES_SOLROCK}, + {14, 14, SPECIES_SOLROCK}, +#endif + {19, 19, SPECIES_ZUBAT}, + {20, 20, SPECIES_ZUBAT}, + {19, 19, SPECIES_ZUBAT}, + {20, 20, SPECIES_ZUBAT}, +}; +const struct WildPokemonInfo MeteorFalls_1F_1R_LandMonsInfo = {10, MeteorFalls_1F_1R_LandMons}; + +const struct WildPokemon MeteorFalls_1F_1R_WaterMons [] = +{ + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_1F_1R_WaterMonsInfo = {4, MeteorFalls_1F_1R_WaterMons}; + +const struct WildPokemon MeteorFalls_1F_1R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo MeteorFalls_1F_1R_FishingMonsInfo = {30, MeteorFalls_1F_1R_FishingMons}; + +const struct WildPokemon MeteorFalls_1F_2R_LandMons [] = +{ + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {35, 35, SPECIES_LUNATONE}, + {33, 33, SPECIES_LUNATONE}, + {37, 37, SPECIES_LUNATONE}, +#else + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, +#endif + {35, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {39, 39, SPECIES_LUNATONE}, +#else + {39, 39, SPECIES_SOLROCK}, +#endif + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo MeteorFalls_1F_2R_LandMonsInfo = {10, MeteorFalls_1F_2R_LandMons}; + +const struct WildPokemon MeteorFalls_1F_2R_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_1F_2R_WaterMonsInfo = {4, MeteorFalls_1F_2R_WaterMons}; + +const struct WildPokemon MeteorFalls_1F_2R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo MeteorFalls_1F_2R_FishingMonsInfo = {30, MeteorFalls_1F_2R_FishingMons}; + +const struct WildPokemon MeteorFalls_B1F_1R_LandMons [] = +{ + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {35, 35, SPECIES_LUNATONE}, + {33, 33, SPECIES_LUNATONE}, + {37, 37, SPECIES_LUNATONE}, +#else + {35, 35, SPECIES_SOLROCK}, + {33, 33, SPECIES_SOLROCK}, + {37, 37, SPECIES_SOLROCK}, +#endif + {35, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {39, 39, SPECIES_LUNATONE}, +#else + {39, 39, SPECIES_SOLROCK}, +#endif + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_1R_LandMonsInfo = {10, MeteorFalls_B1F_1R_LandMons}; + +const struct WildPokemon MeteorFalls_B1F_1R_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_B1F_1R_WaterMonsInfo = {4, MeteorFalls_B1F_1R_WaterMons}; + +const struct WildPokemon MeteorFalls_B1F_1R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_1R_FishingMonsInfo = {30, MeteorFalls_B1F_1R_FishingMons}; + +const struct WildPokemon MeteorFalls_B1F_2R_LandMons [] = +{ + {33, 33, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {30, 30, SPECIES_BAGON}, +#ifdef SAPPHIRE + {35, 35, SPECIES_LUNATONE}, +#else + {35, 35, SPECIES_SOLROCK}, +#endif + {35, 35, SPECIES_BAGON}, +#ifdef SAPPHIRE + {37, 37, SPECIES_LUNATONE}, +#else + {37, 37, SPECIES_SOLROCK}, +#endif + {25, 25, SPECIES_BAGON}, +#ifdef SAPPHIRE + {39, 39, SPECIES_LUNATONE}, +#else + {39, 39, SPECIES_SOLROCK}, +#endif + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, + {38, 38, SPECIES_GOLBAT}, + {40, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_2R_LandMonsInfo = {10, MeteorFalls_B1F_2R_LandMons}; + +const struct WildPokemon MeteorFalls_B1F_2R_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {25, 35, SPECIES_LUNATONE}, + {15, 25, SPECIES_LUNATONE}, + {5, 15, SPECIES_LUNATONE}, +#else + {25, 35, SPECIES_SOLROCK}, + {15, 25, SPECIES_SOLROCK}, + {5, 15, SPECIES_SOLROCK}, +#endif +}; +const struct WildPokemonInfo MeteorFalls_B1F_2R_WaterMonsInfo = {4, MeteorFalls_B1F_2R_WaterMons}; + +const struct WildPokemon MeteorFalls_B1F_2R_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo MeteorFalls_B1F_2R_FishingMonsInfo = {30, MeteorFalls_B1F_2R_FishingMons}; + +const struct WildPokemon RusturfTunnel_LandMons [] = +{ + {6, 6, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {6, 6, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {7, 7, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, + {5, 5, SPECIES_WHISMUR}, + {8, 8, SPECIES_WHISMUR}, +}; +const struct WildPokemonInfo RusturfTunnel_LandMonsInfo = {10, RusturfTunnel_LandMons}; + +const struct WildPokemon GraniteCave_1F_LandMons [] = +{ + {7, 7, SPECIES_ZUBAT}, + {8, 8, SPECIES_MAKUHITA}, + {7, 7, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ZUBAT}, + {9, 9, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {6, 6, SPECIES_MAKUHITA}, + {7, 7, SPECIES_GEODUDE}, + {8, 8, SPECIES_GEODUDE}, + {6, 6, SPECIES_GEODUDE}, + {9, 9, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo GraniteCave_1F_LandMonsInfo = {10, GraniteCave_1F_LandMons}; + +const struct WildPokemon GraniteCave_B1F_LandMons [] = +{ + {9, 9, SPECIES_ZUBAT}, + {10, 10, SPECIES_ARON}, + {9, 9, SPECIES_ARON}, + {11, 11, SPECIES_ARON}, + {10, 10, SPECIES_ZUBAT}, + {9, 9, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {11, 11, SPECIES_MAKUHITA}, +#ifdef SAPPHIRE + {10, 10, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, + {9, 9, SPECIES_SABLEYE}, + {11, 11, SPECIES_SABLEYE}, +#else + {10, 10, SPECIES_MAWILE}, + {10, 10, SPECIES_MAWILE}, + {9, 9, SPECIES_MAWILE}, + {11, 11, SPECIES_MAWILE}, +#endif +}; +const struct WildPokemonInfo GraniteCave_B1F_LandMonsInfo = {10, GraniteCave_B1F_LandMons}; + +const struct WildPokemon GraniteCave_B2F_LandMons [] = +{ + {10, 10, SPECIES_ZUBAT}, + {11, 11, SPECIES_ARON}, + {10, 10, SPECIES_ARON}, + {11, 11, SPECIES_ZUBAT}, + {12, 12, SPECIES_ARON}, + {10, 10, SPECIES_ABRA}, +#ifdef SAPPHIRE + {10, 10, SPECIES_SABLEYE}, + {11, 11, SPECIES_SABLEYE}, + {12, 12, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, + {12, 12, SPECIES_SABLEYE}, + {10, 10, SPECIES_SABLEYE}, +#else + {10, 10, SPECIES_MAWILE}, + {11, 11, SPECIES_MAWILE}, + {12, 12, SPECIES_MAWILE}, + {10, 10, SPECIES_MAWILE}, + {12, 12, SPECIES_MAWILE}, + {10, 10, SPECIES_MAWILE}, +#endif +}; +const struct WildPokemonInfo GraniteCave_B2F_LandMonsInfo = {10, GraniteCave_B2F_LandMons}; + +const struct WildPokemon GraniteCave_B2F_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {10, 20, SPECIES_NOSEPASS}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo GraniteCave_B2F_RockSmashMonsInfo = {20, GraniteCave_B2F_RockSmashMons}; + +const struct WildPokemon GraniteCave_StevensRoom_LandMons [] = +{ + {7, 7, SPECIES_ZUBAT}, + {8, 8, SPECIES_MAKUHITA}, + {7, 7, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ZUBAT}, + {9, 9, SPECIES_MAKUHITA}, + {8, 8, SPECIES_ABRA}, + {10, 10, SPECIES_MAKUHITA}, + {6, 6, SPECIES_MAKUHITA}, + {7, 7, SPECIES_ARON}, + {8, 8, SPECIES_ARON}, + {7, 7, SPECIES_ARON}, + {8, 8, SPECIES_ARON}, +}; +const struct WildPokemonInfo GraniteCave_StevensRoom_LandMonsInfo = {10, GraniteCave_StevensRoom_LandMons}; + +const struct WildPokemon PetalburgWoods_LandMons [] = +{ + {5, 5, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_WURMPLE}, + {5, 5, SPECIES_SHROOMISH}, + {6, 6, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_SILCOON}, + {5, 5, SPECIES_CASCOON}, + {6, 6, SPECIES_WURMPLE}, + {6, 6, SPECIES_SHROOMISH}, + {5, 5, SPECIES_TAILLOW}, + {5, 5, SPECIES_SLAKOTH}, + {6, 6, SPECIES_TAILLOW}, + {6, 6, SPECIES_SLAKOTH}, +}; +const struct WildPokemonInfo PetalburgWoods_LandMonsInfo = {20, PetalburgWoods_LandMons}; + +//Jagged Pass Pokemon are 2 levels higher on Sapphire +#ifdef SAPPHIRE +#define JAGGED_PASS_LEVEL_DIFF 2 +#else +#define JAGGED_PASS_LEVEL_DIFF 0 +#endif + +const struct WildPokemon JaggedPass_LandMons [] = +{ + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, + {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, + {18 + JAGGED_PASS_LEVEL_DIFF, 18 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, + {19 + JAGGED_PASS_LEVEL_DIFF, 19 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_MACHOP}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_NUMEL}, + {20 + JAGGED_PASS_LEVEL_DIFF, 20 + JAGGED_PASS_LEVEL_DIFF, SPECIES_SPOINK}, +}; +const struct WildPokemonInfo JaggedPass_LandMonsInfo = {20, JaggedPass_LandMons}; + +const struct WildPokemon FieryPath_LandMons [] = +{ + {15, 15, SPECIES_NUMEL}, +#ifdef SAPPHIRE + {15, 15, SPECIES_GRIMER}, +#else + {15, 15, SPECIES_KOFFING}, +#endif + {16, 16, SPECIES_NUMEL}, + {15, 15, SPECIES_MACHOP}, + {15, 15, SPECIES_TORKOAL}, + {15, 15, SPECIES_SLUGMA}, +#ifdef SAPPHIRE + {16, 16, SPECIES_GRIMER}, +#else + {16, 16, SPECIES_KOFFING}, +#endif + {16, 16, SPECIES_MACHOP}, + {14, 14, SPECIES_TORKOAL}, + {16, 16, SPECIES_TORKOAL}, +#ifdef SAPPHIRE + {14, 14, SPECIES_KOFFING}, + {14, 14, SPECIES_KOFFING}, +#else + {14, 14, SPECIES_GRIMER}, + {14, 14, SPECIES_GRIMER}, +#endif +}; +const struct WildPokemonInfo FieryPath_LandMonsInfo = {10, FieryPath_LandMons}; + +const struct WildPokemon MtPyre_1F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, +#endif +}; +const struct WildPokemonInfo MtPyre_1F_LandMonsInfo = {10, MtPyre_1F_LandMons}; + +const struct WildPokemon MtPyre_2F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, +#endif +}; +const struct WildPokemonInfo MtPyre_2F_LandMonsInfo = {10, MtPyre_2F_LandMons}; + +const struct WildPokemon MtPyre_3F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, +#endif +}; +const struct WildPokemonInfo MtPyre_3F_LandMonsInfo = {10, MtPyre_3F_LandMons}; + +const struct WildPokemon MtPyre_4F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, +#endif +}; +const struct WildPokemonInfo MtPyre_4F_LandMonsInfo = {10, MtPyre_4F_LandMons}; + +const struct WildPokemon MtPyre_5F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, +#endif +}; +const struct WildPokemonInfo MtPyre_5F_LandMonsInfo = {10, MtPyre_5F_LandMons}; + +const struct WildPokemon MtPyre_6F_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {23, 23, SPECIES_SHUPPET}, + {22, 22, SPECIES_SHUPPET}, + {27, 27, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, +#else + {27, 27, SPECIES_DUSKULL}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {23, 23, SPECIES_DUSKULL}, + {22, 22, SPECIES_DUSKULL}, + {27, 27, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, +#endif +}; +const struct WildPokemonInfo MtPyre_6F_LandMonsInfo = {10, MtPyre_6F_LandMons}; + +const struct WildPokemon MtPyre_Exterior_LandMons [] = +{ +#ifdef SAPPHIRE + {27, 27, SPECIES_SHUPPET}, +#else + {27, 27, SPECIES_DUSKULL}, +#endif + {27, 27, SPECIES_MEDITITE}, +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, +#else + {28, 28, SPECIES_DUSKULL}, +#endif + {29, 29, SPECIES_MEDITITE}, +#ifdef SAPPHIRE + {29, 29, SPECIES_SHUPPET}, +#else + {29, 29, SPECIES_DUSKULL}, +#endif + {27, 27, SPECIES_VULPIX}, + {29, 29, SPECIES_VULPIX}, + {25, 25, SPECIES_VULPIX}, + {27, 27, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo MtPyre_Exterior_LandMonsInfo = {10, MtPyre_Exterior_LandMons}; + +const struct WildPokemon MtPyre_Summit_LandMons [] = +{ +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, + {29, 29, SPECIES_SHUPPET}, + {27, 27, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {30, 30, SPECIES_SHUPPET}, + {25, 25, SPECIES_SHUPPET}, + {24, 24, SPECIES_SHUPPET}, + {28, 28, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {30, 30, SPECIES_DUSKULL}, +#else + {28, 28, SPECIES_DUSKULL}, + {29, 29, SPECIES_DUSKULL}, + {27, 27, SPECIES_DUSKULL}, + {26, 26, SPECIES_DUSKULL}, + {30, 30, SPECIES_DUSKULL}, + {25, 25, SPECIES_DUSKULL}, + {24, 24, SPECIES_DUSKULL}, + {28, 28, SPECIES_SHUPPET}, + {26, 26, SPECIES_SHUPPET}, + {30, 30, SPECIES_SHUPPET}, +#endif + {28, 28, SPECIES_CHIMECHO}, + {28, 28, SPECIES_CHIMECHO}, +}; +const struct WildPokemonInfo MtPyre_Summit_LandMonsInfo = {10, MtPyre_Summit_LandMons}; + +const struct WildPokemon SeafloorCavern_Entrance_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Entrance_WaterMonsInfo = {4, SeafloorCavern_Entrance_WaterMons}; + +const struct WildPokemon SeafloorCavern_Entrance_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SeafloorCavern_Entrance_FishingMonsInfo = {10, SeafloorCavern_Entrance_FishingMons}; + +const struct WildPokemon SeafloorCavern_Room1_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room1_LandMonsInfo = {4, SeafloorCavern_Room1_LandMons}; + +const struct WildPokemon SeafloorCavern_Room2_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room2_LandMonsInfo = {4, SeafloorCavern_Room2_LandMons}; + +const struct WildPokemon SeafloorCavern_Room3_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room3_LandMonsInfo = {4, SeafloorCavern_Room3_LandMons}; + +const struct WildPokemon SeafloorCavern_Room4_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room4_LandMonsInfo = {4, SeafloorCavern_Room4_LandMons}; + +const struct WildPokemon SeafloorCavern_Room5_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room5_LandMonsInfo = {4, SeafloorCavern_Room5_LandMons}; + +const struct WildPokemon SeafloorCavern_Room6_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room6_LandMonsInfo = {4, SeafloorCavern_Room6_LandMons}; + +const struct WildPokemon SeafloorCavern_Room6_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room6_WaterMonsInfo = {4, SeafloorCavern_Room6_WaterMons}; + +const struct WildPokemon SeafloorCavern_Room6_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SeafloorCavern_Room6_FishingMonsInfo = {10, SeafloorCavern_Room6_FishingMons}; + +const struct WildPokemon SeafloorCavern_Room7_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room7_LandMonsInfo = {4, SeafloorCavern_Room7_LandMons}; + +const struct WildPokemon SeafloorCavern_Room7_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_ZUBAT}, + {30, 35, SPECIES_GOLBAT}, + {30, 35, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room7_WaterMonsInfo = {4, SeafloorCavern_Room7_WaterMons}; + +const struct WildPokemon SeafloorCavern_Room7_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo SeafloorCavern_Room7_FishingMonsInfo = {10, SeafloorCavern_Room7_FishingMons}; + +const struct WildPokemon SeafloorCavern_Room8_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo SeafloorCavern_Room8_LandMonsInfo = {4, SeafloorCavern_Room8_LandMons}; + +const struct WildPokemon CaveOfOrigin_Entrance_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, + {33, 33, SPECIES_ZUBAT}, + {28, 28, SPECIES_ZUBAT}, + {29, 29, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {35, 35, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_Entrance_LandMonsInfo = {4, CaveOfOrigin_Entrance_LandMons}; + +const struct WildPokemon CaveOfOrigin_1F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_1F_LandMonsInfo = {4, CaveOfOrigin_1F_LandMons}; + +const struct WildPokemon CaveOfOrigin_B1F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_B1F_LandMonsInfo = {4, CaveOfOrigin_B1F_LandMons}; + +const struct WildPokemon CaveOfOrigin_B2F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_B2F_LandMonsInfo = {4, CaveOfOrigin_B2F_LandMons}; + +const struct WildPokemon CaveOfOrigin_B3F_LandMons [] = +{ + {30, 30, SPECIES_ZUBAT}, + {31, 31, SPECIES_ZUBAT}, + {32, 32, SPECIES_ZUBAT}, +#ifdef SAPPHIRE + {30, 30, SPECIES_SABLEYE}, + {32, 32, SPECIES_SABLEYE}, + {34, 34, SPECIES_SABLEYE}, +#else + {30, 30, SPECIES_MAWILE}, + {32, 32, SPECIES_MAWILE}, + {34, 34, SPECIES_MAWILE}, +#endif + {33, 33, SPECIES_ZUBAT}, + {34, 34, SPECIES_ZUBAT}, + {34, 34, SPECIES_GOLBAT}, + {35, 35, SPECIES_GOLBAT}, + {33, 33, SPECIES_GOLBAT}, + {36, 36, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo CaveOfOrigin_B3F_LandMonsInfo = {4, CaveOfOrigin_B3F_LandMons}; + +const struct WildPokemon VictoryRoad_1F_LandMons [] = +{ + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_HARIYAMA}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_LOUDRED}, + {36, 36, SPECIES_ZUBAT}, + {36, 36, SPECIES_MAKUHITA}, + {38, 38, SPECIES_GOLBAT}, + {38, 38, SPECIES_HARIYAMA}, + {36, 36, SPECIES_ARON}, + {36, 36, SPECIES_WHISMUR}, + {36, 36, SPECIES_ARON}, + {36, 36, SPECIES_WHISMUR}, +}; +const struct WildPokemonInfo VictoryRoad_1F_LandMonsInfo = {10, VictoryRoad_1F_LandMons}; + +const struct WildPokemon VictoryRoad_B1F_LandMons [] = +{ + {40, 40, SPECIES_GOLBAT}, + {40, 40, SPECIES_HARIYAMA}, + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_MEDICHAM}, + {38, 38, SPECIES_GOLBAT}, + {38, 38, SPECIES_HARIYAMA}, + {42, 42, SPECIES_GOLBAT}, + {42, 42, SPECIES_HARIYAMA}, + {42, 42, SPECIES_LAIRON}, + {38, 38, SPECIES_MEDITITE}, + {42, 42, SPECIES_LAIRON}, + {38, 38, SPECIES_MEDITITE}, +}; +const struct WildPokemonInfo VictoryRoad_B1F_LandMonsInfo = {10, VictoryRoad_B1F_LandMons}; + +const struct WildPokemon VictoryRoad_B1F_RockSmashMons [] = +{ + {30, 40, SPECIES_GRAVELER}, + {30, 40, SPECIES_GEODUDE}, + {35, 40, SPECIES_GRAVELER}, + {35, 40, SPECIES_GRAVELER}, + {35, 40, SPECIES_GRAVELER}, +}; +const struct WildPokemonInfo VictoryRoad_B1F_RockSmashMonsInfo = {20, VictoryRoad_B1F_RockSmashMons}; + +const struct WildPokemon VictoryRoad_B2F_LandMons [] = +{ + {40, 40, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {40, 40, SPECIES_SABLEYE}, +#else + {40, 40, SPECIES_MAWILE}, +#endif + {40, 40, SPECIES_LAIRON}, + {40, 40, SPECIES_MEDICHAM}, + {42, 42, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {42, 42, SPECIES_SABLEYE}, +#else + {42, 42, SPECIES_MAWILE}, +#endif + {44, 44, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {44, 44, SPECIES_SABLEYE}, +#else + {44, 44, SPECIES_MAWILE}, +#endif + {42, 42, SPECIES_LAIRON}, + {42, 42, SPECIES_MEDICHAM}, + {44, 44, SPECIES_LAIRON}, + {44, 44, SPECIES_MEDICHAM}, +}; +const struct WildPokemonInfo VictoryRoad_B2F_LandMonsInfo = {10, VictoryRoad_B2F_LandMons}; + +const struct WildPokemon VictoryRoad_B2F_WaterMons [] = +{ + {30, 35, SPECIES_GOLBAT}, + {25, 30, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, + {35, 40, SPECIES_GOLBAT}, +}; +const struct WildPokemonInfo VictoryRoad_B2F_WaterMonsInfo = {4, VictoryRoad_B2F_WaterMons}; + +const struct WildPokemon VictoryRoad_B2F_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {30, 35, SPECIES_WHISCASH}, + {35, 40, SPECIES_WHISCASH}, + {40, 45, SPECIES_WHISCASH}, +}; +const struct WildPokemonInfo VictoryRoad_B2F_FishingMonsInfo = {30, VictoryRoad_B2F_FishingMons}; + +const struct WildPokemon ShoalCave_LowTideEntranceRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_LandMonsInfo = {10, ShoalCave_LowTideEntranceRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideEntranceRoom_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {25, 30, SPECIES_SPHEAL}, + {25, 30, SPECIES_SPHEAL}, + {25, 35, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_WaterMonsInfo = {4, ShoalCave_LowTideEntranceRoom_WaterMons}; + +const struct WildPokemon ShoalCave_LowTideEntranceRoom_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo ShoalCave_LowTideEntranceRoom_FishingMonsInfo = {10, ShoalCave_LowTideEntranceRoom_FishingMons}; + +const struct WildPokemon ShoalCave_LowTideInnerRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_LandMonsInfo = {10, ShoalCave_LowTideInnerRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideInnerRoom_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_ZUBAT}, + {25, 30, SPECIES_SPHEAL}, + {25, 30, SPECIES_SPHEAL}, + {25, 35, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_WaterMonsInfo = {4, ShoalCave_LowTideInnerRoom_WaterMons}; + +const struct WildPokemon ShoalCave_LowTideInnerRoom_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo ShoalCave_LowTideInnerRoom_FishingMonsInfo = {10, ShoalCave_LowTideInnerRoom_FishingMons}; + +const struct WildPokemon ShoalCave_LowTideStairsRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideStairsRoom_LandMonsInfo = {10, ShoalCave_LowTideStairsRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideLowerRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {32, 32, SPECIES_ZUBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, + {32, 32, SPECIES_GOLBAT}, + {32, 32, SPECIES_SPHEAL}, +}; +const struct WildPokemonInfo ShoalCave_LowTideLowerRoom_LandMonsInfo = {10, ShoalCave_LowTideLowerRoom_LandMons}; + +const struct WildPokemon ShoalCave_LowTideIceRoom_LandMons [] = +{ + {26, 26, SPECIES_ZUBAT}, + {26, 26, SPECIES_SPHEAL}, + {28, 28, SPECIES_ZUBAT}, + {28, 28, SPECIES_SPHEAL}, + {30, 30, SPECIES_ZUBAT}, + {30, 30, SPECIES_SPHEAL}, + {26, 26, SPECIES_SNORUNT}, + {32, 32, SPECIES_SPHEAL}, + {30, 30, SPECIES_GOLBAT}, + {28, 28, SPECIES_SNORUNT}, + {32, 32, SPECIES_GOLBAT}, + {30, 30, SPECIES_SNORUNT}, +}; +const struct WildPokemonInfo ShoalCave_LowTideIceRoom_LandMonsInfo = {10, ShoalCave_LowTideIceRoom_LandMons}; + +const struct WildPokemon NewMauville_Entrance_LandMons [] = +{ + {24, 24, SPECIES_VOLTORB}, + {24, 24, SPECIES_MAGNEMITE}, + {25, 25, SPECIES_VOLTORB}, + {25, 25, SPECIES_MAGNEMITE}, + {23, 23, SPECIES_VOLTORB}, + {23, 23, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_VOLTORB}, + {26, 26, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, +}; +const struct WildPokemonInfo NewMauville_Entrance_LandMonsInfo = {10, NewMauville_Entrance_LandMons}; + +const struct WildPokemon NewMauville_Inside_LandMons [] = +{ + {24, 24, SPECIES_VOLTORB}, + {24, 24, SPECIES_MAGNEMITE}, + {25, 25, SPECIES_VOLTORB}, + {25, 25, SPECIES_MAGNEMITE}, + {23, 23, SPECIES_VOLTORB}, + {23, 23, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_VOLTORB}, + {26, 26, SPECIES_MAGNEMITE}, + {22, 22, SPECIES_VOLTORB}, + {22, 22, SPECIES_MAGNEMITE}, + {26, 26, SPECIES_ELECTRODE}, + {26, 26, SPECIES_MAGNETON}, +}; +const struct WildPokemonInfo NewMauville_Inside_LandMonsInfo = {10, NewMauville_Inside_LandMons}; + +const struct WildPokemon AbandonedShip_Rooms_B1F_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_Rooms_B1F_WaterMonsInfo = {4, AbandonedShip_Rooms_B1F_WaterMons}; + +const struct WildPokemon AbandonedShip_Rooms_B1F_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_TENTACOOL}, + {25, 30, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, + {25, 30, SPECIES_TENTACRUEL}, + {20, 25, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_Rooms_B1F_FishingMonsInfo = {20, AbandonedShip_Rooms_B1F_FishingMons}; + +const struct WildPokemon AbandonedShip_HiddenFloorCorridors_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {5, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_HiddenFloorCorridors_WaterMonsInfo = {4, AbandonedShip_HiddenFloorCorridors_WaterMons}; + +const struct WildPokemon AbandonedShip_HiddenFloorCorridors_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_TENTACOOL}, + {25, 30, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACOOL}, + {30, 35, SPECIES_TENTACRUEL}, + {25, 30, SPECIES_TENTACRUEL}, + {20, 25, SPECIES_TENTACRUEL}, +}; +const struct WildPokemonInfo AbandonedShip_HiddenFloorCorridors_FishingMonsInfo = {20, AbandonedShip_HiddenFloorCorridors_FishingMons}; + +const struct WildPokemon SkyPillar_1F_LandMons [] = +{ +#ifdef SAPPHIRE + {48, 48, SPECIES_SABLEYE}, +#else + {48, 48, SPECIES_MAWILE}, +#endif + {48, 48, SPECIES_GOLBAT}, + {50, 50, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {50, 50, SPECIES_SABLEYE}, +#else + {50, 50, SPECIES_MAWILE}, +#endif + {48, 48, SPECIES_CLAYDOL}, +#ifdef SAPPHIRE + {48, 48, SPECIES_BANETTE}, + {50, 50, SPECIES_BANETTE}, +#else + {48, 48, SPECIES_DUSCLOPS}, + {50, 50, SPECIES_DUSCLOPS}, +#endif + {49, 49, SPECIES_CLAYDOL}, + {47, 47, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, + {47, 47, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, +}; +const struct WildPokemonInfo SkyPillar_1F_LandMonsInfo = {10, SkyPillar_1F_LandMons}; + +const struct WildPokemon SkyPillar_3F_LandMons [] = +{ +#ifdef SAPPHIRE + {51, 51, SPECIES_SABLEYE}, +#else + {51, 51, SPECIES_MAWILE}, +#endif + {51, 51, SPECIES_GOLBAT}, + {53, 53, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {53, 53, SPECIES_SABLEYE}, +#else + {53, 53, SPECIES_MAWILE}, +#endif + {51, 51, SPECIES_CLAYDOL}, +#ifdef SAPPHIRE + {51, 51, SPECIES_BANETTE}, + {53, 53, SPECIES_BANETTE}, +#else + {51, 51, SPECIES_DUSCLOPS}, + {53, 53, SPECIES_DUSCLOPS}, +#endif + {52, 52, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, + {53, 53, SPECIES_CLAYDOL}, + {50, 50, SPECIES_CLAYDOL}, + {53, 53, SPECIES_CLAYDOL}, +}; +const struct WildPokemonInfo SkyPillar_3F_LandMonsInfo = {10, SkyPillar_3F_LandMons}; + +const struct WildPokemon SkyPillar_5F_LandMons [] = +{ +#ifdef SAPPHIRE + {54, 54, SPECIES_SABLEYE}, +#else + {54, 54, SPECIES_MAWILE}, +#endif + {54, 54, SPECIES_GOLBAT}, + {56, 56, SPECIES_GOLBAT}, +#ifdef SAPPHIRE + {56, 56, SPECIES_SABLEYE}, +#else + {56, 56, SPECIES_MAWILE}, +#endif + {54, 54, SPECIES_CLAYDOL}, +#ifdef SAPPHIRE + {54, 54, SPECIES_BANETTE}, + {56, 56, SPECIES_BANETTE}, +#else + {54, 54, SPECIES_DUSCLOPS}, + {56, 56, SPECIES_DUSCLOPS}, +#endif + {55, 55, SPECIES_CLAYDOL}, + {56, 56, SPECIES_CLAYDOL}, + {57, 57, SPECIES_ALTARIA}, + {54, 54, SPECIES_ALTARIA}, + {60, 60, SPECIES_ALTARIA}, +}; +const struct WildPokemonInfo SkyPillar_5F_LandMonsInfo = {10, SkyPillar_5F_LandMons}; + +const struct WildPokemon Route101_LandMons [] = +{ + {2, 2, SPECIES_WURMPLE}, + {2, 2, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_WURMPLE}, + {3, 3, SPECIES_WURMPLE}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_WURMPLE}, + {3, 3, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_POOCHYENA}, + {2, 2, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, +}; +const struct WildPokemonInfo Route101_LandMonsInfo = {20, Route101_LandMons}; + +const struct WildPokemon Route102_LandMons [] = +{ + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_WURMPLE}, + {4, 4, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_WURMPLE}, +#ifdef SAPPHIRE + {3, 3, SPECIES_LOTAD}, + {4, 4, SPECIES_LOTAD}, +#else + {3, 3, SPECIES_SEEDOT}, + {4, 4, SPECIES_SEEDOT}, +#endif + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {4, 4, SPECIES_POOCHYENA}, + {4, 4, SPECIES_RALTS}, + {4, 4, SPECIES_POOCHYENA}, + {3, 3, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route102_LandMonsInfo = {20, Route102_LandMons}; + +const struct WildPokemon Route102_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route102_WaterMonsInfo = {4, Route102_WaterMons}; + +const struct WildPokemon Route102_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, +}; +const struct WildPokemonInfo Route102_FishingMonsInfo = {30, Route102_FishingMons}; + +const struct WildPokemon Route103_LandMons [] = +{ + {2, 2, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {3, 3, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_ZIGZAGOON}, + {2, 2, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {3, 3, SPECIES_POOCHYENA}, + {4, 4, SPECIES_POOCHYENA}, + {3, 3, SPECIES_WINGULL}, + {3, 3, SPECIES_WINGULL}, + {2, 2, SPECIES_WINGULL}, + {4, 4, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo Route103_LandMonsInfo = {20, Route103_LandMons}; + +const struct WildPokemon Route103_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route103_WaterMonsInfo = {4, Route103_WaterMons}; + +const struct WildPokemon Route103_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route103_FishingMonsInfo = {30, Route103_FishingMons}; + +const struct WildPokemon Route104_LandMons [] = +{ + {4, 4, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_WURMPLE}, + {5, 5, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_WURMPLE}, + {4, 4, SPECIES_ZIGZAGOON}, + {5, 5, SPECIES_ZIGZAGOON}, + {4, 4, SPECIES_TAILLOW}, + {5, 5, SPECIES_TAILLOW}, + {4, 4, SPECIES_WINGULL}, + {4, 4, SPECIES_WINGULL}, + {3, 3, SPECIES_WINGULL}, + {5, 5, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo Route104_LandMonsInfo = {20, Route104_LandMons}; + +const struct WildPokemon Route104_WaterMons [] = +{ + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route104_WaterMonsInfo = {4, Route104_WaterMons}; + +const struct WildPokemon Route104_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_MAGIKARP}, + {25, 30, SPECIES_MAGIKARP}, + {30, 35, SPECIES_MAGIKARP}, + {20, 25, SPECIES_MAGIKARP}, + {35, 40, SPECIES_MAGIKARP}, + {40, 45, SPECIES_MAGIKARP}, +}; +const struct WildPokemonInfo Route104_FishingMonsInfo = {30, Route104_FishingMons}; + +const struct WildPokemon Route105_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route105_WaterMonsInfo = {4, Route105_WaterMons}; + +const struct WildPokemon Route105_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route105_FishingMonsInfo = {30, Route105_FishingMons}; + +const struct WildPokemon Route106_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route106_WaterMonsInfo = {4, Route106_WaterMons}; + +const struct WildPokemon Route106_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route106_FishingMonsInfo = {30, Route106_FishingMons}; + +const struct WildPokemon Route107_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route107_WaterMonsInfo = {4, Route107_WaterMons}; + +const struct WildPokemon Route107_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route107_FishingMonsInfo = {30, Route107_FishingMons}; + +const struct WildPokemon Route108_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route108_WaterMonsInfo = {4, Route108_WaterMons}; + +const struct WildPokemon Route108_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route108_FishingMonsInfo = {30, Route108_FishingMons}; + +const struct WildPokemon Route109_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route109_WaterMonsInfo = {4, Route109_WaterMons}; + +const struct WildPokemon Route109_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route109_FishingMonsInfo = {30, Route109_FishingMons}; + +const struct WildPokemon Route110_LandMons [] = +{ + {12, 12, SPECIES_ZIGZAGOON}, + {12, 12, SPECIES_ELECTRIKE}, + {12, 12, SPECIES_GULPIN}, + {13, 13, SPECIES_ELECTRIKE}, +#ifdef SAPPHIRE + {13, 13, SPECIES_PLUSLE}, +#else + {13, 13, SPECIES_MINUN}, +#endif + {13, 13, SPECIES_ODDISH}, +#ifdef SAPPHIRE + {13, 13, SPECIES_PLUSLE}, +#else + {13, 13, SPECIES_MINUN}, +#endif + {13, 13, SPECIES_GULPIN}, + {12, 12, SPECIES_WINGULL}, + {12, 12, SPECIES_WINGULL}, +#ifdef SAPPHIRE + {12, 12, SPECIES_MINUN}, + {13, 13, SPECIES_MINUN}, +#else + {12, 12, SPECIES_PLUSLE}, + {13, 13, SPECIES_PLUSLE}, +#endif +}; +const struct WildPokemonInfo Route110_LandMonsInfo = {20, Route110_LandMons}; + +const struct WildPokemon Route110_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route110_WaterMonsInfo = {4, Route110_WaterMons}; + +const struct WildPokemon Route110_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route110_FishingMonsInfo = {30, Route110_FishingMons}; + +const struct WildPokemon Route111_LandMons [] = +{ + {20, 20, SPECIES_SANDSHREW}, + {20, 20, SPECIES_TRAPINCH}, + {21, 21, SPECIES_SANDSHREW}, + {21, 21, SPECIES_TRAPINCH}, + {19, 19, SPECIES_CACNEA}, + {21, 21, SPECIES_CACNEA}, + {19, 19, SPECIES_SANDSHREW}, + {19, 19, SPECIES_TRAPINCH}, + {20, 20, SPECIES_BALTOY}, + {20, 20, SPECIES_BALTOY}, + {22, 22, SPECIES_BALTOY}, + {22, 22, SPECIES_BALTOY}, +}; +const struct WildPokemonInfo Route111_LandMonsInfo = {10, Route111_LandMons}; + +const struct WildPokemon Route111_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route111_WaterMonsInfo = {4, Route111_WaterMons}; + +const struct WildPokemon Route111_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo Route111_RockSmashMonsInfo = {20, Route111_RockSmashMons}; + +const struct WildPokemon Route111_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo Route111_FishingMonsInfo = {30, Route111_FishingMons}; + +const struct WildPokemon Route112_LandMons [] = +{ + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_NUMEL}, + {15, 15, SPECIES_MACHOP}, + {14, 14, SPECIES_NUMEL}, + {14, 14, SPECIES_NUMEL}, + {14, 14, SPECIES_MACHOP}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_MACHOP}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, + {16, 16, SPECIES_NUMEL}, +}; +const struct WildPokemonInfo Route112_LandMonsInfo = {20, Route112_LandMons}; + +const struct WildPokemon Route113_LandMons [] = +{ + {15, 15, SPECIES_SPINDA}, + {15, 15, SPECIES_SPINDA}, + {15, 15, SPECIES_SANDSHREW}, + {14, 14, SPECIES_SPINDA}, + {14, 14, SPECIES_SPINDA}, + {14, 14, SPECIES_SANDSHREW}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SANDSHREW}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SKARMORY}, + {16, 16, SPECIES_SPINDA}, + {16, 16, SPECIES_SKARMORY}, +}; +const struct WildPokemonInfo Route113_LandMonsInfo = {20, Route113_LandMons}; + +const struct WildPokemon Route114_LandMons [] = +{ + {16, 16, SPECIES_SWABLU}, +#ifdef SAPPHIRE + {16, 16, SPECIES_LOTAD}, +#else + {16, 16, SPECIES_SEEDOT}, +#endif + {17, 17, SPECIES_SWABLU}, + {15, 15, SPECIES_SWABLU}, +#ifdef SAPPHIRE + {15, 15, SPECIES_LOTAD}, + {16, 16, SPECIES_SEVIPER}, + {16, 16, SPECIES_LOMBRE}, + {18, 18, SPECIES_LOMBRE}, + {17, 17, SPECIES_SEVIPER}, + {15, 15, SPECIES_SEVIPER}, + {17, 17, SPECIES_SEVIPER}, +#else + {15, 15, SPECIES_SEEDOT}, + {16, 16, SPECIES_ZANGOOSE}, + {16, 16, SPECIES_NUZLEAF}, + {18, 18, SPECIES_NUZLEAF}, + {17, 17, SPECIES_ZANGOOSE}, + {15, 15, SPECIES_ZANGOOSE}, + {17, 17, SPECIES_ZANGOOSE}, +#endif + {15, 15, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route114_LandMonsInfo = {20, Route114_LandMons}; + +const struct WildPokemon Route114_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route114_WaterMonsInfo = {4, Route114_WaterMons}; + +const struct WildPokemon Route114_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo Route114_RockSmashMonsInfo = {20, Route114_RockSmashMons}; + +const struct WildPokemon Route114_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo Route114_FishingMonsInfo = {30, Route114_FishingMons}; + +const struct WildPokemon Route115_LandMons [] = +{ + {23, 23, SPECIES_SWABLU}, + {23, 23, SPECIES_TAILLOW}, + {25, 25, SPECIES_SWABLU}, + {24, 24, SPECIES_TAILLOW}, + {25, 25, SPECIES_TAILLOW}, + {25, 25, SPECIES_SWELLOW}, + {24, 24, SPECIES_JIGGLYPUFF}, + {25, 25, SPECIES_JIGGLYPUFF}, + {24, 24, SPECIES_WINGULL}, + {24, 24, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {25, 25, SPECIES_WINGULL}, +}; +const struct WildPokemonInfo Route115_LandMonsInfo = {20, Route115_LandMons}; + +const struct WildPokemon Route115_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route115_WaterMonsInfo = {4, Route115_WaterMons}; + +const struct WildPokemon Route115_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route115_FishingMonsInfo = {30, Route115_FishingMons}; + +const struct WildPokemon Route116_LandMons [] = +{ + {6, 6, SPECIES_ZIGZAGOON}, + {6, 6, SPECIES_WHISMUR}, + {6, 6, SPECIES_NINCADA}, + {7, 7, SPECIES_WHISMUR}, + {7, 7, SPECIES_NINCADA}, + {6, 6, SPECIES_TAILLOW}, + {7, 7, SPECIES_TAILLOW}, + {8, 8, SPECIES_TAILLOW}, + {7, 7, SPECIES_ZIGZAGOON}, + {8, 8, SPECIES_ZIGZAGOON}, + {7, 7, SPECIES_SKITTY}, + {8, 8, SPECIES_SKITTY}, +}; +const struct WildPokemonInfo Route116_LandMonsInfo = {20, Route116_LandMons}; + +const struct WildPokemon Route117_LandMons [] = +{ + {13, 13, SPECIES_ZIGZAGOON}, + {13, 13, SPECIES_ROSELIA}, + {14, 14, SPECIES_ZIGZAGOON}, + {14, 14, SPECIES_ROSELIA}, + {13, 13, SPECIES_MARILL}, + {13, 13, SPECIES_ODDISH}, +#ifdef SAPPHIRE + {13, 13, SPECIES_VOLBEAT}, + {13, 13, SPECIES_VOLBEAT}, + {14, 14, SPECIES_VOLBEAT}, + {14, 14, SPECIES_VOLBEAT}, + {13, 13, SPECIES_ILLUMISE}, +#else + {13, 13, SPECIES_ILLUMISE}, + {13, 13, SPECIES_ILLUMISE}, + {14, 14, SPECIES_ILLUMISE}, + {14, 14, SPECIES_ILLUMISE}, + {13, 13, SPECIES_VOLBEAT}, +#endif + {13, 13, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route117_LandMonsInfo = {20, Route117_LandMons}; + +const struct WildPokemon Route117_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route117_WaterMonsInfo = {4, Route117_WaterMons}; + +const struct WildPokemon Route117_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_CORPHISH}, + {25, 30, SPECIES_CORPHISH}, + {30, 35, SPECIES_CORPHISH}, + {20, 25, SPECIES_CORPHISH}, + {35, 40, SPECIES_CORPHISH}, + {40, 45, SPECIES_CORPHISH}, +}; +const struct WildPokemonInfo Route117_FishingMonsInfo = {30, Route117_FishingMons}; + +const struct WildPokemon Route118_LandMons [] = +{ + {24, 24, SPECIES_ZIGZAGOON}, + {24, 24, SPECIES_ELECTRIKE}, + {26, 26, SPECIES_ZIGZAGOON}, + {26, 26, SPECIES_ELECTRIKE}, + {26, 26, SPECIES_LINOONE}, + {26, 26, SPECIES_MANECTRIC}, + {25, 25, SPECIES_WINGULL}, + {25, 25, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route118_LandMonsInfo = {20, Route118_LandMons}; + +const struct WildPokemon Route118_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route118_WaterMonsInfo = {4, Route118_WaterMons}; + +const struct WildPokemon Route118_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_CARVANHA}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_CARVANHA}, + {20, 25, SPECIES_CARVANHA}, + {35, 40, SPECIES_CARVANHA}, + {40, 45, SPECIES_CARVANHA}, +}; +const struct WildPokemonInfo Route118_FishingMonsInfo = {30, Route118_FishingMons}; + +const struct WildPokemon Route119_LandMons [] = +{ + {25, 25, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_LINOONE}, + {27, 27, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {24, 24, SPECIES_ODDISH}, + {25, 25, SPECIES_TROPIUS}, + {26, 26, SPECIES_TROPIUS}, + {27, 27, SPECIES_TROPIUS}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route119_LandMonsInfo = {15, Route119_LandMons}; + +const struct WildPokemon Route119_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route119_WaterMonsInfo = {4, Route119_WaterMons}; + +const struct WildPokemon Route119_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_CARVANHA}, + {25, 30, SPECIES_CARVANHA}, + {30, 35, SPECIES_CARVANHA}, + {20, 25, SPECIES_CARVANHA}, + {35, 40, SPECIES_CARVANHA}, + {40, 45, SPECIES_CARVANHA}, +}; +const struct WildPokemonInfo Route119_FishingMonsInfo = {30, Route119_FishingMons}; + +const struct WildPokemon Route120_LandMons [] = +{ + {25, 25, SPECIES_ZIGZAGOON}, + {25, 25, SPECIES_LINOONE}, + {27, 27, SPECIES_LINOONE}, + {25, 25, SPECIES_ODDISH}, + {25, 25, SPECIES_MARILL}, + {26, 26, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {27, 27, SPECIES_MARILL}, + {25, 25, SPECIES_ABSOL}, + {27, 27, SPECIES_ABSOL}, + {25, 25, SPECIES_KECLEON}, + {25, 25, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route120_LandMonsInfo = {20, Route120_LandMons}; + +const struct WildPokemon Route120_WaterMons [] = +{ + {20, 30, SPECIES_MARILL}, + {10, 20, SPECIES_MARILL}, + {30, 35, SPECIES_MARILL}, + {5, 10, SPECIES_MARILL}, + {20, 30, SPECIES_SURSKIT}, +}; +const struct WildPokemonInfo Route120_WaterMonsInfo = {4, Route120_WaterMons}; + +const struct WildPokemon Route120_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_GOLDEEN}, + {10, 30, SPECIES_BARBOACH}, + {25, 30, SPECIES_BARBOACH}, + {30, 35, SPECIES_BARBOACH}, + {20, 25, SPECIES_BARBOACH}, + {35, 40, SPECIES_BARBOACH}, + {40, 45, SPECIES_BARBOACH}, +}; +const struct WildPokemonInfo Route120_FishingMonsInfo = {30, Route120_FishingMons}; + +const struct WildPokemon Route121_LandMons [] = +{ + {26, 26, SPECIES_ZIGZAGOON}, +#ifdef SAPPHIRE + {26, 26, SPECIES_SHUPPET}, +#else + {26, 26, SPECIES_DUSKULL}, +#endif + {26, 26, SPECIES_LINOONE}, +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, +#else + {28, 28, SPECIES_DUSKULL}, +#endif + {28, 28, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {28, 28, SPECIES_ODDISH}, + {28, 28, SPECIES_GLOOM}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route121_LandMonsInfo = {20, Route121_LandMons}; + +const struct WildPokemon Route121_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route121_WaterMonsInfo = {4, Route121_WaterMons}; + +const struct WildPokemon Route121_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route121_FishingMonsInfo = {30, Route121_FishingMons}; + +const struct WildPokemon Route122_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route122_WaterMonsInfo = {4, Route122_WaterMons}; + +const struct WildPokemon Route122_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route122_FishingMonsInfo = {30, Route122_FishingMons}; + +const struct WildPokemon Route123_LandMons [] = +{ + {26, 26, SPECIES_ZIGZAGOON}, +#ifdef SAPPHIRE + {26, 26, SPECIES_SHUPPET}, +#else + {26, 26, SPECIES_DUSKULL}, +#endif + {26, 26, SPECIES_LINOONE}, +#ifdef SAPPHIRE + {28, 28, SPECIES_SHUPPET}, +#else + {28, 28, SPECIES_DUSKULL}, +#endif + {28, 28, SPECIES_LINOONE}, + {26, 26, SPECIES_ODDISH}, + {28, 28, SPECIES_ODDISH}, + {28, 28, SPECIES_GLOOM}, + {26, 26, SPECIES_WINGULL}, + {27, 27, SPECIES_WINGULL}, + {28, 28, SPECIES_WINGULL}, + {25, 25, SPECIES_KECLEON}, +}; +const struct WildPokemonInfo Route123_LandMonsInfo = {20, Route123_LandMons}; + +const struct WildPokemon Route123_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route123_WaterMonsInfo = {4, Route123_WaterMons}; + +const struct WildPokemon Route123_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route123_FishingMonsInfo = {30, Route123_FishingMons}; + +const struct WildPokemon Route124_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route124_WaterMonsInfo = {4, Route124_WaterMons}; + +const struct WildPokemon Route124_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route124_FishingMonsInfo = {30, Route124_FishingMons}; + +const struct WildPokemon Route125_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route125_WaterMonsInfo = {4, Route125_WaterMons}; + +const struct WildPokemon Route125_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route125_FishingMonsInfo = {30, Route125_FishingMons}; + +const struct WildPokemon Route126_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route126_WaterMonsInfo = {4, Route126_WaterMons}; + +const struct WildPokemon Route126_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route126_FishingMonsInfo = {30, Route126_FishingMons}; + +const struct WildPokemon Route127_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route127_WaterMonsInfo = {4, Route127_WaterMons}; + +const struct WildPokemon Route127_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route127_FishingMonsInfo = {30, Route127_FishingMons}; + +const struct WildPokemon Route128_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route128_WaterMonsInfo = {4, Route128_WaterMons}; + +const struct WildPokemon Route128_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_LUVDISC}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_LUVDISC}, + {30, 35, SPECIES_WAILMER}, + {30, 35, SPECIES_CORSOLA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route128_FishingMonsInfo = {30, Route128_FishingMons}; + +const struct WildPokemon Route129_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, +#ifdef SAPPHIRE + {25, 30, SPECIES_WAILORD}, +#else + {35, 40, SPECIES_WAILORD}, +#endif +}; +const struct WildPokemonInfo Route129_WaterMonsInfo = {4, Route129_WaterMons}; + +const struct WildPokemon Route129_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route129_FishingMonsInfo = {30, Route129_FishingMons}; + +const struct WildPokemon Route130_LandMons [] = +{ + {30, 30, SPECIES_WYNAUT}, + {35, 35, SPECIES_WYNAUT}, + {25, 25, SPECIES_WYNAUT}, + {40, 40, SPECIES_WYNAUT}, + {20, 20, SPECIES_WYNAUT}, + {45, 45, SPECIES_WYNAUT}, + {15, 15, SPECIES_WYNAUT}, + {50, 50, SPECIES_WYNAUT}, + {10, 10, SPECIES_WYNAUT}, + {5, 5, SPECIES_WYNAUT}, + {10, 10, SPECIES_WYNAUT}, + {5, 5, SPECIES_WYNAUT}, +}; +const struct WildPokemonInfo Route130_LandMonsInfo = {20, Route130_LandMons}; + +const struct WildPokemon Route130_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route130_WaterMonsInfo = {4, Route130_WaterMons}; + +const struct WildPokemon Route130_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route130_FishingMonsInfo = {30, Route130_FishingMons}; + +const struct WildPokemon Route131_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route131_WaterMonsInfo = {4, Route131_WaterMons}; + +const struct WildPokemon Route131_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route131_FishingMonsInfo = {30, Route131_FishingMons}; + +const struct WildPokemon Route132_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route132_WaterMonsInfo = {4, Route132_WaterMons}; + +const struct WildPokemon Route132_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route132_FishingMonsInfo = {30, Route132_FishingMons}; + +const struct WildPokemon Route133_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route133_WaterMonsInfo = {4, Route133_WaterMons}; + +const struct WildPokemon Route133_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route133_FishingMonsInfo = {30, Route133_FishingMons}; + +const struct WildPokemon Route134_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo Route134_WaterMonsInfo = {4, Route134_WaterMons}; + +const struct WildPokemon Route134_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_HORSEA}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo Route134_FishingMonsInfo = {30, Route134_FishingMons}; + +const struct WildPokemon SafariZone_Northwest_LandMons [] = +{ + {27, 27, SPECIES_RHYHORN}, + {27, 27, SPECIES_ODDISH}, + {29, 29, SPECIES_RHYHORN}, + {29, 29, SPECIES_ODDISH}, + {27, 27, SPECIES_DODUO}, + {29, 29, SPECIES_GLOOM}, + {31, 31, SPECIES_GLOOM}, + {29, 29, SPECIES_DODUO}, + {29, 29, SPECIES_DODRIO}, + {27, 27, SPECIES_PINSIR}, + {31, 31, SPECIES_DODRIO}, + {29, 29, SPECIES_PINSIR}, +}; +const struct WildPokemonInfo SafariZone_Northwest_LandMonsInfo = {25, SafariZone_Northwest_LandMons}; + +const struct WildPokemon SafariZone_Northwest_WaterMons [] = +{ + {20, 30, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_GOLDUCK}, + {25, 40, SPECIES_GOLDUCK}, +}; +const struct WildPokemonInfo SafariZone_Northwest_WaterMonsInfo = {9, SafariZone_Northwest_WaterMons}; + +const struct WildPokemon SafariZone_Northwest_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 25, SPECIES_GOLDEEN}, + {10, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_GOLDEEN}, + {30, 35, SPECIES_SEAKING}, + {35, 40, SPECIES_SEAKING}, + {25, 30, SPECIES_SEAKING}, +}; +const struct WildPokemonInfo SafariZone_Northwest_FishingMonsInfo = {35, SafariZone_Northwest_FishingMons}; + +const struct WildPokemon SafariZone_Northeast_LandMons [] = +{ + {27, 27, SPECIES_PHANPY}, + {27, 27, SPECIES_ODDISH}, + {29, 29, SPECIES_PHANPY}, + {29, 29, SPECIES_ODDISH}, + {27, 27, SPECIES_NATU}, + {29, 29, SPECIES_GLOOM}, + {31, 31, SPECIES_GLOOM}, + {29, 29, SPECIES_NATU}, + {29, 29, SPECIES_XATU}, + {27, 27, SPECIES_HERACROSS}, + {31, 31, SPECIES_XATU}, + {29, 29, SPECIES_HERACROSS}, +}; +const struct WildPokemonInfo SafariZone_Northeast_LandMonsInfo = {25, SafariZone_Northeast_LandMons}; + +const struct WildPokemon SafariZone_Northeast_RockSmashMons [] = +{ + {10, 15, SPECIES_GEODUDE}, + {5, 10, SPECIES_GEODUDE}, + {15, 20, SPECIES_GEODUDE}, + {20, 25, SPECIES_GEODUDE}, + {25, 30, SPECIES_GEODUDE}, +}; +const struct WildPokemonInfo SafariZone_Northeast_RockSmashMonsInfo = {25, SafariZone_Northeast_RockSmashMons}; + +const struct WildPokemon SafariZone_Southwest_LandMons [] = +{ + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {25, 25, SPECIES_GIRAFARIG}, + {27, 27, SPECIES_GIRAFARIG}, + {25, 25, SPECIES_NATU}, +#ifdef SAPPHIRE + {27, 27, SPECIES_DODUO}, +#else + {25, 25, SPECIES_DODUO}, +#endif + {25, 25, SPECIES_GLOOM}, + {27, 27, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_PIKACHU}, + {27, 27, SPECIES_WOBBUFFET}, + {27, 27, SPECIES_PIKACHU}, + {29, 29, SPECIES_WOBBUFFET}, +}; +const struct WildPokemonInfo SafariZone_Southwest_LandMonsInfo = {25, SafariZone_Southwest_LandMons}; + +const struct WildPokemon SafariZone_Southwest_WaterMons [] = +{ + {20, 30, SPECIES_PSYDUCK}, + {20, 30, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, + {30, 35, SPECIES_PSYDUCK}, +}; +const struct WildPokemonInfo SafariZone_Southwest_WaterMonsInfo = {9, SafariZone_Southwest_WaterMons}; + +const struct WildPokemon SafariZone_Southwest_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_GOLDEEN}, + {10, 30, SPECIES_MAGIKARP}, + {10, 25, SPECIES_GOLDEEN}, + {10, 30, SPECIES_GOLDEEN}, + {25, 30, SPECIES_GOLDEEN}, + {30, 35, SPECIES_GOLDEEN}, + {30, 35, SPECIES_SEAKING}, + {35, 40, SPECIES_SEAKING}, + {25, 30, SPECIES_SEAKING}, +}; +const struct WildPokemonInfo SafariZone_Southwest_FishingMonsInfo = {35, SafariZone_Southwest_FishingMons}; + +const struct WildPokemon SafariZone_Southeast_LandMons [] = +{ + {25, 25, SPECIES_ODDISH}, + {27, 27, SPECIES_ODDISH}, + {25, 25, SPECIES_GIRAFARIG}, + {27, 27, SPECIES_GIRAFARIG}, + {25, 25, SPECIES_NATU}, + {25, 25, SPECIES_DODUO}, + {25, 25, SPECIES_GLOOM}, + {27, 27, SPECIES_WOBBUFFET}, + {25, 25, SPECIES_PIKACHU}, + {27, 27, SPECIES_WOBBUFFET}, + {27, 27, SPECIES_PIKACHU}, + {29, 29, SPECIES_WOBBUFFET}, +}; +const struct WildPokemonInfo SafariZone_Southeast_LandMonsInfo = {25, SafariZone_Southeast_LandMons}; + +const struct WildPokemon DewfordTown_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo DewfordTown_WaterMonsInfo = {4, DewfordTown_WaterMons}; + +const struct WildPokemon DewfordTown_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_WAILMER}, + {20, 25, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo DewfordTown_FishingMonsInfo = {10, DewfordTown_FishingMons}; + +const struct WildPokemon PacifidlogTown_WaterMons [] = +{ + {5, 35, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WINGULL}, + {15, 25, SPECIES_WINGULL}, + {25, 30, SPECIES_PELIPPER}, + {25, 30, SPECIES_PELIPPER}, +}; +const struct WildPokemonInfo PacifidlogTown_WaterMonsInfo = {4, PacifidlogTown_WaterMons}; + +const struct WildPokemon PacifidlogTown_FishingMons [] = +{ + {5, 10, SPECIES_MAGIKARP}, + {5, 10, SPECIES_TENTACOOL}, + {10, 30, SPECIES_MAGIKARP}, + {10, 30, SPECIES_TENTACOOL}, + {10, 30, SPECIES_WAILMER}, + {30, 35, SPECIES_SHARPEDO}, + {30, 35, SPECIES_WAILMER}, + {25, 30, SPECIES_WAILMER}, + {35, 40, SPECIES_WAILMER}, + {40, 45, SPECIES_WAILMER}, +}; +const struct WildPokemonInfo PacifidlogTown_FishingMonsInfo = {10, PacifidlogTown_FishingMons}; + +const struct WildPokemon Underwater1_WaterMons [] = +{ + {20, 30, SPECIES_CLAMPERL}, + {20, 30, SPECIES_CHINCHOU}, + {30, 35, SPECIES_CLAMPERL}, + {30, 35, SPECIES_RELICANTH}, + {30, 35, SPECIES_RELICANTH}, +}; +const struct WildPokemonInfo Underwater1_WaterMonsInfo = {4, Underwater1_WaterMons}; + +const struct WildPokemon Underwater2_WaterMons [] = +{ + {20, 30, SPECIES_CLAMPERL}, + {20, 30, SPECIES_CHINCHOU}, + {30, 35, SPECIES_CLAMPERL}, + {30, 35, SPECIES_RELICANTH}, + {30, 35, SPECIES_RELICANTH}, +}; +const struct WildPokemonInfo Underwater2_WaterMonsInfo = {4, Underwater2_WaterMons}; + + extern u16 gRoute119WaterTileData[]; extern struct WildPokemonHeader gWildMonHeaders[]; extern struct Pokemon gEnemyParty[6]; @@ -234,7 +3119,7 @@ static u8 ChooseWildMonIndex_Fishing(u8 rod) return wildMonIndex; } -static u8 ChooseWildMonLevel(struct WildPokemon *wildPokemon) +static u8 ChooseWildMonLevel(const struct WildPokemon *wildPokemon) { u8 min; u8 max; diff --git a/sym_ewram.txt b/sym_ewram.txt index 1e0c06359..001321ea7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -137,10 +137,10 @@ gUnknown_02024C04: @ 2024C04 byte_2024C06: @ 2024C06 .space 0x1 -gUnknown_02024C07: @ 2024C07 +gPlayerMonIndex: @ 2024C07 .space 0x1 -gUnknown_02024C08: @ 2024C08 +gEnemyMonIndex: @ 2024C08 .space 0x1 gUnknown_02024C09: @ 2024C09 diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile index 71c4389ef..c408e4a6e 100644 --- a/tools/scaninc/Makefile +++ b/tools/scaninc/Makefile @@ -1,6 +1,6 @@ CXX = g++ -CXXFLAGS = -Wall -std=c++11 -O2 +CXXFLAGS = -Wall -std=c++14 -O2 SRCS = scaninc.cpp c_file.cpp asm_file.cpp diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp index 4af741f6e..970fbe135 100644 --- a/tools/scaninc/c_file.cpp +++ b/tools/scaninc/c_file.cpp @@ -202,9 +202,9 @@ void CFile::SkipWhitespace() bool CFile::CheckIdentifier(const std::string& ident) { - int i; + unsigned int i; - for (i = 0; (unsigned)i < ident.length() && m_pos + i < m_size; i++) + for (i = 0; i < ident.length() && m_pos + i < (unsigned)m_size; i++) if (ident[i] != m_buffer[m_pos + i]) return false; diff --git a/tools/scaninc/c_file.h b/tools/scaninc/c_file.h index fcd327d28..2503acac1 100644 --- a/tools/scaninc/c_file.h +++ b/tools/scaninc/c_file.h @@ -42,11 +42,11 @@ private: std::string m_path; std::set<std::string> m_incbins; - void CFile::RemoveComments(); + void RemoveComments(); bool ConsumeHorizontalWhitespace(); bool ConsumeNewline(); void SkipWhitespace(); - std::unique_ptr<unsigned char[]> CFile::ReadWholeFile(const std::string& path, int& size); + std::unique_ptr<unsigned char[]> ReadWholeFile(const std::string& path, int& size); bool CheckIdentifier(const std::string& ident); void CheckIncbin(); }; |