mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Separate home/battle_vars.asm for easy data editing, same as home/hm_moves.asm
This commit is contained in:
parent
dcc0ca9b83
commit
7d3ad2136a
@ -96,7 +96,7 @@ const_value set 1
|
||||
const BATTLETYPE_CELEBI
|
||||
const BATTLETYPE_SUICUNE
|
||||
|
||||
; GetBattleVar and GetBattleVarAddr arguments (see home/battle.asm)
|
||||
; BattleVarPairs indexes (see home/battle.asm)
|
||||
const_def
|
||||
const BATTLE_VARS_SUBSTATUS1
|
||||
const BATTLE_VARS_SUBSTATUS2
|
||||
@ -120,7 +120,7 @@ const_value set 1
|
||||
const BATTLE_VARS_LAST_MOVE
|
||||
const BATTLE_VARS_LAST_MOVE_OPP
|
||||
|
||||
; GetBattleVar and GetBattleVarAddr internal indexes (see home/battle.asm)
|
||||
; BattleVarLocations indexes (see home/battle.asm)
|
||||
const_def
|
||||
const PLAYER_SUBSTATUS_1
|
||||
const ENEMY_SUBSTATUS_1
|
||||
|
@ -136,100 +136,7 @@ UpdateBattleHuds:: ; 39d4
|
||||
; 39e1
|
||||
|
||||
|
||||
GetBattleVar:: ; 39e1
|
||||
; Preserves hl.
|
||||
push hl
|
||||
call GetBattleVarAddr
|
||||
pop hl
|
||||
ret
|
||||
; 39e7
|
||||
|
||||
GetBattleVarAddr:: ; 39e7
|
||||
; Get variable from pair a, depending on whose turn it is.
|
||||
; There are 21 variable pairs.
|
||||
|
||||
push bc
|
||||
|
||||
ld hl, .battlevarpairs
|
||||
ld c, a
|
||||
ld b, 0
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
; Enemy turn uses the second byte instead.
|
||||
; This lets battle variable calls be side-neutral.
|
||||
ld a, [hBattleTurn]
|
||||
and a
|
||||
jr z, .getvar
|
||||
inc hl
|
||||
|
||||
.getvar
|
||||
; var id
|
||||
ld a, [hl]
|
||||
ld c, a
|
||||
ld b, 0
|
||||
|
||||
ld hl, .vars
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
ld a, [hl]
|
||||
|
||||
pop bc
|
||||
ret
|
||||
|
||||
.battlevarpairs
|
||||
dw .substatus1, .substatus2, .substatus3, .substatus4, .substatus5
|
||||
dw .substatus1opp, .substatus2opp, .substatus3opp, .substatus4opp, .substatus5opp
|
||||
dw .status, .statusopp, .animation, .effect, .power, .type
|
||||
dw .curmove, .lastcounter, .lastcounteropp, .lastmove, .lastmoveopp
|
||||
|
||||
; player enemy
|
||||
.substatus1 db PLAYER_SUBSTATUS_1, ENEMY_SUBSTATUS_1
|
||||
.substatus1opp db ENEMY_SUBSTATUS_1, PLAYER_SUBSTATUS_1
|
||||
.substatus2 db PLAYER_SUBSTATUS_2, ENEMY_SUBSTATUS_2
|
||||
.substatus2opp db ENEMY_SUBSTATUS_2, PLAYER_SUBSTATUS_2
|
||||
.substatus3 db PLAYER_SUBSTATUS_3, ENEMY_SUBSTATUS_3
|
||||
.substatus3opp db ENEMY_SUBSTATUS_3, PLAYER_SUBSTATUS_3
|
||||
.substatus4 db PLAYER_SUBSTATUS_4, ENEMY_SUBSTATUS_4
|
||||
.substatus4opp db ENEMY_SUBSTATUS_4, PLAYER_SUBSTATUS_4
|
||||
.substatus5 db PLAYER_SUBSTATUS_5, ENEMY_SUBSTATUS_5
|
||||
.substatus5opp db ENEMY_SUBSTATUS_5, PLAYER_SUBSTATUS_5
|
||||
.status db PLAYER_STATUS, ENEMY_STATUS
|
||||
.statusopp db ENEMY_STATUS, PLAYER_STATUS
|
||||
.animation db PLAYER_MOVE_ANIMATION, ENEMY_MOVE_ANIMATION
|
||||
.effect db PLAYER_MOVE_EFFECT, ENEMY_MOVE_EFFECT
|
||||
.power db PLAYER_MOVE_POWER, ENEMY_MOVE_POWER
|
||||
.type db PLAYER_MOVE_TYPE, ENEMY_MOVE_TYPE
|
||||
.curmove db PLAYER_CUR_MOVE, ENEMY_CUR_MOVE
|
||||
.lastcounter db PLAYER_COUNTER_MOVE, ENEMY_COUNTER_MOVE
|
||||
.lastcounteropp db ENEMY_COUNTER_MOVE, PLAYER_COUNTER_MOVE
|
||||
.lastmove db PLAYER_LAST_MOVE, ENEMY_LAST_MOVE
|
||||
.lastmoveopp db ENEMY_LAST_MOVE, PLAYER_LAST_MOVE
|
||||
|
||||
.vars
|
||||
dw PlayerSubStatus1, EnemySubStatus1
|
||||
dw PlayerSubStatus2, EnemySubStatus2
|
||||
dw PlayerSubStatus3, EnemySubStatus3
|
||||
dw PlayerSubStatus4, EnemySubStatus4
|
||||
dw PlayerSubStatus5, EnemySubStatus5
|
||||
dw BattleMonStatus, EnemyMonStatus
|
||||
dw wPlayerMoveStructAnimation, wEnemyMoveStructAnimation
|
||||
dw wPlayerMoveStructEffect, wEnemyMoveStructEffect
|
||||
dw wPlayerMoveStructPower, wEnemyMoveStructPower
|
||||
dw wPlayerMoveStructType, wEnemyMoveStructType
|
||||
dw CurPlayerMove, CurEnemyMove
|
||||
dw LastPlayerCounterMove, LastEnemyCounterMove
|
||||
dw LastPlayerMove, LastEnemyMove
|
||||
; 3a90
|
||||
INCLUDE "home/battle_vars.asm"
|
||||
|
||||
|
||||
FarCopyRadioText:: ; 3a90
|
||||
|
113
home/battle_vars.asm
Normal file
113
home/battle_vars.asm
Normal file
@ -0,0 +1,113 @@
|
||||
GetBattleVar:: ; 39e1
|
||||
; Preserves hl.
|
||||
push hl
|
||||
call GetBattleVarAddr
|
||||
pop hl
|
||||
ret
|
||||
; 39e7
|
||||
|
||||
GetBattleVarAddr:: ; 39e7
|
||||
; Get variable from pair a, depending on whose turn it is.
|
||||
; There are 21 variable pairs.
|
||||
|
||||
push bc
|
||||
|
||||
ld hl, BattleVarPairs
|
||||
ld c, a
|
||||
ld b, 0
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
; Enemy turn uses the second byte instead.
|
||||
; This lets battle variable calls be side-neutral.
|
||||
ld a, [hBattleTurn]
|
||||
and a
|
||||
jr z, .getvar
|
||||
inc hl
|
||||
|
||||
.getvar
|
||||
; var id
|
||||
ld a, [hl]
|
||||
ld c, a
|
||||
ld b, 0
|
||||
|
||||
ld hl, BattleVarLocations
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
ld a, [hl]
|
||||
|
||||
pop bc
|
||||
ret
|
||||
|
||||
BattleVarPairs:
|
||||
; entries correspond to BATTLE_VARS_* constants
|
||||
dw .substatus1
|
||||
dw .substatus2
|
||||
dw .substatus3
|
||||
dw .substatus4
|
||||
dw .substatus5
|
||||
dw .substatus1opp
|
||||
dw .substatus2opp
|
||||
dw .substatus3opp
|
||||
dw .substatus4opp
|
||||
dw .substatus5opp
|
||||
dw .status
|
||||
dw .statusopp
|
||||
dw .animation
|
||||
dw .effect
|
||||
dw .power
|
||||
dw .type
|
||||
dw .curmove
|
||||
dw .lastcounter
|
||||
dw .lastcounteropp
|
||||
dw .lastmove
|
||||
dw .lastmoveopp
|
||||
|
||||
; player enemy
|
||||
.substatus1: db PLAYER_SUBSTATUS_1, ENEMY_SUBSTATUS_1
|
||||
.substatus1opp: db ENEMY_SUBSTATUS_1, PLAYER_SUBSTATUS_1
|
||||
.substatus2: db PLAYER_SUBSTATUS_2, ENEMY_SUBSTATUS_2
|
||||
.substatus2opp: db ENEMY_SUBSTATUS_2, PLAYER_SUBSTATUS_2
|
||||
.substatus3: db PLAYER_SUBSTATUS_3, ENEMY_SUBSTATUS_3
|
||||
.substatus3opp: db ENEMY_SUBSTATUS_3, PLAYER_SUBSTATUS_3
|
||||
.substatus4: db PLAYER_SUBSTATUS_4, ENEMY_SUBSTATUS_4
|
||||
.substatus4opp: db ENEMY_SUBSTATUS_4, PLAYER_SUBSTATUS_4
|
||||
.substatus5: db PLAYER_SUBSTATUS_5, ENEMY_SUBSTATUS_5
|
||||
.substatus5opp: db ENEMY_SUBSTATUS_5, PLAYER_SUBSTATUS_5
|
||||
.status: db PLAYER_STATUS, ENEMY_STATUS
|
||||
.statusopp: db ENEMY_STATUS, PLAYER_STATUS
|
||||
.animation: db PLAYER_MOVE_ANIMATION, ENEMY_MOVE_ANIMATION
|
||||
.effect: db PLAYER_MOVE_EFFECT, ENEMY_MOVE_EFFECT
|
||||
.power: db PLAYER_MOVE_POWER, ENEMY_MOVE_POWER
|
||||
.type: db PLAYER_MOVE_TYPE, ENEMY_MOVE_TYPE
|
||||
.curmove: db PLAYER_CUR_MOVE, ENEMY_CUR_MOVE
|
||||
.lastcounter: db PLAYER_COUNTER_MOVE, ENEMY_COUNTER_MOVE
|
||||
.lastcounteropp: db ENEMY_COUNTER_MOVE, PLAYER_COUNTER_MOVE
|
||||
.lastmove: db PLAYER_LAST_MOVE, ENEMY_LAST_MOVE
|
||||
.lastmoveopp: db ENEMY_LAST_MOVE, PLAYER_LAST_MOVE
|
||||
|
||||
BattleVarLocations:
|
||||
; entries correspond to PLAYER_* and ENEMY_* constants
|
||||
dw PlayerSubStatus1, EnemySubStatus1
|
||||
dw PlayerSubStatus2, EnemySubStatus2
|
||||
dw PlayerSubStatus3, EnemySubStatus3
|
||||
dw PlayerSubStatus4, EnemySubStatus4
|
||||
dw PlayerSubStatus5, EnemySubStatus5
|
||||
dw BattleMonStatus, EnemyMonStatus
|
||||
dw wPlayerMoveStructAnimation, wEnemyMoveStructAnimation
|
||||
dw wPlayerMoveStructEffect, wEnemyMoveStructEffect
|
||||
dw wPlayerMoveStructPower, wEnemyMoveStructPower
|
||||
dw wPlayerMoveStructType, wEnemyMoveStructType
|
||||
dw CurPlayerMove, CurEnemyMove
|
||||
dw LastPlayerCounterMove, LastEnemyCounterMove
|
||||
dw LastPlayerMove, LastEnemyMove
|
||||
; 3a90
|
@ -276,7 +276,10 @@ CheckObjectTime:: ; 18f5
|
||||
ret
|
||||
|
||||
.TimeOfDayValues_191e:
|
||||
db MORN, DAY, NITE
|
||||
; entries correspond to TimeOfDay values
|
||||
db MORN
|
||||
db DAY
|
||||
db NITE
|
||||
|
||||
.check_hour
|
||||
ld hl, MAPOBJECT_HOUR
|
||||
|
Loading…
Reference in New Issue
Block a user