ref: b23f0b2bdaa993f17d8312bcde5f2b8a59ef9c90
parent: d9b44d4423f16aa238f0c5bccd65f8710afdd072
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Mon Jul 16 11:58:07 EDT 2018
Fewer uses of 'Thing2 - Thing1' for sizeof(Thing)
--- a/data/events/odd_eggs.asm
+++ b/data/events/odd_eggs.asm
@@ -55,8 +55,8 @@
bigdw 8 ; SAtk
bigdw 8 ; SDef
db "EGG@@@@@@@@"
+OddEgg1End:
-OddEgg2:
db PICHU
db NO_ITEM
db THUNDERSHOCK, CHARM, DIZZY_PUNCH, 0
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -3619,10 +3619,10 @@
ld e, a
xor a
ld hl, wPartyMon1HP
- ld bc, wPartyMon2 - (wPartyMon1 + 1)
+ ld bc, PARTYMON_STRUCT_LENGTH - 1
.loop
or [hl]
- inc hl
+ inc hl ; + 1
or [hl]
add hl, bc
dec e
--- a/engine/events/battle_tower/load_trainer.asm
+++ b/engine/events/battle_tower/load_trainer.asm
@@ -104,7 +104,7 @@
ld a, [wBTChoiceOfLvlGroup]
dec a
ld hl, BattleTowerMons
- ld bc, BattleTowerMons2 - BattleTowerMons1
+ ld bc, BattleTowerMons2 - BattleTowerMons1 ; size of one level group
call AddNTimes
ld a, [hRandomAdd]
--- a/engine/events/odd_egg.asm
+++ b/engine/events/odd_egg.asm
@@ -39,7 +39,7 @@
.done
ld hl, OddEggs
- ld a, OddEgg2 - OddEgg1
+ ld a, OddEgg1End - OddEgg1
call AddNTimes
ld de, wOddEggSpecies
--- a/engine/link/link.asm
+++ b/engine/link/link.asm
@@ -2039,7 +2039,7 @@
jr nc, .move_too_new
dec c
jr nz, .move_next
- ld de, wPartyMon2 - (wPartyMon1 + NUM_MOVES)
+ ld de, PARTYMON_STRUCT_LENGTH - NUM_MOVES
add hl, de
dec b
jr nz, .move_loop
--- a/engine/overworld/player_movement.asm
+++ b/engine/overworld/player_movement.asm
@@ -562,8 +562,8 @@
.GetAction:
; Poll player input and update movement info.
- ld hl, .table
- ld de, .table2 - .table1
+ ld hl, .action_table
+ ld de, .action_table_1_end - .action_table_1
ld a, [wCurInput]
bit D_DOWN_F, a
jr nz, .d_down
@@ -597,25 +597,20 @@
ld [wWalkingTile], a
ret
-.table
-; struct:
-; walk direction
-; facing
-; x movement
-; y movement
-; tile collision pointer
-.table1
- db STANDING, FACE_CURRENT, 0, 0
- dw wPlayerStandingTile
-.table2
- db RIGHT, FACE_RIGHT, 1, 0
- dw wTileRight
- db LEFT, FACE_LEFT, -1, 0
- dw wTileLeft
- db UP, FACE_UP, 0, -1
- dw wTileUp
- db DOWN, FACE_DOWN, 0, 1
- dw wTileDown
+player_action: MACRO
+; walk direction, facing, x movement, y movement, tile collision pointer
+ db \1, \2, \3, \4
+ dw \5
+ENDM
+
+.action_table:
+.action_table_1
+ player_action STANDING, FACE_CURRENT, 0, 0, wPlayerStandingTile
+.action_table_1_end
+ player_action RIGHT, FACE_RIGHT, 1, 0, wTileRight
+ player_action LEFT, FACE_LEFT, -1, 0, wTileLeft
+ player_action UP, FACE_UP, 0, -1, wTileUp
+ player_action DOWN, FACE_DOWN, 0, 1, wTileDown
.CheckNPC:
; Returns 0 if there is an NPC in front that you can't move