From f2ae74079fc917cbf7e1f640eb8beda0d4740887 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Tue, 23 Jan 2018 16:45:34 -0500 Subject: Prefix wram labels with w, part 1. Handle edge cases first. --- engine/battle/ai/redundant.asm | 6 +++--- engine/battle/ai/scoring.asm | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'engine/battle/ai') diff --git a/engine/battle/ai/redundant.asm b/engine/battle/ai/redundant.asm index 2e8f7c6df..68d7b0203 100755 --- a/engine/battle/ai/redundant.asm +++ b/engine/battle/ai/redundant.asm @@ -135,7 +135,7 @@ AI_Redundant: ; 2c41a ret .Sandstorm: ; 2c4f5 - ld a, [Weather] + ld a, [wBattleWeather] cp WEATHER_SANDSTORM jr z, .Redundant jr .NotRedundant @@ -153,13 +153,13 @@ AI_Redundant: ; 2c41a ret .RainDance: ; 2c512 - ld a, [Weather] + ld a, [wBattleWeather] cp WEATHER_RAIN jr z, .Redundant jr .NotRedundant .SunnyDay: ; 2c51b - ld a, [Weather] + ld a, [wBattleWeather] cp WEATHER_SUN jr z, .Redundant jr .NotRedundant diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm index 73284435a..2ea87cc82 100644 --- a/engine/battle/ai/scoring.asm +++ b/engine/battle/ai/scoring.asm @@ -2842,7 +2842,7 @@ AI_Smart_Solarbeam: ; 3920b ; 80% chance to encourage this move when it's sunny. ; 90% chance to discourage this move when it's raining. - ld a, [Weather] + ld a, [wBattleWeather] cp WEATHER_SUN jr z, .asm_3921e @@ -2870,7 +2870,7 @@ AI_Smart_Solarbeam: ; 3920b AI_Smart_Thunder: ; 39225 ; 90% chance to discourage this move when it's sunny. - ld a, [Weather] + ld a, [wBattleWeather] cp WEATHER_SUN ret nz -- cgit v1.2.3 From a1951cefc09035e11077a433b28ec8c66b3b03db Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Tue, 23 Jan 2018 17:39:09 -0500 Subject: Prefix wram labels with w, part 2. --- engine/battle/ai/items.asm | 108 ++++++------ engine/battle/ai/move.asm | 38 ++-- engine/battle/ai/redundant.asm | 46 ++--- engine/battle/ai/scoring.asm | 384 ++++++++++++++++++++--------------------- engine/battle/ai/switch.asm | 66 +++---- 5 files changed, 321 insertions(+), 321 deletions(-) (limited to 'engine/battle/ai') diff --git a/engine/battle/ai/items.asm b/engine/battle/ai/items.asm index d0867fb33..6ec490b71 100644 --- a/engine/battle/ai/items.asm +++ b/engine/battle/ai/items.asm @@ -12,7 +12,7 @@ AI_SwitchOrTryItem: ; 38000 farcall CheckEnemyLockedIn ret nz - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_CANT_RUN, a jr nz, DontSwitch @@ -21,11 +21,11 @@ AI_SwitchOrTryItem: ; 38000 jr nz, DontSwitch ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH - ld a, [InBattleTowerBattle] ; Load always the first TrainerClass for BattleTower-Trainers + ld a, [wInBattleTowerBattle] ; Load always the first wTrainerClass for BattleTower-Trainers and a jr nz, .ok - ld a, [TrainerClass] + ld a, [wTrainerClass] dec a ld bc, NUM_TRAINER_ATTRIBUTES call AddNTimes @@ -151,7 +151,7 @@ SwitchSometimes: ; 380c1 CheckSubstatusCantRun: ; 380ff - ld a, [EnemySubStatus5] + ld a, [wEnemySubStatus5] bit SUBSTATUS_CANT_RUN, a ret ; 38105 @@ -159,7 +159,7 @@ CheckSubstatusCantRun: ; 380ff AI_TryItem: ; 38105 ; items are not allowed in the BattleTower - ld a, [InBattleTowerBattle] + ld a, [wInBattleTowerBattle] and a ret nz @@ -172,7 +172,7 @@ AI_TryItem: ; 38105 call .IsHighestLevel ret nc - ld a, [TrainerClass] + ld a, [wTrainerClass] dec a ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH ld bc, NUM_TRAINER_ATTRIBUTES @@ -226,29 +226,29 @@ AI_TryItem: ; 38105 inc a ld [wEnemyGoesFirst], a - ld hl, EnemySubStatus3 + ld hl, wEnemySubStatus3 res SUBSTATUS_BIDE, [hl] xor a - ld [EnemyFuryCutterCount], a - ld [EnemyProtectCount], a + ld [wEnemyFuryCutterCount], a + ld [wEnemyProtectCount], a ld [wEnemyRageCounter], a - ld hl, EnemySubStatus4 + ld hl, wEnemySubStatus4 res SUBSTATUS_RAGE, [hl] xor a - ld [LastEnemyCounterMove], a + ld [wLastEnemyCounterMove], a scf ret .IsHighestLevel: ; 38170 - ld a, [OTPartyCount] + ld a, [wOTPartyCount] ld d, a ld e, 0 - ld hl, OTPartyMon1Level + ld hl, wOTPartyMon1Level ld bc, PARTYMON_STRUCT_LENGTH .next ld a, [hl] @@ -260,8 +260,8 @@ AI_TryItem: ; 38105 dec d jr nz, .next - ld a, [CurOTMon] - ld hl, OTPartyMon1Level + ld a, [wCurOTMon] + ld hl, wOTPartyMon1Level call AddNTimes ld a, [hl] cp e @@ -302,7 +302,7 @@ AI_Items: ; 39196 ; 381ca .Status: ; 381ca (e:41ca) - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and a jp z, .DontUse @@ -318,17 +318,17 @@ AI_Items: ; 39196 jp .DontUse .StatusCheckContext: - ld a, [EnemySubStatus5] + ld a, [wEnemySubStatus5] bit SUBSTATUS_TOXIC, a jr z, .FailToxicCheck - ld a, [EnemyToxicCount] + ld a, [wEnemyToxicCount] cp 4 jr c, .FailToxicCheck call Random cp 1 + 50 percent jp c, .Use .FailToxicCheck: - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and 1 << FRZ | SLP jp z, .DontUse jp .Use @@ -419,8 +419,8 @@ AI_Items: ; 39196 callfar AICheckEnemyMaxHP jr c, .dont_use push bc - ld de, EnemyMonMaxHP + 1 - ld hl, EnemyMonHP + 1 + ld de, wEnemyMonMaxHP + 1 + ld hl, wEnemyMonHP + 1 ld a, [de] sub [hl] jr z, .check_40_percent @@ -509,7 +509,7 @@ AI_Items: ; 39196 ; 3834d .XItem: ; 3834d (e:434d) - ld a, [EnemyTurnsTaken] + ld a, [wEnemyTurnsTaken] and a jr nz, .notfirstturnout ld a, [bc] @@ -571,37 +571,37 @@ EnemyUsedFullHeal: ; 383a3 (e:43a3) EnemyUsedMaxPotion: ; 383ae (e:43ae) ld a, MAX_POTION - ld [CurEnemyItem], a + ld [wCurEnemyItem], a jr FullRestoreContinue EnemyUsedFullRestore: ; 383b5 (e:43b5) call AI_HealStatus ld a, FULL_RESTORE - ld [CurEnemyItem], a - ld hl, EnemySubStatus3 + ld [wCurEnemyItem], a + ld hl, wEnemySubStatus3 res SUBSTATUS_CONFUSED, [hl] xor a - ld [EnemyConfuseCount], a + ld [wEnemyConfuseCount], a FullRestoreContinue: ; 383c6 ld de, wCurHPAnimOldHP - ld hl, EnemyMonHP + 1 + ld hl, wEnemyMonHP + 1 ld a, [hld] ld [de], a inc de ld a, [hl] ld [de], a inc de - ld hl, EnemyMonMaxHP + 1 + ld hl, wEnemyMonMaxHP + 1 ld a, [hld] ld [de], a inc de ld [wCurHPAnimMaxHP], a - ld [EnemyMonHP + 1], a + ld [wEnemyMonHP + 1], a ld a, [hl] ld [de], a ld [wCurHPAnimMaxHP + 1], a - ld [EnemyMonHP], a + ld [wEnemyMonHP], a jr EnemyPotionFinish ; 383e8 (e:43e8) @@ -620,8 +620,8 @@ EnemyUsedHyperPotion: ; 383f4 (e:43f4) ld b, 200 EnemyPotionContinue: ; 383f8 - ld [CurEnemyItem], a - ld hl, EnemyMonHP + 1 + ld [wCurEnemyItem], a + ld hl, wEnemyMonHP + 1 ld a, [hl] ld [wCurHPAnimOldHP], a add b @@ -638,7 +638,7 @@ EnemyPotionContinue: ; 383f8 inc hl ld a, [hld] ld b, a - ld de, EnemyMonMaxHP + 1 + ld de, wEnemyMonMaxHP + 1 ld a, [de] dec de ld [wCurHPAnimMaxHP], a @@ -671,9 +671,9 @@ EnemyPotionFinish: ; 38436 AI_TrySwitch: ; 3844b ; Determine whether the AI can switch based on how many Pokemon are still alive. ; If it can switch, it will. - ld a, [OTPartyCount] + ld a, [wOTPartyCount] ld c, a - ld hl, OTPartyMon1HP + ld hl, wOTPartyMon1HP ld d, 0 .SwitchLoop: ld a, [hli] @@ -701,20 +701,20 @@ AI_Switch: ; 3846c ld a, $1 ld [wEnemyIsSwitching], a ld [wEnemyGoesFirst], a - ld hl, EnemySubStatus4 + ld hl, wEnemySubStatus4 res SUBSTATUS_RAGE, [hl] xor a ld [hBattleTurn], a callfar PursuitSwitch push af - ld a, [CurOTMon] - ld hl, OTPartyMon1Status + ld a, [wCurOTMon] + ld hl, wOTPartyMon1Status ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l - ld hl, EnemyMonStatus + ld hl, wEnemyMonStatus ld bc, MON_MAXHP - MON_STATUS call CopyBytes pop af @@ -728,7 +728,7 @@ AI_Switch: ; 3846c ld [wBattleHasJustStarted], a callfar NewEnemyMonStatus callfar ResetEnemyStatLevels - ld hl, PlayerSubStatus1 + ld hl, wPlayerSubStatus1 res SUBSTATUS_IN_LOVE, [hl] farcall EnemySwitch farcall ResetBattleParticipants @@ -754,25 +754,25 @@ Function384d5: ; This appears to be unused ; 384e0 AI_HealStatus: ; 384e0 - ld a, [CurOTMon] - ld hl, OTPartyMon1Status + ld a, [wCurOTMon] + ld hl, wOTPartyMon1Status ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes xor a ld [hl], a - ld [EnemyMonStatus], a + ld [wEnemyMonStatus], a ; Bug: this should reset SUBSTATUS_NIGHTMARE too ; Uncomment the lines below to fix - ; ld hl, EnemySubStatus1 + ; ld hl, wEnemySubStatus1 ; res SUBSTATUS_NIGHTMARE, [hl] - ld hl, EnemySubStatus5 + ld hl, wEnemySubStatus5 res SUBSTATUS_TOXIC, [hl] ret ; 384f7 EnemyUsedXAccuracy: ; 384f7 call AIUsedItemSound - ld hl, EnemySubStatus4 + ld hl, wEnemySubStatus4 set SUBSTATUS_X_ACCURACY, [hl] ld a, X_ACCURACY jp PrintText_UsedItemOn_AND_AIUpdateHUD @@ -780,7 +780,7 @@ EnemyUsedXAccuracy: ; 384f7 EnemyUsedGuardSpec: ; 38504 call AIUsedItemSound - ld hl, EnemySubStatus4 + ld hl, wEnemySubStatus4 set SUBSTATUS_MIST, [hl] ld a, GUARD_SPEC jp PrintText_UsedItemOn_AND_AIUpdateHUD @@ -788,7 +788,7 @@ EnemyUsedGuardSpec: ; 38504 EnemyUsedDireHit: ; 38511 call AIUsedItemSound - ld hl, EnemySubStatus4 + ld hl, wEnemySubStatus4 set SUBSTATUS_FOCUS_ENERGY, [hl] ld a, DIRE_HIT jp PrintText_UsedItemOn_AND_AIUpdateHUD @@ -796,7 +796,7 @@ EnemyUsedDireHit: ; 38511 Function3851e: ; This appears to be unused ld [hDivisor], a - ld hl, EnemyMonMaxHP + ld hl, wEnemyMonMaxHP ld a, [hli] ld [hDividend], a ld a, [hl] @@ -807,7 +807,7 @@ Function3851e: ; This appears to be unused ld c, a ld a, [hQuotient + 1] ld b, a - ld hl, EnemyMonHP + 1 + ld hl, wEnemyMonHP + 1 ld a, [hld] ld e, a ld a, [hl] @@ -847,7 +847,7 @@ EnemyUsedXSpecial: ; 38553 ; a = ITEM_CONSTANT ; b = BATTLE_CONSTANT (ATTACK, DEFENSE, SPEED, SP_ATTACK, SP_DEFENSE, ACCURACY, EVASION) EnemyUsedXItem: - ld [CurEnemyItem], a + ld [wCurEnemyItem], a push bc call PrintText_UsedItemOn pop bc @@ -859,16 +859,16 @@ EnemyUsedXItem: ; Parameter ; a = ITEM_CONSTANT PrintText_UsedItemOn_AND_AIUpdateHUD: ; 38568 - ld [CurEnemyItem], a + ld [wCurEnemyItem], a call PrintText_UsedItemOn jp AIUpdateHUD ; 38571 PrintText_UsedItemOn: ; 38571 - ld a, [CurEnemyItem] + ld a, [wCurEnemyItem] ld [wd265], a call GetItemName - ld hl, StringBuffer1 + ld hl, wStringBuffer1 ld de, wMonOrItemNameBuffer ld bc, ITEM_NAME_LENGTH call CopyBytes diff --git a/engine/battle/ai/move.asm b/engine/battle/ai/move.asm index 7ccb20972..c3e9bed27 100755 --- a/engine/battle/ai/move.asm +++ b/engine/battle/ai/move.asm @@ -1,5 +1,5 @@ AIChooseMove: ; 440ce -; Score each move in EnemyMonMoves starting from Buffer1. Lower is better. +; Score each move in wEnemyMonMoves starting from wBuffer1. Lower is better. ; Pick the move with the lowest score. ; Wildmons attack at random. @@ -18,18 +18,18 @@ AIChooseMove: ; 440ce ; The default score is 20. Unusable moves are given a score of 80. ld a, 20 - ld hl, Buffer1 + ld hl, wBuffer1 ld [hli], a ld [hli], a ld [hli], a ld [hl], a ; Don't pick disabled moves. - ld a, [EnemyDisabledMove] + ld a, [wEnemyDisabledMove] and a jr z, .CheckPP - ld hl, EnemyMonMoves + ld hl, wEnemyMonMoves ld c, 0 .CheckDisabledMove: cp [hl] @@ -38,20 +38,20 @@ AIChooseMove: ; 440ce inc hl jr .CheckDisabledMove .ScoreDisabledMove: - ld hl, Buffer1 + ld hl, wBuffer1 ld b, 0 add hl, bc ld [hl], 80 ; Don't pick moves with 0 PP. .CheckPP: - ld hl, Buffer1 - 1 - ld de, EnemyMonPP + ld hl, wBuffer1 - 1 + ld de, wEnemyMonPP ld b, 0 .CheckMovePP: inc b ld a, b - cp EnemyMonMovesEnd - EnemyMonMoves + 1 + cp wEnemyMonMovesEnd - wEnemyMonMoves + 1 jr z, .ApplyLayers inc hl ld a, [de] @@ -66,13 +66,13 @@ AIChooseMove: ; 440ce .ApplyLayers: ld hl, TrainerClassAttributes + TRNATTR_AI_MOVE_WEIGHTS - ; If we have a battle in BattleTower just load the Attributes of the first TrainerClass (Falkner) + ; If we have a battle in BattleTower just load the Attributes of the first wTrainerClass (Falkner) ; so we have always the same AI, regardless of the loaded class of trainer - ld a, [InBattleTowerBattle] + ld a, [wInBattleTowerBattle] bit 0, a jr nz, .battle_tower_skip - ld a, [TrainerClass] + ld a, [wTrainerClass] dec a ld bc, 7 ; Trainer2AI - Trainer1AI call AddNTimes @@ -119,9 +119,9 @@ AIChooseMove: ; 440ce ; Decrement the scores of all moves one by one until one reaches 0. .DecrementScores: - ld hl, Buffer1 - ld de, EnemyMonMoves - ld c, EnemyMonMovesEnd - EnemyMonMoves + ld hl, wBuffer1 + ld de, wEnemyMonMoves + ld c, wEnemyMonMovesEnd - wEnemyMonMoves .DecrementNextScore: ; If the enemy has no moves, this will infinite. @@ -154,8 +154,8 @@ AIChooseMove: ; 440ce cp NUM_MOVES + 1 jr nz, .move_loop - ld hl, Buffer1 - ld de, EnemyMonMoves + ld hl, wBuffer1 + ld de, wEnemyMonMoves ld c, NUM_MOVES ; Give a score of 0 to a blank move @@ -184,7 +184,7 @@ AIChooseMove: ; 440ce ; Randomly choose one of the moves with a score of 1 .ChooseMove: - ld hl, Buffer1 + ld hl, wBuffer1 call Random maskbits NUM_MOVES ld c, a @@ -194,9 +194,9 @@ AIChooseMove: ; 440ce and a jr z, .ChooseMove - ld [CurEnemyMove], a + ld [wCurEnemyMove], a ld a, c - ld [CurEnemyMoveNum], a + ld [wCurEnemyMoveNum], a ret ; 441af diff --git a/engine/battle/ai/redundant.asm b/engine/battle/ai/redundant.asm index 68d7b0203..d09b4da73 100755 --- a/engine/battle/ai/redundant.asm +++ b/engine/battle/ai/redundant.asm @@ -47,90 +47,90 @@ AI_Redundant: ; 2c41a db -1 .LightScreen: ; 2c487 - ld a, [EnemyScreens] + ld a, [wEnemyScreens] bit SCREENS_LIGHT_SCREEN, a ret .Mist: ; 2c48d - ld a, [EnemySubStatus4] + ld a, [wEnemySubStatus4] bit SUBSTATUS_MIST, a ret .FocusEnergy: ; 2c493 - ld a, [EnemySubStatus4] + ld a, [wEnemySubStatus4] bit SUBSTATUS_FOCUS_ENERGY, a ret .Confuse: ; 2c499 - ld a, [PlayerSubStatus3] + ld a, [wPlayerSubStatus3] bit SUBSTATUS_CONFUSED, a ret nz - ld a, [PlayerScreens] + ld a, [wPlayerScreens] bit SCREENS_SAFEGUARD, a ret .Transform: ; 2c4a5 - ld a, [EnemySubStatus5] + ld a, [wEnemySubStatus5] bit SUBSTATUS_TRANSFORMED, a ret .Reflect: ; 2c4ab - ld a, [EnemyScreens] + ld a, [wEnemyScreens] bit SCREENS_REFLECT, a ret .Substitute: ; 2c4b1 - ld a, [EnemySubStatus4] + ld a, [wEnemySubStatus4] bit SUBSTATUS_SUBSTITUTE, a ret .LeechSeed: ; 2c4b7 - ld a, [PlayerSubStatus4] + ld a, [wPlayerSubStatus4] bit SUBSTATUS_LEECH_SEED, a ret .Disable: ; 2c4bd - ld a, [PlayerDisableCount] + ld a, [wPlayerDisableCount] and a ret .Encore: ; 2c4c2 - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_ENCORED, a ret .Snore: .SleepTalk: ; 2c4c8 - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and SLP jr z, .Redundant jr .NotRedundant .MeanLook: ; 2c4d1 - ld a, [EnemySubStatus5] + ld a, [wEnemySubStatus5] bit SUBSTATUS_CANT_RUN, a ret .Nightmare: ; 2c4d7 - ld a, [BattleMonStatus] + ld a, [wBattleMonStatus] and a jr z, .Redundant - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] bit SUBSTATUS_NIGHTMARE, a ret .Spikes: ; 2c4e3 - ld a, [PlayerScreens] + ld a, [wPlayerScreens] bit SCREENS_SPIKES, a ret .Foresight: ; 2c4e9 - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] bit SUBSTATUS_IDENTIFIED, a ret .PerishSong: ; 2c4ef - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] bit SUBSTATUS_PERISH, a ret @@ -143,12 +143,12 @@ AI_Redundant: ; 2c41a .Attract: ; 2c4fe farcall CheckOppositeGender jr c, .Redundant - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] bit SUBSTATUS_IN_LOVE, a ret .Safeguard: ; 2c50c - ld a, [EnemyScreens] + ld a, [wEnemyScreens] bit SCREENS_SAFEGUARD, a ret @@ -165,18 +165,18 @@ AI_Redundant: ; 2c41a jr .NotRedundant .DreamEater: ; 2c524 - ld a, [BattleMonStatus] + ld a, [wBattleMonStatus] and SLP jr z, .Redundant jr .NotRedundant .Swagger: ; 2c52d - ld a, [PlayerSubStatus3] + ld a, [wPlayerSubStatus3] bit SUBSTATUS_CONFUSED, a ret .FutureSight: ; 2c533 - ld a, [EnemyScreens] + ld a, [wEnemyScreens] bit 5, a ret diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm index 2ea87cc82..b250128a4 100644 --- a/engine/battle/ai/scoring.asm +++ b/engine/battle/ai/scoring.asm @@ -5,9 +5,9 @@ AI_Basic: ; 38591 ; -Using status-only moves if the player can't be statused ; -Using moves that fail if they've already been used - ld hl, Buffer1 - 1 - ld de, EnemyMonMoves - ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wBuffer1 - 1 + ld de, wEnemyMonMoves + ld b, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .checkmove dec b ret z @@ -49,12 +49,12 @@ AI_Basic: ; 38591 pop hl jr nc, .checkmove - ld a, [BattleMonStatus] + ld a, [wBattleMonStatus] and a jr nz, .discourage ; Dismiss Safeguard if it's already active. - ld a, [PlayerScreens] + ld a, [wPlayerScreens] bit SCREENS_SAFEGUARD, a jr z, .checkmove @@ -80,9 +80,9 @@ AI_Setup: ; 385e0 ; 50% chance to greatly encourage stat-down moves during the first turn of player's Pokemon. ; Almost 90% chance to greatly discourage stat-modifying moves otherwise. - ld hl, Buffer1 - 1 - ld de, EnemyMonMoves - ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wBuffer1 - 1 + ld de, wEnemyMonMoves + ld b, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .checkmove dec b ret z @@ -120,14 +120,14 @@ AI_Setup: ; 385e0 jr .checkmove .statup - ld a, [EnemyTurnsTaken] + ld a, [wEnemyTurnsTaken] and a jr nz, .discourage jr .encourage .statdown - ld a, [PlayerTurnsTaken] + ld a, [wPlayerTurnsTaken] and a jr nz, .discourage @@ -156,9 +156,9 @@ AI_Types: ; 38635 ; Discourage not very effective moves unless ; all damaging moves are of the same type. - ld hl, Buffer1 - 1 - ld de, EnemyMonMoves - ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wBuffer1 - 1 + ld de, wEnemyMonMoves + ld b, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .checkmove dec b ret z @@ -203,8 +203,8 @@ AI_Types: ; 38635 push bc ld a, [wEnemyMoveStruct + MOVE_TYPE] ld d, a - ld hl, EnemyMonMoves - ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wEnemyMonMoves + ld b, wEnemyMonMovesEnd - wEnemyMonMoves + 1 ld c, 0 .checkmove2 dec b @@ -245,9 +245,9 @@ AI_Types: ; 38635 AI_Offensive: ; 386a2 ; Greatly discourage non-damaging moves. - ld hl, Buffer1 - 1 - ld de, EnemyMonMoves - ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wBuffer1 - 1 + ld de, wEnemyMonMoves + ld b, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .checkmove dec b ret z @@ -274,9 +274,9 @@ AI_Offensive: ; 386a2 AI_Smart: ; 386be ; Context-specific scoring. - ld hl, Buffer1 - ld de, EnemyMonMoves - ld b, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wBuffer1 + ld de, wEnemyMonMoves + ld b, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .checkmove dec b ret z @@ -462,7 +462,7 @@ AI_Smart_LeechHit: ; 387f7 AI_Smart_LockOn: ; 3881d - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a jr nz, .asm_38882 @@ -477,20 +477,20 @@ AI_Smart_LockOn: ; 3881d jr nc, .asm_38877 .asm_38834 - ld a, [PlayerEvaLevel] + ld a, [wPlayerEvaLevel] cp $a jr nc, .asm_3887a cp $8 jr nc, .asm_38875 - ld a, [EnemyAccLevel] + ld a, [wEnemyAccLevel] cp $5 jr c, .asm_3887a cp $7 jr c, .asm_38875 - ld hl, EnemyMonMoves - ld c, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wEnemyMonMoves + ld c, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .asm_3884f dec c jr z, .asm_38877 @@ -537,9 +537,9 @@ AI_Smart_LockOn: ; 3881d .asm_38882 push hl - ld hl, Buffer1 - 1 - ld de, EnemyMonMoves - ld c, EnemyMonMovesEnd - EnemyMonMoves + 1 + ld hl, wBuffer1 - 1 + ld de, wEnemyMonMoves + ld c, wEnemyMonMovesEnd - wEnemyMonMoves + 1 .asm_3888b inc hl @@ -622,7 +622,7 @@ AI_Smart_DreamEater: ; 388ca AI_Smart_EvasionUp: ; 388d4 ; Dismiss this move if enemy's evasion can't raise anymore. - ld a, [EnemyEvaLevel] + ld a, [wEnemyEvaLevel] cp $d jp nc, AIDiscourageMove @@ -631,7 +631,7 @@ AI_Smart_EvasionUp: ; 388d4 jr nc, .asm_388f2 ; ...greatly encourage this move if player is badly poisoned. - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_TOXIC, a jr nz, .asm_388ef @@ -680,27 +680,27 @@ AI_Smart_EvasionUp: ; 388d4 ; 100% chance to end up here if enemy's HP is below 25%. ; In other words, we only end up here if the move has not been encouraged or dismissed. .asm_38911 - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_TOXIC, a jr nz, .asm_38938 - ld a, [PlayerSubStatus4] + ld a, [wPlayerSubStatus4] bit SUBSTATUS_LEECH_SEED, a jr nz, .asm_38941 ; Discourage this move if enemy's evasion level is higher than player's accuracy level. - ld a, [EnemyEvaLevel] + ld a, [wEnemyEvaLevel] ld b, a - ld a, [PlayerAccLevel] + ld a, [wPlayerAccLevel] cp b jr c, .asm_38936 ; Greatly encourage this move if the player is in the middle of Fury Cutter or Rollout. - ld a, [PlayerFuryCutterCount] + ld a, [wPlayerFuryCutterCount] and a jr nz, .asm_388ef - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] bit SUBSTATUS_ROLLOUT, a jr nz, .asm_388ef @@ -736,12 +736,12 @@ AI_Smart_AlwaysHit: ; 38947 ; 80% chance to greatly encourage this move if either... ; ...enemy's accuracy level has been lowered three or more stages - ld a, [EnemyAccLevel] + ld a, [wEnemyAccLevel] cp $5 jr c, .asm_38954 ; ...or player's evasion level has been raised three or more stages. - ld a, [PlayerEvaLevel] + ld a, [wPlayerEvaLevel] cp $a ret c @@ -758,7 +758,7 @@ AI_Smart_AlwaysHit: ; 38947 AI_Smart_MirrorMove: ; 3895b ; If the player did not use any move last turn... - ld a, [LastPlayerCounterMove] + ld a, [wLastPlayerCounterMove] and a jr nz, .asm_38968 @@ -810,7 +810,7 @@ AI_Smart_AccuracyDown: ; 38985 jr nc, .asm_389a0 ; ...greatly encourage this move if player is badly poisoned. - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_TOXIC, a jr nz, .asm_3899d @@ -855,27 +855,27 @@ AI_Smart_AccuracyDown: ; 38985 ; We only end up here if the move has not been already encouraged. .asm_389bf - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_TOXIC, a jr nz, .asm_389e6 - ld a, [PlayerSubStatus4] + ld a, [wPlayerSubStatus4] bit SUBSTATUS_LEECH_SEED, a jr nz, .asm_389ef ; Discourage this move if enemy's evasion level is higher than player's accuracy level. - ld a, [EnemyEvaLevel] + ld a, [wEnemyEvaLevel] ld b, a - ld a, [PlayerAccLevel] + ld a, [wPlayerAccLevel] cp b jr c, .asm_389e4 ; Greatly encourage this move if the player is in the middle of Fury Cutter or Rollout. - ld a, [PlayerFuryCutterCount] + ld a, [wPlayerFuryCutterCount] and a jr nz, .asm_3899d - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] bit SUBSTATUS_ROLLOUT, a jr nz, .asm_3899d @@ -910,7 +910,7 @@ AI_Smart_ResetStats: ; 389f5 ; 85% chance to encourage this move if any of enemy's stat levels is lower than -2. push hl - ld hl, EnemyAtkLevel + ld hl, wEnemyAtkLevel ld c, $8 .asm_389fb dec c @@ -922,7 +922,7 @@ AI_Smart_ResetStats: ; 389f5 ; 85% chance to encourage this move if any of player's stat levels is higher than +2. .asm_38a05 - ld hl, PlayerAtkLevel + ld hl, wPlayerAtkLevel ld c, $8 .asm_38a0a dec c @@ -1034,9 +1034,9 @@ AI_Smart_Ohko: ; 38a60 ; Dismiss this move if player's level is higher than enemy's level. ; Else, discourage this move is player's HP is below 50%. - ld a, [BattleMonLevel] + ld a, [wBattleMonLevel] ld b, a - ld a, [EnemyMonLevel] + ld a, [wEnemyMonLevel] cp b jp c, AIDiscourageMove call AICheckPlayerHalfHP @@ -1056,16 +1056,16 @@ AI_Smart_TrapTarget: ; 38a71 ; 50% chance to greatly encourage this move if player is either ; badly poisoned, in love, identified, stuck in Rollout, or has a Nightmare. - ld a, [PlayerSubStatus5] + ld a, [wPlayerSubStatus5] bit SUBSTATUS_TOXIC, a jr nz, .asm_38a91 - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] and 1< player's current HP]. push hl - ld hl, EnemyMonHP + ld hl, wEnemyMonHP ld b, [hl] inc hl ld c, [hl] sla c rl b - ld hl, BattleMonHP + 1 + ld hl, wBattleMonHP + 1 ld a, [hld] cp c ld a, [hl] @@ -1584,7 +1584,7 @@ AI_Smart_SleepTalk: ; 38cba ; Greatly encourage this move if enemy is fast asleep. ; Greatly discourage this move otherwise. - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and $7 cp $1 jr z, .asm_38cc7 @@ -1606,7 +1606,7 @@ AI_Smart_DefrostOpponent: ; 38ccb ; Greatly encourage this move if enemy is frozen. ; No move has EFFECT_DEFROST_OPPONENT, so this layer is unused. - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and $20 ret z dec [hl] @@ -1617,7 +1617,7 @@ AI_Smart_DefrostOpponent: ; 38ccb AI_Smart_Spite: ; 38cd5 - ld a, [LastPlayerCounterMove] + ld a, [wLastPlayerCounterMove] and a jr nz, .asm_38ce7 @@ -1633,8 +1633,8 @@ AI_Smart_Spite: ; 38cd5 push hl ld b, a ld c, 4 - ld hl, BattleMonMoves - ld de, BattleMonPP + ld hl, wBattleMonMoves + ld de, wBattleMonPP .asm_38cf1 ld a, [hli] @@ -1697,10 +1697,10 @@ AI_Smart_HealBell: ; 38d1f ; 50% chance to greatly encourage this move if the enemy is fast asleep or frozen. push hl - ld a, [OTPartyCount] + ld a, [wOTPartyCount] ld b, a ld c, 0 - ld hl, OTPartyMon1HP + ld hl, wOTPartyMon1HP ld de, PARTYMON_STRUCT_LENGTH .loop @@ -1728,7 +1728,7 @@ AI_Smart_HealBell: ; 38d1f and a jr z, .no_status - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and a jr z, .ok dec [hl] @@ -1742,7 +1742,7 @@ AI_Smart_HealBell: ; 38d1f ret .no_status - ld a, [EnemyMonStatus] + ld a, [wEnemyMonStatus] and a ret nz jp AIDiscourageMove @@ -1755,7 +1755,7 @@ AI_Smart_PriorityHit: ; 38d5a ret c ; Dismiss this move if the player is flying or underground. - ld a, [PlayerSubStatus3] + ld a, [wPlayerSubStatus3] and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND jp nz, AIDiscourageMove @@ -1767,13 +1767,13 @@ AI_Smart_PriorityHit: ; 38d5a callfar BattleCommand_DamageCalc callfar BattleCommand_Stab pop hl - ld a, [CurDamage + 1] + ld a, [wCurDamage + 1] ld c, a - ld a, [CurDamage] + ld a, [wCurDamage] ld b, a - ld a, [BattleMonHP + 1] + ld a, [wBattleMonHP + 1] cp c - ld a, [BattleMonHP] + ld a, [wBattleMonHP] sbc b ret nc dec [hl] @@ -1794,7 +1794,7 @@ AI_Smart_Thief: ; 38d93 AI_Smart_Conversion2: ; 38d98 - ld a, [LastPlayerMove] + ld a, [wLastPlayerMove] and a jr nz, .asm_38dc9 @@ -1839,7 +1839,7 @@ AI_Smart_Disable: ; 38dd1 jr nc, .asm_38df3 push hl - ld a, [LastPlayerCounterMove] + ld a, [wLastPlayerCounterMove] ld hl, UsefulMoves ld de, 1 call IsInArray @@ -1877,14 +1877,14 @@ AI_Smart_MeanLook: ; 38dfb jp z, AIDiscourageMove ; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy). -; Should check PlayerSubStatus5 instead. - ld a, [EnemySubStatus5] +; Should check wPlayerSubStatus5 instead. + ld a, [wEnemySubStatus5] bit SUBSTATUS_TOXIC, a jr nz, .asm_38e26 ; 80% chance to greatly encourage this move if the player is either ; in love, identified, stuck in Rollout, or has a Nightmare. - ld a, [PlayerSubStatus1] + ld a, [wPlayerSubStatus1] and 1< Date: Tue, 30 Jan 2018 14:05:25 -0500 Subject: Fix comment/style issues caused from w-izing. --- engine/battle/ai/items.asm | 2 +- engine/battle/ai/move.asm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'engine/battle/ai') diff --git a/engine/battle/ai/items.asm b/engine/battle/ai/items.asm index 6ec490b71..4d1eea2e8 100644 --- a/engine/battle/ai/items.asm +++ b/engine/battle/ai/items.asm @@ -21,7 +21,7 @@ AI_SwitchOrTryItem: ; 38000 jr nz, DontSwitch ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH - ld a, [wInBattleTowerBattle] ; Load always the first wTrainerClass for BattleTower-Trainers + ld a, [wInBattleTowerBattle] ; always load the first trainer class in wTrainerClass for BattleTower-Trainers and a jr nz, .ok diff --git a/engine/battle/ai/move.asm b/engine/battle/ai/move.asm index c3e9bed27..b5ac966f8 100755 --- a/engine/battle/ai/move.asm +++ b/engine/battle/ai/move.asm @@ -66,7 +66,7 @@ AIChooseMove: ; 440ce .ApplyLayers: ld hl, TrainerClassAttributes + TRNATTR_AI_MOVE_WEIGHTS - ; If we have a battle in BattleTower just load the Attributes of the first wTrainerClass (Falkner) + ; If we have a battle in BattleTower just load the Attributes of the first trainer class in wTrainerClass (Falkner) ; so we have always the same AI, regardless of the loaded class of trainer ld a, [wInBattleTowerBattle] bit 0, a -- cgit v1.2.3