Identify more uses of wBuffer1-6

This commit is contained in:
Rangi
2020-11-03 19:53:07 -05:00
parent 826e070f04
commit c88c4a8340
29 changed files with 327 additions and 264 deletions

View File

@@ -1,5 +1,5 @@
AIChooseMove:
; Score each move in wEnemyMonMoves starting from wBuffer1. Lower is better.
; Score each move of wEnemyMonMoves in wEnemyAIMoveScores. Lower is better.
; Pick the move with the lowest score.
; Wildmons attack at random.
@@ -17,7 +17,7 @@ AIChooseMove:
; The default score is 20. Unusable moves are given a score of 80.
ld a, 20
ld hl, wBuffer1
ld hl, wEnemyAIMoveScores
ld [hli], a
ld [hli], a
ld [hli], a
@@ -37,14 +37,14 @@ AIChooseMove:
inc hl
jr .CheckDisabledMove
.ScoreDisabledMove:
ld hl, wBuffer1
ld hl, wEnemyAIMoveScores
ld b, 0
add hl, bc
ld [hl], 80
; Don't pick moves with 0 PP.
.CheckPP:
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonPP
ld b, 0
.CheckMovePP:
@@ -117,7 +117,7 @@ AIChooseMove:
; Decrement the scores of all moves one by one until one reaches 0.
.DecrementScores:
ld hl, wBuffer1
ld hl, wEnemyAIMoveScores
ld de, wEnemyMonMoves
ld c, NUM_MOVES
@@ -152,7 +152,7 @@ AIChooseMove:
cp NUM_MOVES + 1
jr nz, .move_loop
ld hl, wBuffer1
ld hl, wEnemyAIMoveScores
ld de, wEnemyMonMoves
ld c, NUM_MOVES
@@ -182,7 +182,7 @@ AIChooseMove:
; Randomly choose one of the moves with a score of 1
.ChooseMove:
ld hl, wBuffer1
ld hl, wEnemyAIMoveScores
call Random
maskbits NUM_MOVES
ld c, a

View File

@@ -6,7 +6,7 @@ AI_Basic:
; -Using status-only moves if the player can't be statused
; -Using moves that fail if they've already been used
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -73,7 +73,7 @@ AI_Setup:
; 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, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -147,7 +147,7 @@ AI_Types:
; Discourage not very effective moves unless
; all damaging moves are of the same type.
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -234,7 +234,7 @@ AI_Types:
AI_Offensive:
; Greatly discourage non-damaging moves.
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -261,7 +261,7 @@ AI_Offensive:
AI_Smart:
; Context-specific scoring.
ld hl, wBuffer1
ld hl, wEnemyAIMoveScores
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -518,7 +518,7 @@ AI_Smart_LockOn:
.player_locked_on
push hl
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
@@ -2893,7 +2893,7 @@ AI_Opportunist:
ret c
.lowhp
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
.checkmove
@@ -2987,7 +2987,7 @@ AI_Aggressive:
jr z, .done
; Discourage moves that do less damage unless they're reckless too.
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, 0
.checkmove2
@@ -3060,7 +3060,7 @@ AI_Cautious:
and a
ret z
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
.loop
@@ -3098,7 +3098,7 @@ INCLUDE "data/battle/ai/residual_moves.asm"
AI_Status:
; Dismiss status moves that don't affect the player.
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld b, NUM_MOVES + 1
.checkmove
@@ -3161,7 +3161,7 @@ AI_Risky:
; Use any move that will KO the target.
; Risky moves will often be an exception (see below).
ld hl, wBuffer1 - 1
ld hl, wEnemyAIMoveScores - 1
ld de, wEnemyMonMoves
ld c, NUM_MOVES + 1
.checkmove

View File

@@ -5358,7 +5358,7 @@ MoveSelectionScreen:
hlcoord 6, 17 - NUM_MOVES - 4
.got_start_coord
ld a, SCREEN_WIDTH
ld [wBuffer1], a
ld [wListMovesLineSpacing], a
predef ListMoves
ld b, 5
@@ -6334,8 +6334,7 @@ LoadEnemyMon:
ld [hli], a
ld [hli], a
ld [hl], a
; Make sure the predef knows this isn't a partymon
ld [wEvolutionOldSpecies], a
ld [wSkipMovesBeforeLevelUp], a
; Fill moves based on level
predef FillMoves
@@ -7616,9 +7615,10 @@ SendOutMonText:
and a
jr z, .not_linked
ld hl, GoMonText ; If we're in a LinkBattle print just "Go <PlayerMon>"
ld a, [wBattleHasJustStarted] ; unless this (unidentified) variable is set
; If we're in a LinkBattle print just "Go <PlayerMon>"
; unless DoBattle already set [wBattleHasJustStarted]
ld hl, GoMonText
ld a, [wBattleHasJustStarted]
and a
jr nz, .skip_to_textbox

View File

@@ -47,7 +47,7 @@ ShowOTTrainerMonsRemaining:
StageBallTilesData:
ld a, [de]
push af
ld de, wBuffer1
ld de, wBattleHUDTiles
ld c, PARTY_LENGTH
ld a, $34 ; empty slot
.loop1
@@ -56,7 +56,8 @@ StageBallTilesData:
dec c
jr nz, .loop1
pop af
ld de, wBuffer1
ld de, wBattleHUDTiles
.loop2
push af
call .GetHUDTile
@@ -200,7 +201,7 @@ LinkBattle_TrainerHuds:
jp LoadTrainerHudOAM
LoadTrainerHudOAM:
ld de, wBuffer1
ld de, wBattleHUDTiles
ld c, PARTY_LENGTH
.loop
ld a, [wPlaceBallsY]