diff options
-rw-r--r-- | asm/party_menu.s | 4 | ||||
-rw-r--r-- | asm/pokemon_item_effect.s | 4 | ||||
-rw-r--r-- | asm/rom_800D42C.s | 698 | ||||
-rw-r--r-- | data/battle_ai.s | 117 | ||||
-rw-r--r-- | include/asm.h | 9 | ||||
-rw-r--r-- | include/battle_move_effects.h | 222 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/battle_ai.c | 572 | ||||
-rw-r--r-- | src/field_control_avatar.c | 158 | ||||
-rw-r--r-- | sym_ewram.txt | 4 |
10 files changed, 1063 insertions, 727 deletions
diff --git a/asm/party_menu.s b/asm/party_menu.s index 0edec1623..9d8377f7e 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -9414,7 +9414,7 @@ _0806F8FC: strh r3, [r0] _0806F900: adds r5, r0, 0 - ldr r1, _0806F940 @ =gUnknown_02024BEC + ldr r1, _0806F940 @ =gBattleMoveDamage ldrh r0, [r5] negs r0, r0 str r0, [r1] @@ -9442,7 +9442,7 @@ _0806F900: bl StringExpandPlaceholders b _0806F964 .align 2, 0 -_0806F940: .4byte gUnknown_02024BEC +_0806F940: .4byte gBattleMoveDamage _0806F944: .4byte 0x0201c000 _0806F948: .4byte gStringVar1 _0806F94C: .4byte gStringVar2 diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index a8a0ce89d..3a97f8a04 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -1200,7 +1200,7 @@ _0803EB34: .4byte gBattleMons _0803EB38: .4byte gUnknown_02024A60 _0803EB3C: .4byte gUnknown_030042E0 _0803EB40: - ldr r1, _0803EB58 @ =gUnknown_02024BEC + ldr r1, _0803EB58 @ =gBattleMoveDamage ldr r0, [sp] negs r0, r0 str r0, [r1] @@ -1214,7 +1214,7 @@ _0803EB4C: mov r10, r2 b _0803EE0A .align 2, 0 -_0803EB58: .4byte gUnknown_02024BEC +_0803EB58: .4byte gBattleMoveDamage _0803EB5C: movs r7, 0x2 mov r0, r10 diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s index 57a727072..57beffdbd 100644 --- a/asm/rom_800D42C.s +++ b/asm/rom_800D42C.s @@ -6401,7 +6401,7 @@ _08010994: ldr r0, _08010B3C @ =gUnknown_02024D18 strh r5, [r0] movs r0, 0 - ldr r1, _08010B40 @ =gUnknown_02024BEC + ldr r1, _08010B40 @ =gBattleMoveDamage str r0, [r1] ldr r2, _08010B44 @ =gUnknown_02024DE8 strh r0, [r2] @@ -6579,7 +6579,7 @@ _08010B30: .4byte 0x00017130 _08010B34: .4byte 0x00017160 _08010B38: .4byte gUnknown_02024D1E _08010B3C: .4byte gUnknown_02024D18 -_08010B40: .4byte gUnknown_02024BEC +_08010B40: .4byte gBattleMoveDamage _08010B44: .4byte gUnknown_02024DE8 _08010B48: .4byte 0x00016002 _08010B4C: .4byte 0x000160a1 @@ -8790,7 +8790,7 @@ _08011D06: movs r5, 0 ldr r3, _08011D84 @ =gUnknown_02024A68 ldr r2, _08011D7C @ =0x02000000 - ldr r6, _08011DB0 @ =gUnknown_02024C68 + ldr r6, _08011DB0 @ =gBattleMoveFlags ldrb r0, [r3] cmp r5, r0 bge _08011D36 @@ -8858,7 +8858,7 @@ _08011DA0: .4byte 0x000160a6 _08011DA4: .4byte gUnknown_030042D4 _08011DA8: .4byte sub_8012324 _08011DAC: .4byte gUnknown_02024D1E -_08011DB0: .4byte gUnknown_02024C68 +_08011DB0: .4byte gBattleMoveFlags _08011DB4: .4byte gBattleMons _08011DB8: .4byte 0x00016001 _08011DBC: .4byte 0x00016110 @@ -8942,7 +8942,7 @@ _08011E32: ldr r1, _08011E84 @ =0x0001600e adds r0, r1 strb r2, [r0] - ldr r0, _08011E88 @ =gUnknown_02024C68 + ldr r0, _08011E88 @ =gBattleMoveFlags strb r2, [r0] _08011E5A: pop {r4-r6} @@ -8959,7 +8959,7 @@ _08011E78: .4byte 0x02000000 _08011E7C: .4byte 0x00016001 _08011E80: .4byte 0x00016110 _08011E84: .4byte 0x0001600e -_08011E88: .4byte gUnknown_02024C68 +_08011E88: .4byte gBattleMoveFlags thumb_func_end bc_8013B1C thumb_func_start sub_8011E8C @@ -9027,9 +9027,9 @@ _08011EE0: ldr r2, _08011F64 @ =0x0001600c adds r0, r5, r2 strb r4, [r0] - ldr r0, _08011F68 @ =gUnknown_02024BEC + ldr r0, _08011F68 @ =gBattleMoveDamage str r4, [r0] - ldr r0, _08011F6C @ =gUnknown_02024C68 + ldr r0, _08011F6C @ =gBattleMoveFlags strb r4, [r0] ldr r1, _08011F70 @ =gUnknown_02024D1E movs r2, 0 @@ -9062,8 +9062,8 @@ _08011F58: .4byte 0xffefffff _08011F5C: .4byte 0x00016002 _08011F60: .4byte 0x000160a1 _08011F64: .4byte 0x0001600c -_08011F68: .4byte gUnknown_02024BEC -_08011F6C: .4byte gUnknown_02024C68 +_08011F68: .4byte gBattleMoveDamage +_08011F6C: .4byte gBattleMoveFlags _08011F70: .4byte gUnknown_02024D1E _08011F74: .4byte gUnknown_02024A7F _08011F78: .4byte gUnknown_030042D4 @@ -13037,7 +13037,7 @@ _08014044: ldr r0, _080140C0 @ =0x000160e7 add r0, r10 strb r2, [r0] - ldr r0, _080140C4 @ =gUnknown_02024C68 + ldr r0, _080140C4 @ =gBattleMoveFlags strb r2, [r0] ldr r0, _080140C8 @ =gUnknown_02024C0E strb r2, [r0] @@ -13088,7 +13088,7 @@ _08014044: _080140B8: .4byte gCritMultiplier _080140BC: .4byte 0x0001601f _080140C0: .4byte 0x000160e7 -_080140C4: .4byte gUnknown_02024C68 +_080140C4: .4byte gBattleMoveFlags _080140C8: .4byte gUnknown_02024C0E _080140CC: .4byte gUnknown_02024D1E _080140D0: .4byte gUnknown_02024BE4 @@ -14987,7 +14987,7 @@ bsC_8016D70: @ 8015094 ldr r1, _0801511C @ =0xf1e892af ands r0, r1 str r0, [r2] - ldr r0, _08015120 @ =gUnknown_02024BEC + ldr r0, _08015120 @ =gBattleMoveDamage movs r4, 0 str r4, [r0] ldr r1, _08015124 @ =0x02000000 @@ -15035,7 +15035,7 @@ _08015110: .4byte gUnknown_02024A7F _08015114: .4byte gUnknown_02024A76 _08015118: .4byte gUnknown_02024C6C _0801511C: .4byte 0xf1e892af -_08015120: .4byte gUnknown_02024BEC +_08015120: .4byte gBattleMoveDamage _08015124: .4byte 0x02000000 _08015128: .4byte 0x00016002 _0801512C: .4byte 0x000160a1 @@ -17707,7 +17707,7 @@ _08016638: beq _08016686 cmp r2, 0 beq _08016686 - ldr r1, _0801669C @ =gUnknown_02024BEC + ldr r1, _0801669C @ =gBattleMoveDamage ldrh r0, [r0, 0x2C] lsrs r0, 4 str r0, [r1] @@ -17735,7 +17735,7 @@ _08016686: .align 2, 0 _08016694: .4byte gUnknown_02024C98 _08016698: .4byte gBattleMons -_0801669C: .4byte gUnknown_02024BEC +_0801669C: .4byte gBattleMoveDamage _080166A0: .4byte gUnknown_081D93D1 _080166A4: .4byte 0x02000000 _080166A8: @@ -17832,7 +17832,7 @@ _08016730: beq _0801679C ldr r0, _080167B0 @ =gUnknown_02024C08 strb r5, [r0] - ldr r2, _080167B4 @ =gUnknown_02024BEC + ldr r2, _080167B4 @ =gBattleMoveDamage ldrb r0, [r6] muls r0, r1 adds r0, r3 @@ -17869,7 +17869,7 @@ _0801679C: _080167A8: .4byte gUnknown_02024C98 _080167AC: .4byte gBattleMons _080167B0: .4byte gUnknown_02024C08 -_080167B4: .4byte gUnknown_02024BEC +_080167B4: .4byte gBattleMoveDamage _080167B8: .4byte 0x02000000 _080167BC: .4byte 0x000160a4 _080167C0: .4byte 0x000160a5 @@ -17892,7 +17892,7 @@ _080167C8: ldrh r0, [r1, 0x28] cmp r0, 0 beq _0801680A - ldr r2, _0801681C @ =gUnknown_02024BEC + ldr r2, _0801681C @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 3 str r0, [r2] @@ -17916,7 +17916,7 @@ _0801680A: bl _08017072 .align 2, 0 _08016818: .4byte gBattleMons -_0801681C: .4byte gUnknown_02024BEC +_0801681C: .4byte gBattleMoveDamage _08016820: .4byte gUnknown_081D9518 _08016824: .4byte 0x02000000 _08016828: @@ -17938,7 +17938,7 @@ _08016828: ldrh r0, [r1, 0x28] cmp r0, 0 beq _080168A2 - ldr r5, _080168B4 @ =gUnknown_02024BEC + ldr r5, _080168B4 @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 4 str r0, [r5] @@ -17990,7 +17990,7 @@ _080168A2: bl _08017072 .align 2, 0 _080168B0: .4byte gBattleMons -_080168B4: .4byte gUnknown_02024BEC +_080168B4: .4byte gBattleMoveDamage _080168B8: .4byte gUnknown_081D9518 _080168BC: .4byte 0x02000000 _080168C0: @@ -18011,7 +18011,7 @@ _080168C0: ldrh r0, [r1, 0x28] cmp r0, 0 beq _08016902 - ldr r2, _08016910 @ =gUnknown_02024BEC + ldr r2, _08016910 @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 3 str r0, [r2] @@ -18035,7 +18035,7 @@ _08016902: b _08017072 .align 2, 0 _0801690C: .4byte gBattleMons -_08016910: .4byte gUnknown_02024BEC +_08016910: .4byte gBattleMoveDamage _08016914: .4byte gUnknown_081D953A _08016918: .4byte 0x02000000 _0801691C: @@ -18057,7 +18057,7 @@ _0801691C: ldrh r0, [r1, 0x28] cmp r0, 0 beq _08016960 - ldr r2, _08016970 @ =gUnknown_02024BEC + ldr r2, _08016970 @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] @@ -18081,7 +18081,7 @@ _08016960: b _08017072 .align 2, 0 _0801696C: .4byte gBattleMons -_08016970: .4byte gUnknown_02024BEC +_08016970: .4byte gBattleMoveDamage _08016974: .4byte gUnknown_081D9613 _08016978: .4byte 0x02000000 _0801697C: @@ -18103,7 +18103,7 @@ _0801697C: ldrh r0, [r1, 0x28] cmp r0, 0 beq _080169C0 - ldr r2, _080169D0 @ =gUnknown_02024BEC + ldr r2, _080169D0 @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] @@ -18127,7 +18127,7 @@ _080169C0: b _08017072 .align 2, 0 _080169CC: .4byte gBattleMons -_080169D0: .4byte gUnknown_02024BEC +_080169D0: .4byte gBattleMoveDamage _080169D4: .4byte gUnknown_081D9624 _080169D8: .4byte 0x02000000 _080169DC: @@ -18204,7 +18204,7 @@ _080169DC: ldr r1, _08016AA8 @ =gUnknown_02024C10 ldr r0, _08016AAC @ =gUnknown_081D95E2 str r0, [r1] - ldr r2, _08016AB0 @ =gUnknown_02024BEC + ldr r2, _08016AB0 @ =gBattleMoveDamage ldrb r0, [r6] mov r7, r10 muls r7, r0 @@ -18228,7 +18228,7 @@ _08016AA0: .4byte 0x000160a5 _08016AA4: .4byte gUnknown_030041C0 _08016AA8: .4byte gUnknown_02024C10 _08016AAC: .4byte gUnknown_081D95E2 -_08016AB0: .4byte gUnknown_02024BEC +_08016AB0: .4byte gBattleMoveDamage _08016AB4: ldr r1, _08016B00 @ =gUnknown_030041C0 movs r0, 0xFD @@ -19140,7 +19140,7 @@ _080171C6: adds r0, r2 ldrb r0, [r0] strb r0, [r1] - ldr r1, _0801722C @ =gUnknown_02024BEC + ldr r1, _0801722C @ =gBattleMoveDamage ldrb r0, [r4] lsls r0, 2 add r0, r10 @@ -19161,7 +19161,7 @@ _080171C6: _08017220: .4byte gUnknown_02024D1E _08017224: .4byte gUnknown_02024C08 _08017228: .4byte gUnknown_02024C07 -_0801722C: .4byte gUnknown_02024BEC +_0801722C: .4byte gBattleMoveDamage _08017230: .4byte gUnknown_02024D68 _08017234: .4byte 0x0000ffff _08017238: .4byte gUnknown_081D92D7 @@ -19274,7 +19274,7 @@ _080172C4: negs r1, r1 ands r0, r1 str r0, [r2] - ldr r3, _08017338 @ =gUnknown_02024BEC + ldr r3, _08017338 @ =gBattleMoveDamage ldr r2, _0801733C @ =gBattleMons ldrb r1, [r5] movs r0, 0x58 @@ -19287,7 +19287,7 @@ _080172C4: b _08017360 .align 2, 0 _08017334: .4byte gUnknown_02024C98 -_08017338: .4byte gUnknown_02024BEC +_08017338: .4byte gBattleMoveDamage _0801733C: .4byte gBattleMons _08017340: .4byte gUnknown_02024C10 _08017344: .4byte gUnknown_081D9202 @@ -20125,7 +20125,7 @@ _08017A02: ldr r1, _08017A44 @ =gUnknown_02024C10 ldr r0, _08017A48 @ =gUnknown_081D9977 str r0, [r1] - ldr r2, _08017A4C @ =gUnknown_02024C68 + ldr r2, _08017A4C @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -20141,7 +20141,7 @@ _08017A3C: .4byte gUnknown_02024C6C _08017A40: .4byte gUnknown_02024D1E _08017A44: .4byte gUnknown_02024C10 _08017A48: .4byte gUnknown_081D9977 -_08017A4C: .4byte gUnknown_02024C68 +_08017A4C: .4byte gBattleMoveFlags _08017A50: ldr r1, _08017AA4 @ =gBattleMons ldr r3, _08017AA8 @ =gUnknown_02024C07 @@ -20439,7 +20439,7 @@ _08017CB8: movs r2, 0x1 movs r3, 0 bl CalculateBaseDamage - ldr r1, _08017D10 @ =gUnknown_02024BEC + ldr r1, _08017D10 @ =gBattleMoveDamage str r0, [r1] ldr r0, _08017D14 @ =gUnknown_02024D28 ldrb r1, [r5] @@ -20461,7 +20461,7 @@ _08017D02: .align 2, 0 _08017D08: .4byte gUnknown_02024D1E _08017D0C: .4byte gUnknown_02024C08 -_08017D10: .4byte gUnknown_02024BEC +_08017D10: .4byte gBattleMoveDamage _08017D14: .4byte gUnknown_02024D28 _08017D18: .4byte gUnknown_02024C6C _08017D1C: .4byte gUnknown_02024C10 @@ -21864,7 +21864,7 @@ _080188AA: strb r5, [r2] ldr r0, _080188D4 @ =gUnknown_081D9730 bl b_push_move_exec - ldr r1, _080188D8 @ =gUnknown_02024BEC + ldr r1, _080188D8 @ =gBattleMoveDamage ldrh r0, [r4, 0x2C] lsrs r0, 4 str r0, [r1] @@ -21880,7 +21880,7 @@ _080188C4: .align 2, 0 _080188D0: .4byte gBattleWeather _080188D4: .4byte gUnknown_081D9730 -_080188D8: .4byte gUnknown_02024BEC +_080188D8: .4byte gBattleMoveDamage _080188DC: adds r0, r2, 0 adds r0, 0x4C @@ -22352,7 +22352,7 @@ _08018CBC: _08018CC8: .4byte gUnknown_02024C10 _08018CCC: .4byte gUnknown_081D9865 _08018CD0: - ldr r2, _08018CEC @ =gUnknown_02024BEC + ldr r2, _08018CEC @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 2 str r0, [r2] @@ -22366,7 +22366,7 @@ _08018CE0: str r0, [r2] bl _08019F76 .align 2, 0 -_08018CEC: .4byte gUnknown_02024BEC +_08018CEC: .4byte gBattleMoveDamage _08018CF0: mov r5, r8 ldrb r0, [r5] @@ -22433,7 +22433,7 @@ _08018D0C: .4byte _08019F76 .4byte _080192E0 _08018DCC: - ldr r0, _08018E74 @ =gUnknown_02024C68 + ldr r0, _08018E74 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -22516,7 +22516,7 @@ _08018E52: str r0, [r1] bl _08019F22 .align 2, 0 -_08018E74: .4byte gUnknown_02024C68 +_08018E74: .4byte gBattleMoveFlags _08018E78: .4byte gBattleMoves _08018E7C: .4byte gUnknown_02024D68 _08018E80: .4byte gUnknown_02024C08 @@ -22525,7 +22525,7 @@ _08018E88: .4byte gUnknown_030041C0 _08018E8C: .4byte gUnknown_02024C10 _08018E90: .4byte gUnknown_081D9921 _08018E94: - ldr r0, _08018F2C @ =gUnknown_02024C68 + ldr r0, _08018F2C @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -22586,7 +22586,7 @@ _08018EF4: bne _08018F0E bl _08019F76 _08018F0E: - ldr r1, _08018F48 @ =gUnknown_02024BEC + ldr r1, _08018F48 @ =gBattleMoveDamage ldrh r0, [r4, 0x2C] lsrs r0, 4 str r0, [r1] @@ -22600,18 +22600,18 @@ _08018F1C: str r0, [r1] bl _08019F22 .align 2, 0 -_08018F2C: .4byte gUnknown_02024C68 +_08018F2C: .4byte gBattleMoveFlags _08018F30: .4byte gBattleMons _08018F34: .4byte gUnknown_02024C07 _08018F38: .4byte gUnknown_02024D28 _08018F3C: .4byte gUnknown_02024D68 _08018F40: .4byte gUnknown_02024C08 _08018F44: .4byte gBattleMoves -_08018F48: .4byte gUnknown_02024BEC +_08018F48: .4byte gBattleMoveDamage _08018F4C: .4byte gUnknown_02024C10 _08018F50: .4byte gUnknown_081D9928 _08018F54: - ldr r0, _08019020 @ =gUnknown_02024C68 + ldr r0, _08019020 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -22711,7 +22711,7 @@ _08019000: str r0, [r2] bl _08019F22 .align 2, 0 -_08019020: .4byte gUnknown_02024C68 +_08019020: .4byte gBattleMoveFlags _08019024: .4byte gBattleMons _08019028: .4byte gUnknown_02024C07 _0801902C: .4byte gUnknown_02024D28 @@ -22723,7 +22723,7 @@ _08019040: .4byte gUnknown_02024C10 _08019044: .4byte gUnknown_081D9950 _08019048: .4byte gUnknown_02024C6C _0801904C: - ldr r0, _080190FC @ =gUnknown_02024C68 + ldr r0, _080190FC @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -22808,7 +22808,7 @@ _080190DC: str r0, [r2] bl _08019F22 .align 2, 0 -_080190FC: .4byte gUnknown_02024C68 +_080190FC: .4byte gBattleMoveFlags _08019100: .4byte gBattleMons _08019104: .4byte gUnknown_02024C07 _08019108: .4byte gUnknown_02024D28 @@ -22820,7 +22820,7 @@ _0801911C: .4byte gUnknown_02024C10 _08019120: .4byte gUnknown_081D9950 _08019124: .4byte gUnknown_02024C6C _08019128: - ldr r0, _080191D8 @ =gUnknown_02024C68 + ldr r0, _080191D8 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -22905,7 +22905,7 @@ _080191B8: str r0, [r2] bl _08019F22 .align 2, 0 -_080191D8: .4byte gUnknown_02024C68 +_080191D8: .4byte gBattleMoveFlags _080191DC: .4byte gBattleMons _080191E0: .4byte gUnknown_02024C07 _080191E4: .4byte gUnknown_02024D28 @@ -22917,7 +22917,7 @@ _080191F8: .4byte gUnknown_02024C10 _080191FC: .4byte gUnknown_081D9950 _08019200: .4byte gUnknown_02024C6C _08019204: - ldr r0, _080192B4 @ =gUnknown_02024C68 + ldr r0, _080192B4 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -23002,7 +23002,7 @@ _08019294: str r0, [r2] bl _08019F22 .align 2, 0 -_080192B4: .4byte gUnknown_02024C68 +_080192B4: .4byte gBattleMoveFlags _080192B8: .4byte gBattleMons _080192BC: .4byte gUnknown_02024C07 _080192C0: .4byte gUnknown_02024D28 @@ -23014,7 +23014,7 @@ _080192D4: .4byte gUnknown_02024C10 _080192D8: .4byte gUnknown_081D9950 _080192DC: .4byte gUnknown_02024C6C _080192E0: - ldr r0, _08019420 @ =gUnknown_02024C68 + ldr r0, _08019420 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -23167,7 +23167,7 @@ _080193F6: str r0, [r1] bl _08019F22 .align 2, 0 -_08019420: .4byte gUnknown_02024C68 +_08019420: .4byte gBattleMoveFlags _08019424: .4byte gBattleMons _08019428: .4byte gUnknown_02024C07 _0801942C: .4byte gUnknown_02024D28 @@ -24895,7 +24895,7 @@ _0801A2C6: beq _0801A2CE bl _0801AD5A _0801A2CE: - ldr r4, _0801A2F0 @ =gUnknown_02024BEC + ldr r4, _0801A2F0 @ =gBattleMoveDamage mov r5, r9 str r5, [r4] ldrh r3, [r2, 0x28] @@ -24913,7 +24913,7 @@ _0801A2E2: bl b_call_bc_move_exec b _0801A752 .align 2, 0 -_0801A2F0: .4byte gUnknown_02024BEC +_0801A2F0: .4byte gBattleMoveDamage _0801A2F4: .4byte gUnknown_081D9A74 _0801A2F8: cmp r6, 0 @@ -25105,7 +25105,7 @@ _0801A480: beq _0801A488 bl _0801AD5A _0801A488: - ldr r3, _0801A4C4 @ =gUnknown_02024BEC + ldr r3, _0801A4C4 @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] lsrs r0, 4 str r0, [r3] @@ -25135,7 +25135,7 @@ _0801A4A8: bl sub_81074F8 bl _0801AD5A .align 2, 0 -_0801A4C4: .4byte gUnknown_02024BEC +_0801A4C4: .4byte gBattleMoveDamage _0801A4C8: .4byte gUnknown_081D9AA1 _0801A4CC: movs r0, 0x58 @@ -25162,7 +25162,7 @@ _0801A4EC: strb r6, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r5, _0801A544 @ =gUnknown_02024BEC + ldr r5, _0801A544 @ =gBattleMoveDamage ldrh r0, [r4, 0x2C] mov r1, r9 bl __divsi3 @@ -25200,7 +25200,7 @@ _0801A53E: b _0801A74C .align 2, 0 _0801A540: .4byte gUnknown_030041C0 -_0801A544: .4byte gUnknown_02024BEC +_0801A544: .4byte gBattleMoveDamage _0801A548: movs r0, 0x58 adds r1, r7, 0 @@ -25228,7 +25228,7 @@ _0801A56A: strb r6, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r4, _0801A5C0 @ =gUnknown_02024BEC + ldr r4, _0801A5C0 @ =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 @@ -25262,7 +25262,7 @@ _0801A59E: b _0801A6B8 .align 2, 0 _0801A5BC: .4byte gUnknown_030041C0 -_0801A5C0: .4byte gUnknown_02024BEC +_0801A5C0: .4byte gBattleMoveDamage _0801A5C4: movs r0, 0x58 adds r4, r7, 0 @@ -25290,7 +25290,7 @@ _0801A5E2: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r4, _0801A630 @ =gUnknown_02024BEC + ldr r4, _0801A630 @ =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 @@ -25321,7 +25321,7 @@ _0801A618: b _0801A532 .align 2, 0 _0801A62C: .4byte gUnknown_030041C0 -_0801A630: .4byte gUnknown_02024BEC +_0801A630: .4byte gBattleMoveDamage _0801A634: movs r0, 0x58 adds r1, r7, 0 @@ -25349,7 +25349,7 @@ _0801A652: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r4, _0801A6B0 @ =gUnknown_02024BEC + ldr r4, _0801A6B0 @ =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 @@ -25387,7 +25387,7 @@ _0801A6A4: b _0801A6BE .align 2, 0 _0801A6AC: .4byte gUnknown_030041C0 -_0801A6B0: .4byte gUnknown_02024BEC +_0801A6B0: .4byte gBattleMoveDamage _0801A6B4: .4byte gUnknown_081D9AD4 _0801A6B8: ldr r0, _0801A6C4 @ =gUnknown_081D9A74 @@ -25425,7 +25425,7 @@ _0801A6E6: strb r0, [r1, 0x2] movs r0, 0xFF strb r0, [r1, 0x3] - ldr r4, _0801A744 @ =gUnknown_02024BEC + ldr r4, _0801A744 @ =gBattleMoveDamage ldrh r0, [r5, 0x2C] mov r1, r9 bl __divsi3 @@ -25463,7 +25463,7 @@ _0801A738: b _0801A752 .align 2, 0 _0801A740: .4byte gUnknown_030041C0 -_0801A744: .4byte gUnknown_02024BEC +_0801A744: .4byte gBattleMoveDamage _0801A748: .4byte gUnknown_081D9AD4 _0801A74C: ldr r0, _0801A758 @ =gUnknown_081D9A74 @@ -26807,7 +26807,7 @@ _0801B264: .align 2, 0 _0801B268: .4byte gUnknown_02024A68 _0801B26C: - ldr r7, _0801B284 @ =gUnknown_02024BEC + ldr r7, _0801B284 @ =gBattleMoveDamage ldr r0, [r7] cmp r0, 0 bne _0801B276 @@ -26820,9 +26820,9 @@ _0801B276: beq _0801B330 b _0801B3CA .align 2, 0 -_0801B284: .4byte gUnknown_02024BEC +_0801B284: .4byte gBattleMoveDamage _0801B288: - ldr r0, _0801B314 @ =gUnknown_02024C68 + ldr r0, _0801B314 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -26889,7 +26889,7 @@ _0801B2BC: bl b_movescr_stack_pop_cursor b _0801B3CA .align 2, 0 -_0801B314: .4byte gUnknown_02024C68 +_0801B314: .4byte gBattleMoveFlags _0801B318: .4byte gUnknown_02024D68 _0801B31C: .4byte gUnknown_02024C08 _0801B320: .4byte gBattleMoves @@ -26897,7 +26897,7 @@ _0801B324: .4byte gUnknown_02024BE6 _0801B328: .4byte gBattleMons _0801B32C: .4byte gUnknown_02024D1E _0801B330: - ldr r0, _0801B3DC @ =gUnknown_02024C68 + ldr r0, _0801B3DC @ =gBattleMoveFlags ldrb r0, [r0] movs r4, 0x29 ands r4, r0 @@ -26984,7 +26984,7 @@ _0801B3CA: pop {r1} bx r1 .align 2, 0 -_0801B3DC: .4byte gUnknown_02024C68 +_0801B3DC: .4byte gBattleMoveFlags _0801B3E0: .4byte gUnknown_02024D68 _0801B3E4: .4byte gUnknown_02024C08 _0801B3E8: .4byte 0x0000ffff @@ -27927,7 +27927,7 @@ _0801BBE0: movs r2, 0x1 movs r3, 0 bl CalculateBaseDamage - ldr r1, _0801BC3C @ =gUnknown_02024BEC + ldr r1, _0801BC3C @ =gBattleMoveDamage str r0, [r1] ldr r1, _0801BC40 @ =gUnknown_02024C08 ldrb r0, [r4] @@ -27954,7 +27954,7 @@ _0801BC24: .align 2, 0 _0801BC34: .4byte gUnknown_02024C07 _0801BC38: .4byte gBattleMons -_0801BC3C: .4byte gUnknown_02024BEC +_0801BC3C: .4byte gBattleMoveDamage _0801BC40: .4byte gUnknown_02024C08 _0801BC44: .4byte gUnknown_02024C10 _0801BC48: .4byte gUnknown_081D99A0 @@ -28065,7 +28065,7 @@ _0801BCDE: ldr r1, _0801BD50 @ =gUnknown_02024C10 ldr r0, _0801BD54 @ =gUnknown_081D936D str r0, [r1] - ldr r2, _0801BD58 @ =gUnknown_02024C68 + ldr r2, _0801BD58 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -28081,7 +28081,7 @@ _0801BD48: .4byte gUnknown_02024BE6 _0801BD4C: .4byte 0x00800200 _0801BD50: .4byte gUnknown_02024C10 _0801BD54: .4byte gUnknown_081D936D -_0801BD58: .4byte gUnknown_02024C68 +_0801BD58: .4byte gBattleMoveFlags _0801BD5C: ldr r0, [r5] ldr r1, _0801BDA0 @ =0xff7fffff @@ -28118,14 +28118,14 @@ _0801BD5C: .align 2, 0 _0801BDA0: .4byte 0xff7fffff _0801BDA4: - ldr r0, _0801BDB0 @ =gUnknown_02024C68 + ldr r0, _0801BDB0 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _0801BFF4 .align 2, 0 -_0801BDB0: .4byte gUnknown_02024C68 +_0801BDB0: .4byte gBattleMoveFlags _0801BDB4: ldr r2, _0801BE18 @ =gUnknown_02024C6C ldr r0, [r2] @@ -28321,7 +28321,7 @@ _0801BF4E: ldr r0, _0801BF8C @ =gUnknown_02024C07 ldrb r0, [r0] bl b_cancel_multi_turn_move_maybe - ldr r2, _0801BF90 @ =gUnknown_02024C68 + ldr r2, _0801BF90 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -28347,7 +28347,7 @@ _0801BF80: .4byte gBattleMoves _0801BF84: .4byte gUnknown_02024BE6 _0801BF88: .4byte gBattleMons _0801BF8C: .4byte gUnknown_02024C07 -_0801BF90: .4byte gUnknown_02024C68 +_0801BF90: .4byte gBattleMoveFlags _0801BF94: .4byte gUnknown_02024C3C _0801BF98: .4byte gUnknown_02024C08 _0801BF9C: .4byte gUnknown_02024C44 @@ -28411,7 +28411,7 @@ mcmd_jump_if_move_not_executed: @ 801C008 ldr r1, _0801C054 @ =gUnknown_02024C10 ldr r5, [r1] adds r4, r5, r0 - ldr r0, _0801C058 @ =gUnknown_02024C68 + ldr r0, _0801C058 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -28442,7 +28442,7 @@ mcmd_jump_if_move_not_executed: @ 801C008 b _0801C082 .align 2, 0 _0801C054: .4byte gUnknown_02024C10 -_0801C058: .4byte gUnknown_02024C68 +_0801C058: .4byte gBattleMoveFlags _0801C05C: .4byte gUnknown_02024C3C _0801C060: .4byte gUnknown_02024C08 _0801C064: .4byte gUnknown_02024C44 @@ -28495,7 +28495,7 @@ atk40_801DBA0: @ 801C098 ands r0, r1 cmp r0, 0 beq _0801C0F8 - ldr r2, _0801C0F0 @ =gUnknown_02024C68 + ldr r2, _0801C0F0 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -28512,7 +28512,7 @@ _0801C0E0: .4byte gUnknown_02024D28 _0801C0E4: .4byte gUnknown_02024C08 _0801C0E8: .4byte gBattleMoves _0801C0EC: .4byte gUnknown_02024BE6 -_0801C0F0: .4byte gUnknown_02024C68 +_0801C0F0: .4byte gBattleMoveFlags _0801C0F4: .4byte gUnknown_02024D1E _0801C0F8: ldr r1, _0801C104 @ =gUnknown_02024C10 @@ -28553,7 +28553,7 @@ sub_801C108: @ 801C108 ands r0, r1 cmp r0, 0 beq _0801C154 - ldr r2, _0801C16C @ =gUnknown_02024C68 + ldr r2, _0801C16C @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -28575,7 +28575,7 @@ _0801C15C: .4byte gUnknown_02024D28 _0801C160: .4byte gUnknown_02024C08 _0801C164: .4byte gBattleMoves _0801C168: .4byte gUnknown_02024BE6 -_0801C16C: .4byte gUnknown_02024C68 +_0801C16C: .4byte gBattleMoveFlags _0801C170: .4byte gUnknown_02024D1E thumb_func_end sub_801C108 @@ -28624,7 +28624,7 @@ _0801C1A6: cmp r0, 0 beq _0801C1EC _0801C1C6: - ldr r0, _0801C1E8 @ =gUnknown_02024C68 + ldr r0, _0801C1E8 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 @@ -28636,7 +28636,7 @@ _0801C1D8: .4byte gUnknown_02024C08 _0801C1DC: .4byte gUnknown_02024CA8 _0801C1E0: .4byte gUnknown_02024C07 _0801C1E4: .4byte gUnknown_02024C6C -_0801C1E8: .4byte gUnknown_02024C68 +_0801C1E8: .4byte gBattleMoveFlags _0801C1EC: ldr r0, [r2] ldr r1, _0801C29C @ =0xfffeffff @@ -29128,7 +29128,7 @@ _0801C5C0: adds r0, 0x1 cmp r0, r4 ble _0801C62A - ldr r2, _0801C610 @ =gUnknown_02024C68 + ldr r2, _0801C610 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -29156,7 +29156,7 @@ _0801C602: .align 2, 0 _0801C608: .4byte gUnknown_02024C0B _0801C60C: .4byte gUnknown_02024C08 -_0801C610: .4byte gUnknown_02024C68 +_0801C610: .4byte gBattleMoveFlags _0801C614: .4byte gBattleTypeFlags _0801C618: .4byte gBattleMoves _0801C61C: .4byte gUnknown_02024D1E @@ -29688,7 +29688,7 @@ atk05_damagecalc1: @ 801C9EC ldrb r4, [r6] str r4, [sp, 0xC] bl CalculateBaseDamage - ldr r4, _0801CADC @ =gUnknown_02024BEC + ldr r4, _0801CADC @ =gBattleMoveDamage ldr r1, _0801CAE0 @ =gCritMultiplier ldrb r1, [r1] muls r1, r0 @@ -29730,7 +29730,7 @@ _0801CA82: lsls r0, 28 cmp r0, 0 bge _0801CAA4 - ldr r4, _0801CADC @ =gUnknown_02024BEC + ldr r4, _0801CADC @ =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 @@ -29758,7 +29758,7 @@ _0801CACC: .4byte gUnknown_02024BE6 _0801CAD0: .4byte gUnknown_02024DEC _0801CAD4: .4byte 0x02000000 _0801CAD8: .4byte 0x0001601c -_0801CADC: .4byte gUnknown_02024BEC +_0801CADC: .4byte gBattleMoveDamage _0801CAE0: .4byte gCritMultiplier _0801CAE4: .4byte 0x0001601f _0801CAE8: .4byte gUnknown_02024C98 @@ -29808,7 +29808,7 @@ sub_801CAF8: @ 801CAF8 str r7, [sp, 0x8] str r5, [sp, 0xC] bl CalculateBaseDamage - ldr r4, _0801CBD4 @ =gUnknown_02024BEC + ldr r4, _0801CBD4 @ =gBattleMoveDamage movs r1, 0 mov r2, r8 strh r1, [r2] @@ -29850,7 +29850,7 @@ _0801CB8E: lsls r0, 28 cmp r0, 0 bge _0801CBAC - ldr r4, _0801CBD4 @ =gUnknown_02024BEC + ldr r4, _0801CBD4 @ =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 @@ -29872,7 +29872,7 @@ _0801CBC4: .4byte gUnknown_02024BE6 _0801CBC8: .4byte gUnknown_02024DEC _0801CBCC: .4byte 0x02000000 _0801CBD0: .4byte 0x0001601c -_0801CBD4: .4byte gUnknown_02024BEC +_0801CBD4: .4byte gBattleMoveDamage _0801CBD8: .4byte gCritMultiplier _0801CBDC: .4byte 0x0001601f _0801CBE0: .4byte gUnknown_02024C98 @@ -29885,7 +29885,7 @@ battle_attack_damage_modulate_by_effectivity: @ 801CBEC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r5, _0801CC1C @ =gUnknown_02024BEC + ldr r5, _0801CC1C @ =gBattleMoveDamage ldr r0, [r5] muls r0, r4 movs r1, 0xA @@ -29906,13 +29906,13 @@ _0801CC0C: beq _0801CC26 b _0801CCBE .align 2, 0 -_0801CC1C: .4byte gUnknown_02024BEC +_0801CC1C: .4byte gBattleMoveDamage _0801CC20: cmp r4, 0x14 beq _0801CC7C b _0801CCBE _0801CC26: - ldr r2, _0801CC38 @ =gUnknown_02024C68 + ldr r2, _0801CC38 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 @@ -29922,7 +29922,7 @@ _0801CC26: ands r0, r1 b _0801CCBC .align 2, 0 -_0801CC38: .4byte gUnknown_02024C68 +_0801CC38: .4byte gBattleMoveFlags _0801CC3C: ldr r2, _0801CC6C @ =gBattleMoves ldr r0, _0801CC70 @ =gUnknown_02024BE6 @@ -29934,7 +29934,7 @@ _0801CC3C: ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801CCBE - ldr r2, _0801CC74 @ =gUnknown_02024C68 + ldr r2, _0801CC74 @ =gBattleMoveFlags ldrb r1, [r2] movs r0, 0x29 ands r0, r1 @@ -29950,7 +29950,7 @@ _0801CC3C: .align 2, 0 _0801CC6C: .4byte gBattleMoves _0801CC70: .4byte gUnknown_02024BE6 -_0801CC74: .4byte gUnknown_02024C68 +_0801CC74: .4byte gBattleMoveFlags _0801CC78: movs r0, 0x4 b _0801CCBA @@ -29965,7 +29965,7 @@ _0801CC7C: ldrb r0, [r0, 0x1] cmp r0, 0 beq _0801CCBE - ldr r2, _0801CCB4 @ =gUnknown_02024C68 + ldr r2, _0801CCB4 @ =gBattleMoveFlags ldrb r1, [r2] movs r0, 0x29 ands r0, r1 @@ -29981,7 +29981,7 @@ _0801CC7C: .align 2, 0 _0801CCAC: .4byte gBattleMoves _0801CCB0: .4byte gUnknown_02024BE6 -_0801CCB4: .4byte gUnknown_02024C68 +_0801CCB4: .4byte gBattleMoveFlags _0801CCB8: movs r0, 0x2 _0801CCBA: @@ -30051,7 +30051,7 @@ _0801CD0C: cmp r0, r8 bne _0801CD44 _0801CD2E: - ldr r4, _0801CDA0 @ =gUnknown_02024BEC + ldr r4, _0801CDA0 @ =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 @@ -30077,7 +30077,7 @@ _0801CD44: bne _0801CDBC ldr r3, _0801CDA8 @ =byte_2024C06 strb r0, [r3] - ldr r2, _0801CDAC @ =gUnknown_02024C68 + ldr r2, _0801CDAC @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 @@ -30104,10 +30104,10 @@ _0801CD44: _0801CD94: .4byte gBattleMoves _0801CD98: .4byte gBattleMons _0801CD9C: .4byte gUnknown_02024C07 -_0801CDA0: .4byte gUnknown_02024BEC +_0801CDA0: .4byte gBattleMoveDamage _0801CDA4: .4byte gUnknown_02024C08 _0801CDA8: .4byte byte_2024C06 -_0801CDAC: .4byte gUnknown_02024C68 +_0801CDAC: .4byte gBattleMoveFlags _0801CDB0: .4byte gUnknown_02024C3C _0801CDB4: .4byte gUnknown_02024C44 _0801CDB8: .4byte gUnknown_02024D1E @@ -30213,7 +30213,7 @@ _0801CE58: lsrs r0, 24 cmp r0, 0x2 bne _0801CED6 - ldr r1, _0801CF1C @ =gUnknown_02024C68 + ldr r1, _0801CF1C @ =gBattleMoveFlags mov r8, r1 ldrb r4, [r1] ands r0, r4 @@ -30257,7 +30257,7 @@ _0801CE94: ldrb r1, [r3] bl sub_81074C4 _0801CED6: - ldr r0, _0801CF1C @ =gUnknown_02024C68 + ldr r0, _0801CF1C @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x8 ands r0, r1 @@ -30289,7 +30289,7 @@ _0801CF0C: .4byte gBattleMons _0801CF10: .4byte gUnknown_02024C08 _0801CF14: .4byte gUnknown_02024C07 _0801CF18: .4byte gUnknown_02024BE6 -_0801CF1C: .4byte gUnknown_02024C68 +_0801CF1C: .4byte gBattleMoveFlags _0801CF20: .4byte gBattleMoves _0801CF24: .4byte byte_2024C06 _0801CF28: .4byte gUnknown_02024C3C @@ -30407,7 +30407,7 @@ _0801CFF2: ldrb r0, [r0] cmp r0, 0 bne _0801D032 - ldr r2, _0801D1B0 @ =gUnknown_02024C68 + ldr r2, _0801D1B0 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 @@ -30443,7 +30443,7 @@ _0801D032: ldrb r0, [r0] cmp r0, 0 bne _0801D078 - ldr r2, _0801D1B0 @ =gUnknown_02024C68 + ldr r2, _0801D1B0 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x8 orrs r0, r1 @@ -30621,7 +30621,7 @@ _0801D1A4: pop {r0} bx r0 .align 2, 0 -_0801D1B0: .4byte gUnknown_02024C68 +_0801D1B0: .4byte gBattleMoveFlags _0801D1B4: .4byte gUnknown_02024D28 _0801D1B8: .4byte gUnknown_02024C07 _0801D1BC: .4byte gBattleMoves @@ -30637,7 +30637,7 @@ b_attack_effectivity_adapt: @ 801D1C8 lsrs r4, r0, 24 lsls r1, 16 lsrs r5, r1, 16 - ldr r7, _0801D1FC @ =gUnknown_02024BEC + ldr r7, _0801D1FC @ =gBattleMoveDamage ldr r0, [r7] muls r0, r4 movs r1, 0xA @@ -30658,7 +30658,7 @@ _0801D1EE: beq _0801D206 b _0801D27A .align 2, 0 -_0801D1FC: .4byte gUnknown_02024BEC +_0801D1FC: .4byte gBattleMoveDamage _0801D200: cmp r4, 0x14 beq _0801D248 @@ -30786,7 +30786,7 @@ _0801D2AE: cmp r0, r1 bne _0801D2F4 _0801D2E2: - ldr r4, _0801D324 @ =gUnknown_02024BEC + ldr r4, _0801D324 @ =gBattleMoveDamage ldr r1, [r4] lsls r0, r1, 4 subs r0, r1 @@ -30817,7 +30817,7 @@ _0801D2F4: .align 2, 0 _0801D31C: .4byte gBattleMoves _0801D320: .4byte gBattleMons -_0801D324: .4byte gUnknown_02024BEC +_0801D324: .4byte gBattleMoveDamage _0801D328: ldr r1, _0801D344 @ =gTypeEffectiveness adds r0, r7, r1 @@ -31135,7 +31135,7 @@ unref_sub_801D574: @ 801D574 subs r1, r0 lsls r1, 16 lsrs r1, 16 - ldr r4, _0801D5AC @ =gUnknown_02024BEC + ldr r4, _0801D5AC @ =gBattleMoveDamage ldr r0, [r4] cmp r0, 0 beq _0801D5A6 @@ -31153,7 +31153,7 @@ _0801D5A6: pop {r0} bx r0 .align 2, 0 -_0801D5AC: .4byte gUnknown_02024BEC +_0801D5AC: .4byte gBattleMoveDamage thumb_func_end unref_sub_801D574 thumb_func_start atk07_damagecalc3 @@ -31168,7 +31168,7 @@ atk07_damagecalc3: @ 801D5B0 subs r1, r0 lsls r1, 16 lsrs r1, 16 - ldr r4, _0801D608 @ =gUnknown_02024BEC + ldr r4, _0801D608 @ =gBattleMoveDamage ldr r0, [r4] cmp r0, 0 beq _0801D5E2 @@ -31201,7 +31201,7 @@ _0801D5E2: ldrb r6, [r0, 0x1A] b _0801D632 .align 2, 0 -_0801D608: .4byte gUnknown_02024BEC +_0801D608: .4byte gBattleMoveDamage _0801D60C: .4byte gBattleMons _0801D610: .4byte gUnknown_02024C08 _0801D614: .4byte gEnigmaBerries @@ -31294,7 +31294,7 @@ _0801D6C2: muls r0, r4 adds r0, r5 ldrh r1, [r0, 0x28] - ldr r2, _0801D710 @ =gUnknown_02024BEC + ldr r2, _0801D710 @ =gBattleMoveDamage ldr r0, [r2] cmp r1, r0 bgt _0801D740 @@ -31308,7 +31308,7 @@ _0801D6C2: lsls r0, 30 cmp r0, 0 bge _0801D718 - ldr r0, _0801D714 @ =gUnknown_02024C68 + ldr r0, _0801D714 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 @@ -31322,8 +31322,8 @@ _0801D700: .4byte gBattleMons _0801D704: .4byte gBattleMoves _0801D708: .4byte gUnknown_02024BE6 _0801D70C: .4byte gUnknown_02024D28 -_0801D710: .4byte gUnknown_02024BEC -_0801D714: .4byte gUnknown_02024C68 +_0801D710: .4byte gBattleMoveDamage +_0801D714: .4byte gBattleMoveFlags _0801D718: ldr r0, _0801D750 @ =gUnknown_02024D68 lsls r1, r3, 2 @@ -31334,7 +31334,7 @@ _0801D718: lsrs r0, 7 cmp r0, 0 beq _0801D740 - ldr r2, _0801D754 @ =gUnknown_02024C68 + ldr r2, _0801D754 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 @@ -31355,7 +31355,7 @@ _0801D740: bx r0 .align 2, 0 _0801D750: .4byte gUnknown_02024D68 -_0801D754: .4byte gUnknown_02024C68 +_0801D754: .4byte gBattleMoveFlags _0801D758: .4byte gUnknown_02024C04 _0801D75C: .4byte gUnknown_02024C10 thumb_func_end atk07_damagecalc3 @@ -31372,7 +31372,7 @@ atk08_cmd8: @ 801D760 subs r1, r0 lsls r1, 16 lsrs r1, 16 - ldr r4, _0801D7B8 @ =gUnknown_02024BEC + ldr r4, _0801D7B8 @ =gBattleMoveDamage ldr r0, [r4] cmp r0, 0 beq _0801D792 @@ -31405,7 +31405,7 @@ _0801D792: ldrb r6, [r0, 0x1A] b _0801D7E2 .align 2, 0 -_0801D7B8: .4byte gUnknown_02024BEC +_0801D7B8: .4byte gBattleMoveDamage _0801D7BC: .4byte gBattleMons _0801D7C0: .4byte gUnknown_02024C08 _0801D7C4: .4byte gEnigmaBerries @@ -31485,7 +31485,7 @@ _0801D820: _0801D85E: adds r0, r3, r4 ldrh r1, [r0, 0x28] - ldr r2, _0801D89C @ =gUnknown_02024BEC + ldr r2, _0801D89C @ =gBattleMoveDamage ldr r0, [r2] cmp r1, r0 bgt _0801D8CC @@ -31498,7 +31498,7 @@ _0801D85E: lsls r0, 30 cmp r0, 0 bge _0801D8A4 - ldr r0, _0801D8A0 @ =gUnknown_02024C68 + ldr r0, _0801D8A0 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 @@ -31510,8 +31510,8 @@ _0801D88C: .4byte gUnknown_02024C08 _0801D890: .4byte gUnknown_02024D68 _0801D894: .4byte gBattleMons _0801D898: .4byte gUnknown_02024D28 -_0801D89C: .4byte gUnknown_02024BEC -_0801D8A0: .4byte gUnknown_02024C68 +_0801D89C: .4byte gBattleMoveDamage +_0801D8A0: .4byte gBattleMoveFlags _0801D8A4: ldr r0, _0801D8DC @ =gUnknown_02024D68 lsls r1, r3, 2 @@ -31522,7 +31522,7 @@ _0801D8A4: lsrs r0, 7 cmp r0, 0 beq _0801D8CC - ldr r2, _0801D8E0 @ =gUnknown_02024C68 + ldr r2, _0801D8E0 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 @@ -31543,7 +31543,7 @@ _0801D8CC: bx r0 .align 2, 0 _0801D8DC: .4byte gUnknown_02024D68 -_0801D8E0: .4byte gUnknown_02024C68 +_0801D8E0: .4byte gBattleMoveFlags _0801D8E4: .4byte gUnknown_02024C04 _0801D8E8: .4byte gUnknown_02024C10 thumb_func_end atk08_cmd8 @@ -31628,7 +31628,7 @@ _0801D986: cmp r0, 0 bne _0801DA00 _0801D992: - ldr r0, _0801DA18 @ =gUnknown_02024C68 + ldr r0, _0801DA18 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -31647,7 +31647,7 @@ _0801D992: ldrb r2, [r0] ldr r0, _0801DA28 @ =gBattleMovePower ldrh r3, [r0] - ldr r0, _0801DA2C @ =gUnknown_02024BEC + ldr r0, _0801DA2C @ =gBattleMoveDamage ldr r0, [r0] str r0, [sp] ldr r5, _0801DA30 @ =gBattleMons @@ -31691,12 +31691,12 @@ _0801DA00: _0801DA0C: .4byte gBattleMoves _0801DA10: .4byte 0x02000000 _0801DA14: .4byte 0x000160a1 -_0801DA18: .4byte gUnknown_02024C68 +_0801DA18: .4byte gBattleMoveFlags _0801DA1C: .4byte gUnknown_02024A60 _0801DA20: .4byte gUnknown_02024C07 _0801DA24: .4byte 0x00016002 _0801DA28: .4byte gBattleMovePower -_0801DA2C: .4byte gUnknown_02024BEC +_0801DA2C: .4byte gBattleMoveDamage _0801DA30: .4byte gBattleMons _0801DA34: .4byte gUnknown_02024CA8 _0801DA38: .4byte gUnknown_02024C10 @@ -31746,7 +31746,7 @@ sub_801DA80: @ 801DA80 ldr r0, [r0] cmp r0, 0 bne _0801DB36 - ldr r0, _0801DAE8 @ =gUnknown_02024C68 + ldr r0, _0801DAE8 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -31791,14 +31791,14 @@ sub_801DA80: @ 801DA80 b _0801DB2E .align 2, 0 _0801DAE4: .4byte gUnknown_02024A64 -_0801DAE8: .4byte gUnknown_02024C68 +_0801DAE8: .4byte gBattleMoveFlags _0801DAEC: .4byte gUnknown_02024C10 _0801DAF0: .4byte gUnknown_02024A60 _0801DAF4: .4byte gBattleMons _0801DAF8: .4byte gUnknown_02024CA8 _0801DAFC: .4byte gUnknown_02024C6C _0801DB00: - ldr r5, _0801DB3C @ =gUnknown_02024BEC + ldr r5, _0801DB3C @ =gBattleMoveDamage ldrh r1, [r5] movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update @@ -31828,7 +31828,7 @@ _0801DB36: pop {r0} bx r0 .align 2, 0 -_0801DB3C: .4byte gUnknown_02024BEC +_0801DB3C: .4byte gBattleMoveDamage _0801DB40: .4byte gUnknown_02024A60 _0801DB44: .4byte gUnknown_030042E0 _0801DB48: .4byte gUnknown_02024C10 @@ -31871,7 +31871,7 @@ _0801DB80: adds r0, r2 ldrb r6, [r0, 0x2] _0801DB90: - ldr r0, _0801DC24 @ =gUnknown_02024C68 + ldr r0, _0801DC24 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -31914,7 +31914,7 @@ _0801DB9E: cmp r3, 0 bne _0801DCB4 adds r5, r1, 0 - ldr r6, _0801DC3C @ =gUnknown_02024BEC + ldr r6, _0801DC3C @ =gBattleMoveDamage ldr r4, [r6] cmp r5, r4 blt _0801DC48 @@ -31945,13 +31945,13 @@ _0801DC02: .align 2, 0 _0801DC1C: .4byte gBattleMoves _0801DC20: .4byte gUnknown_02024BE6 -_0801DC24: .4byte gUnknown_02024C68 +_0801DC24: .4byte gBattleMoveFlags _0801DC28: .4byte gUnknown_02024C10 _0801DC2C: .4byte gUnknown_02024A60 _0801DC30: .4byte gBattleMons _0801DC34: .4byte gUnknown_02024CA8 _0801DC38: .4byte gUnknown_02024C6C -_0801DC3C: .4byte gUnknown_02024BEC +_0801DC3C: .4byte gBattleMoveDamage _0801DC40: .4byte gUnknown_02024D68 _0801DC44: .4byte gUnknown_02024BF0 _0801DC48: @@ -32012,7 +32012,7 @@ _0801DCB4: ldr r1, _0801DCF8 @ =0xfffffeff ands r2, r1 str r2, [r0] - ldr r1, _0801DCFC @ =gUnknown_02024BEC + ldr r1, _0801DCFC @ =gBattleMoveDamage ldr r5, [r1] mov r12, r0 adds r7, r1, 0 @@ -32043,7 +32043,7 @@ _0801DCF0: .align 2, 0 _0801DCF4: .4byte gUnknown_02024C6C _0801DCF8: .4byte 0xfffffeff -_0801DCFC: .4byte gUnknown_02024BEC +_0801DCFC: .4byte gBattleMoveDamage _0801DD00: .4byte gBattleMons _0801DD04: .4byte gUnknown_02024A60 _0801DD08: @@ -32337,7 +32337,7 @@ atk0D_critmessage: @ 801DF48 ldrb r0, [r0] cmp r0, 0x2 bne _0801DF76 - ldr r0, _0801DF8C @ =gUnknown_02024C68 + ldr r0, _0801DF8C @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -32361,7 +32361,7 @@ _0801DF7E: .align 2, 0 _0801DF84: .4byte gUnknown_02024A64 _0801DF88: .4byte gCritMultiplier -_0801DF8C: .4byte gUnknown_02024C68 +_0801DF8C: .4byte gBattleMoveFlags _0801DF90: .4byte gUnknown_02024C07 _0801DF94: .4byte gUnknown_02024D1E _0801DF98: .4byte gUnknown_02024C10 @@ -32378,7 +32378,7 @@ atk0E_missmessage: @ 801DF9C ldr r0, _0801DFDC @ =gUnknown_02024C08 ldrb r0, [r0] strb r0, [r4] - ldr r1, _0801DFE0 @ =gUnknown_02024C68 + ldr r1, _0801DFE0 @ =gBattleMoveFlags ldrb r2, [r1] movs r0, 0x1 ands r0, r2 @@ -32401,7 +32401,7 @@ atk0E_missmessage: @ 801DF9C _0801DFD4: .4byte gUnknown_02024A64 _0801DFD8: .4byte gUnknown_02024A60 _0801DFDC: .4byte gUnknown_02024C08 -_0801DFE0: .4byte gUnknown_02024C68 +_0801DFE0: .4byte gBattleMoveFlags _0801DFE4: cmp r0, 0x8 beq _0801E054 @@ -32485,7 +32485,7 @@ atk0F_resultmessage: @ 801E06C beq _0801E07A b _0801E20C _0801E07A: - ldr r1, _0801E0AC @ =gUnknown_02024C68 + ldr r1, _0801E0AC @ =gBattleMoveFlags ldrb r2, [r1] movs r4, 0x1 adds r0, r4, 0 @@ -32511,7 +32511,7 @@ _0801E09A: b _0801E1F6 .align 2, 0 _0801E0A8: .4byte gUnknown_02024A64 -_0801E0AC: .4byte gUnknown_02024C68 +_0801E0AC: .4byte gBattleMoveFlags _0801E0B0: .4byte gUnknown_02024D1E _0801E0B4: .4byte gUnknown_08401508 _0801E0B8: @@ -33730,7 +33730,7 @@ _0801EA04: mov r10, r0 b _0801EA14 _0801EA0A: - ldr r0, _0801EA58 @ =gUnknown_02024C68 + ldr r0, _0801EA58 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 @@ -33769,7 +33769,7 @@ _0801EA1C: str r0, [r3] b _0801EA84 .align 2, 0 -_0801EA58: .4byte gUnknown_02024C68 +_0801EA58: .4byte gBattleMoveFlags _0801EA5C: .4byte gUnknown_02024C10 _0801EA60: .4byte gUnknown_081FAB5C _0801EA64: .4byte gUnknown_02024D1E @@ -34348,7 +34348,7 @@ _0801EF9C: .4byte gUnknown_081FAC4C _0801EFA0: .4byte gUnknown_02024D1E _0801EFA4: .4byte gUnknown_0840164C _0801EFA8: - ldr r1, _0801EFD8 @ =gUnknown_02024BEC + ldr r1, _0801EFD8 @ =gBattleMoveDamage ldr r0, _0801EFDC @ =gUnknown_02024BF0 ldr r0, [r0] cmp r0, 0 @@ -34374,7 +34374,7 @@ _0801EFC0: ldr r0, [r0] b _0801F5F8 .align 2, 0 -_0801EFD8: .4byte gUnknown_02024BEC +_0801EFD8: .4byte gBattleMoveDamage _0801EFDC: .4byte gUnknown_02024BF0 _0801EFE0: .4byte gUnknown_02024C10 _0801EFE4: .4byte gUnknown_081FAC4C @@ -34903,7 +34903,7 @@ _0801F44C: _0801F45C: .4byte gUnknown_02024C10 _0801F460: .4byte gUnknown_081D93FA _0801F464: - ldr r4, _0801F494 @ =gUnknown_02024BEC + ldr r4, _0801F494 @ =gBattleMoveDamage ldr r0, _0801F498 @ =gUnknown_02024BF0 ldr r0, [r0] movs r1, 0x3 @@ -34926,7 +34926,7 @@ _0801F47A: ldr r0, [r0] b _0801F5F8 .align 2, 0 -_0801F494: .4byte gUnknown_02024BEC +_0801F494: .4byte gBattleMoveDamage _0801F498: .4byte gUnknown_02024BF0 _0801F49C: .4byte gUnknown_02024C10 _0801F4A0: .4byte gUnknown_081FAC4C @@ -35147,7 +35147,7 @@ _0801F660: ands r0, r2 cmp r0, 0 beq _0801F690 - ldr r0, _0801F68C @ =gUnknown_02024C68 + ldr r0, _0801F68C @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -35161,7 +35161,7 @@ _0801F660: _0801F680: .4byte gBattleMoves _0801F684: .4byte gUnknown_02024BE6 _0801F688: .4byte gUnknown_02024D1E -_0801F68C: .4byte gUnknown_02024C68 +_0801F68C: .4byte gBattleMoveFlags _0801F690: bl Random lsls r0, 16 @@ -35176,7 +35176,7 @@ _0801F690: ldrb r0, [r0, 0x3] cmp r0, 0 beq _0801F6DA - ldr r0, _0801F6CC @ =gUnknown_02024C68 + ldr r0, _0801F6CC @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -35191,7 +35191,7 @@ _0801F6BE: b _0801F6E2 .align 2, 0 _0801F6C8: .4byte gUnknown_02024D1E -_0801F6CC: .4byte gUnknown_02024C68 +_0801F6CC: .4byte gBattleMoveFlags _0801F6D0: movs r0, 0 movs r1, 0 @@ -35573,7 +35573,7 @@ _0801F9CC: ldr r4, _0801FAF4 @ =gUnknown_02024C10 ldr r0, [r4] bl b_movescr_stack_push - ldr r1, _0801FAF8 @ =gUnknown_02024BEC + ldr r1, _0801FAF8 @ =gBattleMoveDamage adds r0, r7, 0 muls r0, r5 adds r0, r6 @@ -35695,7 +35695,7 @@ _0801FAE8: .4byte gUnknown_02024C6C _0801FAEC: .4byte gBattleMons _0801FAF0: .4byte gUnknown_02024C07 _0801FAF4: .4byte gUnknown_02024C10 -_0801FAF8: .4byte gUnknown_02024BEC +_0801FAF8: .4byte gBattleMoveDamage _0801FAFC: .4byte gUnknown_081D9156 _0801FB00: .4byte gUnknown_02024C98 _0801FB04: .4byte gUnknown_02024C08 @@ -36671,7 +36671,7 @@ _080202A0: _080202C8: movs r0, 0x5 strb r0, [r1] - ldr r0, _080202E4 @ =gUnknown_02024BEC + ldr r0, _080202E4 @ =gBattleMoveDamage str r2, [r0] b _08020996 .align 2, 0 @@ -36679,7 +36679,7 @@ _080202D4: .4byte 0x00016018 _080202D8: .4byte gPlayerParty _080202DC: .4byte 0x0001605f _080202E0: .4byte 0x0001600f -_080202E4: .4byte gUnknown_02024BEC +_080202E4: .4byte gBattleMoveDamage _080202E8: ldr r0, _0802034C @ =gBattleTypeFlags ldrh r1, [r0] @@ -36724,7 +36724,7 @@ _08020332: ands r3, r0 cmp r3, 0 beq _08020370 - ldr r1, _0802036C @ =gUnknown_02024BEC + ldr r1, _0802036C @ =gBattleMoveDamage mov r3, r10 ldrh r0, [r3] str r0, [r1] @@ -36739,9 +36739,9 @@ _0802035C: .4byte 0x02000000 _08020360: .4byte 0x00016018 _08020364: .4byte gPlayerParty _08020368: .4byte 0x0001605f -_0802036C: .4byte gUnknown_02024BEC +_0802036C: .4byte gBattleMoveDamage _08020370: - ldr r0, _080203EC @ =gUnknown_02024BEC + ldr r0, _080203EC @ =gBattleMoveDamage str r3, [r0] mov r8, r0 _08020376: @@ -36771,7 +36771,7 @@ _0802039C: ands r0, r1 cmp r0, 0 beq _080203B8 - ldr r4, _080203EC @ =gUnknown_02024BEC + ldr r4, _080203EC @ =gBattleMoveDamage ldr r1, [r4] movs r0, 0x96 muls r0, r1 @@ -36791,7 +36791,7 @@ _080203B8: lsls r0, 24 cmp r0, 0 beq _08020404 - ldr r4, _080203EC @ =gUnknown_02024BEC + ldr r4, _080203EC @ =gBattleMoveDamage ldr r1, [r4] movs r0, 0x96 muls r0, r1 @@ -36803,7 +36803,7 @@ _080203B8: mov r8, r4 b _0802040A .align 2, 0 -_080203EC: .4byte gUnknown_02024BEC +_080203EC: .4byte gBattleMoveDamage _080203F0: .4byte gUnknown_02024DEE _080203F4: .4byte gBattleTypeFlags _080203F8: .4byte 0x02000000 @@ -36811,7 +36811,7 @@ _080203FC: .4byte 0x00016018 _08020400: .4byte gPlayerParty _08020404: ldr r7, _0802043C @ =0x00000149 - ldr r3, _08020440 @ =gUnknown_02024BEC + ldr r3, _08020440 @ =gBattleMoveDamage mov r8, r3 _0802040A: ldr r0, _08020444 @ =gBattleTypeFlags @@ -36841,7 +36841,7 @@ _0802040A: b _0802047C .align 2, 0 _0802043C: .4byte 0x00000149 -_08020440: .4byte gUnknown_02024BEC +_08020440: .4byte gBattleMoveDamage _08020444: .4byte gBattleTypeFlags _08020448: .4byte gUnknown_02024A6A _0802044C: .4byte 0x02000000 @@ -37044,7 +37044,7 @@ _08020566: ldrb r0, [r2] strb r0, [r4] ldrb r1, [r7] - ldr r0, _08020640 @ =gUnknown_02024BEC + ldr r0, _08020640 @ =gBattleMoveDamage ldrh r2, [r0] movs r0, 0 bl dp01_build_cmdbuf_x19_a_bb @@ -37068,7 +37068,7 @@ _08020630: .4byte 0x00016018 _08020634: .4byte gPlayerParty _08020638: .4byte 0x00017180 _0802063C: .4byte gUnknown_02024A60 -_08020640: .4byte gUnknown_02024BEC +_08020640: .4byte gBattleMoveDamage _08020644: .4byte 0x0001600f _08020648: ldr r0, _080208AC @ =gUnknown_02024A64 @@ -37171,7 +37171,7 @@ _080206A8: ldr r1, _080208E0 @ =gUnknown_02024C10 ldr r0, _080208E4 @ =gUnknown_081D8EF3 str r0, [r1] - ldr r4, _080208E8 @ =gUnknown_02024BEC + ldr r4, _080208E8 @ =gBattleMoveDamage ldr r2, _080208BC @ =gUnknown_02024260 ldrb r1, [r5] lsls r1, 9 @@ -37376,10 +37376,10 @@ _080208D8: .4byte gUnknown_03004324 _080208DC: .4byte gBitTable _080208E0: .4byte gUnknown_02024C10 _080208E4: .4byte gUnknown_081D8EF3 -_080208E8: .4byte gUnknown_02024BEC +_080208E8: .4byte gBattleMoveDamage _080208EC: .4byte gBattleMons _080208F0: - ldr r1, _08020904 @ =gUnknown_02024BEC + ldr r1, _08020904 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] _080208F6: @@ -37390,11 +37390,11 @@ _080208F6: strb r1, [r0] b _08020996 .align 2, 0 -_08020904: .4byte gUnknown_02024BEC +_08020904: .4byte gBattleMoveDamage _08020908: .4byte 0x02000000 _0802090C: .4byte 0x0001600f _08020910: - ldr r0, _08020924 @ =gUnknown_02024BEC + ldr r0, _08020924 @ =gBattleMoveDamage ldr r0, [r0] cmp r0, 0 beq _08020930 @@ -37405,7 +37405,7 @@ _08020910: strb r1, [r0] b _08020996 .align 2, 0 -_08020924: .4byte gUnknown_02024BEC +_08020924: .4byte gBattleMoveDamage _08020928: .4byte 0x02000000 _0802092C: .4byte 0x0001600f _08020930: @@ -37690,7 +37690,7 @@ _08020B50: .4byte gUnknown_02024C10 thumb_func_start sub_8020B54 sub_8020B54: @ 8020B54 - ldr r1, _08020B80 @ =gUnknown_02024C68 + ldr r1, _08020B80 @ =gBattleMoveFlags movs r0, 0 strb r0, [r1] ldr r0, _08020B84 @ =0x02000000 @@ -37713,7 +37713,7 @@ sub_8020B54: @ 8020B54 str r0, [r2] bx lr .align 2, 0 -_08020B80: .4byte gUnknown_02024C68 +_08020B80: .4byte gBattleMoveFlags _08020B84: .4byte 0x02000000 _08020B88: .4byte 0x0001601f _08020B8C: .4byte gCritMultiplier @@ -38679,7 +38679,7 @@ _0802124C: _08021250: ldrb r1, [r1] strb r1, [r0] - ldr r0, _0802127C @ =gUnknown_02024BEC + ldr r0, _0802127C @ =gBattleMoveDamage ldrh r1, [r0] movs r0, 0 bl dp01_build_cmdbuf_x18_0_aa_health_bar_update @@ -38695,7 +38695,7 @@ _08021250: .align 2, 0 _08021274: .4byte gUnknown_02024A60 _08021278: .4byte gUnknown_02024C07 -_0802127C: .4byte gUnknown_02024BEC +_0802127C: .4byte gBattleMoveDamage _08021280: .4byte gUnknown_02024C10 thumb_func_end atk3B_8022C68 @@ -38709,7 +38709,7 @@ atk3C_return: @ 8021284 thumb_func_start sub_8021290 sub_8021290: @ 8021290 - ldr r0, _080212A4 @ =gUnknown_02024C68 + ldr r0, _080212A4 @ =gBattleMoveFlags movs r1, 0 strb r1, [r0] ldr r0, _080212A8 @ =gUnknown_02024A60 @@ -38719,7 +38719,7 @@ sub_8021290: @ 8021290 strb r0, [r1] bx lr .align 2, 0 -_080212A4: .4byte gUnknown_02024C68 +_080212A4: .4byte gBattleMoveFlags _080212A8: .4byte gUnknown_02024A60 _080212AC: .4byte gUnknown_02024A7F thumb_func_end sub_8021290 @@ -39614,7 +39614,7 @@ _08021958: lsls r0, 24 cmp r4, r0 beq _080219FE - ldr r0, _08021A14 @ =gUnknown_02024C68 + ldr r0, _08021A14 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -39671,7 +39671,7 @@ _080219FE: _08021A08: .4byte gBattleMons _08021A0C: .4byte gUnknown_02024C08 _08021A10: .4byte gUnknown_02024C07 -_08021A14: .4byte gUnknown_02024C68 +_08021A14: .4byte gBattleMoveFlags _08021A18: .4byte gUnknown_02024D28 _08021A1C: .4byte gBattleMoves _08021A20: .4byte gUnknown_02024BE6 @@ -39720,7 +39720,7 @@ _08021A68: bne _08021A7C b _08021DFA _08021A7C: - ldr r0, _08021AE0 @ =gUnknown_02024C68 + ldr r0, _08021AE0 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -39766,7 +39766,7 @@ _08021AD0: .4byte gBattleMons _08021AD4: .4byte gUnknown_02024C08 _08021AD8: .4byte gUnknown_02024C07 _08021ADC: .4byte gUnknown_02024D68 -_08021AE0: .4byte gUnknown_02024C68 +_08021AE0: .4byte gBattleMoveFlags _08021AE4: .4byte gUnknown_02024A60 _08021AE8: .4byte gUnknown_02024C10 _08021AEC: .4byte gUnknown_081D955D @@ -39883,7 +39883,7 @@ _08021B9C: _08021BC8: cmp r2, 0xE2 bne _08021BDA - ldr r0, _08021C34 @ =gUnknown_02024C68 + ldr r0, _08021C34 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x20 ands r0, r1 @@ -39938,7 +39938,7 @@ _08021C22: _08021C28: .4byte gUnknown_02024C6C _08021C2C: .4byte gUnknown_02024BE8 _08021C30: .4byte 0x0000ffff -_08021C34: .4byte gUnknown_02024C68 +_08021C34: .4byte gBattleMoveFlags _08021C38: .4byte gBattleMons _08021C3C: .4byte gUnknown_02024C07 _08021C40: @@ -40047,7 +40047,7 @@ _08021D0C: .4byte 0x000400c0 _08021D10: .4byte gUnknown_02024C6C _08021D14: .4byte gUnknown_02024A60 _08021D18: - ldr r0, _08021D88 @ =gUnknown_02024C68 + ldr r0, _08021D88 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -40102,7 +40102,7 @@ _08021D7E: adds r1, r2, r4 b _08021E00 .align 2, 0 -_08021D88: .4byte gUnknown_02024C68 +_08021D88: .4byte gBattleMoveFlags _08021D8C: .4byte gUnknown_02024C98 _08021D90: .4byte gUnknown_02024C07 _08021D94: .4byte 0x000400c0 @@ -40236,7 +40236,7 @@ _08021E9A: adds r7, r2, 0 cmp r0, 0x7F bne _08021EBE - ldr r0, _08021F48 @ =gUnknown_02024C68 + ldr r0, _08021F48 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -40309,7 +40309,7 @@ _08021F38: .4byte gUnknown_02024C08 _08021F3C: .4byte 0xffffefff _08021F40: .4byte gBattleMoves _08021F44: .4byte gUnknown_02024BE8 -_08021F48: .4byte gUnknown_02024C68 +_08021F48: .4byte gBattleMoveFlags _08021F4C: .4byte gUnknown_02024C2C _08021F50: .4byte gUnknown_02024C0C _08021F54: .4byte gBitTable @@ -40354,7 +40354,7 @@ _08021FA0: ands r0, r1 cmp r0, 0 beq _0802204C - ldr r0, _08021FE4 @ =gUnknown_02024C68 + ldr r0, _08021FE4 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -40377,7 +40377,7 @@ _08021FD4: .4byte 0x0000ffff _08021FD8: .4byte gUnknown_02024C4C _08021FDC: .4byte gUnknown_02024C08 _08021FE0: .4byte gUnknown_02024C5C -_08021FE4: .4byte gUnknown_02024C68 +_08021FE4: .4byte gBattleMoveFlags _08021FE8: .4byte gUnknown_02024C3C _08021FEC: ldr r0, _08022014 @ =gUnknown_02024C3C @@ -40491,7 +40491,7 @@ _080220C0: ands r1, r0 cmp r1, 0 bne _0802215C - ldr r0, _0802214C @ =gUnknown_02024C68 + ldr r0, _0802214C @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -40546,7 +40546,7 @@ _0802213C: .4byte gBattleMoves _08022140: .4byte gUnknown_02024BE8 _08022144: .4byte gUnknown_02024C6C _08022148: .4byte gUnknown_02024C08 -_0802214C: .4byte gUnknown_02024C68 +_0802214C: .4byte gBattleMoveFlags _08022150: .4byte 0x000160ac _08022154: .4byte 0x000160ad _08022158: .4byte 0x00016100 @@ -40769,7 +40769,7 @@ atk4A_damageflags: @ 80222DC bne _08022370 ldr r3, _08022350 @ =byte_2024C06 strb r0, [r3] - ldr r2, _08022354 @ =gUnknown_02024C68 + ldr r2, _08022354 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x9 orrs r0, r1 @@ -40792,18 +40792,18 @@ _08022344: .4byte gUnknown_02024BE6 _08022348: .4byte gBattleMons _0802234C: .4byte gUnknown_02024C08 _08022350: .4byte byte_2024C06 -_08022354: .4byte gUnknown_02024C68 +_08022354: .4byte gBattleMoveFlags _08022358: .4byte gUnknown_02024C3C _0802235C: .4byte gUnknown_02024D1E _08022360: - ldr r0, _0802236C @ =gUnknown_02024C68 + ldr r0, _0802236C @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] b _08022452 .align 2, 0 -_0802236C: .4byte gUnknown_02024C68 +_0802236C: .4byte gBattleMoveFlags _08022370: ldr r1, _0802237C @ =gTypeEffectiveness adds r0, r5, r1 @@ -40969,7 +40969,7 @@ _08022494: beq _080224CE ldr r3, _08022514 @ =byte_2024C06 strb r6, [r3] - ldr r2, _08022518 @ =gUnknown_02024C68 + ldr r2, _08022518 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -40987,7 +40987,7 @@ _08022494: ldrb r1, [r3] bl sub_81074C4 _080224CE: - ldr r0, _08022518 @ =gUnknown_02024C68 + ldr r0, _08022518 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x8 ands r0, r1 @@ -41019,7 +41019,7 @@ _08022508: .4byte gUnknown_02024C07 _0802250C: .4byte gUnknown_02024BE6 _08022510: .4byte gBattleMoves _08022514: .4byte byte_2024C06 -_08022518: .4byte gUnknown_02024C68 +_08022518: .4byte gBattleMoveFlags _0802251C: .4byte gUnknown_02024C3C _08022520: .4byte gUnknown_02024D1E _08022524: .4byte gUnknown_02024D28 @@ -43066,7 +43066,7 @@ sub_8023524: @ 8023524 subs r1, r0 lsls r1, 25 lsrs r1, 24 - ldr r5, _08023650 @ =gUnknown_02024BEC + ldr r5, _08023650 @ =gBattleMoveDamage ldrb r0, [r4] muls r0, r7 add r0, r9 @@ -43100,7 +43100,7 @@ _08023640: .4byte gUnknown_02024D68 _08023644: .4byte gUnknown_02024C7A _08023648: .4byte gBattleMons _0802364C: .4byte gUnknown_02024C80 -_08023650: .4byte gUnknown_02024BEC +_08023650: .4byte gBattleMoveDamage _08023654: .4byte 0x02000000 _08023658: .4byte 0x00016003 _0802365C: .4byte gUnknown_081D919F @@ -44218,7 +44218,7 @@ atk5C_cmd5c: @ 8023F84 bl sub_8015150 ldr r2, _08023FF4 @ =gUnknown_02024A60 strb r0, [r2] - ldr r0, _08023FF8 @ =gUnknown_02024C68 + ldr r0, _08023FF8 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -44265,7 +44265,7 @@ _08023FD6: .align 2, 0 _08023FF0: .4byte gUnknown_02024C10 _08023FF4: .4byte gUnknown_02024A60 -_08023FF8: .4byte gUnknown_02024C68 +_08023FF8: .4byte gBattleMoveFlags _08023FFC: .4byte gUnknown_02024C6C _08024000: .4byte gBattleMons _08024004: .4byte gUnknown_02024CA8 @@ -45251,7 +45251,7 @@ _080247B6: muls r0, r4 adds r0, r5 ldrh r1, [r0, 0x28] - ldr r2, _08024804 @ =gUnknown_02024BEC + ldr r2, _08024804 @ =gBattleMoveDamage ldr r0, [r2] cmp r1, r0 bgt _08024834 @@ -45265,7 +45265,7 @@ _080247B6: lsls r0, 30 cmp r0, 0 bge _0802480C - ldr r0, _08024808 @ =gUnknown_02024C68 + ldr r0, _08024808 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 @@ -45279,8 +45279,8 @@ _080247F4: .4byte gBattleMons _080247F8: .4byte gBattleMoves _080247FC: .4byte gUnknown_02024BE6 _08024800: .4byte gUnknown_02024D28 -_08024804: .4byte gUnknown_02024BEC -_08024808: .4byte gUnknown_02024C68 +_08024804: .4byte gBattleMoveDamage +_08024808: .4byte gBattleMoveFlags _0802480C: ldr r0, _08024844 @ =gUnknown_02024D68 lsls r1, r3, 2 @@ -45291,7 +45291,7 @@ _0802480C: lsrs r0, 7 cmp r0, 0 beq _08024834 - ldr r2, _08024848 @ =gUnknown_02024C68 + ldr r2, _08024848 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 @@ -45312,7 +45312,7 @@ _08024834: bx r0 .align 2, 0 _08024844: .4byte gUnknown_02024D68 -_08024848: .4byte gUnknown_02024C68 +_08024848: .4byte gBattleMoveFlags _0802484C: .4byte gUnknown_02024C04 _08024850: .4byte gUnknown_02024C10 thumb_func_end atk69_8025FE0 @@ -46551,7 +46551,7 @@ _08025224: ldr r1, _08025260 @ =gUnknown_02024D1E movs r0, 0x2 strb r0, [r1, 0x5] - ldr r2, _08025264 @ =gUnknown_02024C68 + ldr r2, _08025264 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -46570,7 +46570,7 @@ _08025246: _08025258: .4byte gUnknown_02024CA8 _0802525C: .4byte gUnknown_02024C07 _08025260: .4byte gUnknown_02024D1E -_08025264: .4byte gUnknown_02024C68 +_08025264: .4byte gBattleMoveFlags _08025268: .4byte gUnknown_02024C10 thumb_func_end atk77_setprotect @@ -46625,7 +46625,7 @@ _080252B8: ldr r7, _0802533C @ =gUnknown_02024C07 ldrb r0, [r7] strb r0, [r4] - ldr r2, _08025340 @ =gUnknown_02024BEC + ldr r2, _08025340 @ =gBattleMoveDamage ldrb r1, [r4] movs r0, 0x58 muls r0, r1 @@ -46679,7 +46679,7 @@ _08025330: .4byte gUnknown_02024A68 _08025334: .4byte gBattleMons _08025338: .4byte gUnknown_02024A60 _0802533C: .4byte gUnknown_02024C07 -_08025340: .4byte gUnknown_02024BEC +_08025340: .4byte gBattleMoveDamage _08025344: .4byte 0x00007fff _08025348: .4byte gUnknown_02024C10 _0802534C: .4byte gBitTable @@ -46864,7 +46864,7 @@ sub_802548C: @ 802548C ldrb r0, [r0] strb r0, [r3] _080254B4: - ldr r1, _080254F4 @ =gUnknown_02024BEC + ldr r1, _080254F4 @ =gBattleMoveDamage ldr r6, _080254F8 @ =gBattleMons ldrb r0, [r3] movs r5, 0x58 @@ -46894,7 +46894,7 @@ _080254CE: _080254E8: .4byte gUnknown_02024C10 _080254EC: .4byte gUnknown_02024C08 _080254F0: .4byte gUnknown_02024C07 -_080254F4: .4byte gUnknown_02024BEC +_080254F4: .4byte gBattleMoveDamage _080254F8: .4byte gBattleMons _080254FC: ldr r0, [r4] @@ -47120,7 +47120,7 @@ sub_80256D0: @ 80256D0 ands r1, r0 cmp r1, 0 beq _080256FC - ldr r2, _080256F4 @ =gUnknown_02024C68 + ldr r2, _080256F4 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -47131,7 +47131,7 @@ sub_80256D0: @ 80256D0 b _0802570C .align 2, 0 _080256F0: .4byte gBattleWeather -_080256F4: .4byte gUnknown_02024C68 +_080256F4: .4byte gBattleMoveFlags _080256F8: .4byte gUnknown_02024D1E _080256FC: movs r0, 0x1 @@ -47172,7 +47172,7 @@ atk7E_setreflect: @ 8025724 ands r0, r1 cmp r0, 0 beq _08025764 - ldr r2, _0802575C @ =gUnknown_02024C68 + ldr r2, _0802575C @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -47183,7 +47183,7 @@ atk7E_setreflect: @ 8025724 .align 2, 0 _08025754: .4byte gUnknown_02024C07 _08025758: .4byte gUnknown_02024C7A -_0802575C: .4byte gUnknown_02024C68 +_0802575C: .4byte gBattleMoveFlags _08025760: .4byte gUnknown_02024D1E _08025764: ldrb r0, [r5] @@ -47250,7 +47250,7 @@ sub_80257DC: @ 80257DC mov r7, r9 mov r6, r8 push {r6,r7} - ldr r7, _0802581C @ =gUnknown_02024C68 + ldr r7, _0802581C @ =gBattleMoveFlags ldrb r5, [r7] movs r0, 0x29 ands r0, r5 @@ -47280,7 +47280,7 @@ _0802580E: strb r0, [r1, 0x5] b _0802587C .align 2, 0 -_0802581C: .4byte gUnknown_02024C68 +_0802581C: .4byte gBattleMoveFlags _08025820: .4byte gUnknown_02024C98 _08025824: .4byte gUnknown_02024C08 _08025828: .4byte gUnknown_02024D1E @@ -47363,14 +47363,14 @@ _080258B8: beq _08025904 b _0802590C _080258BE: - ldr r1, _080258C8 @ =gUnknown_02024BEC + ldr r1, _080258C8 @ =gBattleMoveDamage ldr r0, [r1] negs r0, r0 b _0802590A .align 2, 0 -_080258C8: .4byte gUnknown_02024BEC +_080258C8: .4byte gBattleMoveDamage _080258CC: - ldr r3, _080258F8 @ =gUnknown_02024BEC + ldr r3, _080258F8 @ =gBattleMoveDamage ldr r0, [r3] lsrs r1, r0, 31 adds r0, r1 @@ -47394,11 +47394,11 @@ _080258DE: str r1, [r3] b _0802590C .align 2, 0 -_080258F8: .4byte gUnknown_02024BEC +_080258F8: .4byte gBattleMoveDamage _080258FC: .4byte gBattleMons _08025900: .4byte gUnknown_02024C08 _08025904: - ldr r1, _08025918 @ =gUnknown_02024BEC + ldr r1, _08025918 @ =gBattleMoveDamage ldr r0, [r1] lsls r0, 1 _0802590A: @@ -47411,7 +47411,7 @@ _0802590C: pop {r0} bx r0 .align 2, 0 -_08025918: .4byte gUnknown_02024BEC +_08025918: .4byte gBattleMoveDamage thumb_func_end atk80_manipulatedamage thumb_func_start atk81_setrest @@ -47437,7 +47437,7 @@ atk81_setrest: @ 802591C ldrb r0, [r0] strb r0, [r2] strb r0, [r5] - ldr r4, _08025984 @ =gUnknown_02024BEC + ldr r4, _08025984 @ =gBattleMoveDamage ldr r1, _08025988 @ =gBattleMons ldrb r0, [r2] movs r3, 0x58 @@ -47465,7 +47465,7 @@ _08025974: .4byte gUnknown_02024C10 _08025978: .4byte gUnknown_02024A60 _0802597C: .4byte gUnknown_02024C08 _08025980: .4byte gUnknown_02024C07 -_08025984: .4byte gUnknown_02024BEC +_08025984: .4byte gBattleMoveDamage _08025988: .4byte gBattleMons _0802598C: adds r0, r2, 0 @@ -47730,7 +47730,7 @@ sub_8025B5C: @ 8025B5C ldrb r0, [r1, 0x9] cmp r0, 0x3 bne _08025B94 - ldr r2, _08025B8C @ =gUnknown_02024C68 + ldr r2, _08025B8C @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -47742,7 +47742,7 @@ sub_8025B5C: @ 8025B5C .align 2, 0 _08025B84: .4byte gUnknown_02024CA8 _08025B88: .4byte gUnknown_02024C07 -_08025B8C: .4byte gUnknown_02024C68 +_08025B8C: .4byte gBattleMoveFlags _08025B90: .4byte gUnknown_02024D1E _08025B94: adds r0, 0x1 @@ -47819,7 +47819,7 @@ _08025C1C: ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _08025CA8 - ldr r0, _08025CD4 @ =gUnknown_02024BEC + ldr r0, _08025CD4 @ =gBattleMoveDamage mov r8, r0 ldr r4, _08025CD8 @ =gUnknown_02024C7A ldr r5, _08025CDC @ =gUnknown_02024C08 @@ -47905,7 +47905,7 @@ _08025CC2: bx r0 .align 2, 0 _08025CD0: .4byte gUnknown_02024D1E -_08025CD4: .4byte gUnknown_02024BEC +_08025CD4: .4byte gBattleMoveDamage _08025CD8: .4byte gUnknown_02024C7A _08025CDC: .4byte gUnknown_02024C08 _08025CE0: .4byte gBattleMons @@ -47980,7 +47980,7 @@ _08025D74: .4byte gBattleMons _08025D78: .4byte gUnknown_02024C08 _08025D7C: .4byte gUnknown_02024D1E _08025D80: - ldr r5, _08025DDC @ =gUnknown_02024BEC + ldr r5, _08025DDC @ =gBattleMoveDamage ldrh r0, [r1, 0x2C] ldrb r1, [r4, 0x9] movs r2, 0x3 @@ -48027,7 +48027,7 @@ _08025DD0: pop {r0} bx r0 .align 2, 0 -_08025DDC: .4byte gUnknown_02024BEC +_08025DDC: .4byte gBattleMoveDamage _08025DE0: .4byte 0x02000000 _08025DE4: .4byte 0x00016002 _08025DE8: .4byte gUnknown_02024C08 @@ -48036,7 +48036,7 @@ _08025DE8: .4byte gUnknown_02024C08 thumb_func_start atk88_negativedamage atk88_negativedamage: @ 8025DEC push {lr} - ldr r2, _08025E14 @ =gUnknown_02024BEC + ldr r2, _08025E14 @ =gBattleMoveDamage ldr r0, _08025E18 @ =gUnknown_02024BF0 ldr r0, [r0] lsrs r1, r0, 31 @@ -48057,7 +48057,7 @@ _08025E08: pop {r0} bx r0 .align 2, 0 -_08025E14: .4byte gUnknown_02024BEC +_08025E14: .4byte gBattleMoveDamage _08025E18: .4byte gUnknown_02024BF0 _08025E1C: .4byte gUnknown_02024C10 thumb_func_end atk88_negativedamage @@ -48606,7 +48606,7 @@ _0802627A: ands r3, r5 cmp r3, 0 beq _08026294 - ldr r0, _080262C0 @ =gUnknown_02024C68 + ldr r0, _080262C0 @ =gBattleMoveFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 @@ -48633,7 +48633,7 @@ _080262A4: _080262B4: .4byte gUnknown_02024C08 _080262B8: .4byte gUnknown_02024D1E _080262BC: .4byte gUnknown_02024A60 -_080262C0: .4byte gUnknown_02024C68 +_080262C0: .4byte gBattleMoveFlags thumb_func_end sub_8025E20 thumb_func_start atk89_statbuffchange @@ -49665,7 +49665,7 @@ atk92_setlightscreen: @ 8026AC0 ands r0, r1 cmp r0, 0 beq _08026B00 - ldr r2, _08026AF8 @ =gUnknown_02024C68 + ldr r2, _08026AF8 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -49676,7 +49676,7 @@ atk92_setlightscreen: @ 8026AC0 .align 2, 0 _08026AF0: .4byte gUnknown_02024C07 _08026AF4: .4byte gUnknown_02024C7A -_08026AF8: .4byte gUnknown_02024C68 +_08026AF8: .4byte gBattleMoveFlags _08026AFC: .4byte gUnknown_02024D1E _08026B00: ldrb r0, [r4] @@ -49822,7 +49822,7 @@ _08026C0C: mov r10, r8 cmp r3, 0x5 bne _08026C6C - ldr r2, _08026C5C @ =gUnknown_02024C68 + ldr r2, _08026C5C @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -49842,7 +49842,7 @@ _08026C4C: .4byte gUnknown_02024C0B _08026C50: .4byte gUnknown_02024C08 _08026C54: .4byte gUnknown_02024D68 _08026C58: .4byte gBattleMons -_08026C5C: .4byte gUnknown_02024C68 +_08026C5C: .4byte gBattleMoveFlags _08026C60: .4byte byte_2024C06 _08026C64: .4byte gUnknown_02024C10 _08026C68: .4byte gUnknown_081D9826 @@ -49945,14 +49945,14 @@ _08026D20: lsls r0, 30 cmp r0, 0 bge _08026D64 - ldr r1, _08026D5C @ =gUnknown_02024BEC + ldr r1, _08026D5C @ =gBattleMoveDamage movs r0, 0x58 muls r0, r2 add r0, r10 ldrh r0, [r0, 0x28] subs r0, 0x1 str r0, [r1] - ldr r2, _08026D60 @ =gUnknown_02024C68 + ldr r2, _08026D60 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x40 b _08026DC6 @@ -49961,8 +49961,8 @@ _08026D4C: .4byte gUnknown_02024CA8 _08026D50: .4byte gUnknown_02024C07 _08026D54: .4byte gUnknown_02024D28 _08026D58: .4byte gUnknown_02024C08 -_08026D5C: .4byte gUnknown_02024BEC -_08026D60: .4byte gUnknown_02024C68 +_08026D5C: .4byte gBattleMoveDamage +_08026D60: .4byte gBattleMoveFlags _08026D64: ldr r0, _08026DA0 @ =gUnknown_02024D68 lsls r1, r2, 2 @@ -49973,7 +49973,7 @@ _08026D64: lsrs r0, 7 cmp r0, 0 beq _08026DB4 - ldr r1, _08026DA4 @ =gUnknown_02024BEC + ldr r1, _08026DA4 @ =gBattleMoveDamage movs r3, 0x58 adds r0, r2, 0 muls r0, r3 @@ -49981,7 +49981,7 @@ _08026D64: ldrh r0, [r0, 0x28] subs r0, 0x1 str r0, [r1] - ldr r2, _08026DA8 @ =gUnknown_02024C68 + ldr r2, _08026DA8 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 @@ -49996,18 +49996,18 @@ _08026D64: b _08026DCA .align 2, 0 _08026DA0: .4byte gUnknown_02024D68 -_08026DA4: .4byte gUnknown_02024BEC -_08026DA8: .4byte gUnknown_02024C68 +_08026DA4: .4byte gBattleMoveDamage +_08026DA8: .4byte gBattleMoveFlags _08026DAC: .4byte gUnknown_02024C04 _08026DB0: .4byte gUnknown_02024C08 _08026DB4: - ldr r1, _08026DD4 @ =gUnknown_02024BEC + ldr r1, _08026DD4 @ =gBattleMoveDamage movs r0, 0x58 muls r0, r2 add r0, r10 ldrh r0, [r0, 0x28] str r0, [r1] - ldr r2, _08026DD8 @ =gUnknown_02024C68 + ldr r2, _08026DD8 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x10 _08026DC6: @@ -50020,11 +50020,11 @@ _08026DCA: str r0, [r1] b _08026E40 .align 2, 0 -_08026DD4: .4byte gUnknown_02024BEC -_08026DD8: .4byte gUnknown_02024C68 +_08026DD4: .4byte gBattleMoveDamage +_08026DD8: .4byte gBattleMoveFlags _08026DDC: .4byte gUnknown_02024C10 _08026DE0: - ldr r2, _08026E10 @ =gUnknown_02024C68 + ldr r2, _08026E10 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -50049,7 +50049,7 @@ _08026DE0: movs r0, 0 b _08026E24 .align 2, 0 -_08026E10: .4byte gUnknown_02024C68 +_08026E10: .4byte gBattleMoveFlags _08026E14: .4byte gUnknown_02024C07 _08026E18: .4byte gUnknown_02024C08 _08026E1C: .4byte gUnknown_02024D1E @@ -50087,7 +50087,7 @@ _08026E54: .4byte gUnknown_02024C10 thumb_func_start atk94_gethalfcurrentenemyhp atk94_gethalfcurrentenemyhp: @ 8026E58 push {lr} - ldr r3, _08026E84 @ =gUnknown_02024BEC + ldr r3, _08026E84 @ =gBattleMoveDamage ldr r2, _08026E88 @ =gBattleMons ldr r0, _08026E8C @ =gUnknown_02024C08 ldrb r1, [r0] @@ -50109,7 +50109,7 @@ _08026E76: pop {r0} bx r0 .align 2, 0 -_08026E84: .4byte gUnknown_02024BEC +_08026E84: .4byte gBattleMoveDamage _08026E88: .4byte gBattleMons _08026E8C: .4byte gUnknown_02024C08 _08026E90: .4byte gUnknown_02024C10 @@ -50124,7 +50124,7 @@ sub_8026E94: @ 8026E94 ands r0, r1 cmp r0, 0 beq _08026EC0 - ldr r2, _08026EB8 @ =gUnknown_02024C68 + ldr r2, _08026EB8 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -50135,7 +50135,7 @@ sub_8026E94: @ 8026E94 b _08026ED2 .align 2, 0 _08026EB4: .4byte gBattleWeather -_08026EB8: .4byte gUnknown_02024C68 +_08026EB8: .4byte gBattleMoveFlags _08026EBC: .4byte gUnknown_02024D1E _08026EC0: movs r0, 0x8 @@ -50237,7 +50237,7 @@ _08026F20: ands r1, r0 cmp r1, 0 bne _08026FA8 - ldr r1, _08026FA4 @ =gUnknown_02024BEC + ldr r1, _08026FA4 @ =gBattleMoveDamage ldrh r0, [r3, 0x2C] lsrs r0, 4 str r0, [r1] @@ -50250,9 +50250,9 @@ _08026F94: .4byte gBattleWeather _08026F98: .4byte gUnknown_02024C07 _08026F9C: .4byte gBattleMons _08026FA0: .4byte gUnknown_02024C98 -_08026FA4: .4byte gUnknown_02024BEC +_08026FA4: .4byte gBattleMoveDamage _08026FA8: - ldr r1, _08027004 @ =gUnknown_02024BEC + ldr r1, _08027004 @ =gBattleMoveDamage movs r0, 0 _08026FAC: str r0, [r1] @@ -50291,7 +50291,7 @@ _08026FAE: ands r1, r0 cmp r1, 0 bne _08027010 - ldr r1, _08027004 @ =gUnknown_02024BEC + ldr r1, _08027004 @ =gBattleMoveDamage ldrh r0, [r2, 0x2C] lsrs r0, 4 str r0, [r1] @@ -50301,18 +50301,18 @@ _08026FAE: str r0, [r1] b _08027024 .align 2, 0 -_08027004: .4byte gUnknown_02024BEC +_08027004: .4byte gBattleMoveDamage _08027008: .4byte gBattleMons _0802700C: .4byte gUnknown_02024C98 _08027010: - ldr r1, _08027018 @ =gUnknown_02024BEC + ldr r1, _08027018 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] b _08027024 .align 2, 0 -_08027018: .4byte gUnknown_02024BEC +_08027018: .4byte gBattleMoveDamage _0802701C: - ldr r1, _08027050 @ =gUnknown_02024BEC + ldr r1, _08027050 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] ldr r5, _08027054 @ =gUnknown_02024C07 @@ -50327,7 +50327,7 @@ _08027024: ands r1, r0 cmp r1, 0 beq _0802703E - ldr r1, _08027050 @ =gUnknown_02024BEC + ldr r1, _08027050 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] _0802703E: @@ -50340,7 +50340,7 @@ _0802703E: pop {r0} bx r0 .align 2, 0 -_08027050: .4byte gUnknown_02024BEC +_08027050: .4byte gBattleMoveDamage _08027054: .4byte gUnknown_02024C07 _08027058: .4byte gUnknown_02024C0C _0802705C: .4byte gBitTable @@ -50703,7 +50703,7 @@ sub_8027348: @ 8027348 ldrb r0, [r0, 0x2] cmp r0, 0 beq _08027388 - ldr r2, _08027380 @ =gUnknown_02024C68 + ldr r2, _08027380 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 @@ -50714,7 +50714,7 @@ sub_8027348: @ 8027348 .align 2, 0 _08027378: .4byte gUnknown_02024C80 _0802737C: .4byte gUnknown_02024C07 -_08027380: .4byte gUnknown_02024C68 +_08027380: .4byte gBattleMoveFlags _08027384: .4byte gUnknown_02024D1E _08027388: ldrb r0, [r4] @@ -50774,7 +50774,7 @@ atk9A_setincreasedcriticalchance: @ 80273DC ands r2, r3 cmp r2, 0 beq _0802741C - ldr r2, _08027414 @ =gUnknown_02024C68 + ldr r2, _08027414 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 @@ -50786,7 +50786,7 @@ atk9A_setincreasedcriticalchance: @ 80273DC .align 2, 0 _0802740C: .4byte gBattleMons _08027410: .4byte gUnknown_02024C07 -_08027414: .4byte gUnknown_02024C68 +_08027414: .4byte gBattleMoveFlags _08027418: .4byte gUnknown_02024D1E _0802741C: orrs r1, r3 @@ -50843,7 +50843,7 @@ atk9B_transformdataexecution: @ 8027438 cmp r2, 0 beq _080274B4 _0802747E: - ldr r2, _080274AC @ =gUnknown_02024C68 + ldr r2, _080274AC @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x20 orrs r0, r1 @@ -50859,7 +50859,7 @@ _0802749C: .4byte gBattleMons _080274A0: .4byte gUnknown_02024C08 _080274A4: .4byte gUnknown_02024C98 _080274A8: .4byte 0x000400c0 -_080274AC: .4byte gUnknown_02024C68 +_080274AC: .4byte gBattleMoveFlags _080274B0: .4byte gUnknown_02024D1E _080274B4: ldr r3, _08027588 @ =gUnknown_02024C07 @@ -51026,7 +51026,7 @@ _080275F2: ldrh r0, [r3, 0x28] cmp r0, r2 bhi _08027618 - ldr r1, _08027610 @ =gUnknown_02024BEC + ldr r1, _08027610 @ =gBattleMoveDamage movs r0, 0 str r0, [r1] ldr r1, _08027614 @ =gUnknown_02024D1E @@ -51036,10 +51036,10 @@ _080275F2: .align 2, 0 _08027608: .4byte gBattleMons _0802760C: .4byte gUnknown_02024C07 -_08027610: .4byte gUnknown_02024BEC +_08027610: .4byte gBattleMoveDamage _08027614: .4byte gUnknown_02024D1E _08027618: - ldr r4, _0802767C @ =gUnknown_02024BEC + ldr r4, _0802767C @ =gBattleMoveDamage str r1, [r4] cmp r1, 0 bne _08027624 @@ -51091,7 +51091,7 @@ _0802766C: pop {r0} bx r0 .align 2, 0 -_0802767C: .4byte gUnknown_02024BEC +_0802767C: .4byte gBattleMoveDamage _08027680: .4byte 0xffff1fff _08027684: .4byte gUnknown_02024CA8 _08027688: .4byte gUnknown_02024D1E @@ -51455,7 +51455,7 @@ _0802795C: .4byte gUnknown_02024C08 thumb_func_start sub_8027960 sub_8027960: @ 8027960 - ldr r3, _08027980 @ =gUnknown_02024BEC + ldr r3, _08027980 @ =gBattleMoveDamage ldr r2, _08027984 @ =gBattleMons ldr r0, _08027988 @ =gUnknown_02024C07 ldrb r1, [r0] @@ -51471,7 +51471,7 @@ sub_8027960: @ 8027960 str r0, [r1] bx lr .align 2, 0 -_08027980: .4byte gUnknown_02024BEC +_08027980: .4byte gBattleMoveDamage _08027984: .4byte gBattleMons _08027988: .4byte gUnknown_02024C07 _0802798C: .4byte gUnknown_02024C10 @@ -51490,7 +51490,7 @@ _08027994: lsls r0, r3, 2 adds r0, r3 lsls r3, r0, 1 - ldr r4, _080279D4 @ =gUnknown_02024BEC + ldr r4, _080279D4 @ =gBattleMoveDamage ldr r2, _080279D8 @ =gBattleMons ldr r0, _080279DC @ =gUnknown_02024C07 ldrb r1, [r0] @@ -51513,7 +51513,7 @@ _08027994: pop {r0} bx r0 .align 2, 0 -_080279D4: .4byte gUnknown_02024BEC +_080279D4: .4byte gBattleMoveDamage _080279D8: .4byte gBattleMons _080279DC: .4byte gUnknown_02024C07 _080279E0: .4byte gUnknown_02024C10 @@ -51553,7 +51553,7 @@ atkA1_counterdamagecalculator: @ 80279E4 ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027A98 - ldr r1, _08027A60 @ =gUnknown_02024BEC + ldr r1, _08027A60 @ =gBattleMoveDamage lsls r0, r3, 1 str r0, [r1] ldr r1, _08027A64 @ =gUnknown_02024C80 @@ -51578,7 +51578,7 @@ atkA1_counterdamagecalculator: @ 80279E4 _08027A54: .4byte gUnknown_02024C07 _08027A58: .4byte gUnknown_02024D28 _08027A5C: .4byte gBattleMons -_08027A60: .4byte gUnknown_02024BEC +_08027A60: .4byte gBattleMoveDamage _08027A64: .4byte gUnknown_02024C80 _08027A68: .4byte gUnknown_02024C08 _08027A6C: @@ -51671,7 +51671,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC ldrh r0, [r0, 0x28] cmp r0, 0 beq _08027B90 - ldr r1, _08027B58 @ =gUnknown_02024BEC + ldr r1, _08027B58 @ =gBattleMoveDamage lsls r0, r3, 1 str r0, [r1] ldr r1, _08027B5C @ =gUnknown_02024C80 @@ -51696,7 +51696,7 @@ atkA2_mirrorcoatdamagecalculator: @ 8027ADC _08027B4C: .4byte gUnknown_02024C07 _08027B50: .4byte gUnknown_02024D28 _08027B54: .4byte gBattleMons -_08027B58: .4byte gUnknown_02024BEC +_08027B58: .4byte gBattleMoveDamage _08027B5C: .4byte gUnknown_02024C80 _08027B60: .4byte gUnknown_02024C08 _08027B64: @@ -52108,7 +52108,7 @@ sub_8027E4C: @ 8027E4C ldrh r2, [r0, 0x28] adds r4, r2 asrs r4, 1 - ldr r5, _08027EF8 @ =gUnknown_02024BEC + ldr r5, _08027EF8 @ =gBattleMoveDamage mov r9, r5 subs r2, r4 str r2, [r5] @@ -52161,7 +52161,7 @@ sub_8027E4C: @ 8027E4C _08027EEC: .4byte gBattleMons _08027EF0: .4byte gUnknown_02024C08 _08027EF4: .4byte gUnknown_02024C07 -_08027EF8: .4byte gUnknown_02024BEC +_08027EF8: .4byte gBattleMoveDamage _08027EFC: .4byte 0x02000000 _08027F00: .4byte 0x00016014 _08027F04: .4byte 0x00016015 @@ -53717,7 +53717,7 @@ _08028B34: .4byte gUnknown_02024C10 _08028B38: orrs r2, r5 str r2, [r4] - ldr r1, _08028B64 @ =gUnknown_02024BEC + ldr r1, _08028B64 @ =gBattleMoveDamage ldr r0, _08028B68 @ =gUnknown_02024C07 ldrb r0, [r0] muls r0, r6 @@ -53739,7 +53739,7 @@ _08028B5C: pop {r0} bx r0 .align 2, 0 -_08028B64: .4byte gUnknown_02024BEC +_08028B64: .4byte gBattleMoveDamage _08028B68: .4byte gUnknown_02024C07 _08028B6C: .4byte gUnknown_02024C10 thumb_func_end sub_8028AD4 @@ -53942,7 +53942,7 @@ atkB3_rolloutdamagecalculation: @ 8028CE4 mov r7, r9 mov r6, r8 push {r6,r7} - ldr r0, _08028D08 @ =gUnknown_02024C68 + ldr r0, _08028D08 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -53956,7 +53956,7 @@ atkB3_rolloutdamagecalculation: @ 8028CE4 str r0, [r1] b _08028E30 .align 2, 0 -_08028D08: .4byte gUnknown_02024C68 +_08028D08: .4byte gBattleMoveFlags _08028D0C: .4byte gUnknown_02024C07 _08028D10: .4byte gUnknown_02024C10 _08028D14: .4byte BattleScript_1D6F74 @@ -54183,7 +54183,7 @@ _08028EC2: thumb_func_start sub_8028EC8 sub_8028EC8: @ 8028EC8 push {r4,r5,lr} - ldr r0, _08028EF0 @ =gUnknown_02024C68 + ldr r0, _08028EF0 @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -54203,7 +54203,7 @@ sub_8028EC8: @ 8028EC8 str r0, [r1] b _08028F5C .align 2, 0 -_08028EF0: .4byte gUnknown_02024C68 +_08028EF0: .4byte gBattleMoveFlags _08028EF4: .4byte gUnknown_02024CA8 _08028EF8: .4byte gUnknown_02024C07 _08028EFC: .4byte gUnknown_02024C10 @@ -54364,7 +54364,7 @@ _0802902C: .align 2, 0 _08029038: .4byte gUnknown_02024DEC _0802903C: - ldr r3, _08029068 @ =gUnknown_02024BEC + ldr r3, _08029068 @ =gBattleMoveDamage ldr r2, _0802906C @ =gBattleMons ldr r0, _08029070 @ =gUnknown_02024C08 ldrb r1, [r0] @@ -54389,7 +54389,7 @@ _0802905E: ldr r0, _08029078 @ =BattleScript_1D6F44 b _080290AC .align 2, 0 -_08029068: .4byte gUnknown_02024BEC +_08029068: .4byte gBattleMoveDamage _0802906C: .4byte gBattleMons _08029070: .4byte gUnknown_02024C08 _08029074: .4byte gUnknown_02024C10 @@ -54443,7 +54443,7 @@ sub_80290BC: @ 80290BC ands r0, r1 cmp r0, 0 beq _08029100 - ldr r2, _080290F8 @ =gUnknown_02024C68 + ldr r2, _080290F8 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -54455,7 +54455,7 @@ sub_80290BC: @ 80290BC .align 2, 0 _080290F0: .4byte gUnknown_02024C07 _080290F4: .4byte gUnknown_02024C7A -_080290F8: .4byte gUnknown_02024C68 +_080290F8: .4byte gBattleMoveFlags _080290FC: .4byte gUnknown_02024D1E _08029100: ldrb r0, [r4] @@ -54829,7 +54829,7 @@ sub_80293E8: @ 80293E8 ands r0, r1 cmp r0, 0 beq _08029414 - ldr r2, _0802940C @ =gUnknown_02024C68 + ldr r2, _0802940C @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -54840,7 +54840,7 @@ sub_80293E8: @ 80293E8 b _08029426 .align 2, 0 _08029408: .4byte gBattleWeather -_0802940C: .4byte gUnknown_02024C68 +_0802940C: .4byte gBattleMoveFlags _08029410: .4byte gUnknown_02024D1E _08029414: movs r0, 0x20 @@ -54889,7 +54889,7 @@ _08029458: bls _0802949C movs r0, 0xC strb r0, [r2, 0x19] - ldr r1, _08029494 @ =gUnknown_02024BEC + ldr r1, _08029494 @ =gBattleMoveDamage ldrb r0, [r4] muls r0, r3 adds r0, r5 @@ -54909,7 +54909,7 @@ _08029480: .align 2, 0 _0802948C: .4byte gBattleMons _08029490: .4byte gUnknown_02024C07 -_08029494: .4byte gUnknown_02024BEC +_08029494: .4byte gBattleMoveDamage _08029498: .4byte gUnknown_02024C10 _0802949C: ldr r3, _080294BC @ =gUnknown_02024C10 @@ -55183,7 +55183,7 @@ atkC0_recoverbasedonsunlight: @ 802967C cmp r0, 0 beq _080296FC _080296CE: - ldr r3, _080296F8 @ =gUnknown_02024BEC + ldr r3, _080296F8 @ =gBattleMoveDamage ldr r2, _080296F0 @ =gBattleMons ldr r0, _080296EC @ =gUnknown_02024C07 ldrb r1, [r0] @@ -55200,14 +55200,14 @@ _080296E8: .4byte gUnknown_02024C08 _080296EC: .4byte gUnknown_02024C07 _080296F0: .4byte gBattleMons _080296F4: .4byte gBattleWeather -_080296F8: .4byte gUnknown_02024BEC +_080296F8: .4byte gBattleMoveDamage _080296FC: ldrh r1, [r4] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _08029728 - ldr r4, _08029724 @ =gUnknown_02024BEC + ldr r4, _08029724 @ =gBattleMoveDamage ldrb r0, [r5] muls r0, r6 adds r0, r7 @@ -55221,9 +55221,9 @@ _080296FC: adds r1, r4, 0 b _08029736 .align 2, 0 -_08029724: .4byte gUnknown_02024BEC +_08029724: .4byte gBattleMoveDamage _08029728: - ldr r1, _08029754 @ =gUnknown_02024BEC + ldr r1, _08029754 @ =gBattleMoveDamage ldrb r0, [r5] muls r0, r6 adds r0, r7 @@ -55247,7 +55247,7 @@ _08029742: str r0, [r1] b _08029776 .align 2, 0 -_08029754: .4byte gUnknown_02024BEC +_08029754: .4byte gBattleMoveDamage _08029758: .4byte gUnknown_02024C10 _0802975C: ldr r3, _08029780 @ =gUnknown_02024C10 @@ -55735,7 +55735,7 @@ _08029B08: ldr r0, [r1] adds r0, 0x9 str r0, [r1] - ldr r2, _08029BF0 @ =gUnknown_02024BEC + ldr r2, _08029BF0 @ =gBattleMoveDamage mov r8, r2 ldr r5, _08029BF4 @ =gBaseStats mov r1, r9 @@ -55822,7 +55822,7 @@ _08029BE0: .4byte gUnknown_02024D1E _08029BE4: .4byte gUnknown_030041C0 _08029BE8: .4byte gUnknown_02024C07 _08029BEC: .4byte gUnknown_02024C10 -_08029BF0: .4byte gUnknown_02024BEC +_08029BF0: .4byte gBattleMoveDamage _08029BF4: .4byte gBaseStats _08029BF8: .4byte gBattleMoves _08029BFC: .4byte gUnknown_02024BE6 @@ -56060,7 +56060,7 @@ sub_8029DAC: @ 8029DAC ands r0, r1 cmp r0, 0 beq _08029DDC - ldr r2, _08029DD4 @ =gUnknown_02024C68 + ldr r2, _08029DD4 @ =gBattleMoveFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 @@ -56071,7 +56071,7 @@ sub_8029DAC: @ 8029DAC b _08029DEA .align 2, 0 _08029DD0: .4byte gBattleWeather -_08029DD4: .4byte gUnknown_02024C68 +_08029DD4: .4byte gBattleMoveFlags _08029DD8: .4byte gUnknown_02024D1E _08029DDC: strh r2, [r3] @@ -56140,7 +56140,7 @@ _08029E58: ldr r0, _08029E90 @ =gUnknown_02024C07 ldrb r0, [r0] strb r0, [r4] - ldr r2, _08029E94 @ =gUnknown_02024BEC + ldr r2, _08029E94 @ =gBattleMoveDamage ldrb r1, [r4] movs r0, 0x58 muls r0, r1 @@ -56163,7 +56163,7 @@ _08029E84: .align 2, 0 _08029E8C: .4byte gUnknown_02024A60 _08029E90: .4byte gUnknown_02024C07 -_08029E94: .4byte gUnknown_02024BEC +_08029E94: .4byte gBattleMoveDamage _08029E98: .4byte 0x00007fff _08029E9C: .4byte gUnknown_02024C10 thumb_func_end atkC9_jumpifattackandspecialattackcannotfall @@ -57049,7 +57049,7 @@ _0802A578: strb r0, [r1, 0x3] movs r0, 0xFF strb r0, [r1, 0x4] - ldr r1, _0802A5E8 @ =gUnknown_02024BEC + ldr r1, _0802A5E8 @ =gBattleMoveDamage ldr r6, _0802A5EC @ =gBattleMons ldrb r0, [r4] movs r5, 0x58 @@ -57089,7 +57089,7 @@ _0802A5C4: _0802A5DC: .4byte gUnknown_030041C0 _0802A5E0: .4byte gUnknown_02024C08 _0802A5E4: .4byte gUnknown_02024DBC -_0802A5E8: .4byte gUnknown_02024BEC +_0802A5E8: .4byte gBattleMoveDamage _0802A5EC: .4byte gBattleMons _0802A5F0: adds r0, r2, 0x6 @@ -57297,7 +57297,7 @@ _0802A76C: .4byte gUnknown_02024C08 _0802A770: .4byte gUnknown_02024C07 _0802A774: .4byte gUnknown_02024C10 _0802A778: - ldr r2, _0802A790 @ =gUnknown_02024BEC + ldr r2, _0802A790 @ =gBattleMoveDamage ldrh r0, [r3, 0x28] ldrh r1, [r1, 0x28] subs r0, r1 @@ -57310,7 +57310,7 @@ _0802A78A: pop {r0} bx r0 .align 2, 0 -_0802A790: .4byte gUnknown_02024BEC +_0802A790: .4byte gBattleMoveDamage _0802A794: .4byte gUnknown_02024C10 thumb_func_end atkD8_setdamagetohealthdifference @@ -57395,7 +57395,7 @@ _0802A824: ldrb r3, [r0] cmp r3, 0x19 beq _0802A844 - ldr r0, _0802A86C @ =gUnknown_02024C68 + ldr r0, _0802A86C @ =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 @@ -57420,7 +57420,7 @@ _0802A844: _0802A860: .4byte gBattleMons _0802A864: .4byte gUnknown_02024C07 _0802A868: .4byte gUnknown_02024C08 -_0802A86C: .4byte gUnknown_02024C68 +_0802A86C: .4byte gBattleMoveFlags _0802A870: .4byte gUnknown_02024C10 _0802A874: ldrb r1, [r2] @@ -60238,7 +60238,7 @@ sub_802BEF0: @ 802BEF0 movs r0, 0x58 muls r1, r0 adds r1, r2 - ldr r0, _0802BF18 @ =gUnknown_02024BEC + ldr r0, _0802BF18 @ =gBattleMoveDamage ldr r2, [r0] ldrh r0, [r1, 0x28] subs r0, r2 @@ -60251,7 +60251,7 @@ sub_802BEF0: @ 802BEF0 .align 2, 0 _0802BF10: .4byte gBattleMons _0802BF14: .4byte gUnknown_02024C07 -_0802BF18: .4byte gUnknown_02024BEC +_0802BF18: .4byte gBattleMoveDamage _0802BF1C: .4byte gUnknown_02024C10 thumb_func_end sub_802BEF0 @@ -81840,7 +81840,7 @@ _08036F04: adds r0, r4 movs r1, 0x1 strb r1, [r0] - ldr r0, _08037010 @ =gUnknown_02024C68 + ldr r0, _08037010 @ =gBattleMoveFlags strb r2, [r0] ldr r0, _08037014 @ =gCritMultiplier strb r1, [r0] @@ -81895,7 +81895,7 @@ _08036F2C: beq _08036FE8 movs r5, 0 mov r9, r6 - ldr r4, _08037024 @ =gUnknown_02024BEC + ldr r4, _08037024 @ =gBattleMoveDamage mov r8, r4 ldr r6, _08037028 @ =gUnknown_02024A60 _08036F90: @@ -81961,12 +81961,12 @@ _08037000: .4byte gUnknown_02024DEC _08037004: .4byte 0x02000000 _08037008: .4byte 0x0001601c _0803700C: .4byte 0x0001601f -_08037010: .4byte gUnknown_02024C68 +_08037010: .4byte gBattleMoveFlags _08037014: .4byte gCritMultiplier _08037018: .4byte gEnemyParty _0803701C: .4byte gUnknown_02024A6A _08037020: .4byte 0x00016068 -_08037024: .4byte gUnknown_02024BEC +_08037024: .4byte gBattleMoveDamage _08037028: .4byte gUnknown_02024A60 _0803702C: .4byte gBattleMoves thumb_func_end sub_8036CD4 diff --git a/data/battle_ai.s b/data/battle_ai.s deleted file mode 100644 index 0d38042f1..000000000 --- a/data/battle_ai.s +++ /dev/null @@ -1,117 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gBattleAICmdTable:: @ 83F6144 - .4byte BattleAICmd_if_random - .4byte BattleAICmd_if_not_random - .4byte BattleAICmd_if_random_1 - .4byte BattleAICmd_if_not_random_1 - .4byte BattleAICmd_score - .4byte BattleAICmd_if_hp_less_than - .4byte BattleAICmd_if_hp_more_than - .4byte BattleAICmd_if_hp_equal - .4byte BattleAICmd_if_hp_not_equal - .4byte BattleAICmd_if_status - .4byte BattleAICmd_if_not_status - .4byte BattleAICmd_if_status2 - .4byte BattleAICmd_if_not_status2 - .4byte BattleAICmd_if_status3 - .4byte BattleAICmd_if_not_status3 - .4byte BattleAICmd_if_status4 - .4byte BattleAICmd_if_not_status4 - .4byte BattleAICmd_if_less_than - .4byte BattleAICmd_if_more_than - .4byte BattleAICmd_if_equal - .4byte BattleAICmd_if_not_equal - .4byte BattleAICmd_if_less_than_32 - .4byte BattleAICmd_if_more_than_32 - .4byte BattleAICmd_if_equal_32 - .4byte BattleAICmd_if_not_equal_32 - .4byte BattleAICmd_if_move - .4byte BattleAICmd_if_not_move - .4byte BattleAICmd_if_in_bytes - .4byte BattleAICmd_if_not_in_bytes - .4byte BattleAICmd_if_in_words - .4byte BattleAICmd_if_not_in_words - .4byte BattleAICmd_if_user_can_damage - .4byte BattleAICmd_if_user_cant_damage - .4byte BattleAICmd_unk_21 - .4byte BattleAICmd_get_type - .4byte BattleAICmd_unk_23 - .4byte BattleAICmd_unk_24 - .4byte BattleAICmd_get_move - .4byte BattleAICmd_if_type - .4byte BattleAICmd_unk_27 - .4byte BattleAICmd_if_would_go_first - .4byte BattleAICmd_if_would_not_go_first - .4byte BattleAICmd_unk_2A - .4byte BattleAICmd_unk_2B - .4byte BattleAICmd_count_alive_pokemon - .4byte BattleAICmd_unk_2D - .4byte BattleAICmd_unk_2E - .4byte BattleAICmd_get_ability - .4byte BattleAICmd_unk_30 - .4byte BattleAICmd_if_damage_bonus - .4byte BattleAICmd_unk_32 - .4byte BattleAICmd_unk_33 - .4byte BattleAICmd_if_status_in_party - .4byte BattleAICmd_if_status_not_in_party - .4byte BattleAICmd_unk_36 - .4byte BattleAICmd_if_effect - .4byte BattleAICmd_if_not_effect - .4byte BattleAICmd_if_stat_level_less_than - .4byte BattleAICmd_if_stat_level_more_than - .4byte BattleAICmd_if_stat_level_equal - .4byte BattleAICmd_if_stat_level_not_equal - .4byte BattleAICmd_if_can_faint - .4byte BattleAICmd_if_cant_faint - .4byte BattleAICmd_unk_3F - .4byte BattleAICmd_unk_40 - .4byte BattleAICmd_if_move_effect - .4byte BattleAICmd_if_not_move_effect - .4byte BattleAICmd_if_last_move_did_damage - .4byte BattleAICmd_if_encored - .4byte BattleAICmd_unk_45 - .4byte BattleAICmd_if_random_2 - .4byte BattleAICmd_unk_47 - .4byte BattleAICmd_get_hold_effect - .4byte BattleAICmd_get_gender - .4byte BattleAICmd_is_first_turn - .4byte BattleAICmd_get_stockpile_count - .4byte BattleAICmd_unk_4C - .4byte BattleAICmd_get_item - .4byte BattleAICmd_unk_4E - .4byte BattleAICmd_unk_4F - .4byte BattleAICmd_unk_50 - .4byte BattleAICmd_get_protect_count - .4byte BattleAICmd_unk_52 - .4byte BattleAICmd_unk_53 - .4byte BattleAICmd_unk_54 - .4byte BattleAICmd_unk_55 - .4byte BattleAICmd_unk_56 - .4byte BattleAICmd_unk_57 - .4byte BattleAICmd_call - .4byte BattleAICmd_jump - .4byte BattleAICmd_unk_5A - .4byte BattleAICmd_if_level_cond - .4byte BattleAICmd_if_taunted - .4byte BattleAICmd_if_not_taunted - - .align 1 -gUnknown_083F62BC:: @ 83F62BC - .2byte EFFECT_EXPLOSION - .2byte EFFECT_DREAM_EATER - .2byte EFFECT_RAZOR_WIND - .2byte EFFECT_SKY_ATTACK - .2byte EFFECT_RECHARGE - .2byte EFFECT_SKULL_BASH - .2byte EFFECT_SOLARBEAM - .2byte EFFECT_SPIT_UP - .2byte EFFECT_FOCUS_PUNCH - .2byte EFFECT_SUPERPOWER - .2byte EFFECT_ERUPTION - .2byte EFFECT_OVERHEAT - .2byte -1 diff --git a/include/asm.h b/include/asm.h index acf688d84..9e47794f5 100644 --- a/include/asm.h +++ b/include/asm.h @@ -16,7 +16,14 @@ struct UnkInputStruct u8 input_field_0_5:1; u8 input_field_0_6:1; u8 input_field_0_7:1; - u8 input_field_1; + u8 input_field_1_0:1; + u8 input_field_1_1:1; + u8 input_field_1_2:1; + u8 input_field_1_3:1; + u8 input_field_1_4:1; + u8 input_field_1_5:1; + u8 input_field_1_6:1; + u8 input_field_1_7:1; u8 input_field_2; u8 input_field_3; }; diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h new file mode 100644 index 000000000..4a9415379 --- /dev/null +++ b/include/battle_move_effects.h @@ -0,0 +1,222 @@ +#ifndef GUARD_BATTLE_MOVE_EFFECTS_H +#define GUARD_BATTLE_MOVE_EFFECTS_H + +enum +{ + EFFECT_HIT, + EFFECT_SLEEP, + EFFECT_POISON_HIT, + EFFECT_ABSORB, + EFFECT_BURN_HIT, + EFFECT_FREEZE_HIT, + EFFECT_PARALYZE_HIT, + EFFECT_EXPLOSION, + EFFECT_DREAM_EATER, + EFFECT_MIRROR_MOVE, + EFFECT_ATTACK_UP, + EFFECT_DEFENSE_UP, + EFFECT_SPEED_UP, + EFFECT_SPECIAL_ATTACK_UP, + EFFECT_SPECIAL_DEFENSE_UP, + EFFECT_ACCURACY_UP, + EFFECT_EVASION_UP, + EFFECT_ALWAYS_HIT, + EFFECT_ATTACK_DOWN, + EFFECT_DEFENSE_DOWN, + EFFECT_SPEED_DOWN, + EFFECT_SPECIAL_ATTACK_DOWN, // unused + EFFECT_SPECIAL_DEFENSE_DOWN, // unused + EFFECT_ACCURACY_DOWN, + EFFECT_EVASION_DOWN, + EFFECT_HAZE, + EFFECT_BIDE, + EFFECT_RAMPAGE, + EFFECT_ROAR, + EFFECT_MULTI_HIT, + EFFECT_CONVERSION, + EFFECT_FLINCH_HIT, + EFFECT_RESTORE_HP, + EFFECT_TOXIC, + EFFECT_PAY_DAY, + EFFECT_LIGHT_SCREEN, + EFFECT_TRI_ATTACK, + EFFECT_REST, + EFFECT_OHKO, + EFFECT_RAZOR_WIND, + EFFECT_SUPER_FANG, + EFFECT_DRAGON_RAGE, + EFFECT_TRAP, + EFFECT_HIGH_CRITICAL, + EFFECT_DOUBLE_HIT, + EFFECT_RECOIL_IF_MISS, + EFFECT_MIST, + EFFECT_FOCUS_ENERGY, + EFFECT_RECOIL, + EFFECT_CONFUSE, + EFFECT_ATTACK_UP_2, + EFFECT_DEFENSE_UP_2, + EFFECT_SPEED_UP_2, + EFFECT_SPECIAL_ATTACK_UP_2, + EFFECT_SPECIAL_DEFENSE_UP_2, + EFFECT_ACCURACY_UP_2, + EFFECT_EVASION_UP_2, + EFFECT_TRANSFORM, + EFFECT_ATTACK_DOWN_2, + EFFECT_DEFENSE_DOWN_2, + EFFECT_SPEED_DOWN_2, + EFFECT_SPECIAL_ATTACK_DOWN_2, + EFFECT_SPECIAL_DEFENSE_DOWN_2, + EFFECT_ACCURACY_DOWN_2, + EFFECT_EVASION_DOWN_2, + EFFECT_REFLECT, + EFFECT_POISON, + EFFECT_PARALYZE, + EFFECT_ATTACK_DOWN_HIT, + EFFECT_DEFENSE_DOWN_HIT, + EFFECT_SPEED_DOWN_HIT, + EFFECT_SPECIAL_ATTACK_DOWN_HIT, + EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + EFFECT_ACCURACY_DOWN_HIT, + EFFECT_EVASION_DOWN_HIT, + EFFECT_SKY_ATTACK, + EFFECT_CONFUSE_HIT, + EFFECT_TWINEEDLE, + EFFECT_VITAL_THROW, + EFFECT_SUBSTITUTE, + EFFECT_RECHARGE, + EFFECT_RAGE, + EFFECT_MIMIC, + EFFECT_METRONOME, + EFFECT_LEECH_SEED, + EFFECT_SPLASH, + EFFECT_DISABLE, + EFFECT_LEVEL_DAMAGE, + EFFECT_PSYWAVE, + EFFECT_COUNTER, + EFFECT_ENCORE, + EFFECT_PAIN_SPLIT, + EFFECT_SNORE, + EFFECT_CONVERSION_2, + EFFECT_LOCK_ON, + EFFECT_SKETCH, + EFFECT_UNUSED_60, // thaw + EFFECT_SLEEP_TALK, + EFFECT_DESTINY_BOND, + EFFECT_FLAIL, + EFFECT_SPITE, + EFFECT_FALSE_SWIPE, + EFFECT_HEAL_BELL, + EFFECT_QUICK_ATTACK, + EFFECT_TRIPLE_KICK, + EFFECT_THIEF, + EFFECT_MEAN_LOOK, + EFFECT_NIGHTMARE, + EFFECT_MINIMIZE, + EFFECT_CURSE, + EFFECT_UNUSED_6E, + EFFECT_PROTECT, + EFFECT_SPIKES, + EFFECT_FORESIGHT, + EFFECT_PERISH_SONG, + EFFECT_SANDSTORM, + EFFECT_ENDURE, + EFFECT_ROLLOUT, + EFFECT_SWAGGER, + EFFECT_FURY_CUTTER, + EFFECT_ATTRACT, + EFFECT_RETURN, + EFFECT_PRESENT, + EFFECT_FRUSTRATION, + EFFECT_SAFEGUARD, + EFFECT_THAW_HIT, + EFFECT_MAGNITUDE, + EFFECT_BATON_PASS, + EFFECT_PURSUIT, + EFFECT_RAPID_SPIN, + EFFECT_SONICBOOM, + EFFECT_UNUSED_83, + EFFECT_MORNING_SUN, + EFFECT_SYNTHESIS, + EFFECT_MOONLIGHT, + EFFECT_HIDDEN_POWER, + EFFECT_RAIN_DANCE, + EFFECT_SUNNY_DAY, + EFFECT_DEFENSE_UP_HIT, + EFFECT_ATTACK_UP_HIT, + EFFECT_ALL_STATS_UP_HIT, + EFFECT_UNUSED_8D, // incomplete fake out in gen 2 + EFFECT_BELLY_DRUM, + EFFECT_PSYCH_UP, + EFFECT_MIRROR_COAT, + EFFECT_SKULL_BASH, + EFFECT_TWISTER, + EFFECT_EARTHQUAKE, + EFFECT_FUTURE_SIGHT, + EFFECT_GUST, + EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM + EFFECT_SOLARBEAM, + EFFECT_THUNDER, + EFFECT_TELEPORT, + EFFECT_BEAT_UP, + EFFECT_FLY, + EFFECT_DEFENSE_CURL, + EFFECT_SOFTBOILED, + EFFECT_FAKE_OUT, + EFFECT_UPROAR, + EFFECT_STOCKPILE, + EFFECT_SPIT_UP, + EFFECT_SWALLOW, + EFFECT_UNUSED_A3, + EFFECT_HAIL, + EFFECT_TORMENT, + EFFECT_FLATTER, + EFFECT_WILL_O_WISP, + EFFECT_MEMENTO, + EFFECT_FACADE, + EFFECT_FOCUS_PUNCH, + EFFECT_SMELLINGSALT, + EFFECT_FOLLOW_ME, + EFFECT_NATURE_POWER, + EFFECT_CHARGE, + EFFECT_TAUNT, + EFFECT_HELPING_HAND, + EFFECT_TRICK, + EFFECT_ROLE_PLAY, + EFFECT_WISH, + EFFECT_ASSIST, + EFFECT_INGRAIN, + EFFECT_SUPERPOWER, + EFFECT_MAGIC_COAT, + EFFECT_RECYCLE, + EFFECT_REVENGE, + EFFECT_BRICK_BREAK, + EFFECT_YAWN, + EFFECT_KNOCK_OFF, + EFFECT_ENDEAVOR, + EFFECT_ERUPTION, + EFFECT_SKILL_SWAP, + EFFECT_IMPRISON, + EFFECT_REFRESH, + EFFECT_GRUDGE, + EFFECT_SNATCH, + EFFECT_LOW_KICK, + EFFECT_SECRET_POWER, + EFFECT_DOUBLE_EDGE, + EFFECT_TEETER_DANCE, + EFFECT_BLAZE_KICK, + EFFECT_MUD_SPORT, + EFFECT_POISON_FANG, + EFFECT_WEATHER_BALL, + EFFECT_OVERHEAT, + EFFECT_TICKLE, + EFFECT_COSMIC_POWER, + EFFECT_SKY_UPPERCUT, + EFFECT_BULK_UP, + EFFECT_POISON_TAIL, + EFFECT_WATER_SPORT, + EFFECT_CALM_MIND, + EFFECT_DRAGON_DANCE, + EFFECT_CAMOUFLAGE, +}; + +#endif // GUARD_BATTLE_MOVE_EFFECTS_H diff --git a/ld_script.txt b/ld_script.txt index d54d6ea80..c98886e1e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -388,7 +388,7 @@ SECTIONS { data/decoration.o(.rodata); data/slot_machine.o(.rodata); data/contest_painting.o(.rodata); - data/battle_ai.o(.rodata); + src/battle_ai.o(.rodata); data/trader.o(.rodata); data/starter_choose.o(.rodata); data/wallclock.o(.rodata); diff --git a/src/battle_ai.c b/src/battle_ai.c index 4727b2eb0..ca767a3a3 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -6,13 +6,14 @@ #include "abilities.h" #include "species.h" #include "item.h" +#include "battle_move_effects.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 *)(&battle_2000000 + 0x16800)) +#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)((u8 *)&battle_2000000 + 0x16800)) #define AI_ARRAY_160CC ((&battle_2000000 + 0x160CC)) extern void sub_801CAF8(u8, u8); @@ -31,11 +32,11 @@ extern u16 gBattleWeather; extern u8 gUnknown_02024A60; extern u8 gUnknown_02024A6A[][2]; extern u16 gUnknown_02024BE6; -extern int gUnknown_02024BEC; +extern int gBattleMoveDamage; extern u8 gUnknown_02024C07; // something player? extern u8 gUnknown_02024C08; // something opponent? extern u8 gUnknown_02024C0C; -extern u8 gUnknown_02024C68; +extern u8 gBattleMoveFlags; extern u16 gUnknown_02024DEC; extern u16 gUnknown_02024C34[]; extern u32 gUnknown_02024ACC[]; @@ -51,7 +52,6 @@ extern u8 *BattleAIs[]; extern struct Trainer gTrainers[]; extern struct BattleMove gBattleMoves[]; extern struct BaseStats gBaseStats[]; -extern void (*gBattleAICmdTable[])(void); // needed to match the hack that is get_item, thanks cam, someone else clean this up later. extern u8 unk_2000000[]; @@ -100,6 +100,221 @@ 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_score(void); +static void BattleAICmd_if_hp_less_than(void); +static void BattleAICmd_if_hp_more_than(void); +static void BattleAICmd_if_hp_equal(void); +static void BattleAICmd_if_hp_not_equal(void); +static void BattleAICmd_if_status(void); +static void BattleAICmd_if_not_status(void); +static void BattleAICmd_if_status2(void); +static void BattleAICmd_if_not_status2(void); +static void BattleAICmd_if_status3(void); +static void BattleAICmd_if_not_status3(void); +static void BattleAICmd_if_status4(void); +static void BattleAICmd_if_not_status4(void); +static void BattleAICmd_if_less_than(void); +static void BattleAICmd_if_more_than(void); +static void BattleAICmd_if_equal(void); +static void BattleAICmd_if_not_equal(void); +static void BattleAICmd_if_less_than_32(void); +static void BattleAICmd_if_more_than_32(void); +static void BattleAICmd_if_equal_32(void); +static void BattleAICmd_if_not_equal_32(void); +static void BattleAICmd_if_move(void); +static void BattleAICmd_if_not_move(void); +static void BattleAICmd_if_in_bytes(void); +static void BattleAICmd_if_not_in_bytes(void); +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_type(void); +static void BattleAICmd_unk_23(void); +static void BattleAICmd_unk_24(void); +static void BattleAICmd_get_move(void); +static void BattleAICmd_if_type(void); +static void BattleAICmd_unk_27(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_count_alive_pokemon(void); +static void BattleAICmd_unk_2D(void); +static void BattleAICmd_unk_2E(void); +static void BattleAICmd_get_ability(void); +static void BattleAICmd_unk_30(void); +static void BattleAICmd_if_damage_bonus(void); +static void BattleAICmd_unk_32(void); +static void BattleAICmd_unk_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_if_effect(void); +static void BattleAICmd_if_not_effect(void); +static void BattleAICmd_if_stat_level_less_than(void); +static void BattleAICmd_if_stat_level_more_than(void); +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_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_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_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_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_call(void); +static void BattleAICmd_jump(void); +static void BattleAICmd_unk_5A(void); +static void BattleAICmd_if_level_cond(void); +static void BattleAICmd_if_taunted(void); +static void BattleAICmd_if_not_taunted(void); + +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_score, + BattleAICmd_if_hp_less_than, + BattleAICmd_if_hp_more_than, + BattleAICmd_if_hp_equal, + BattleAICmd_if_hp_not_equal, + BattleAICmd_if_status, + BattleAICmd_if_not_status, + BattleAICmd_if_status2, + BattleAICmd_if_not_status2, + BattleAICmd_if_status3, + BattleAICmd_if_not_status3, + BattleAICmd_if_status4, + BattleAICmd_if_not_status4, + BattleAICmd_if_less_than, + BattleAICmd_if_more_than, + BattleAICmd_if_equal, + BattleAICmd_if_not_equal, + BattleAICmd_if_less_than_32, + BattleAICmd_if_more_than_32, + BattleAICmd_if_equal_32, + BattleAICmd_if_not_equal_32, + BattleAICmd_if_move, + BattleAICmd_if_not_move, + BattleAICmd_if_in_bytes, + BattleAICmd_if_not_in_bytes, + BattleAICmd_if_in_words, + BattleAICmd_if_not_in_words, + BattleAICmd_if_user_can_damage, + BattleAICmd_if_user_cant_damage, + BattleAICmd_unk_21, + BattleAICmd_get_type, + BattleAICmd_unk_23, + BattleAICmd_unk_24, + BattleAICmd_get_move, + BattleAICmd_if_type, + BattleAICmd_unk_27, + BattleAICmd_if_would_go_first, + BattleAICmd_if_would_not_go_first, + BattleAICmd_unk_2A, + BattleAICmd_unk_2B, + BattleAICmd_count_alive_pokemon, + BattleAICmd_unk_2D, + BattleAICmd_unk_2E, + BattleAICmd_get_ability, + BattleAICmd_unk_30, + BattleAICmd_if_damage_bonus, + BattleAICmd_unk_32, + BattleAICmd_unk_33, + BattleAICmd_if_status_in_party, + BattleAICmd_if_status_not_in_party, + BattleAICmd_unk_36, + BattleAICmd_if_effect, + BattleAICmd_if_not_effect, + BattleAICmd_if_stat_level_less_than, + BattleAICmd_if_stat_level_more_than, + BattleAICmd_if_stat_level_equal, + BattleAICmd_if_stat_level_not_equal, + BattleAICmd_if_can_faint, + BattleAICmd_if_cant_faint, + BattleAICmd_unk_3F, + BattleAICmd_unk_40, + 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_get_hold_effect, + BattleAICmd_get_gender, + BattleAICmd_is_first_turn, + BattleAICmd_get_stockpile_count, + BattleAICmd_unk_4C, + BattleAICmd_get_item, + BattleAICmd_unk_4E, + BattleAICmd_unk_4F, + BattleAICmd_unk_50, + BattleAICmd_get_protect_count, + BattleAICmd_unk_52, + BattleAICmd_unk_53, + BattleAICmd_unk_54, + BattleAICmd_unk_55, + BattleAICmd_unk_56, + BattleAICmd_unk_57, + BattleAICmd_call, + BattleAICmd_jump, + BattleAICmd_unk_5A, + BattleAICmd_if_level_cond, + BattleAICmd_if_taunted, + BattleAICmd_if_not_taunted, +}; + +#ifdef NONMATCHING +static +#endif +const u16 sDiscouragedPowerfulMoveEffects[] = +{ + EFFECT_EXPLOSION, + EFFECT_DREAM_EATER, + EFFECT_RAZOR_WIND, + EFFECT_SKY_ATTACK, + EFFECT_RECHARGE, + EFFECT_SKULL_BASH, + EFFECT_SOLARBEAM, + EFFECT_SPIT_UP, + EFFECT_FOCUS_PUNCH, + EFFECT_SUPERPOWER, + EFFECT_ERUPTION, + EFFECT_OVERHEAT, + 0xFFFF +}; + void BattleAI_SetupAIData(void); void BattleAI_DoAIProcessing(void); void sub_810745C(void); @@ -248,7 +463,7 @@ void BattleAI_DoAIProcessing(void) break; case 1: if(gAIThinkingSpace.unk2 != 0) - gBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command. + sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command. else { gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] = 0; @@ -303,7 +518,7 @@ void sub_81074F8(u8 a, u8 b) unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b; } -void BattleAICmd_if_random(void) +static void BattleAICmd_if_random(void) { u16 random = Random(); @@ -313,7 +528,7 @@ void BattleAICmd_if_random(void) gAIScriptPtr += 6; } -void BattleAICmd_if_not_random(void) +static void BattleAICmd_if_not_random(void) { u16 random = Random(); @@ -323,7 +538,7 @@ void BattleAICmd_if_not_random(void) gAIScriptPtr += 6; } -void BattleAICmd_if_random_1(void) // if RNG Value equal to +static void BattleAICmd_if_random_1(void) // if RNG Value equal to { u16 random = Random(); @@ -333,7 +548,7 @@ void BattleAICmd_if_random_1(void) // if RNG Value equal to gAIScriptPtr += 6; } -void BattleAICmd_if_not_random_1(void) // if RNG value not equal to +static void BattleAICmd_if_not_random_1(void) // if RNG value not equal to { u16 random = Random(); @@ -343,7 +558,7 @@ void BattleAICmd_if_not_random_1(void) // if RNG value not equal to gAIScriptPtr += 6; } -void BattleAICmd_score(void) +static void BattleAICmd_score(void) { gAIThinkingSpace.score[gAIThinkingSpace.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score. @@ -353,7 +568,7 @@ void BattleAICmd_score(void) gAIScriptPtr += 2; // AI return. } -void BattleAICmd_if_hp_less_than(void) +static void BattleAICmd_if_hp_less_than(void) { u16 var; @@ -368,7 +583,7 @@ void BattleAICmd_if_hp_less_than(void) gAIScriptPtr += 7; } -void BattleAICmd_if_hp_more_than(void) +static void BattleAICmd_if_hp_more_than(void) { u16 var; @@ -383,7 +598,7 @@ void BattleAICmd_if_hp_more_than(void) gAIScriptPtr += 7; } -void BattleAICmd_if_hp_equal(void) +static void BattleAICmd_if_hp_equal(void) { u16 var; @@ -398,7 +613,7 @@ void BattleAICmd_if_hp_equal(void) gAIScriptPtr += 7; } -void BattleAICmd_if_hp_not_equal(void) +static void BattleAICmd_if_hp_not_equal(void) { u16 var; @@ -413,7 +628,7 @@ void BattleAICmd_if_hp_not_equal(void) gAIScriptPtr += 7; } -void BattleAICmd_if_status(void) +static void BattleAICmd_if_status(void) { u16 var; u32 temp; @@ -431,7 +646,7 @@ void BattleAICmd_if_status(void) gAIScriptPtr += 10; } -void BattleAICmd_if_not_status(void) +static void BattleAICmd_if_not_status(void) { u16 var; u32 temp; @@ -449,7 +664,7 @@ void BattleAICmd_if_not_status(void) gAIScriptPtr += 10; } -void BattleAICmd_if_status2(void) +static void BattleAICmd_if_status2(void) { u8 var; u32 temp; @@ -467,7 +682,7 @@ void BattleAICmd_if_status2(void) gAIScriptPtr += 10; } -void BattleAICmd_if_not_status2(void) +static void BattleAICmd_if_not_status2(void) { u8 var; u32 temp; @@ -485,7 +700,7 @@ void BattleAICmd_if_not_status2(void) gAIScriptPtr += 10; } -void BattleAICmd_if_status3(void) +static void BattleAICmd_if_status3(void) { u8 var; u32 temp; @@ -503,7 +718,7 @@ void BattleAICmd_if_status3(void) gAIScriptPtr += 10; } -void BattleAICmd_if_not_status3(void) +static void BattleAICmd_if_not_status3(void) { u8 var; u32 temp; @@ -521,7 +736,7 @@ void BattleAICmd_if_not_status3(void) gAIScriptPtr += 10; } -void BattleAICmd_if_status4(void) +static void BattleAICmd_if_status4(void) { u8 var; u32 temp; @@ -541,7 +756,7 @@ void BattleAICmd_if_status4(void) gAIScriptPtr += 10; } -void BattleAICmd_if_not_status4(void) +static void BattleAICmd_if_not_status4(void) { u8 var; u32 temp; @@ -561,7 +776,7 @@ void BattleAICmd_if_not_status4(void) gAIScriptPtr += 10; } -void BattleAICmd_if_less_than(void) +static void BattleAICmd_if_less_than(void) { if (gAIThinkingSpace.funcResult < gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -569,7 +784,7 @@ void BattleAICmd_if_less_than(void) gAIScriptPtr += 6; } -void BattleAICmd_if_more_than(void) +static void BattleAICmd_if_more_than(void) { if (gAIThinkingSpace.funcResult > gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -577,7 +792,7 @@ void BattleAICmd_if_more_than(void) gAIScriptPtr += 6; } -void BattleAICmd_if_equal(void) +static void BattleAICmd_if_equal(void) { if (gAIThinkingSpace.funcResult == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -585,7 +800,7 @@ void BattleAICmd_if_equal(void) gAIScriptPtr += 6; } -void BattleAICmd_if_not_equal(void) +static void BattleAICmd_if_not_equal(void) { if (gAIThinkingSpace.funcResult != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -593,7 +808,7 @@ void BattleAICmd_if_not_equal(void) gAIScriptPtr += 6; } -void BattleAICmd_if_less_than_32(void) +static void BattleAICmd_if_less_than_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); @@ -603,7 +818,7 @@ void BattleAICmd_if_less_than_32(void) gAIScriptPtr += 9; } -void BattleAICmd_if_more_than_32(void) +static void BattleAICmd_if_more_than_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); @@ -613,7 +828,7 @@ void BattleAICmd_if_more_than_32(void) gAIScriptPtr += 9; } -void BattleAICmd_if_equal_32(void) +static void BattleAICmd_if_equal_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); @@ -623,7 +838,7 @@ void BattleAICmd_if_equal_32(void) gAIScriptPtr += 9; } -void BattleAICmd_if_not_equal_32(void) +static void BattleAICmd_if_not_equal_32(void) { u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); @@ -633,7 +848,7 @@ void BattleAICmd_if_not_equal_32(void) gAIScriptPtr += 9; } -void BattleAICmd_if_move(void) +static void BattleAICmd_if_move(void) { u16 move = AIScriptRead16(gAIScriptPtr + 1); @@ -643,7 +858,7 @@ void BattleAICmd_if_move(void) gAIScriptPtr += 7; } -void BattleAICmd_if_not_move(void) +static void BattleAICmd_if_not_move(void) { u16 move = AIScriptRead16(gAIScriptPtr + 1); @@ -653,7 +868,7 @@ void BattleAICmd_if_not_move(void) gAIScriptPtr += 7; } -void BattleAICmd_if_in_bytes(void) +static void BattleAICmd_if_in_bytes(void) { u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1); @@ -669,7 +884,7 @@ void BattleAICmd_if_in_bytes(void) gAIScriptPtr += 9; } -void BattleAICmd_if_not_in_bytes(void) +static void BattleAICmd_if_not_in_bytes(void) { u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1); @@ -685,7 +900,7 @@ void BattleAICmd_if_not_in_bytes(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); } -void BattleAICmd_if_in_words(void) +static void BattleAICmd_if_in_words(void) { u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1); @@ -701,7 +916,7 @@ void BattleAICmd_if_in_words(void) gAIScriptPtr += 9; } -void BattleAICmd_if_not_in_words(void) +static void BattleAICmd_if_not_in_words(void) { u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1); @@ -717,7 +932,7 @@ void BattleAICmd_if_not_in_words(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); } -void BattleAICmd_if_user_can_damage(void) +static void BattleAICmd_if_user_can_damage(void) { s32 i; @@ -733,7 +948,7 @@ void BattleAICmd_if_user_can_damage(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -void BattleAICmd_if_user_cant_damage(void) +static void BattleAICmd_if_user_cant_damage(void) { s32 i; @@ -749,13 +964,13 @@ void BattleAICmd_if_user_cant_damage(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -void BattleAICmd_unk_21(void) +static void BattleAICmd_unk_21(void) { gAIThinkingSpace.funcResult = gUnknown_030042E0[19]; gAIScriptPtr += 1; } -void BattleAICmd_get_type(void) +static void BattleAICmd_get_type(void) { u8 typeVar = gAIScriptPtr[1]; @@ -780,14 +995,78 @@ void BattleAICmd_get_type(void) gAIScriptPtr += 2; } -void BattleAICmd_unk_23(void) +static void BattleAICmd_unk_23(void) { gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].power; gAIScriptPtr += 1; } +#ifdef NONMATCHING +static void BattleAICmd_unk_24(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]) + break; + + if (gBattleMoves[AI_THINKING_STRUCT->unk2].power > 1 + && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) + { + gUnknown_02024DEC = 0; + *((u8 *)&battle_2000000 + 0x1601C) = 0; + *((u8 *)&battle_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]) + break; + } + + if (gBattleMons[gUnknown_02024C07].moves[i] + && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF + && gBattleMoves[gBattleMons[gUnknown_02024C07].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) + damages[i] = 1; + } + else + { + damages[i] = 0; + } + } + + for (i = 0; i < 4; i++) + if (damages[i] > damages[AI_THINKING_STRUCT->moveConsidered]) + break; + + if (i == 4) + AI_THINKING_STRUCT->funcResult = 2; + else + AI_THINKING_STRUCT->funcResult = 1; + } + else + { + AI_THINKING_STRUCT->funcResult = 0; + gAIScriptPtr += 1; + } + + gAIScriptPtr += 1; +} +#else __attribute__((naked)) -void BattleAICmd_unk_24(void) +static void BattleAICmd_unk_24(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -797,7 +1076,7 @@ void BattleAICmd_unk_24(void) push {r5-r7}\n\ sub sp, 0x14\n\ movs r3, 0\n\ - ldr r0, _08108328 @ =gUnknown_083F62BC\n\ + ldr r0, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\ ldrh r1, [r0]\n\ ldr r4, _0810832C @ =0x0000ffff\n\ ldr r6, _08108330 @ =gBattleMoves\n\ @@ -810,7 +1089,7 @@ void BattleAICmd_unk_24(void) lsls r0, 2\n\ adds r0, r6\n\ ldrb r2, [r0]\n\ - ldr r1, _08108328 @ =gUnknown_083F62BC\n\ + ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\ _0810821E:\n\ ldrh r0, [r1]\n\ cmp r2, r0\n\ @@ -832,7 +1111,7 @@ _0810822E:\n\ b _081083B2\n\ _08108240:\n\ lsls r0, r3, 1\n\ - ldr r1, _08108328 @ =gUnknown_083F62BC\n\ + ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\ adds r0, r1\n\ ldrh r3, [r0]\n\ ldr r0, _0810832C @ =0x0000ffff\n\ @@ -850,13 +1129,13 @@ _08108250:\n\ adds r0, r5, r2\n\ movs r2, 0x1\n\ strb r2, [r0]\n\ - ldr r0, _08108340 @ =gUnknown_02024C68\n\ + ldr r0, _08108340 @ =gBattleMoveFlags\n\ strb r1, [r0]\n\ ldr r0, _08108344 @ =gCritMultiplier\n\ strb r2, [r0]\n\ movs r6, 0\n\ mov r9, r3\n\ - ldr r0, _08108328 @ =gUnknown_083F62BC\n\ + ldr r0, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\ ldrh r0, [r0]\n\ str r0, [sp, 0x10]\n\ _08108276:\n\ @@ -885,7 +1164,7 @@ _08108276:\n\ lsls r0, 2\n\ adds r0, r2\n\ ldrb r2, [r0]\n\ - ldr r1, _08108328 @ =gUnknown_083F62BC\n\ + ldr r1, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\ _081082AA:\n\ ldrh r0, [r1]\n\ cmp r2, r0\n\ @@ -907,7 +1186,7 @@ _081082BA:\n\ cmp r0, 0\n\ beq _0810835C\n\ lsls r0, r3, 1\n\ - ldr r2, _08108328 @ =gUnknown_083F62BC\n\ + ldr r2, _08108328 @ =sDiscouragedPowerfulMoveEffects\n\ adds r0, r2\n\ ldrh r0, [r0]\n\ cmp r0, r9\n\ @@ -933,7 +1212,7 @@ _081082BA:\n\ bl move_effectiveness_something\n\ mov r4, sp\n\ add r4, r8\n\ - ldr r2, _08108358 @ =gUnknown_02024BEC\n\ + ldr r2, _08108358 @ =gBattleMoveDamage\n\ ldr r0, _08108334 @ =0x02016800\n\ adds r0, 0x18\n\ adds r0, r6, r0\n\ @@ -949,19 +1228,19 @@ _081082BA:\n\ str r0, [r4]\n\ b _08108364\n\ .align 2, 0\n\ -_08108328: .4byte gUnknown_083F62BC\n\ +_08108328: .4byte sDiscouragedPowerfulMoveEffects\n\ _0810832C: .4byte 0x0000ffff\n\ _08108330: .4byte gBattleMoves\n\ _08108334: .4byte 0x02016800\n\ _08108338: .4byte gUnknown_02024DEC\n\ _0810833C: .4byte 0xfffff81c\n\ -_08108340: .4byte gUnknown_02024C68\n\ +_08108340: .4byte gBattleMoveFlags\n\ _08108344: .4byte gCritMultiplier\n\ _08108348: .4byte gBattleMons\n\ _0810834C: .4byte gUnknown_02024C07\n\ _08108350: .4byte gUnknown_02024BE6\n\ _08108354: .4byte gUnknown_02024C08\n\ -_08108358: .4byte gUnknown_02024BEC\n\ +_08108358: .4byte gBattleMoveDamage\n\ _0810835C:\n\ mov r1, sp\n\ add r1, r8\n\ @@ -1029,8 +1308,9 @@ _081083B8:\n\ _081083D0: .4byte gAIScriptPtr\n\ .syntax divided\n"); } +#endif // NONMATCHING -void BattleAICmd_get_move(void) +static void BattleAICmd_get_move(void) { if (gAIScriptPtr[1] == USER) gAIThinkingSpace.funcResult = gUnknown_02024C34[gUnknown_02024C07]; @@ -1040,7 +1320,7 @@ void BattleAICmd_get_move(void) gAIScriptPtr += 2; } -void BattleAICmd_if_type(void) +static void BattleAICmd_if_type(void) { if ( gAIScriptPtr[1] == gAIThinkingSpace.funcResult ) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1048,7 +1328,7 @@ void BattleAICmd_if_type(void) gAIScriptPtr += 6; } -void BattleAICmd_unk_27(void) // if_not_type +static void BattleAICmd_unk_27(void) // if_not_type { if ( gAIScriptPtr[1] != gAIThinkingSpace.funcResult ) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1056,7 +1336,7 @@ void BattleAICmd_unk_27(void) // if_not_type gAIScriptPtr += 6; } -void BattleAICmd_if_would_go_first(void) +static void BattleAICmd_if_would_go_first(void) { if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] ) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1064,7 +1344,7 @@ void BattleAICmd_if_would_go_first(void) gAIScriptPtr += 6; } -void BattleAICmd_if_would_not_go_first(void) +static void BattleAICmd_if_would_not_go_first(void) { if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] ) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1072,13 +1352,13 @@ void BattleAICmd_if_would_not_go_first(void) gAIScriptPtr += 6; } -void BattleAICmd_unk_2A(void) +static void BattleAICmd_unk_2A(void) {} -void BattleAICmd_unk_2B(void) +static void BattleAICmd_unk_2B(void) {} -void BattleAICmd_count_alive_pokemon(void) +static void BattleAICmd_count_alive_pokemon(void) { u8 index; struct Pokemon *party; @@ -1126,19 +1406,19 @@ void BattleAICmd_count_alive_pokemon(void) gAIScriptPtr += 2; } -void BattleAICmd_unk_2D(void) +static void BattleAICmd_unk_2D(void) { gAIThinkingSpace.funcResult = gAIThinkingSpace.unk2; gAIScriptPtr += 1; } -void BattleAICmd_unk_2E(void) +static void BattleAICmd_unk_2E(void) { gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.unk2].effect; gAIScriptPtr += 1; } -void BattleAICmd_get_ability(void) +static void BattleAICmd_get_ability(void) { u8 var; @@ -1207,7 +1487,7 @@ void BattleAICmd_get_ability(void) } } -void BattleAICmd_unk_30(void) +static void BattleAICmd_unk_30(void) { s32 i; struct AI_ThinkingStruct *ai; @@ -1216,14 +1496,14 @@ void BattleAICmd_unk_30(void) gUnknown_02024DEC = 0; battle_2000000.unk.unk1 = 0; battle_2000000.unk.unk4 = 1; - gUnknown_02024C68 = 0; + gBattleMoveFlags = 0; gCritMultiplier = 1; ai = &battle_2000000.ai; ai->funcResult = 0; for(i = 0; i < 4; i++) { - gUnknown_02024BEC = 40; + gBattleMoveDamage = 40; gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[i]; if (gUnknown_02024BE6) @@ -1231,27 +1511,27 @@ void BattleAICmd_unk_30(void) move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); // reduce by 1/3. - if (gUnknown_02024BEC == 120) - gUnknown_02024BEC = 80; - if(gUnknown_02024BEC == 240) - gUnknown_02024BEC = 160; - if(gUnknown_02024BEC == 30) - gUnknown_02024BEC = 20; - if(gUnknown_02024BEC == 15) - gUnknown_02024BEC = 10; - - if(gUnknown_02024C68 & 8) - gUnknown_02024BEC = 0; + if (gBattleMoveDamage == 120) + gBattleMoveDamage = 80; + if(gBattleMoveDamage == 240) + gBattleMoveDamage = 160; + if(gBattleMoveDamage == 30) + gBattleMoveDamage = 20; + if(gBattleMoveDamage == 15) + gBattleMoveDamage = 10; + + if(gBattleMoveFlags & 8) + gBattleMoveDamage = 0; ai2 = &battle_2000000.ai; - if (ai2->funcResult < gUnknown_02024BEC) - ai2->funcResult = gUnknown_02024BEC; + if (ai2->funcResult < gBattleMoveDamage) + ai2->funcResult = gBattleMoveDamage; } } gAIScriptPtr += 1; } -void BattleAICmd_if_damage_bonus(void) +static void BattleAICmd_if_damage_bonus(void) { struct AI_ThinkingStruct *ai; u8 damageVar; @@ -1259,41 +1539,41 @@ void BattleAICmd_if_damage_bonus(void) gUnknown_02024DEC = 0; battle_2000000.unk.unk1 = 0; battle_2000000.unk.unk4 = 1; - gUnknown_02024C68 = 0; + gBattleMoveFlags = 0; gCritMultiplier = 1; - gUnknown_02024BEC = 40; + gBattleMoveDamage = 40; gUnknown_02024BE6 = (ai = &battle_2000000.ai)->unk2; move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); - if (gUnknown_02024BEC == 120) - gUnknown_02024BEC = 80; - if(gUnknown_02024BEC == 240) - gUnknown_02024BEC = 160; - if(gUnknown_02024BEC == 30) - gUnknown_02024BEC = 20; - if(gUnknown_02024BEC == 15) - gUnknown_02024BEC = 10; + if (gBattleMoveDamage == 120) + gBattleMoveDamage = 80; + if(gBattleMoveDamage == 240) + gBattleMoveDamage = 160; + if(gBattleMoveDamage == 30) + gBattleMoveDamage = 20; + if(gBattleMoveDamage == 15) + gBattleMoveDamage = 10; - if(gUnknown_02024C68 & 8) - gUnknown_02024BEC = 0; + if(gBattleMoveFlags & 8) + gBattleMoveDamage = 0; // i have to store 2024BEC in a local variable before the comparison or else it will not match. - damageVar = gUnknown_02024BEC; + damageVar = gBattleMoveDamage; if(damageVar == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; } -void BattleAICmd_unk_32(void) +static void BattleAICmd_unk_32(void) {} -void BattleAICmd_unk_33(void) +static void BattleAICmd_unk_33(void) {} -void BattleAICmd_if_status_in_party(void) +static void BattleAICmd_if_status_in_party(void) { struct Pokemon *party; int i; @@ -1330,7 +1610,7 @@ void BattleAICmd_if_status_in_party(void) gAIScriptPtr += 10; } -void BattleAICmd_if_status_not_in_party(void) +static void BattleAICmd_if_status_not_in_party(void) { struct Pokemon *party; int i; @@ -1365,7 +1645,7 @@ void BattleAICmd_if_status_not_in_party(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); } -void BattleAICmd_unk_36(void) +static void BattleAICmd_unk_36(void) { if(gBattleWeather & 7) gAIThinkingSpace.funcResult = 1; @@ -1379,7 +1659,7 @@ void BattleAICmd_unk_36(void) gAIScriptPtr += 1; } -void BattleAICmd_if_effect(void) +static void BattleAICmd_if_effect(void) { if(gBattleMoves[gAIThinkingSpace.unk2].effect == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1387,7 +1667,7 @@ void BattleAICmd_if_effect(void) gAIScriptPtr += 6; } -void BattleAICmd_if_not_effect(void) +static void BattleAICmd_if_not_effect(void) { if(gBattleMoves[gAIThinkingSpace.unk2].effect != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1395,7 +1675,7 @@ void BattleAICmd_if_not_effect(void) gAIScriptPtr += 6; } -void BattleAICmd_if_stat_level_less_than(void) +static void BattleAICmd_if_stat_level_less_than(void) { u32 party; @@ -1410,7 +1690,7 @@ void BattleAICmd_if_stat_level_less_than(void) gAIScriptPtr += 8; } -void BattleAICmd_if_stat_level_more_than(void) +static void BattleAICmd_if_stat_level_more_than(void) { u32 party; @@ -1425,7 +1705,7 @@ void BattleAICmd_if_stat_level_more_than(void) gAIScriptPtr += 8; } -void BattleAICmd_if_stat_level_equal(void) +static void BattleAICmd_if_stat_level_equal(void) { u32 party; @@ -1440,7 +1720,7 @@ void BattleAICmd_if_stat_level_equal(void) gAIScriptPtr += 8; } -void BattleAICmd_if_stat_level_not_equal(void) +static void BattleAICmd_if_stat_level_not_equal(void) { u32 party; @@ -1455,7 +1735,7 @@ void BattleAICmd_if_stat_level_not_equal(void) gAIScriptPtr += 8; } -void BattleAICmd_if_can_faint(void) +static void BattleAICmd_if_can_faint(void) { if(gBattleMoves[gAIThinkingSpace.unk2].power < 2) { @@ -1465,25 +1745,25 @@ void BattleAICmd_if_can_faint(void) gUnknown_02024DEC = 0; ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0; ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1; - gUnknown_02024C68 = 0; + gBattleMoveFlags = 0; gCritMultiplier = 1; gUnknown_02024BE6 = gAIThinkingSpace.unk2; sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08); move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); - gUnknown_02024BEC = gUnknown_02024BEC * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100; + gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100; // moves always do at least 1 damage. - if(gUnknown_02024BEC == 0) - gUnknown_02024BEC = 1; + if(gBattleMoveDamage == 0) + gBattleMoveDamage = 1; - if(gBattleMons[gUnknown_02024C08].hp <= gUnknown_02024BEC) + if(gBattleMons[gUnknown_02024C08].hp <= gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; } -void BattleAICmd_if_cant_faint(void) +static void BattleAICmd_if_cant_faint(void) { if(gBattleMoves[gAIThinkingSpace.unk2].power < 2) { @@ -1494,23 +1774,23 @@ void BattleAICmd_if_cant_faint(void) gUnknown_02024DEC = 0; ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk1 = 0; ((struct BattleStruct *)((u8 *)&gAIThinkingSpace - 0x16800))->unk.unk4 = 1; - gUnknown_02024C68 = 0; + gBattleMoveFlags = 0; gCritMultiplier = 1; gUnknown_02024BE6 = gAIThinkingSpace.unk2; sub_801CAF8(gUnknown_02024C07, gUnknown_02024C08); move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); - gUnknown_02024BEC = gUnknown_02024BEC * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100; + gBattleMoveDamage = gBattleMoveDamage * gAIThinkingSpace.unk18[gAIThinkingSpace.moveConsidered] / 100; // this macro is missing the damage 0 = 1 assumption. - if(gBattleMons[gUnknown_02024C08].hp > gUnknown_02024BEC) + if(gBattleMons[gUnknown_02024C08].hp > gBattleMoveDamage) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; } -void BattleAICmd_unk_3F(void) +static void BattleAICmd_unk_3F(void) { int i; u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); @@ -1554,7 +1834,7 @@ void BattleAICmd_unk_3F(void) } } -void BattleAICmd_unk_40(void) +static void BattleAICmd_unk_40(void) { int i; u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); @@ -1598,7 +1878,7 @@ void BattleAICmd_unk_40(void) } } -void BattleAICmd_if_move_effect(void) +static void BattleAICmd_if_move_effect(void) { int i; @@ -1627,7 +1907,7 @@ void BattleAICmd_if_move_effect(void) } } -void BattleAICmd_if_not_move_effect(void) +static void BattleAICmd_if_not_move_effect(void) { int i; @@ -1656,7 +1936,7 @@ void BattleAICmd_if_not_move_effect(void) } } -void BattleAICmd_if_last_move_did_damage(void) +static void BattleAICmd_if_last_move_did_damage(void) { u8 var; @@ -1688,7 +1968,7 @@ void BattleAICmd_if_last_move_did_damage(void) gAIScriptPtr += 7; } -void BattleAICmd_if_encored(void) +static void BattleAICmd_if_encored(void) { switch(gAIScriptPtr[1]) { @@ -1714,12 +1994,12 @@ void BattleAICmd_if_encored(void) } } -void BattleAICmd_unk_45(void) +static void BattleAICmd_unk_45(void) { gAIThinkingSpace.unk10 |= 0xB; } -void BattleAICmd_if_random_2(void) +static void BattleAICmd_if_random_2(void) { u8 var = battle_2000000.unk88 * 5; @@ -1729,12 +2009,12 @@ void BattleAICmd_if_random_2(void) gAIScriptPtr += 5; } -void BattleAICmd_unk_47(void) +static void BattleAICmd_unk_47(void) { gAIThinkingSpace.unk10 |= 0xD; } -void BattleAICmd_get_hold_effect(void) +static void BattleAICmd_get_hold_effect(void) { u8 var; u16 status; @@ -1758,7 +2038,7 @@ void BattleAICmd_get_hold_effect(void) gAIScriptPtr += 2; } -void BattleAICmd_get_gender(void) +static void BattleAICmd_get_gender(void) { u8 var; @@ -1772,7 +2052,7 @@ void BattleAICmd_get_gender(void) gAIScriptPtr += 2; } -void BattleAICmd_is_first_turn(void) +static void BattleAICmd_is_first_turn(void) { u8 var; @@ -1786,7 +2066,7 @@ void BattleAICmd_is_first_turn(void) gAIScriptPtr += 2; } -void BattleAICmd_get_stockpile_count(void) +static void BattleAICmd_get_stockpile_count(void) { u8 var; @@ -1800,14 +2080,14 @@ void BattleAICmd_get_stockpile_count(void) gAIScriptPtr += 2; } -void BattleAICmd_unk_4C(void) +static void BattleAICmd_unk_4C(void) { gAIThinkingSpace.funcResult = gBattleTypeFlags & 1; gAIScriptPtr += 1; } -void BattleAICmd_get_item(void) +static void BattleAICmd_get_item(void) { u8 var; @@ -1822,28 +2102,28 @@ void BattleAICmd_get_item(void) gAIScriptPtr += 2; } -void BattleAICmd_unk_4E(void) +static void BattleAICmd_unk_4E(void) { gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].type; gAIScriptPtr += 1; } -void BattleAICmd_unk_4F(void) +static void BattleAICmd_unk_4F(void) { gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].power; gAIScriptPtr += 1; } -void BattleAICmd_unk_50(void) +static void BattleAICmd_unk_50(void) { gAIThinkingSpace.funcResult = gBattleMoves[gAIThinkingSpace.funcResult].effect; gAIScriptPtr += 1; } -void BattleAICmd_get_protect_count(void) +static void BattleAICmd_get_protect_count(void) { u8 var; @@ -1857,36 +2137,36 @@ void BattleAICmd_get_protect_count(void) gAIScriptPtr += 2; } -void BattleAICmd_unk_52(void) {} +static void BattleAICmd_unk_52(void) {} -void BattleAICmd_unk_53(void) {} +static void BattleAICmd_unk_53(void) {} -void BattleAICmd_unk_54(void) {} +static void BattleAICmd_unk_54(void) {} -void BattleAICmd_unk_55(void) {} +static void BattleAICmd_unk_55(void) {} -void BattleAICmd_unk_56(void) {} +static void BattleAICmd_unk_56(void) {} -void BattleAICmd_unk_57(void) {} +static void BattleAICmd_unk_57(void) {} -void BattleAICmd_call(void) +static void BattleAICmd_call(void) { sub_81098C4(gAIScriptPtr + 5); gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -void BattleAICmd_jump(void) +static void BattleAICmd_jump(void) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -void BattleAICmd_unk_5A(void) +static void BattleAICmd_unk_5A(void) { if(sub_8109908() == 0) gAIThinkingSpace.unk10 |= 1; } -void BattleAICmd_if_level_cond(void) +static void BattleAICmd_if_level_cond(void) { switch(gAIScriptPtr[1]) { @@ -1917,7 +2197,7 @@ void BattleAICmd_if_level_cond(void) } } -void BattleAICmd_if_taunted(void) +static void BattleAICmd_if_taunted(void) { if(gUnknown_02024CA8[gUnknown_02024C08].taunt) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); @@ -1925,7 +2205,7 @@ void BattleAICmd_if_taunted(void) gAIScriptPtr += 5; } -void BattleAICmd_if_not_taunted(void) +static void BattleAICmd_if_not_taunted(void) { if(!(gUnknown_02024CA8[gUnknown_02024C08].taunt)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 4b75c7a32..c68976cf9 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -112,33 +112,21 @@ extern void sub_8080F58(void); extern void sub_80BC038(); extern void DoCoordEventWeather(u8); -__attribute__((naked)) void sub_8067EEC(struct UnkInputStruct *s) { - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - movs r1, 0x2\n\ - negs r1, r1\n\ - movs r3, 0x3\n\ - negs r3, r3\n\ - movs r4, 0x5\n\ - negs r4, r4\n\ - movs r5, 0x9\n\ - negs r5, r5\n\ - movs r2, 0\n\ - strb r2, [r0]\n\ - ldrb r2, [r0, 0x1]\n\ - ands r1, r2\n\ - ands r1, r3\n\ - ands r1, r4\n\ - ands r1, r5\n\ - strb r1, [r0, 0x1]\n\ - movs r1, 0\n\ - strb r1, [r0, 0x2]\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); + s->input_field_0_0 = 0; + s->input_field_0_1 = 0; + s->input_field_0_2 = 0; + s->input_field_0_3 = 0; + s->input_field_0_4 = 0; + s->input_field_0_5 = 0; + s->input_field_0_6 = 0; + s->input_field_0_7 = 0; + s->input_field_1_0 = 0; + s->input_field_1_1 = 0; + s->input_field_1_2 = 0; + s->input_field_1_3 = 0; + s->input_field_2 = 0; } void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldKeys) @@ -146,7 +134,7 @@ void process_overworld_input(struct UnkInputStruct *pStruct, u16 keys, u16 heldK u8 r6 = gPlayerAvatar.running1; u8 r9 = gPlayerAvatar.running2; bool8 r7 = MetatileBehavior_IsMoveTile(cur_mapdata_block_role_at_player_pos(r9)); - + if ((r6 == 2 && r7 == FALSE) || r6 == 0) { if (sub_80E6034() != 4) @@ -242,7 +230,7 @@ static void player_get_pos_to_and_height(struct MapPosition *position) static void player_get_next_pos_and_height(struct MapPosition *position) { s16 x, y; - + GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y); PlayerGetDestCoords(&x, &y); if (MapGridGetZCoordAt(x, y) != 0) @@ -254,7 +242,7 @@ static void player_get_next_pos_and_height(struct MapPosition *position) static u16 cur_mapdata_block_role_at_player_pos(int unused) { s16 x, y; - + PlayerGetDestCoords(&x, &y); return MapGridGetMetatileBehaviorAt(x, y); } @@ -262,17 +250,17 @@ static u16 cur_mapdata_block_role_at_player_pos(int unused) static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) { u8 *script = TryGetScriptOnPressingA(position, b, c); - + if (script == NULL) return FALSE; - + if (script != gUnknown_0815281E && script != gUnknown_08152C39 && script != gUnknown_0815F36C && script != gUnknown_0815F43A && script != gUnknown_081A0009) PlaySE(5); - + ScriptContext1_SetupScript(script); return TRUE; } @@ -280,7 +268,7 @@ static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c) { u8 *script; - + script = sub_8068364(position, b, c); if (script != NULL) return script; @@ -293,7 +281,7 @@ static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c) script = TryGetFieldMoveScript(position, b, c); if (script != NULL) return script; - + return NULL; } @@ -301,7 +289,7 @@ u8 *sub_80682A8(struct MapPosition *position, u8 unused, u8 c) { u8 r3; s32 i; - + if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y))) r3 = GetFieldObjectIdByXYZ(position->x, position->y, position->height); else @@ -323,7 +311,7 @@ static u8 *sub_8068364(struct MapPosition *position, u8 b, u8 c) { u8 r3; u8 *script; - + r3 = GetFieldObjectIdByXYZ(position->x, position->y, position->height); if (r3 == 16 || gMapObjects[r3].localId == 0xFF) { @@ -345,7 +333,7 @@ static u8 *sub_8068364(struct MapPosition *position, u8 b, u8 c) static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unused, u8 c) { struct BgEvent *bgEvent = FindInvisibleMapObjectByPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); - + if (bgEvent == NULL) return NULL; if (bgEvent->script == NULL) @@ -394,7 +382,7 @@ static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unuse static u8 *sub_8068500(struct MapPosition *position, u8 b, u8 c) { s8 height; - + if (MetatileBehavior_IsPlayerFacingTVScreen(b, c) == TRUE) return Event_TV; if (MetatileBehavior_IsPC(b) == TRUE) @@ -474,69 +462,25 @@ static bool32 sub_80687A4(void) return FALSE; } -#ifdef NONMATCHING static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused) { - if (mapheader_trigger_activate_at__run_now(position) != TRUE - && sub_8068A64(position, b) != TRUE && sub_8068870(b) != TRUE - && sub_8068894() != TRUE && UpdateRepelCounter() != TRUE) - return FALSE; - return TRUE; + if (mapheader_trigger_activate_at__run_now(position) == TRUE) + return TRUE; + if (sub_8068A64(position, b) == TRUE) + return TRUE; + if (sub_8068870(b) == TRUE) + return TRUE; + if (sub_8068894() == TRUE) + return TRUE; + if (UpdateRepelCounter() == TRUE) + return TRUE; + return FALSE; } -#else -__attribute__((naked)) -static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - adds r5, r0, 0\n\ - lsls r1, 16\n\ - lsrs r4, r1, 16\n\ - adds r6, r4, 0\n\ - bl mapheader_trigger_activate_at__run_now\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _08068834\n\ - adds r0, r5, 0\n\ - adds r1, r4, 0\n\ - bl sub_8068A64\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _08068834\n\ - adds r0, r6, 0\n\ - bl sub_8068870\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _08068834\n\ - bl sub_8068894\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _08068834\n\ - bl UpdateRepelCounter\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _08068834\n\ - movs r0, 0\n\ - b _08068836\n\ -_08068834:\n\ - movs r0, 0x1\n\ -_08068836:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ - .syntax divided\n"); -} -#endif bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *position) { u8 *script = mapheader_trigger_activate_at(&gMapHeader, position->x - 7, position->y - 7, position->height); - + if (script == NULL) return FALSE; ScriptContext1_SetupScript(script); @@ -588,13 +532,13 @@ static void happiness_algorithm_step(void) { u16 *ptr = GetVarPointer(VAR_HAPPINESS_STEP_COUNTER); int i; - + (*ptr)++; (*ptr) %= 128; if (*ptr == 0) { struct Pokemon *pkmn = gPlayerParty; - + for (i = 5; i >= 0; i--) { AdjustFriendship(pkmn, 5); @@ -611,7 +555,7 @@ void overworld_poison_timer_set(void) static bool8 overworld_poison_step(void) { u16 *ptr; - + if (gMapHeader.mapType != 9) { ptr = GetVarPointer(VAR_POISON_STEP_COUNTER); @@ -662,7 +606,7 @@ static bool8 is_it_battle_time_3(u16 a) static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c) { s8 r6 = map_warp_check_packed(&gMapHeader, position); - + if (is_non_stair_warp_tile(b, c) == TRUE && r6 != -1) { walkrun_find_lowest_active_bit_in_bitfield(); @@ -676,7 +620,7 @@ static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct Map bool8 sub_8068A64(struct MapPosition *position, u16 b) { s8 r4 = map_warp_check_packed(&gMapHeader, position); - + if (r4 != -1 && sub_8068B30(b) == TRUE) { walkrun_find_lowest_active_bit_in_bitfield(); @@ -750,7 +694,7 @@ static s8 map_warp_check_packed(struct MapHeader *mapHeader, struct MapPosition static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *position) { struct WarpEvent *warpEvent = &gMapHeader.events->warps[b]; - + if (warpEvent->mapNum == 0x7F) { copy_saved_warp2_bank_and_enter_x_to_warp1(warpEvent->mapGroup); @@ -758,7 +702,7 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi else { struct MapHeader *mapHeader; - + warp1_set_2(warpEvent->unk7, warpEvent->mapNum, warpEvent->mapGroup); sub_80535C4(position->x, position->y); mapHeader = get_mapheader_by_bank_and_number(warpEvent->unk7, warpEvent->mapNum); @@ -770,7 +714,7 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c) { s8 r4; - + if (c == 2) { if (sub_80571C0(b) == TRUE) @@ -798,7 +742,7 @@ static s8 map_warp_check(struct MapHeader *mapHeader, u16 b, u16 c, u8 d) s32 i; struct WarpEvent *warpEvent = mapHeader->events->warps; u8 warpCount = mapHeader->events->warpCount; - + for (i = 0; i < warpCount; i++, warpEvent++) { if ((u16)warpEvent->x == b && (u16)warpEvent->y == c) @@ -836,7 +780,7 @@ static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 b, u16 struct CoordEvent *coordEvents = mapHeader->events->coordEvents; u8 coordEventCount = mapHeader->events->coordEventCount; u8 *script; - + for (i = 0; i < coordEventCount; i++) { if ((u16)coordEvents[i].x == b && (u16)coordEvents[i].y == c) @@ -862,7 +806,7 @@ static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *mapHea u8 i; struct BgEvent *bgEvents = mapHeader->events->bgEvents; u8 bgEventCount = mapHeader->events->bgEventCount; - + for (i = 0; i < bgEventCount; i++) { if ((u16)bgEvents[i].x == b && (u16)bgEvents[i].y == c) @@ -903,7 +847,7 @@ u8 sub_8068F18(void) { s16 x, y; u8 r5; - + PlayerGetDestCoords(&x, &y); r5 = MapGridGetMetatileBehaviorAt(x, y); if (gMapHeader.mapType == 5 && sub_805750C(r5) == 0) @@ -923,7 +867,7 @@ u8 *GetFieldObjectScriptPointerForComparison(void) { u8 r4; struct MapPosition position; - + r4 = player_get_direction_upper_nybble(); player_get_next_pos_and_height(&position); return sub_8068364(&position, MapGridGetMetatileBehaviorAt(position.x, position.y), r4); @@ -932,7 +876,7 @@ u8 *GetFieldObjectScriptPointerForComparison(void) int sub_8068FEC(void) { struct MapPosition position; - + player_get_direction_upper_nybble(); //unnecessary player_get_pos_to_and_height(&position); MapGridGetMetatileBehaviorAt(position.x, position.y); //unnecessary diff --git a/sym_ewram.txt b/sym_ewram.txt index 13304fef9..1d1d7ced9 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -122,7 +122,7 @@ gUnknown_02024BE8: @ 2024BE8 gUnknown_02024BEA: @ 2024BEA .space 0x2 -gUnknown_02024BEC: @ 2024BEC +gBattleMoveDamage: @ 2024BEC .space 0x4 gUnknown_02024BF0: @ 2024BF0 @@ -194,7 +194,7 @@ gUnknown_02024C5C: @ 2024C5C gUnknown_02024C60: @ 2024C60 .space 0x8 -gUnknown_02024C68: @ 2024C68 +gBattleMoveFlags: @ 2024C68 .space 0x4 gUnknown_02024C6C: @ 2024C6C |