ref: 23f9b5d21e93f1b3c8de5e4ecf72da89265ccea8
parent: 86c1e0feea0ba487b020b801835aa19b221edb4d
author: yenatch <[email protected]>
date: Tue Jun 10 19:23:55 EDT 2014
Use constants for move struct positioning. This eliminates the need for arbitrary move labels like Move2 and Move1 that don't have anything to do with their respective moves.
--- a/battle/ai/scoring.asm
+++ b/battle/ai/scoring.asm
@@ -1658,8 +1658,8 @@
push hl
dec a
- ld hl, Moves + PlayerMoveType - PlayerMoveStruct
- ld bc, Move2 - Move1
+ ld hl, Moves + MOVE_TYPE
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
@@ -3314,7 +3314,7 @@
push bc
dec a
ld hl, Moves
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld de, EnemyMoveStruct
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -915,7 +915,7 @@
ld a, b
dec a
ld hl, Moves + MOVE_EFFECT
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
@@ -3436,7 +3436,7 @@
push bc
dec a
ld hl, Moves + MOVE_ANIM
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld de, EnemyMoveAnimation
ld a, BANK(Moves)
@@ -8580,7 +8580,7 @@
push hl
dec a
ld hl, Moves + MOVE_PP
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -1675,7 +1675,7 @@
jr z, .asm_3489f ; 0x34863 $3a
push hl
dec a
- ld hl, Moves + PlayerMovePower - PlayerMoveStruct
+ ld hl, Moves + MOVE_POWER
call GetMoveAttr
and a
jr z, .asm_3489b ; 0x3486e $2b
@@ -1761,7 +1761,7 @@
inc de
dec a
- ld hl, Moves + PlayerMovePower - PlayerMoveStruct
+ ld hl, Moves + MOVE_POWER
call GetMoveAttr
and a
jr z, .loop
@@ -2024,7 +2024,7 @@
call GetBaseData
ld a, [LastEnemyCounterMove]
dec a
- ld hl, Moves + PlayerMovePower - PlayerMoveStruct
+ ld hl, Moves + MOVE_POWER
call GetMoveAttr
and a
jr z, .asm_34a77
@@ -2114,7 +2114,7 @@
jr z, .asm_34aef
dec a
- ld hl, Moves + PlayerMovePower - PlayerMoveStruct
+ ld hl, Moves + MOVE_POWER
call GetMoveAttr
and a
jr z, .asm_34ae9
@@ -2207,7 +2207,7 @@
jr z, .asm_34b4a
dec a
- ld hl, Moves + PlayerMovePower - PlayerMoveStruct
+ ld hl, Moves + MOVE_POWER
call GetMoveAttr
and a
jr z, .asm_34b4a
@@ -4779,7 +4779,7 @@
jr z, .asm_35a50 ; 359fd $51
push hl
dec a
- ld hl, Moves + PlayerMoveType - PlayerMoveStruct
+ ld hl, Moves + MOVE_TYPE
call GetMoveAttr
ld d, a
pop hl
@@ -4904,10 +4904,10 @@
push bc
push hl
dec a
- ld hl, Moves + PlayerMovePP - PlayerMoveStruct
+ ld hl, Moves + MOVE_PP
call GetMoveAttr
pop hl
- ld bc, $0006
+ ld bc, BattleMonPP - BattleMonMoves
add hl, bc
ld [hl], a
pop bc
@@ -8653,7 +8653,7 @@
push hl
push bc
dec a
- ld hl, Moves + PlayerMoveType - PlayerMoveStruct
+ ld hl, Moves + MOVE_TYPE
call GetMoveAttr
ld [de], a
inc de
@@ -10656,7 +10656,7 @@
GetMoveAttr: ; 37ea1
; Assuming hl = Moves + x, return attribute x of move a.
push bc
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
call GetMoveByte
pop bc
@@ -10667,7 +10667,7 @@
GetMoveData: ; 37ead
; Copy move struct a to de.
ld hl, Moves
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, Bank(Moves)
jp FarCopyBytes
--- a/battle/moves/moves.asm
+++ b/battle/moves/moves.asm
@@ -1,22 +1,17 @@
Moves: ; 41afb
+; Characteristics of each move.
-; Characteristics of each move
-
-; animation, effect, power, type, accuracy, PP, effect chance
-
move: MACRO
db \1 ; animation
db \2 ; effect
db \3 ; power
db \4 ; type
- db \5 * $ff / 100 ; accuracy (percent)
+ db \5 percent ; accuracy
db \6 ; pp
- db \7 * $ff / 100 ; effect chance (percent)
+ db \7 percent ; effect chance
ENDM
-Move1:
move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0
-Move2:
move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0
move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0
move COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0
--- a/event/dratini.asm
+++ b/event/dratini.asm
@@ -51,8 +51,8 @@
; get the PP of the new move
dec a
- ld hl, Moves + PlayerMovePP - PlayerMoveStruct
- ld bc, Move2 - Move1
+ ld hl, Moves + MOVE_PP
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
--- a/main.asm
+++ b/main.asm
@@ -5316,7 +5316,7 @@
push de
dec a
ld hl, Moves + MOVE_PP
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
@@ -12637,7 +12637,7 @@
push de
push bc
ld hl, Moves
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld de, StringBuffer1
ld a, BANK(Moves)
@@ -20861,7 +20861,7 @@
ld a, [CurSpecies]
dec a
ld hl, Moves + MOVE_POWER
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
@@ -44611,7 +44611,7 @@
push bc
dec a
ld hl, Moves + MOVE_PP
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
@@ -48143,7 +48143,7 @@
push hl
dec a
ld hl, Moves + MOVE_PP
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
call AddNTimes
ld a, BANK(Moves)
call GetFarByte
--- a/text/types.asm
+++ b/text/types.asm
@@ -42,13 +42,13 @@
push hl
ld a, b
dec a
- ld bc, Move2 - Move1
+ ld bc, MOVE_LENGTH
ld hl, Moves
call AddNTimes
ld de, StringBuffer1
ld a, BANK(Moves)
call FarCopyBytes
- ld a, [StringBuffer1 + PlayerMoveType - PlayerMoveStruct]
+ ld a, [StringBuffer1 + MOVE_TYPE]
pop hl
ld b, a