diff options
| author | luckytyphlosion <alan.rj.huang@gmail.com> | 2015-10-29 14:23:30 -0400 | 
|---|---|---|
| committer | luckytyphlosion <alan.rj.huang@gmail.com> | 2015-10-29 14:23:30 -0400 | 
| commit | cb414f1480e9117e5d6ee0ab5cb81903e83cde9a (patch) | |
| tree | e44bd6299c61335a9a0476db57b565aadcd0b4d7 /engine | |
| parent | 2ea331ebb341505df1cd8429b140c52e345a5af4 (diff) | |
overworld item & movement code, cable club code, remove more instances of W_, add PIKAHAPPY_TRADE
Also make replace.sh take args
Diffstat (limited to 'engine')
58 files changed, 701 insertions, 506 deletions
| diff --git a/engine/bank3c/main.asm b/engine/bank3c/main.asm index 6253f971..468a6412 100644 --- a/engine/bank3c/main.asm +++ b/engine/bank3c/main.asm @@ -161,7 +161,7 @@ ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274)  	xor a ; gamefreak copypasting functions (double xor a)  	ld [wBattleResult], a  	ld [wWalkBikeSurfState], a -	ld [W_ISINBATTLE], a +	ld [wIsInBattle], a  	ld [wMapPalOffset], a  	ld [wNPCMovementScriptFunctionNum], a  	ld [hJoyHeld], a @@ -204,7 +204,7 @@ ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274)  	predef_jump HealParty  Func_f02da:: ; f02da (3c:42da) -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp VERMILION_GYM ; ??? new thing about verm gym?  	jr z,.asm_f02ee  	ld c,a @@ -248,7 +248,7 @@ Func_f0a55:: ; f0a55 (3c:4a55)  	cp a,$ff  	ret z  	ld b,a -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp b  	jr z,.asm_f0a68  	inc hl @@ -263,7 +263,7 @@ Func_f0a55:: ; f0a55 (3c:4a55)  	ld a,[hli]  	ld h,[hl]  	ld l,a -	ld de,W_MISSABLEOBJECTLIST +	ld de,wMissableObjectList  	call CopyData  	ret diff --git a/engine/bank3c/overworld.asm b/engine/bank3c/overworld.asm index d7e6274f..e02fb129 100644 --- a/engine/bank3c/overworld.asm +++ b/engine/bank3c/overworld.asm @@ -9,12 +9,12 @@ _AdvancePlayerSprite:: ; f010c (3c:410c)  ; if it's the end of the animation, update the player's map coordinates  	ld hl, wd430  	res 5, [hl] -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add b -	ld [W_YCOORD],a -	ld a,[W_XCOORD] +	ld [wYCoord],a +	ld a,[wXCoord]  	add c -	ld [W_XCOORD],a +	ld [wXCoord],a  .afterUpdateMapCoords  	ld a,[wWalkCounter] ; walking animation counter  	cp a,$07 @@ -81,7 +81,7 @@ _AdvancePlayerSprite:: ; f010c (3c:410c)  	and a  	jr z,.pointlessJump ; mistake?  .pointlessJump -	ld hl,W_XBLOCKCOORD +	ld hl,wXBlockCoord  	ld a,[hl]  	add c  	ld [hl],a @@ -107,7 +107,7 @@ _AdvancePlayerSprite:: ; f010c (3c:410c)  	call MoveTileBlockMapPointerWest  	jr .updateMapView  .adjustYCoordWithinBlock -	ld hl,W_YBLOCKCOORD +	ld hl,wYBlockCoord  	ld a,[hl]  	add b  	ld [hl],a @@ -119,7 +119,7 @@ _AdvancePlayerSprite:: ; f010c (3c:410c)  	ld hl,wYOffsetSinceLastSpecialWarp  	inc [hl]  	ld de,wCurrentTileBlockMapViewPointer -	ld a,[W_CURMAPWIDTH] +	ld a,[wCurMapWidth]  	call MoveTileBlockMapPointerSouth  	jr .updateMapView  .checkForMoveToNorthBlock @@ -131,7 +131,7 @@ _AdvancePlayerSprite:: ; f010c (3c:410c)  	ld hl,wYOffsetSinceLastSpecialWarp  	dec [hl]  	ld de,wCurrentTileBlockMapViewPointer -	ld a,[W_CURMAPWIDTH] +	ld a,[wCurMapWidth]  	call MoveTileBlockMapPointerNorth  .updateMapView  	call LoadCurrentMapView diff --git a/engine/bank3d/bank3d_battle.asm b/engine/bank3d/bank3d_battle.asm index 5c5acd15..1f84d314 100644 --- a/engine/bank3d/bank3d_battle.asm +++ b/engine/bank3d/bank3d_battle.asm @@ -1,10 +1,10 @@  InitBattle: ; f5ff2 (3d:5ff2) -	ld a, [W_CUROPPONENT] +	ld a, [wCurOpponent]  	and a  	jr z, asm_f6003  InitOpponent: ; f5ff8 (3d:5ff8) -	ld a, [W_CUROPPONENT] +	ld a, [wCurOpponent]  	ld [wcf91], a  	ld [wEnemyMonSpecies2], a  	jr asm_f601d @@ -47,10 +47,10 @@ asm_f601d: ; f601d (f:601d)  	ld a, $ff  	ld [wEnemyMonPartyPos], a  	ld a, $2 -	ld [W_ISINBATTLE], a +	ld [wIsInBattle], a  	; Is this a major story battle? -	ld a,[W_LONEATTACKNO] +	ld a,[wLoneAttackNo]  	and a  	jp z,InitBattle_Common  	callabd_ModifyPikachuHappiness PIKAHAPPY_GYMLEADER ; useless since already in bank3d @@ -58,16 +58,16 @@ asm_f601d: ; f601d (f:601d)  InitWildBattle: ; f607c (3d:607c)  	ld a, $1 -	ld [W_ISINBATTLE], a +	ld [wIsInBattle], a  	callab LoadEnemyMonData  	callab DoBattleTransitionAndInitBattleVariables -	ld a, [W_CUROPPONENT] +	ld a, [wCurOpponent]  	cp MAROWAK  	jr z, .isGhost  	callab IsGhostBattle  	jr nz, .isNoGhost  .isGhost -	ld hl, W_MONHSPRITEDIM +	ld hl, wMonHSpriteDim  	ld a, $66  	ld [hli], a   ; write sprite dimensions  	ld bc, GhostPic @@ -131,7 +131,7 @@ InitBattle_Common: ; f60eb (3d:60eb)  	ld bc, $40a  	call ClearScreenArea  	call ClearSprites -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a ; is it a wild battle?  	ld hl, DrawEnemyHUDAndHPBar  	ld b,BANK(DrawEnemyHUDAndHPBar) @@ -175,7 +175,7 @@ LoadMonBackPic: ; f6178 (3d:6178)  	coord hl, 1, 5  	ld bc,$708  	call ClearScreenArea -	ld hl,  W_MONHBACKSPRITE - W_MONHEADER +	ld hl,  wMonHBackSprite - wMonHeader  	call UncompressMonSprite  	predef ScaleSpriteByTwo  	ld de, vBackPic @@ -195,7 +195,7 @@ Func_f61a6: ; f61a6 (3d:f61a6)  	ld a, [$ffe1]  	ld [H_DOWNARROWBLINKCNT1], a  	ld b, $4c -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	jr z, .asm_f61ef  	add b diff --git a/engine/bank3d/main.asm b/engine/bank3d/main.asm index 131f4fca..c64dd26f 100644 --- a/engine/bank3d/main.asm +++ b/engine/bank3d/main.asm @@ -461,7 +461,7 @@ Func_f5b2d:: ; f5b2d (3d:5b2d)  	ld a,[wd732]  	bit 5,a  	jr nz,.asm_f5b59 -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp SEAFOAM_ISLANDS_5  	ret nz  	ld a,[wd881] @@ -640,12 +640,13 @@ RemoveItemFromInventory_: ; f5be1 (3d:5be1)  	ret  TrainerInfoTextBoxTileGraphics:	INCBIN "gfx/trainer_info.2bpp" +TrainerInfoTextBoxTileGraphicsEnd:  BlankLeaderNames:				INCBIN "gfx/blank_leader_names.2bpp"  CircleTile:						INCBIN "gfx/circle_tile.2bpp"  BadgeNumbersTileGraphics:		INCBIN "gfx/badge_numbers.2bpp"  ReadSuperRodData:: ; f5ea4 (3d:5ea4) -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	ld c,a  	ld hl,FishingSlots  .loop diff --git a/engine/bank3f/main.asm b/engine/bank3f/main.asm index ae79a5ca..72942405 100644 --- a/engine/bank3f/main.asm +++ b/engine/bank3f/main.asm @@ -61,10 +61,10 @@ Func_fc534:: ; fc534 (3f:4534)  Func_fc53f:: ; fc53f (3f:453f)  	ld bc,wSpriteStateData1 + $f0 -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add $4  	ld e,a -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	add $4  	ld d,a  	ld a,[wd431] @@ -178,7 +178,7 @@ Func_fc5bc:: ; fc5bc (3f:45bc)  	ret  Func_fc5fa:: ; fc5fa (3f:45fa) -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp OAKS_LAB  	jr z,.asm_fc63d  	cp ROUTE_22_GATE @@ -187,11 +187,11 @@ Func_fc5fa:: ; fc5fa (3f:45fa)  	jr z,.asm_fc635  	cp ROCK_TUNNEL_1  	jr z,.asm_fc645 -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	ld hl,Pointer_fc64b  	call Func_1568 ; similar to IsInArray, but not the same  	jr c,.asm_fc639 -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	ld hl,Pointer_fc653  	call Func_1568  	jr nc,.asm_fc641 @@ -231,12 +231,12 @@ Pointer_fc653:: ; fc653 (3f:4653)  	db $2f,$e6,$3e,$5e,$80,$31,$a4,$ff  Func_fc65b:: ; fc65b (3f:465b) -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp VIRIDIAN_FOREST_EXIT  	jr z,.asm_fc673  	cp VIRIDIAN_FOREST_ENTRANCE  	jr z,.asm_fc67c -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	ld hl,Pointer_fc68e  	call Func_1568  	jr c,.asm_fc688 @@ -264,7 +264,7 @@ Pointer_fc68e:: ; fc68e (3f:468e)  	db $33,$dd,$df,$e0,$e1,$de,$ec,$7f,$a8,$a9,$aa,$ff  Func_fc69a:: ; fc69a (3f:469a) -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp ROUTE_22_GATE  	jr z,.asm_fc6a7  	cp ROUTE_2_GATE @@ -407,7 +407,7 @@ asm_fc76a: ; fc76a (3f:476a)  	call Func_fc82e  	jr c,.asm_fc783  	push bc -	callab Func_5012 +	callab InitializeSpriteScreenPosition  	pop bc  .asm_fc783  	ld hl,$1 @@ -422,7 +422,7 @@ asm_fc76a: ; fc76a (3f:476a)  Func_fc793: ; fc793 (3f:4793)  	call Func_fcba1  	push bc -	callab Func_5012 +	callab InitializeSpriteScreenPosition  	pop bc  	ld hl,$2  	add hl,bc @@ -966,12 +966,12 @@ Func_fca99: ; fca99 (3f:4a99)  Func_fcae2: ; fcae2 (3f:4ae2)  	ld hl,$104  	add hl,bc -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add $4  	cp [hl]  	jr nz,.asm_fcaff  	inc hl -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	add $4  	cp [hl]  	jr nz,.asm_fcaff @@ -989,10 +989,10 @@ Func_fcb01: ; fcb01 (3f:4b01)  	push de  	push hl  	ld bc,wSpriteStateData1 + $f0 -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	add $4  	ld d,a -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add $4  	ld e,a  	ld hl,$104 @@ -1045,10 +1045,10 @@ Func_fcb4d: ; fcb4d (3f:4b4d)  Func_fcb52: ; fcb52 (3f:4b52)  	ld bc,wSpriteStateData1 + $f0 -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	add $4  	ld d,a -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add $4  	ld e,a  	ld hl,$104 @@ -1111,7 +1111,7 @@ Func_fcbac: ; fcbac (3f:4bac)  	ld bc,wSpriteStateData1 + $f0  	ld hl,$104  	add hl,bc -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add $4  	sub [hl]  	jr z,.asm_fcbd7 @@ -1138,7 +1138,7 @@ Func_fcbac: ; fcbac (3f:4bac)  .asm_fcbd7  	ld hl,$105  	add hl,bc -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	add $4  	sub [hl]  	jr z,.asm_fcbff @@ -1304,10 +1304,10 @@ Func_fccb2:: ; fccb2 (3f:4cb2)  	add a  	jr .asm_fccea  .asm_fccbf -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	add $4  	ld d,a -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	add $4  	ld e,a  	ld a,[wSpriteStateData2 + $f4] @@ -1381,7 +1381,7 @@ Func_fcd25: ; fcd25 (3f:4d25)  	add $4  	ld l,a  	ld b,[hl] -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	cp b  	jr z,.asm_fcd3a  	jr nc,.asm_fcd63 @@ -1391,7 +1391,7 @@ Func_fcd25: ; fcd25 (3f:4d25)  .asm_fcd3a  	inc l  	ld b,[hl] -	ld a,[W_XCOORD] +	ld a,[wXCoord]  	cp b  	jr z,.asm_fcd49  	jr nc,.asm_fcd63 @@ -1429,7 +1429,7 @@ Func_fcd25: ; fcd25 (3f:4d25)  	ld a,[H_CURRENTSPRITEOFFSET]  	add $7  	ld l,a -	ld a,[W_GRASSTILE] +	ld a,[wGrassTile]  	cp e  	ld a,$0  	jr nz,.asm_fcd80 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 626eea9e..f0f5c6d3 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -389,7 +389,7 @@ MoveAnimation: ; 78d5e (1e:4d5e)  .MoveAnimation  	; check if battle animations are disabled in the options -	ld a,[W_OPTIONS] +	ld a,[wOptions]  	bit 7,a  	jr nz,.AnimationsDisabled  	call ShareMoveAnimations @@ -736,7 +736,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e)  	ld a,SFX_BALL_TOSS  	call PlaySound  .skipPlayingSound -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	cp a,02 ; is it a trainer battle?  	jr z,.isTrainerBattle  	ld a,[wd11e] @@ -2945,7 +2945,7 @@ BattleAnimCopyTileMapToVRAM: ; 79e0d (1e:5e0d)  	jp Delay3  TossBallAnimation: ; 79e16 (1e:5e16) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	cp a,2  	jr z,.BlockBall ; if in trainer battle, play different animation  	ld a,[wPokeBallAnimData] diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index c5c4ffbe..e3527897 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -81,7 +81,7 @@ BattleTransitions: ; 70a3c (1c:4a3c)  	dw BattleTransition_Split             ; %111  GetBattleTransitionID_WildOrTrainer: ; 70a4c (1c:4a4c) -	ld a, [W_CUROPPONENT] +	ld a, [wCurOpponent]  	cp 200  	jr nc, .trainer  	res 0, c @@ -105,7 +105,7 @@ GetBattleTransitionID_CompareLevels: ; 70a59 (1c:4a59)  	ld a, [hl]  	add $3  	ld e, a -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	sub e  	jr nc, .highLevelEnemy  	res 1, c @@ -122,7 +122,7 @@ GetBattleTransitionID_CompareLevels: ; 70a59 (1c:4a59)  ; MANSION_1, SEAFOAM_ISLANDS_[2-5], POWER_PLANT, DIGLETTS_CAVE  ; and SILPH_CO_[9-11]F as dungeon maps  GetBattleTransitionID_IsDungeonMap: ; 70a83 (1c:4a83) -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld e, a  	ld hl, DungeonMaps1  .loop1 @@ -151,7 +151,7 @@ GetBattleTransitionID_IsDungeonMap: ; 70a83 (1c:4a83)  	res 2, c  	ret -; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; GetBattleTransitionID_IsDungeonMap checks if wCurMap  ; is equal to one of these maps  DungeonMaps1: ; 70aa9 (1c:4aa9)  	db VIRIDIAN_FOREST @@ -160,7 +160,7 @@ DungeonMaps1: ; 70aa9 (1c:4aa9)  	db ROCK_TUNNEL_2  	db $FF -; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; GetBattleTransitionID_IsDungeonMap checks if wCurMap  ; is in between or equal to each pair of maps  DungeonMaps2: ; 70aac (1c:4aac)  	; all MT_MOON maps diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm index 449fc1ab..0cbf70f0 100644 --- a/engine/battle/common_text.asm +++ b/engine/battle/common_text.asm @@ -1,8 +1,8 @@  PrintBeginningBattleText: ; f4000 (3d:4000) -	ld a, [W_ISINBATTLE] ; W_ISINBATTLE +	ld a, [wIsInBattle] ; W_ISINBATTLE  	dec a  	jr nz, .trainerBattle -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp POKEMONTOWER_3  	jr c, .notPokemonTower  	cp LAVENDER_HOUSE_1 diff --git a/engine/battle/core.asm b/engine/battle/core.asm index e5fd98f8..ac7ddcdc 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -239,7 +239,7 @@ StartBattle: ; 3c11e (f:411e)  .foundFirstAliveEnemyMon  	ld a, d  	ld [wSerialExchangeNybbleReceiveData], a -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a ; is it a trainer battle?  	call nz, EnemySendOutFirstMon ; if it is a trainer battle, send out enemy mon  	ld c, 40 @@ -261,7 +261,7 @@ StartBattle: ; 3c11e (f:411e)  	ld a, [wActionResultOrTookBattleTurn]  	and a ; was the item used successfully?  	jr z, .displaySafariZoneBattleMenu ; if not, display the menu again; XXX does this ever jump? -	ld a, [W_NUMSAFARIBALLS] +	ld a, [wNumSafariBalls]  	and a  	jr nz, .notOutOfSafariBalls  	call LoadScreenTilesFromBuffer1 @@ -798,7 +798,7 @@ HandleEnemyMonFainted: ; 3c525 (f:4525)  	ld a, [hli]  	or [hl] ; is battle mon HP zero?  	call nz, DrawPlayerHUDAndHPBar ; if battle mon HP is not zero, draw player HD and HP bar -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	ret z ; return if it's a wild battle  	call AnyEnemyPokemonAliveCheck @@ -821,7 +821,7 @@ HandleEnemyMonFainted: ; 3c525 (f:4525)  FaintEnemyPokemon: ; 0x3c567  	call ReadPlayerMonCurHPAndStatus -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	jr z, .wild  	ld a, [wEnemyMonPartyPos] @@ -863,7 +863,7 @@ FaintEnemyPokemon: ; 0x3c567  	coord hl, 0, 0  	lb bc, 4, 11  	call ClearScreenArea -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	jr z, .wild_win  	xor a @@ -1003,7 +1003,7 @@ ReplaceFaintedEnemyMon: ; 3c664 (f:4664)  TrainerBattleVictory: ; 3c696 (f:4696)  	call EndLowHealthAlarm  	ld b, MUSIC_DEFEATED_GYM_LEADER -	ld a, [W_GYMLEADERNO] +	ld a, [wGymLeaderNo]  	and a  	jr nz, .gymleader  	ld b, MUSIC_DEFEATED_TRAINER @@ -1068,7 +1068,7 @@ HandlePlayerMonFainted: ; 3c700 (f:4700)  	jr nz, .doUseNextMonDialogue ; if not, jump  ; the enemy mon has 0 HP  	call FaintEnemyPokemon -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	ret z            ; if wild encounter, battle is over  	call AnyEnemyPokemonAliveCheck @@ -1140,7 +1140,7 @@ PlayerMonFaintedText: ; 3c796 (f:4796)  DoUseNextMonDialogue: ; 3c79b (f:479b)  	call PrintEmptyString  	call SaveScreenTilesToBuffer1 -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	dec a  	ret nz ; return if it's a trainer battle @@ -1221,7 +1221,7 @@ HandlePlayerBlackOut: ; 3c837 (f:4837)  	ld a, [wLinkState]  	cp LINK_STATE_BATTLING  	jr z, .notSony1Battle -	ld a, [W_CUROPPONENT] +	ld a, [wCurOpponent]  	cp OPP_SONY1  	jr nz, .notSony1Battle  	coord hl, 0, 0  ; sony 1 battle @@ -1232,7 +1232,7 @@ HandlePlayerBlackOut: ; 3c837 (f:4837)  	call DelayFrames  	ld hl, Sony1WinText  	call PrintText -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp OAKS_LAB  	ret z            ; starter battle in oak's lab: don't black out  .notSony1Battle @@ -1432,7 +1432,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)  	ld bc,wEnemyMon2 - wEnemyMon1  	call AddNTimes  	ld a,[hl] -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	ld a,[wWhichPokemon]  	inc a  	ld hl,wEnemyPartyCount @@ -1459,7 +1459,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a)  	ld a,[wLinkState]  	cp LINK_STATE_BATTLING  	jr z,.next4 -	ld a,[W_OPTIONS] +	ld a,[wOptions]  	bit 6,a  	jr nz,.next4  	ld hl, TrainerAboutToUseText @@ -1589,7 +1589,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9)  	ld a, [wLinkState]  	cp LINK_STATE_BATTLING  	jp z, .canEscape -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	jr nz, .trainerBattle ; jump if it's a trainer battle  	ld a, [wNumRunAttempts] @@ -1787,7 +1787,7 @@ LoadEnemyMonFromParty: ; 3cc13 (f:4c13)  	ld bc, 1 + NUM_STATS * 2  	call CopyData  	call ApplyBurnAndParalysisPenaltiesToEnemy -	ld hl, W_MONHBASESTATS +	ld hl, wMonHBaseStats  	ld de, wEnemyMonBaseStats  	ld b, NUM_STATS  .copyBaseStatsLoop @@ -2106,7 +2106,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)  	jp nz, .handleBattleMenuInput ; handle menu input if it's not the old man tutorial  ; the following happens for the old man tutorial  	ld hl, wPlayerName -	ld de, W_GRASSRATE +	ld de, wGrassRate  	ld bc, NAME_LENGTH  	call CopyData  ; temporarily save the player name in unused space,  	               ; which is supposed to get overwritten when entering a @@ -2156,7 +2156,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)  	Coorda 13, 14  	Coorda 13, 16  	coord hl, 7, 14 -	ld de, W_NUMSAFARIBALLS +	ld de, wNumSafariBalls  	lb bc, 1, 2  	call PrintNumber  	ld b, $1 ; top menu item X @@ -2189,7 +2189,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3)  	Coorda 1, 14 ; clear upper cursor position in left column  	Coorda 1, 16 ; clear lower cursor position in left column  	coord hl, 7, 14 -	ld de, W_NUMSAFARIBALLS +	ld de, wNumSafariBalls  	lb bc, 1, 2  	call PrintNumber  	ld b, $d ; top menu item X @@ -3039,7 +3039,7 @@ SelectEnemyMove: ; 3d564 (f:5564)  	ld a, STRUGGLE ; struggle if the only move is disabled  	jr nz, .done  .atLeastTwoMovesAvailable -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	jr z, .chooseRandomMove ; wild encounter  	callab AIEnemyTrainerChooseMoves @@ -3364,10 +3364,10 @@ GetOutText: ; 3d835 (f:5835)  	db "@"  IsGhostBattle: ; 3d83a (f:583a) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	dec a  	ret nz -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp a,POKEMONTOWER_1  	jr c,.next  	cp a,LAVENDER_HOUSE_1 @@ -3541,7 +3541,7 @@ CheckPlayerStatusConditions: ; 3d854 (f:5854)  	jr z,.ThrashingAboutCheck  	xor a  	ld [W_PLAYERMOVENUM],a -	ld hl,W_DAMAGE +	ld hl,wDamage  	ld a,[hli]  	ld b,a  	ld c,[hl] @@ -3568,10 +3568,10 @@ CheckPlayerStatusConditions: ; 3d854 (f:5854)  	ld a,[hld]  	add a  	ld b,a -	ld [W_DAMAGE + 1],a +	ld [wDamage + 1],a  	ld a,[hl]  	rl a ; double the damage -	ld [W_DAMAGE],a +	ld [wDamage],a  	or b  	jr nz,.next  	ld a,1 @@ -3943,7 +3943,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2)  	ret nz  	; if you get here, the mon used jump kick or hi jump kick and missed -	ld hl, W_DAMAGE ; since the move missed, W_DAMAGE will always contain 0 at this point. +	ld hl, wDamage ; since the move missed, W_DAMAGE will always contain 0 at this point.  	                ; Thus, recoil damage will always be equal to 1  	                ; even if it was intended to be potential damage/8.  	ld a, [hli] @@ -4230,7 +4230,7 @@ IgnoredOrdersText: ; 3ddca (f:5dca)  ; sets b, c, d, and e for the CalculateDamage routine in the case of an attack by the player mon  GetDamageVarsForPlayerAttack: ; 3ddcf (f:5dcf)  	xor a -	ld hl, W_DAMAGE ; damage to eventually inflict, initialise to zero +	ld hl, wDamage ; damage to eventually inflict, initialise to zero  	ldi [hl], a  	ld [hl], a  	ld hl, W_PLAYERMOVEPOWER @@ -4342,7 +4342,7 @@ GetDamageVarsForPlayerAttack: ; 3ddcf (f:5dcf)  ; sets b, c, d, and e for the CalculateDamage routine in the case of an attack by the enemy mon  GetDamageVarsForEnemyAttack: ; 3de75 (f:5e75) -	ld hl, W_DAMAGE ; damage to eventually inflict, initialise to zero +	ld hl, wDamage ; damage to eventually inflict, initialise to zero  	xor a  	ld [hli], a  	ld [hl], a @@ -4479,7 +4479,7 @@ GetEnemyMonStat: ; 3df1c (f:5f1c)  	ret  .notLinkBattle  	ld a, [wEnemyMonLevel] -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  	ld a, [wEnemyMonSpecies]  	ld [wd0b5], a  	call GetMonHeader @@ -4585,7 +4585,7 @@ CalculateDamage: ; 3df65 (f:5f65)  	ld b, 4  	call Divide -	ld hl, W_DAMAGE +	ld hl, wDamage  	ld b, [hl]  	ld a, [H_QUOTIENT + 3]  	add b @@ -4688,7 +4688,7 @@ CriticalHitTest: ; 3e023 (f:6023)  .asm_3e032  	ld [wd0b5], a  	call GetMonHeader -	ld a, [W_MONHBASESPEED] +	ld a, [wMonHBaseSpeed]  	ld b, a  	srl b                        ; (effective (base speed/2))  	ld a, [H_WHOSETURN] @@ -4793,11 +4793,11 @@ HandleCounterMove: ; 3e093 (f:6093)  	xor a  	ret  .counterableType -	ld hl,W_DAMAGE +	ld hl,wDamage  	ld a,[hli]  	or [hl]  	ret z ; If we made it here, Counter still misses if the last move used in battle did no damage to its target. -	      ; W_DAMAGE is shared by both players, so Counter may strike back damage dealt by the Counter user itself +	      ; wDamage is shared by both players, so Counter may strike back damage dealt by the Counter user itself  	      ; if the conditions meet, even though 99% of the times damage will come from the target.  ; if it did damage, double it  	ld a,[hl] @@ -4833,7 +4833,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df)  .superFangEffect  ; set the damage to half the target's HP  	ld hl,wEnemyMonHP -	ld de,W_DAMAGE +	ld de,wDamage  	ld a,[hli]  	srl a  	ld [de],a @@ -4878,14 +4878,14 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df)  	jr nc,.loop  	ld b,a  .storeDamage ; store damage value at b -	ld hl,W_DAMAGE +	ld hl,wDamage  	xor a  	ld [hli],a  	ld a,b  	ld [hl],a  ApplyDamageToEnemyPokemon: ; 3e142 (f:6142) -	ld hl,W_DAMAGE +	ld hl,wDamage  	ld a,[hli]  	ld b,a  	ld a,[hl] @@ -4909,7 +4909,7 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142)  	sbc b  	ld [wEnemyMonHP],a  	jr nc,.animateHpBar -; if more damage was done than the current HP, zero the HP and set the damage (W_DAMAGE) +; if more damage was done than the current HP, zero the HP and set the damage (wDamage)  ; equal to how much HP the pokemon had before the attack  	ld a,[wHPBarOldHP+1]  	ld [hli],a @@ -4952,7 +4952,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0)  .superFangEffect  ; set the damage to half the target's HP  	ld hl,wBattleMonHP -	ld de,W_DAMAGE +	ld de,wDamage  	ld a,[hli]  	srl a  	ld [de],a @@ -4997,14 +4997,14 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0)  	jr nc,.loop  	ld b,a  .storeDamage -	ld hl,W_DAMAGE +	ld hl,wDamage  	xor a  	ld [hli],a  	ld a,b  	ld [hl],a  ApplyDamageToPlayerPokemon: ; 3e200 (f:6200) -	ld hl,W_DAMAGE +	ld hl,wDamage  	ld a,[hli]  	ld b,a  	ld a,[hl] @@ -5029,7 +5029,7 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200)  	ld [wBattleMonHP],a  	ld [wHPBarNewHP+1],a  	jr nc,.animateHpBar -; if more damage was done than the current HP, zero the HP and set the damage (W_DAMAGE) +; if more damage was done than the current HP, zero the HP and set the damage (wDamage)  ; equal to how much HP the pokemon had before the attack  	ld a,[wHPBarOldHP+1]  	ld [hli],a @@ -5075,7 +5075,7 @@ AttackSubstitute: ; 3e25e (f:625e)  	ld de,wPlayerSubstituteHP  	ld bc,W_PLAYERBATTSTATUS2  .applyDamageToSubstitute -	ld hl,W_DAMAGE +	ld hl,wDamage  	ld a,[hli]  	and a  	jr nz,.substituteBroke ; damage > 0xFF always breaks substitutes @@ -5085,7 +5085,7 @@ AttackSubstitute: ; 3e25e (f:625e)  	ld [de],a  	ret nc  .substituteBroke -; If the target's Substitute breaks, W_DAMAGE isn't updated with the amount of HP +; If the target's Substitute breaks, wDamage isn't updated with the amount of HP  ; the Substitute had before being attacked.  	ld h,b  	ld l,c @@ -5315,7 +5315,7 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)  	jr .skipSameTypeAttackBonus  .sameTypeAttackBonus  ; if the move type matches one of the attacker's types -	ld hl,W_DAMAGE + 1 +	ld hl,wDamage + 1  	ld a,[hld]  	ld h,[hl]  	ld l,a    ; hl = damage @@ -5326,9 +5326,9 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)  	add hl,bc ; hl = floor(1.5 * damage)  ; store damage  	ld a,h -	ld [W_DAMAGE],a +	ld [wDamage],a  	ld a,l -	ld [W_DAMAGE + 1],a +	ld [wDamage + 1],a  	ld hl,wDamageMultipliers  	set 7,[hl]  .skipSameTypeAttackBonus @@ -5361,7 +5361,7 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5)  	ld [wDamageMultipliers],a  	xor a  	ld [H_MULTIPLICAND],a -	ld hl,W_DAMAGE +	ld hl,wDamage  	ld a,[hli]  	ld [H_MULTIPLICAND + 1],a  	ld a,[hld] @@ -5536,7 +5536,7 @@ MoveHitTest: ; 3e56b (f:656b)  	ret  .moveMissed  	xor a -	ld hl,W_DAMAGE ; zero the damage +	ld hl,wDamage ; zero the damage  	ld [hli],a  	ld [hl],a  	inc a @@ -5627,7 +5627,7 @@ CalcHitChance: ; 3e624 (f:6624)  ; multiplies damage by a random percentage from ~85% to 100%  RandomizeDamage: ; 3e687 (f:6687) -	ld hl, W_DAMAGE +	ld hl, wDamage  	ld a, [hli]  	and a  	jr nz, .DamageGreaterThanOne @@ -5656,7 +5656,7 @@ RandomizeDamage: ; 3e687 (f:6687)  	call Divide ; divide the result by 255  ; store the modified damage  	ld a, [H_QUOTIENT + 2] -	ld hl, W_DAMAGE +	ld hl, wDamage  	ld [hli], a  	ld a, [H_QUOTIENT + 3]  	ld [hl], a @@ -6067,7 +6067,7 @@ CheckEnemyStatusConditions: ; 3e88f (f:688f)  	jr z, .checkIfThrashingAbout  	xor a  	ld [W_ENEMYMOVENUM], a -	ld hl, W_DAMAGE +	ld hl, wDamage  	ld a, [hli]  	ld b, a  	ld c, [hl] @@ -6094,10 +6094,10 @@ CheckEnemyStatusConditions: ; 3e88f (f:688f)  	ld a, [hld]  	add a  	ld b, a -	ld [W_DAMAGE + 1], a +	ld [wDamage + 1], a  	ld a, [hl]  	rl a ; double the damage -	ld [W_DAMAGE], a +	ld [wDamage], a  	or b  	jr nz, .next  	ld a, $1 @@ -6209,7 +6209,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	ld a, [hli]  	ld b, [hl]  	jr nz, .storeDVs -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	cp $2 ; is it a trainer battle?  ; fixed DVs for trainer mon  	ld a, $98 @@ -6224,7 +6224,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	ld [hli], a  	ld [hl], b  	ld de, wEnemyMonLevel -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	ld [de], a  	inc de  	ld b, $0 @@ -6232,7 +6232,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	push hl  	call CalcStats  	pop hl -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	cp $2 ; is it a trainer battle?  	jr z, .copyHPAndStatusFromPartyData  	ld a, [W_ENEMYBATTSTATUS3] @@ -6264,7 +6264,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	ld [wEnemyMonStatus], a  	jr .copyTypes  .copyTypes -	ld hl, W_MONHTYPES +	ld hl, wMonHTypes  	ld de, wEnemyMonType  	ld a, [hli]            ; copy type 1  	ld [de], a @@ -6275,7 +6275,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	ld a, [hli]            ; copy catch rate  	ld [de], a  	inc de -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	cp $2 ; is it a trainer battle?  	jr nz, .copyStandardMoves  ; if it's a trainer battle, copy moves from enemy party data @@ -6288,7 +6288,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	jr .loadMovePPs  .copyStandardMoves  ; for a wild mon, first copy default moves from the mon header -	ld hl, W_MONHMOVES +	ld hl, wMonHMoves  	ld a, [hli]  	ld [de], a  	inc de @@ -6310,7 +6310,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	ld hl, wEnemyMonMoves  	ld de, wEnemyMonPP - 1  	predef LoadMovePPs -	ld hl, W_MONHBASESTATS +	ld hl, wMonHBaseStats  	ld de, wEnemyMonBaseStats  	ld b, NUM_STATS  .copyBaseStatsLoop @@ -6319,7 +6319,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01)  	inc de  	dec b  	jr nz, .copyBaseStatsLoop -	ld hl, W_MONHCATCHRATE +	ld hl, wMonHCatchRate  	ld a, [hli]  	ld [de], a  	inc de @@ -7751,10 +7751,10 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)  	ld a, [H_WHOSETURN]  	and a  	jr nz, .asm_3f791 -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	jr nz, .asm_3f77e -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	ld b, a  	ld a, [wBattleMonLevel]  	cp b @@ -7793,12 +7793,12 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739)  	jp nz, PrintText  	jp PrintButItFailedText_  .asm_3f791 -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	jr nz, .asm_3f7d1  	ld a, [wBattleMonLevel]  	ld b, a -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	cp b  	jr nc, .asm_3f7c1  	add b diff --git a/engine/battle/draw_hud_pokeball_gfx.asm b/engine/battle/draw_hud_pokeball_gfx.asm index c1387b7b..cc0219eb 100644 --- a/engine/battle/draw_hud_pokeball_gfx.asm +++ b/engine/battle/draw_hud_pokeball_gfx.asm @@ -1,7 +1,7 @@  DrawAllPokeballs: ; 3a849 (e:6849)  	call LoadPartyPokeballGfx  	call SetupOwnPartyPokeballs -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	ret z ; return if wild pokémon  	jp SetupEnemyPartyPokeballs diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm index f1de313c..2f84c6fe 100755 --- a/engine/battle/end_of_battle.asm +++ b/engine/battle/end_of_battle.asm @@ -47,10 +47,10 @@ EndOfBattle: ; 137aa (4:77aa)  	xor a  	ld [wLowHealthAlarm], a ;disable low health alarm  	ld [wChannelSoundIDs + CH4], a -	ld [W_ISINBATTLE], a +	ld [wIsInBattle], a  	ld [W_BATTLETYPE], a  	ld [W_MOVEMISSED], a -	ld [W_CUROPPONENT], a +	ld [wCurOpponent], a  	ld [wForcePlayerToChooseMon], a  	ld [wNumRunAttempts], a  	ld [wEscapedFromBattle], a diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm index ab3e3c19..65e18999 100644 --- a/engine/battle/experience.asm +++ b/engine/battle/experience.asm @@ -83,7 +83,7 @@ GainExperience: ; 5524f (15:524f)  	ld a, 1  .next  	ld [wGainBoostedExp], a -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a ; is it a trainer battle?  	call nz, BoostExp ; if so, boost exp  	inc hl @@ -160,11 +160,11 @@ GainExperience: ; 5524f (15:524f)  	ld a, [hl] ; current level  	cp d  	jp z, .nextMon ; if level didn't change, go to next mon -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	push af  	push hl  	ld a, d -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  	ld [hl], a  	ld bc, wPartyMon1Species - wPartyMon1Level  	add hl, bc @@ -261,7 +261,7 @@ GainExperience: ; 5524f (15:524f)  	predef FlagActionPredef  	pop hl  	pop af -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  .nextMon  	ld a, [wPartyCount] diff --git a/engine/battle/get_trainer_name.asm b/engine/battle/get_trainer_name.asm index d393b800..cf09ac66 100644 --- a/engine/battle/get_trainer_name.asm +++ b/engine/battle/get_trainer_name.asm @@ -1,5 +1,5 @@  GetTrainerName_: ; f67a5 (3d:67a5) -	ld hl, W_GRASSRATE +	ld hl, wGrassRate  	ld a, [wLinkState]  	and a  	jr nz, .foundName diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm index 78f4ad22..5383a546 100644 --- a/engine/battle/init_battle_variables.asm +++ b/engine/battle/init_battle_variables.asm @@ -27,7 +27,7 @@ InitBattleVariables: ; f6236 (3d:6236)  	jr nz, .loop  	inc a ; POUND  	ld [wTestBattlePlayerSelectedMove], a -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp SAFARI_ZONE_EAST  	jr c, .notSafariBattle  	cp SAFARI_ZONE_REST_HOUSE_1 diff --git a/engine/battle/moveEffects/drain_hp_effect.asm b/engine/battle/moveEffects/drain_hp_effect.asm index 1096794f..e977af32 100644 --- a/engine/battle/moveEffects/drain_hp_effect.asm +++ b/engine/battle/moveEffects/drain_hp_effect.asm @@ -1,5 +1,5 @@  DrainHPEffect_: ; 783f (1:783f) -	ld hl, W_DAMAGE +	ld hl, wDamage  	ld a, [hl]  	srl a ; divide damage by 2  	ld [hli], a @@ -36,12 +36,12 @@ DrainHPEffect_: ; 783f (1:783f)  	dec bc  	ld [bc], a  ; add damage to attacker's HP and copy new HP to wHPBarNewHP -	ld a, [W_DAMAGE + 1] +	ld a, [wDamage + 1]  	ld b, [hl]  	add b  	ld [hld], a  	ld [wHPBarNewHP], a -	ld a, [W_DAMAGE] +	ld a, [wDamage]  	ld b, [hl]  	adc b  	ld [hli], a diff --git a/engine/battle/moveEffects/one_hit_ko_effect.asm b/engine/battle/moveEffects/one_hit_ko_effect.asm index c1dde6ff..12f70b90 100644 --- a/engine/battle/moveEffects/one_hit_ko_effect.asm +++ b/engine/battle/moveEffects/one_hit_ko_effect.asm @@ -1,5 +1,5 @@  OneHitKOEffect_: ; f64db (3d:64db) -	ld hl, W_DAMAGE  +	ld hl, wDamage   	xor a  	ld [hli], a  	ld [hl], a ; set the damage output to zero @@ -24,7 +24,7 @@ OneHitKOEffect_: ; f64db (3d:64db)  	ld a, [hl]  	sbc b  	jr c, .userIsSlower -	ld hl, W_DAMAGE +	ld hl, wDamage  	ld a, $ff  	ld [hli], a  	ld [hl], a diff --git a/engine/battle/moveEffects/recoil_effect.asm b/engine/battle/moveEffects/recoil_effect.asm index 51232af6..9b165932 100644 --- a/engine/battle/moveEffects/recoil_effect.asm +++ b/engine/battle/moveEffects/recoil_effect.asm @@ -8,9 +8,9 @@ RecoilEffect_: ; 1392c (4:792c)  	ld hl, wEnemyMonMaxHP  .recoilEffect  	ld d, a -	ld a, [W_DAMAGE] +	ld a, [wDamage]  	ld b, a -	ld a, [W_DAMAGE + 1] +	ld a, [wDamage + 1]  	ld c, a  	srl b  	rr c diff --git a/engine/battle/moveEffects/substitute_effect.asm b/engine/battle/moveEffects/substitute_effect.asm index c72fffbe..54b752ef 100644 --- a/engine/battle/moveEffects/substitute_effect.asm +++ b/engine/battle/moveEffects/substitute_effect.asm @@ -44,7 +44,7 @@ SubstituteEffect_: ; 17dad (5:7dad)  	ld h, b  	ld l, c  	set HasSubstituteUp, [hl] -	ld a, [W_OPTIONS] +	ld a, [wOptions]  	bit 7, a ; battle animation is enabled?  	ld hl, PlayCurrentMoveAnimation  	ld b, BANK(PlayCurrentMoveAnimation) diff --git a/engine/battle/moveEffects/transform_effect.asm b/engine/battle/moveEffects/transform_effect.asm index fef6f7aa..bf252600 100644 --- a/engine/battle/moveEffects/transform_effect.asm +++ b/engine/battle/moveEffects/transform_effect.asm @@ -29,7 +29,7 @@ TransformEffect_: ; f637f (3d:637f)  	ld hl, HideSubstituteShowMonAnim  	ld b, BANK(HideSubstituteShowMonAnim)  	call nz, Bankswitch -	ld a, [W_OPTIONS] +	ld a, [wOptions]  	add a  	ld hl, PlayCurrentMoveAnimation  	ld b, BANK(PlayCurrentMoveAnimation) diff --git a/engine/battle/print_type.asm b/engine/battle/print_type.asm index 38c701a8..0270f8b7 100644 --- a/engine/battle/print_type.asm +++ b/engine/battle/print_type.asm @@ -6,11 +6,11 @@ PrintMonType: ; 27d6b (9:7d6b)  	call GetMonHeader  	pop hl  	push hl -	ld a, [W_MONHTYPE1] +	ld a, [wMonHType1]  	call PrintType -	ld a, [W_MONHTYPE1] +	ld a, [wMonHType1]  	ld b, a -	ld a, [W_MONHTYPE2] +	ld a, [wMonHType2]  	cp b  	pop hl  	jr z, EraseType2Text diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm index 37a45476..9f94981e 100755 --- a/engine/battle/read_trainer_party.asm +++ b/engine/battle/read_trainer_party.asm @@ -15,7 +15,7 @@ ReadTrainer: ; 39c53 (e:5c53)  	ld [hl],a  ; get the pointer to trainer data for this class -	ld a,[W_CUROPPONENT] +	ld a,[wCurOpponent]  	sub $C9 ; convert value from pokemon to trainer  	add a,a  	ld hl,TrainerDataPointers @@ -43,13 +43,13 @@ ReadTrainer: ; 39c53 (e:5c53)  ; if the first byte of trainer data is FF,  ; - each pokemon has a specific level  ;      (as opposed to the whole team being of the same level) -; - if [W_LONEATTACKNO] != 0, one pokemon on the team has a special move +; - if [wLoneAttackNo] != 0, one pokemon on the team has a special move  ; else the first byte is the level of every pokemon on the team  .IterateTrainer  	ld a,[hli]  	cp $FF ; is the trainer special?  	jr z,.SpecialTrainer ; if so, check for special moves -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  .LoopTrainerData  	ld a,[hli]  	and a ; have we reached the end of the trainer data? @@ -65,11 +65,11 @@ ReadTrainer: ; 39c53 (e:5c53)  ; if this code is being run:  ; - each pokemon has a specific level  ;      (as opposed to the whole team being of the same level) -; - if [W_LONEATTACKNO] != 0, one pokemon on the team has a special move +; - if [wLoneAttackNo] != 0, one pokemon on the team has a special move  	ld a,[hli]  	and a ; have we reached the end of the trainer data?  	jr z,.AddLoneMove -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	ld a,[hli]  	ld [wcf91],a  	ld a,ENEMY_PARTY_DATA @@ -80,7 +80,7 @@ ReadTrainer: ; 39c53 (e:5c53)  	jr .SpecialTrainer  .AddLoneMove  ; does the trainer have a single monster with a different move -	ld a,[W_LONEATTACKNO] ; Brock is 01, Misty is 02, Erika is 04, etc +	ld a,[wLoneAttackNo] ; Brock is 01, Misty is 02, Erika is 04, etc  	and a  	jr z,.AddTeamMove  	dec a @@ -100,7 +100,7 @@ ReadTrainer: ; 39c53 (e:5c53)  ; check if our trainer's team has special moves  ; get trainer class number -	ld a,[W_CUROPPONENT] +	ld a,[wCurOpponent]  	sub 200  	ld b,a  	ld hl,TeamMoves @@ -150,7 +150,7 @@ ReadTrainer: ; 39c53 (e:5c53)  	ld [de],a  	inc de  	ld [de],a -	ld a,[W_CURENEMYLVL] +	ld a,[wCurEnemyLVL]  	ld b,a  .LastLoop  ; update wAmountMoneyWon addresses (money to win) based on enemy's level @@ -162,5 +162,5 @@ ReadTrainer: ; 39c53 (e:5c53)  	inc de  	inc de  	dec b -	jr nz,.LastLoop ; repeat W_CURENEMYLVL times +	jr nz,.LastLoop ; repeat wCurEnemyLVL times  	ret diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm index 00627d74..69439199 100755 --- a/engine/battle/safari_zone.asm +++ b/engine/battle/safari_zone.asm @@ -18,7 +18,7 @@ PrintSafariZoneBattleText: ; 4111 (1:4111)  	ld a, [wEnemyMonSpecies]  	ld [wd0b5], a  	call GetMonHeader -	ld a, [W_MONHCATCHRATE] +	ld a, [wMonHCatchRate]  	ld [wEnemyMonCatchRate], a  	pop hl  .asm_4138 diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index afb04216..072d3c8a 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -338,7 +338,7 @@ INCLUDE "data/trainer_parties.asm"  TrainerAI: ; 3a52e (e:652e)  	and a -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	dec a  	ret z ; if not a trainer, we're done here  	ld a,[wLinkState] diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 908bd493..044f7ea5 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -27,24 +27,24 @@ TryDoWildEncounter: ; 13870 (4:7870)  ; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile?  	coord hl, 9, 9  	ld c, [hl] -	ld a, [W_GRASSTILE] +	ld a, [wGrassTile]  	cp c -	ld a, [W_GRASSRATE] +	ld a, [wGrassRate]  	jr z, .CanEncounter  	ld a, $14 ; in all tilesets with a water tile, this is its id  	cp c -	ld a, [W_WATERRATE] +	ld a, [wWaterRate]  	jr z, .CanEncounter  ; even if not in grass/water, standing anywhere we can encounter pokemon  ; so long as the map is "indoor" and has wild pokemon defined.  ; ...as long as it's not Viridian Forest or Safari Zone. -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp REDS_HOUSE_1F ; is this an indoor map?  	jr c, .CantEncounter2  	ld a, [wCurMapTileset]  	cp FOREST ; Viridian Forest/Safari Zone  	jr z, .CantEncounter2 -	ld a, [W_GRASSRATE] +	ld a, [wGrassRate]  .CanEncounter  ; compare encounter chance with a random number to determine if there will be an encounter  	ld b, a @@ -63,18 +63,18 @@ TryDoWildEncounter: ; 13870 (4:7870)  .gotEncounterSlot  ; determine which wild pokemon (grass or water) can appear in the half-block we're standing in  	ld c, [hl] -	ld hl, W_GRASSMONS +	ld hl, wGrassMons  	aCoord 8, 9  	cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?  	jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default -	ld hl, W_WATERMONS +	ld hl, wWaterMons  ; since the bottom right tile of a "left shore" half-block is $14 but the bottom left tile is not,  ; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.  .gotWildEncounterType  	ld b, 0  	add hl, bc  	ld a, [hli] -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  	ld a, [hl]  	ld [wcf91], a  	ld [wEnemyMonSpecies2], a @@ -83,7 +83,7 @@ TryDoWildEncounter: ; 13870 (4:7870)  	jr z, .willEncounter  	ld a, [wPartyMon1Level]  	ld b, a -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	cp b  	jr c, .CantEncounter2 ; repel prevents encounters if the leading party mon's level is higher than the wild mon  	jr .willEncounter diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 059b309a..2ec470df 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -1,7 +1,7 @@  ; performs the appropriate action when the player uses the gameboy on the table in the Colosseum or Trade Center  ; In the Colosseum, it starts a battle. In the Trade Center, it displays the trade selection screen.  ; Before doing either action, it swaps random numbers, trainer names and party data with the other gameboy. -CableClub_DoBattleOrTrade: ; 5317 (1:5317) +CableClub_DoBattleOrTrade: ; 53a5 (1:53a5)  	ld c, 80  	call DelayFrames  	call ClearScreen @@ -10,8 +10,7 @@ CableClub_DoBattleOrTrade: ; 5317 (1:5317)  	call LoadHpBarAndStatusTilePatterns  	call LoadTrainerInfoTextBoxTiles  	coord hl, 3, 8 -	ld b, 2 -	ld c, 12 +	lb bc, 2, 12  	call CableClub_TextBoxBorder  	coord hl, 4, 10  	ld de, PleaseWaitString @@ -23,14 +22,14 @@ CableClub_DoBattleOrTrade: ; 5317 (1:5317)  	; fall through  ; This is called after completing a trade. -CableClub_DoBattleOrTradeAgain: ; 5345 +CableClub_DoBattleOrTradeAgain: ; 53d2 (1:53d2)  	ld hl, wSerialPlayerDataBlock  	ld a, SERIAL_PREAMBLE_BYTE  	ld b, 6 -.writePlayeDataBlockPreambleLoop +.writePlayerDataBlockPreambleLoop  	ld [hli], a  	dec b -	jr nz, .writePlayeDataBlockPreambleLoop +	jr nz, .writePlayerDataBlockPreambleLoop  	ld hl, wSerialRandomNumberListBlock  	ld a, SERIAL_PREAMBLE_BYTE  	ld b, 7 @@ -57,8 +56,8 @@ CableClub_DoBattleOrTradeAgain: ; 5345  	ld [hli], a  	dec b  	jr nz, .zeroPlayerDataPatchListLoop -	ld hl, W_GRASSRATE -	ld bc, W_TRAINERHEADERPTR - W_GRASSRATE +	ld hl, wGrassRate +	ld bc, wTrainerHeaderPtr - wGrassRate  .zeroEnemyPartyLoop  	xor a  	ld [hli], a @@ -119,6 +118,7 @@ CableClub_DoBattleOrTradeAgain: ; 5345  	ld [rSC], a  .skipSendingTwoZeroBytes  	call Delay3 +	call StopAllMusic  	ld a, (1 << SERIAL)  	ld [rIE], a  	ld hl, wSerialRandomNumberListBlock @@ -139,8 +139,6 @@ CableClub_DoBattleOrTradeAgain: ; 5345  	call Serial_ExchangeBytes  	ld a, (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)  	ld [rIE], a -	ld a, $ff -	call PlaySound  	ld a, [hSerialConnectionStatus]  	cp USING_INTERNAL_CLOCK  	jr z, .skipCopyingRandomNumberList ; the list generated by the gameboy clocking the connection is used by both gameboys @@ -186,7 +184,7 @@ CableClub_DoBattleOrTradeAgain: ; 5345  	dec c  	jr nz, .copyEnemyNameLoop  	ld de, wEnemyPartyCount -	ld bc, W_TRAINERHEADERPTR - wEnemyPartyCount +	ld bc, wTrainerHeaderPtr - wEnemyPartyCount  .copyEnemyPartyLoop  	ld a, [hli]  	cp SERIAL_NO_DATA_BYTE @@ -255,14 +253,13 @@ CableClub_DoBattleOrTradeAgain: ; 5345  	ld hl, wEnemyMons + (SERIAL_PREAMBLE_BYTE - 1)  	dec c  	jr nz, .unpatchEnemyMonsLoop -	ld a, wEnemyMonOT % $100 +	ld a, wEnemyMonOT & $ff  	ld [wUnusedCF8D], a  	ld a, wEnemyMonOT / $100  	ld [wUnusedCF8D + 1], a  	xor a  	ld [wTradeCenterPointerTableIndex], a -	ld a, $ff -	call PlaySound +	call StopAllMusic  	ld a, [hSerialConnectionStatus]  	cp USING_INTERNAL_CLOCK  	ld c, 66 @@ -271,28 +268,36 @@ CableClub_DoBattleOrTradeAgain: ; 5345  	cp LINK_STATE_START_BATTLE  	ld a, LINK_STATE_TRADING  	ld [wLinkState], a -	jr nz, .asm_5506 +	jr nz, .asm_55a0  	ld a, LINK_STATE_BATTLING  	ld [wLinkState], a  	ld a, OPP_SONY1 -	ld [W_CUROPPONENT], a +	ld [wCurOpponent], a  	call ClearScreen  	call Delay3 -	ld hl, W_OPTIONS +	ld b, $9 +	call RunPaletteCommand +	ld hl, wOptions  	res 7, [hl] +	ld a, [wLetterPrintingDelayFlags] +	push af +	xor a +	ld [wLetterPrintingDelayFlags], a  	predef InitOpponent +	pop af +	ld [wLetterPrintingDelayFlags], a  	predef HealParty  	jp ReturnToCableClubRoom -.asm_5506 +.asm_55a0  	ld c, BANK(Music_GameCorner)  	ld a, MUSIC_GAME_CORNER  	call PlayMusic  	jr CallCurrentTradeCenterFunction -PleaseWaitString: ; 550f (1:550f) +PleaseWaitString: ; 55a9 (1:55a9)  	db "PLEASE WAIT!@" -CallCurrentTradeCenterFunction: +CallCurrentTradeCenterFunction: ; 55b6 (1:55b6)  	ld hl, TradeCenterPointerTable  	ld b, 0  	ld a, [wTradeCenterPointerTableIndex] @@ -306,8 +311,11 @@ CallCurrentTradeCenterFunction:  	ld l, a  	jp [hl] -TradeCenter_SelectMon: +TradeCenter_SelectMon: ; 55ca (1:55ca)  	call ClearScreen +	call Delay3 +	ld b, $9 +	call RunPaletteCommand  	call LoadTrainerInfoTextBoxTiles  	call TradeCenter_DrawPartyLists  	call TradeCenter_DrawCancelBox @@ -438,6 +446,7 @@ TradeCenter_SelectMon:  	ld a, [wEnemyPartyCount]  	dec a  	cp b +	; continue  	jr nc, .notPastLastEnemyMon  ; when switching to the enemy mon menu, if the menu selection would be past the last enemy mon, select the last enemy mon  	ld [wCurrentMenuItem], a @@ -465,8 +474,7 @@ TradeCenter_SelectMon:  .displayStatsTradeMenu  	push af  	coord hl, 0, 14 -	ld b, 2 -	ld c, 18 +	lb bc, 2, 18  	call CableClub_TextBoxBorder  	coord hl, 2, 16  	ld de, .statsTrade @@ -576,7 +584,7 @@ TradeCenter_SelectMon:  	jr nz, .cancelMenuItem_Loop  	; fall through -ReturnToCableClubRoom: ; 577d (1:577d) +ReturnToCableClubRoom: ; 581e (1:581e)  	call GBPalWhiteOutWithDelay3  	ld hl, wFontLoaded  	ld a, [hl] @@ -595,23 +603,22 @@ ReturnToCableClubRoom: ; 577d (1:577d)  	call GBFadeInFromWhite  	ret -TradeCenter_DrawCancelBox: +TradeCenter_DrawCancelBox: ; 5843 (1:5843)  	coord hl, 11, 15  	ld a, $7e  	ld bc, 2 * SCREEN_WIDTH + 9  	call FillMemory  	coord hl, 0, 15 -	ld b, 1 -	ld c, 9 +	lb bc, 1, 9  	call CableClub_TextBoxBorder  	coord hl, 2, 16  	ld de, CancelTextString  	jp PlaceString -CancelTextString: +CancelTextString: ; 5860 (1:5860)  	db "CANCEL@" -TradeCenter_PlaceSelectedEnemyMonMenuCursor: +TradeCenter_PlaceSelectedEnemyMonMenuCursor: ; 5867 (1:5867)  	ld a, [wSerialSyncAndExchangeNybbleReceiveData]  	coord hl, 1, 9  	ld bc, SCREEN_WIDTH @@ -619,24 +626,25 @@ TradeCenter_PlaceSelectedEnemyMonMenuCursor:  	ld [hl], $ec ; cursor  	ret -TradeCenter_DisplayStats: +TradeCenter_DisplayStats: ; 5876 (1:5876)  	ld a, [wCurrentMenuItem]  	ld [wWhichPokemon], a  	predef StatusScreen  	predef StatusScreen2 +	call Delay3 +	ld b, $9 +	call RunPaletteCommand  	call GBPalNormal  	call LoadTrainerInfoTextBoxTiles  	call TradeCenter_DrawPartyLists  	jp TradeCenter_DrawCancelBox -TradeCenter_DrawPartyLists: +TradeCenter_DrawPartyLists: ; 589a (1:589a)  	coord hl, 0, 0 -	ld b, 6 -	ld c, 18 +	lb bc, 6, 18  	call CableClub_TextBoxBorder  	coord hl, 0, 8 -	ld b, 6 -	ld c, 18 +	lb bc, 6, 18  	call CableClub_TextBoxBorder  	coord hl, 5, 0  	ld de, wPlayerName @@ -651,7 +659,7 @@ TradeCenter_DrawPartyLists:  	ld de, wEnemyPartyMons  	; fall through -TradeCenter_PrintPartyListNames: +TradeCenter_PrintPartyListNames: ; 58cd (1:58cd)  	ld c, $0  .loop  	ld a, [de] @@ -676,7 +684,7 @@ TradeCenter_PrintPartyListNames:  	inc c  	jr .loop -TradeCenter_Trade: +TradeCenter_Trade: ; 58ef (1:58ef)  	ld c, 100  	call DelayFrames  	xor a @@ -685,8 +693,7 @@ TradeCenter_Trade:  	ld [wMenuWatchMovingOutOfBounds], a  	ld [wMenuJoypadPollCount], a  	coord hl, 0, 12 -	ld b, 4 -	ld c, 18 +	lb bc, 4, 18  	call CableClub_TextBoxBorder  	ld a, [wTradingWhichPlayerMon]  	ld hl, wPartySpecies @@ -727,8 +734,7 @@ TradeCenter_Trade:  	ld a, $1  	ld [wSerialExchangeNybbleSendData], a  	coord hl, 0, 12 -	ld b, 4 -	ld c, 18 +	lb bc, 4, 18  	call CableClub_TextBoxBorder  	coord hl, 1, 14  	ld de, TradeCanceled @@ -744,8 +750,7 @@ TradeCenter_Trade:  	jr nz, .doTrade  ; if the other person cancelled  	coord hl, 0, 12 -	ld b, 4 -	ld c, 18 +	lb bc, 4, 18  	call CableClub_TextBoxBorder  	coord hl, 1, 14  	ld de, TradeCanceled @@ -792,6 +797,7 @@ TradeCenter_Trade:  	add hl, bc  	ld a, [hl]  	ld [wTradedPlayerMonSpecies], a +	callabd_ModifyPikachuHappiness PIKAHAPPY_TRADE  	xor a  	ld [wRemoveMonFromBox], a  	call RemovePokemon @@ -845,15 +851,18 @@ TradeCenter_Trade:  .usingExternalClock  	predef ExternalClockTradeAnim  .tradeCompleted +; continue  	callab TryEvolvingMon  	call ClearScreen  	call LoadTrainerInfoTextBoxTiles  	call Serial_PrintWaitingTextAndSyncAndExchangeNybble  	ld c, 40  	call DelayFrames +	call Delay3 +	ld b, $9 +	call RunPaletteCommand  	coord hl, 0, 12 -	ld b, 4 -	ld c, 18 +	lb bc, 4, 18  	call CableClub_TextBoxBorder  	coord hl, 1, 14  	ld de, TradeCompleted @@ -871,22 +880,22 @@ TradeCenter_Trade:  	ld [wTradeCenterPointerTableIndex], a  	jp CallCurrentTradeCenterFunction -WillBeTradedText: ; 5a24 (1:5a24) +WillBeTradedText: ; 5ad8 (1:5ad8)  	TX_FAR _WillBeTradedText  	db "@" -TradeCompleted: +TradeCompleted: ; 5add (1:5add)  	db "Trade completed!@" -TradeCanceled: +TradeCanceled: ; 5aee (1:5aee)  	db   "Too bad! The trade"  	next "was canceled!@" -TradeCenterPointerTable: ; 5a5b (1:5a5b) +TradeCenterPointerTable: ; 5b0f (1:5b0f)  	dw TradeCenter_SelectMon  	dw TradeCenter_Trade -CableClub_Run: ; 5a5f (1:5a5f) +CableClub_Run: ; 5b13 (1:5b13)  	ld a, [wLinkState]  	cp LINK_STATE_START_TRADE  	jr z, .doBattleOrTrade @@ -900,18 +909,18 @@ CableClub_Run: ; 5a5f (1:5a5f)  	call CableClub_DoBattleOrTrade  	ld hl, Club_GFX  	ld a, h -	ld [W_TILESETGFXPTR + 1], a +	ld [wTilesetGFXPtr + 1], a  	ld a, l -	ld [W_TILESETGFXPTR], a +	ld [wTilesetGFXPtr], a  	ld a, Bank(Club_GFX) -	ld [W_TILESETBANK], a +	ld [wTilesetBank], a  	ld hl, Club_Coll  	ld a, h -	ld [W_TILESETCOLLISIONPTR + 1], a +	ld [wTilesetCollisionPtr + 1], a  	ld a, l -	ld [W_TILESETCOLLISIONPTR], a +	ld [wTilesetCollisionPtr], a  	xor a -	ld [W_GRASSRATE], a +	ld [wGrassRate], a  	inc a ; LINK_STATE_IN_CABLE_CLUB  	ld [wLinkState], a  	ld [$ffb5], a @@ -923,15 +932,15 @@ CableClub_Run: ; 5a5f (1:5a5f)  	ld [wNewSoundID], a  	jp PlaySound -EmptyFunc3: ; 5aaf (1:5aaf) +EmptyFunc3: ; 5b63 (1:5b63)  	ret -Diploma_TextBoxBorder: ; 5ab0 (1:5ab0) +Diploma_TextBoxBorder: ; 5b64 (1:5b64)  	call GetPredefRegisters  ; b = height  ; c = width -CableClub_TextBoxBorder: ; 5ab3 (1:5ab3) +CableClub_TextBoxBorder: ; 5b67 (1:5b67)  	push hl  	ld a, $78 ; border upper left corner tile  	ld [hli], a @@ -962,10 +971,10 @@ CableClub_TextBoxBorder: ; 5ab3 (1:5ab3)  	ret  ; c = width -CableClub_DrawHorizontalLine: ; 5ae0 (1:5ae0) +CableClub_DrawHorizontalLine: ; 5b94 (1:5b94)  	ld d, c -.asm_5ae1 +.drawHorizontalLineLoop  	ld [hli], a  	dec d -	jr nz, .asm_5ae1 -	ret +	jr nz, .drawHorizontalLineLoop +	ret
\ No newline at end of file diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 056c125e..2113e50a 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -105,7 +105,7 @@ Evolution_PartyMonLoop: ; loop over party mons  	cp b ; is the mon's level greater than the evolution requirement?  	jp c, .nextEvoEntry2 ; if so, go the next evolution entry  .doEvolution -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  	ld a, 1  	ld [wEvolutionOccurred], a  	push hl @@ -163,10 +163,10 @@ Evolution_PartyMonLoop: ; loop over party mons  	ld hl, BaseStats  	ld bc, MonBaseStatsEnd - MonBaseStats  	call AddNTimes -	ld de, W_MONHEADER +	ld de, wMonHeader  	call CopyData  	ld a, [wd0b5] -	ld [W_MONHINDEX], a +	ld [wMonHIndex], a  	pop af  	ld [wd11e], a  	ld hl, wLoadedMonHPExp - 1 @@ -210,7 +210,7 @@ Evolution_PartyMonLoop: ; loop over party mons  	call LearnMoveFromLevelUp  	pop hl  	predef SetPartyMonTypes -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	call z, Evolution_ReloadTilesetTilePatterns  	predef IndexToPokedex @@ -249,7 +249,7 @@ Evolution_PartyMonLoop: ; loop over party mons  	ld a, [wLinkState]  	cp LINK_STATE_TRADING  	ret z -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	ret nz  	ld a, [wEvolutionOccurred] @@ -262,7 +262,7 @@ RenameEvolvedMon: ; 3aef7 (e:6ef7)  ; nickname, in which case the nickname is kept.  	ld a, [wd0b5]  	push af -	ld a, [W_MONHINDEX] +	ld a, [wMonHIndex]  	ld [wd0b5], a  	call GetName  	pop af @@ -340,7 +340,7 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b)  	and a ; have we reached the end of the learn set?  	jr z, .done ; if we've reached the end of the learn set, jump  	ld b, a ; level the move is learnt at -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	cp b ; is the move learnt at the mon's current level?  	ld a, [hli] ; move ID  	jr nz, .learnSetLoop @@ -375,7 +375,7 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b)  	ld [wd11e], a  	ret -; writes the moves a mon has at level [W_CURENEMYLVL] to [de] +; writes the moves a mon has at level [wCurEnemyLVL] to [de]  ; move slots are being filled up sequentially and shifted if all slots are full  WriteMonMoves: ; 3afb8 (e:6fb8)  	call GetPredefRegisters @@ -407,7 +407,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8)  	and a  	jp z, .done       ; end of list  	ld b, a -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	cp b  	jp c, .done       ; mon level < move level (assumption: learnset is sorted by level)  	ld a, [wLearningMovesFromDayCare] diff --git a/engine/experience.asm b/engine/experience.asm index b43fbcf9..e1037950 100755 --- a/engine/experience.asm +++ b/engine/experience.asm @@ -29,7 +29,7 @@ CalcLevelFromExperience: ; 58f43 (16:4f43)  ; calculates the amount of experience needed for level d  CalcExperience: ; 58f6a (16:4f6a) -	ld a, [W_MONHGROWTHRATE] +	ld a, [wMonHGrowthRate]  	add a  	add a  	ld c, a diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm index 0a93fd44..ab66a818 100755 --- a/engine/hidden_object_functions18.asm +++ b/engine/hidden_object_functions18.asm @@ -7,7 +7,7 @@ GymStatues: ; 62419 (18:6419)  	cp SPRITE_FACING_UP  	ret nz  	ld hl, .BadgeFlags -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld b, a  .loop  	ld a, [hli] @@ -50,7 +50,7 @@ GymStatueText2: ; 62458 (18:6458)  PrintBenchGuyText: ; 6245d (18:645d)  	call EnableAutoTextBoxDrawing  	ld hl, BenchGuyTextPointers -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld b, a  .loop  	ld a, [hli] diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm index ba6d1fd3..e43ae451 100755 --- a/engine/hidden_object_functions3.asm +++ b/engine/hidden_object_functions3.asm @@ -78,7 +78,7 @@ IndigoPlateauStatues: ; fa4d (3:7a4d)  	TX_ASM  	ld hl, IndigoPlateauStatuesText1  	call PrintText -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	bit 0, a  	ld hl, IndigoPlateauStatuesText2  	jr nz, .asm_fa61 diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 02d3928a..b61dc68a 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -38,7 +38,7 @@ StrengthsAndWeaknessesText: ; 1e983 (7:6983)  SafariZoneCheck: ; 1e988 (7:6988)  	CheckEventHL EVENT_IN_SAFARI_ZONE ; if we are not in the Safari Zone,  	jr z, SafariZoneGameStillGoing ; don't bother printing game over text -	ld a, [W_NUMSAFARIBALLS] +	ld a, [wNumSafariBalls]  	and a  	jr z, SafariZoneGameOver  	jr SafariZoneGameStillGoing @@ -97,7 +97,7 @@ PrintSafariGameOverText: ; 1e9ed (7:69ed)  SafariGameOverText: ; 1e9f7 (7:69f7)  	TX_ASM -	ld a, [W_NUMSAFARIBALLS] +	ld a, [wNumSafariBalls]  	and a  	jr z, .asm_1ea04  	ld hl, TimesUpText diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm index 553f550d..80cb27f3 100755 --- a/engine/in_game_trades.asm +++ b/engine/in_game_trades.asm @@ -100,20 +100,20 @@ InGameTrade_DoTrade: ; 71ca9 (1c:5ca9)  	ld bc, wPartyMon2 - wPartyMon1  	call AddNTimes  	ld a,[hl] -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	ld b,FLAG_SET  	call InGameTrade_FlagActionPredef  	ld hl, ConnectCableText  	call PrintText  	ld a,[wWhichPokemon]  	push af -	ld a,[W_CURENEMYLVL] +	ld a,[wCurEnemyLVL]  	push af  	call LoadHpBarAndStatusTilePatterns  	call InGameTrade_PrepareTradeData  	predef InternalClockTradeAnim  	pop af -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	pop af  	ld [wWhichPokemon],a  	ld a,[wInGameTradeReceiveMonSpecies] diff --git a/engine/intro.asm b/engine/intro.asm index 6d2e350c..5a14dca7 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -312,7 +312,7 @@ PlayShootingStar: ; 4188a (10:588a)  	call ClearScreen  	call DisableLCD  	xor a -	ld [W_CUROPPONENT], a +	ld [wCurOpponent], a  	call IntroDrawBlackBars  	call LoadIntroGraphics  	call EnableLCD diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm index 5da72388..d638b0b8 100755 --- a/engine/items/itemfinder.asm +++ b/engine/items/itemfinder.asm @@ -3,7 +3,7 @@ HiddenItemNear: ; 7481f (1d:481f)  	ld b, 0  .loop  	ld de, 3 -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	call IsInRestOfArray  	ret nc ; return if current map has no hidden items  	push bc @@ -24,19 +24,19 @@ HiddenItemNear: ; 7481f (1d:481f)  	inc hl  	jr nz, .loop ; if the item has already been obtained  ; check if the item is within 4-5 tiles (depending on the direction of item) -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	call Sub5ClampTo0  	cp d  	jr nc, .loop -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	add 4  	cp d  	jr c, .loop -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	call Sub5ClampTo0  	cp e  	jr nc, .loop -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	add 5  	cp e  	jr c, .loop diff --git a/engine/items/items.asm b/engine/items/items.asm index 2b3c1840..8671e34a 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -101,7 +101,7 @@ ItemUsePtrTable: ; d307 (3:5307)  	dw ItemUsePPRestore  ; MAX_ELIXER  ItemUseBall: ; d3ad (3:53ad) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp z,ItemUseNotTime ; not in battle  	dec a @@ -126,7 +126,7 @@ ItemUseBall: ; d3ad (3:53ad)  	jr nz,.skipSafariZoneCode  .safariZone  	; remove a Safari Ball from inventory -	ld hl,W_NUMSAFARIBALLS +	ld hl,wNumSafariBalls  	dec [hl]  .skipSafariZoneCode  	call RunDefaultPaletteCommand @@ -145,7 +145,7 @@ ItemUseBall: ; d3ad (3:53ad)  	jr z,.oldManBattle ; pikachu battle technically old man battle  	jr .notOldManBattle  .oldManBattle -	ld hl,W_GRASSRATE +	ld hl,wGrassRate  	ld de,wPlayerName  	ld bc,NAME_LENGTH  	call CopyData ; save the player's name in the Wild Monster data @@ -160,7 +160,7 @@ ItemUseBall: ; d3ad (3:53ad)  	jp nz,.next12  	jp .BallSuccess  .notOldManBattle -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp a,POKEMONTOWER_6  	jr nz,.loop  	ld a,[wEnemyMonSpecies2] @@ -390,7 +390,7 @@ ItemUseBall: ; d3ad (3:53ad)  	ld a,[wEnemyMonSpecies2]  	ld [wcf91],a  	ld a,[wEnemyMonLevel] -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	callab LoadEnemyMonData  	pop af  	ld [wcf91],a @@ -522,13 +522,13 @@ ItemUseBallText06: ; d6c1 (3:56c1)  	db "@"  ItemUseTownMap: ; d6c8 (3:56c8) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	jpba DisplayTownMap  ItemUseBicycle: ; d6d7 (3:56d7) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	ld a,[wWalkBikeSurfState] @@ -652,7 +652,7 @@ ItemUsePokedex: ; d7cb (3:57cb)  	predef_jump ShowPokedexMenu  ItemUseEvoStone: ; d7d0 (3:57d0) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	ld a,[wWhichPokemon] @@ -757,7 +757,7 @@ RefusingText: ; d8a2 (3:58a2)  	db "@"  ItemUseVitamin: ; d8a7 (3:58a7) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime @@ -903,7 +903,7 @@ ItemUseMedicine: ; d8ae (3:58ae)  	pop af  	ld [wWhichPokemon], a -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jr z,.compareCurrentHPToMaxHP  	push hl @@ -1221,7 +1221,7 @@ ItemUseMedicine: ; d8ae (3:58ae)  	ret nz ; if so, return  	call GBPalWhiteOut  	call z,RunDefaultPaletteCommand -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	ret nz  	jp ReloadMapData @@ -1233,7 +1233,7 @@ ItemUseMedicine: ; d8ae (3:58ae)  	ld bc,33  	add hl,bc ; hl now points to level  	ld a,[hl] ; a = level -	ld [W_CURENEMYLVL],a ; store level +	ld [wCurEnemyLVL],a ; store level  	call GetMonHeader  	push de  	ld a,d @@ -1312,7 +1312,7 @@ ItemUseMedicine: ; d8ae (3:58ae)  	jr z,.vitaminNoEffect ; can't raise level above 100  	inc a  	ld [hl],a ; store incremented level -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	push hl  	push de  	ld d,a @@ -1473,10 +1473,10 @@ ThrewRockText: ; ddca (3:5dca)  ; also used for Dig out-of-battle effect  ItemUseEscapeRope: ; ddcf (3:5dcf) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jr nz,.notUsable -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp a,AGATHAS_ROOM  	jr z,.notUsable  	cp a,BILLS_HOUSE @@ -1501,7 +1501,7 @@ ItemUseEscapeRope: ; ddcf (3:5dcf)  	ld hl,wd790  	res 7,[hl]  	xor a -	ld [W_NUMSAFARIBALLS],a +	ld [wNumSafariBalls],a  	ld [W_SAFARIZONEENTRANCECURSCRIPT],a  	inc a  	ld [wEscapedFromBattle],a @@ -1524,7 +1524,7 @@ ItemUseRepel: ; de2e (3:5e2e)  	ld b,100  ItemUseRepelCommon: ; e005 (3:6005) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	ld a,b @@ -1533,7 +1533,7 @@ ItemUseRepelCommon: ; e005 (3:6005)  ; handles X Accuracy item  ItemUseXAccuracy: ; de3e (3:5e3e) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp z,ItemUseNotTime  	ld hl,W_PLAYERBATTSTATUS2 @@ -1562,7 +1562,7 @@ ItemUseCardKey: ; de57 (3:de57)  	jp nz,ItemUseNotTime  	ld hl,CardKeyTable3  .next1 -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	ld b,a  .loop  	ld a,[hli] @@ -1635,7 +1635,7 @@ CardKeyTable3: ; def9 (3:5ef9)  	db $ff  ItemUsePokedoll: ; df02 (3:5f02) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	dec a  	jp nz,ItemUseNotTime  	ld a,$01 @@ -1643,7 +1643,7 @@ ItemUsePokedoll: ; df02 (3:5f02)  	jp PrintItemUseTextAndRemoveItem  ItemUseGuardSpec: ; df11 (3:5f11) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp z,ItemUseNotTime @@ -1668,7 +1668,7 @@ ItemUseMaxRepel: ; df3d (3:5f3d)  	jp ItemUseRepelCommon  ItemUseDireHit: ; df42 (3:5f42) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp z,ItemUseNotTime @@ -1685,7 +1685,7 @@ ItemUseDireHit: ; df42 (3:5f42)  	jp PrintItemUseTextAndRemoveItem  ItemUseXStat: ; df69 (3:df69) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jr nz,.inBattle  	call ItemUseNotTime @@ -1727,12 +1727,12 @@ ItemUseXStat: ; df69 (3:df69)  	ret  ItemUsePokeflute: ; dfbd (3:5fbd) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jr nz,.inBattle  ; if not in battle  	call ItemUseReloadOverworldData -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp a,ROUTE_12  	jr nz,.notRoute12  	ld a, [wd7d8] @@ -1784,7 +1784,7 @@ ItemUsePokeflute: ; dfbd (3:5fbd)  	ld b,~SLP & $ff  	ld hl,wPartyMon1Status  	call WakeUpEntireParty -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	dec a ; is it a trainer battle?  	jr z,.skipWakingUpEnemyParty  ; if it's a trainer battle @@ -1883,7 +1883,7 @@ PlayedFluteHadEffectText: ; e0c4 (3:60c4)  	TX_FAR _PlayedFluteHadEffectText  	db $06  	TX_ASM -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jr nz,.done  ; play out-of-battle pokeflute music @@ -1900,7 +1900,7 @@ PlayedFluteHadEffectText: ; e0c4 (3:60c4)  	jp TextScriptEnd ; end text  ItemUseCoinCase: ; e0e7 (3:60e7) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	ld hl,CoinCaseNumCoinsText @@ -1974,9 +1974,9 @@ RodResponse: ; e15b (3:615b)  	ld a, 1  	ld [W_MOVEMISSED], a  	ld a, b ; level -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  	ld a, c ; species -	ld [W_CUROPPONENT], a +	ld [wCurOpponent], a  DoNotGenerateFishingEncounter: ; e16e (3:616e)  	ld hl, wWalkBikeSurfState @@ -1993,7 +1993,7 @@ DoNotGenerateFishingEncounter: ; e16e (3:616e)  ; checks if fishing is possible and if so, runs initialization code common to all rods  ; unsets carry if fishing is possible, sets carry if not  FishingInit: ; e182 (3:6182) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jr z,.notInBattle  	scf ; can't fish during battle @@ -2025,7 +2025,7 @@ ItemUseOaksParcel: ; e1b7 (3:61b7)  	jp ItemUseNotYoursToUse  ItemUseItemfinder: ; e1ba (3:61ba) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	call ItemUseReloadOverworldData @@ -2053,7 +2053,7 @@ ItemfinderFoundNothingText: ; e1eb (3:61eb)  	db "@"  ItemUsePPUp: ; e1f0 (3:61f0) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime @@ -2071,7 +2071,7 @@ ItemUsePPRestore: ; e1f7 (3:61f7)  	jr nc,.chooseMove  	jp .itemNotUsed  .chooseMove -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	jr z, .usePPItem  	ld a, [wWhichPokemon] @@ -2274,7 +2274,7 @@ UnusableItem: ; e371 (3:6371)  	jp ItemUseNotTime  ItemUseTMHM: ; e374 (3:6374) -	ld a,[W_ISINBATTLE] +	ld a,[wIsInBattle]  	and a  	jp nz,ItemUseNotTime  	ld a,[wcf91] @@ -2929,7 +2929,7 @@ SendNewMonToBox: ; e6e8 (3:66e8)  	ld [de], a  	inc de  	push de -	ld a, [W_CURENEMYLVL] +	ld a, [wCurEnemyLVL]  	ld d, a  	callab CalcExperience  	pop de diff --git a/engine/items/tms.asm b/engine/items/tms.asm index 23912b34..7d00f7f3 100755 --- a/engine/items/tms.asm +++ b/engine/items/tms.asm @@ -3,7 +3,7 @@ CanLearnTM: ; 1373e (4:773e)  	ld a, [wcf91]  	ld [wd0b5], a  	call GetMonHeader -	ld hl, W_MONHLEARNSET +	ld hl, wMonHLearnset  	push hl  	ld a, [wMoveNum]  	ld b, a diff --git a/engine/learn_move.asm b/engine/learn_move.asm index ba96f29f..ec087d0c 100755 --- a/engine/learn_move.asm +++ b/engine/learn_move.asm @@ -53,7 +53,7 @@ DontAbandonLearning: ; 6e5b (1:6e5b)  	pop de  	pop hl  	ld [hl], a -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	jp z, PrintLearnedMove  	ld a, [wWhichPokemon] diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index 3ef1f95a..986bb339 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -559,7 +559,7 @@ CableClubLeftGameboy:: ; 21867 (8:5867)  	ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction  	cp SPRITE_FACING_RIGHT  	ret nz -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp TRADE_CENTER  	ld a, LINK_STATE_START_TRADE  	jr z, .next @@ -576,7 +576,7 @@ CableClubRightGameboy:: ; 21887 (8:5887)  	ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction  	cp SPRITE_FACING_LEFT  	ret nz -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp TRADE_CENTER  	ld a, LINK_STATE_START_TRADE  	jr z, .next diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 98f1efdd..2e88dbcb 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -114,7 +114,7 @@ MainMenu: ; 5af2 (1:5af2)  	ld a,[wNumHoFTeams]  	and a  	jp z,SpecialEnterMap -	ld a,[W_CURMAP] ; map ID +	ld a,[wCurMap] ; map ID  	cp a,HALL_OF_FAME  	jp nz,SpecialEnterMap  	xor a @@ -128,7 +128,7 @@ InitOptions: ; 5bff (1:5bff)  	ld a,1 ; no delay  	ld [wLetterPrintingDelayFlags],a  	ld a,3 ; medium speed -	ld [W_OPTIONS],a +	ld [wOptions],a  	ret  LinkMenu: ; 5c0a (1:5c0a) @@ -626,13 +626,13 @@ SetOptionsFromCursorPositions: ; 601f (1:601f)  	res 6,d  .storeOptions  	ld a,d -	ld [W_OPTIONS],a +	ld [wOptions],a  	ret  ; reads the options variable and places menu cursors in the correct positions within the options menu  SetCursorPositionsFromOptions: ; 604c (1:604c)  	ld hl,TextSpeedOptionData + 1 -	ld a,[W_OPTIONS] +	ld a,[wOptions]  	ld c,a  	and a,$3f  	push bc diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index 978216c8..167def51 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -2,7 +2,7 @@ AskName: ; 64eb (1:64eb)  	call SaveScreenTilesToBuffer1  	call GetPredefRegisters  	push hl -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	dec a  	coord hl, 0, 0  	ld b, 4 @@ -30,7 +30,7 @@ AskName: ; 64eb (1:64eb)  	ld a, NAME_MON_SCREEN  	ld [wNamingScreenType], a  	call DisplayNamingScreen -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	jr nz, .inBattle  	call ReloadMapSpriteTilePatterns @@ -169,7 +169,7 @@ DisplayNamingScreen: ; 6596 (1:6596)  	ld [W_SUBANIMTRANSFORM], a  	ld hl, wd730  	res 6, [hl] -	ld a, [W_ISINBATTLE] +	ld a, [wIsInBattle]  	and a  	jp z, LoadTextBoxTilePatterns  	jpab LoadHudTilePatterns diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index 409f0bdb..626f670a 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -300,7 +300,7 @@ GetPrizeMonLevel: ; 52977 (14:6977)  	jr .loop  .matchFound  	ld a,[hl] -	ld [W_CURENEMYLVL],a +	ld [wCurEnemyLVL],a  	ret  INCLUDE "data/prize_mon_levels.asm" diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index 8775a8d9..807dce59 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -71,7 +71,7 @@ StatusScreen: ; 12953 (4:6953)  ; mon is in a box or daycare  	ld a, [wLoadedMonBoxLevel]  	ld [wLoadedMonLevel], a -	ld [W_CURENEMYLVL], a +	ld [wCurEnemyLVL], a  	ld hl, wLoadedMonHPExp - 1  	ld de, wLoadedMonStats  	ld b, $1 @@ -138,7 +138,7 @@ StatusScreen: ; 12953 (4:6953)  	call PlaceString ; "STATUS/"  	coord hl, 14, 2  	call PrintLevel ; Pokémon level -	ld a, [W_MONHINDEX] +	ld a, [wMonHIndex]  	ld [wd11e], a  	ld [wd0b5], a  	predef IndexToPokedex @@ -196,13 +196,13 @@ OTPointers: ; 12a95 (4:6a95)  	dw wPartyMonOT  	dw wEnemyMonOT  	dw wBoxMonOT -	dw W_DAYCAREMONOT +	dw wDayCareMonOT  NamePointers2: ; 12a9d (4:6a9d)  	dw wPartyMonNicks  	dw wEnemyMonNicks  	dw wBoxMonNicks -	dw W_DAYCAREMONNAME +	dw wDayCareMonName  Type1Text: ; 12aa5 (4:6aa5)  	db "TYPE1/", $4e @@ -417,7 +417,7 @@ StatusScreen2: ; 12b57 (4:6b57)  	call StatusScreen_ClearName  	coord hl, 9, 1  	call StatusScreen_ClearName -	ld a, [W_MONHINDEX] +	ld a, [wMonHIndex]  	ld [wd11e], a  	call GetMonName  	coord hl, 9, 1 diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index 0de7ffad..2e28afc6 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -1,7 +1,7 @@  SetDefaultNames: ; 60ca (1:60ca)  	ld a, [wLetterPrintingDelayFlags]  	push af -	ld a, [W_OPTIONS] +	ld a, [wOptions]  	push af  	ld a, [wd732]  	push af @@ -16,7 +16,7 @@ SetDefaultNames: ; 60ca (1:60ca)  	pop af  	ld [wd732], a  	pop af -	ld [W_OPTIONS], a +	ld [wOptions], a  	pop af  	ld [wLetterPrintingDelayFlags], a  	ld a, [wOptionsInitialized] diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm index cc9fe3a7..2ef7529c 100755 --- a/engine/overworld/card_key.asm +++ b/engine/overworld/card_key.asm @@ -1,6 +1,6 @@  PrintCardKeyText: ; 52673 (14:6673)  	ld hl, SilphCoMapList -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld b, a  .silphCoMapListLoop  	ld a, [hli] @@ -15,7 +15,7 @@ PrintCardKeyText: ; 52673 (14:6673)  	cp $24  	jr z, .cardKeyDoorInFrontOfPlayer  	ld b, a -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp SILPH_CO_11F  	ret nz  	ld a, b @@ -39,7 +39,7 @@ PrintCardKeyText: ; 52673 (14:6673)  	ld a, e  	ld c, a  	ld [wCardKeyDoorX], a -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp SILPH_CO_11F  	jr nz, .notSilphCo11F  	ld a, $3 @@ -84,9 +84,9 @@ CardKeyFailText: ; 526f8 (14:66f8)  ; d = Y  ; e = X  GetCoordsInFrontOfPlayer: ; 526fd (14:66fd) -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	ld d, a -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	ld e, a  	ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction  	and a diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 8c863bf2..3a2b38cf 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -178,7 +178,7 @@ ReplaceTreeTileBlock: ; ef1f (3:6f1f)  ; player (i.e. where the tree is) and replace it with the corresponding tile  ; block that doesn't have the tree.  	push de -	ld a, [W_CURMAPWIDTH] +	ld a, [wCurMapWidth]  	add 6  	ld c, a  	ld b, 0 @@ -196,22 +196,22 @@ ReplaceTreeTileBlock: ; ef1f (3:6f1f)  	cp SPRITE_FACING_LEFT  	jr z, .left  ; right -	ld a, [W_XBLOCKCOORD] +	ld a, [wXBlockCoord]  	and a  	jr z, .centerTileBlock  	jr .rightOfCenter  .down -	ld a, [W_YBLOCKCOORD] +	ld a, [wYBlockCoord]  	and a  	jr z, .centerTileBlock  	jr .belowCenter  .up -	ld a, [W_YBLOCKCOORD] +	ld a, [wYBlockCoord]  	and a  	jr z, .aboveCenter  	jr .centerTileBlock  .left -	ld a, [W_XBLOCKCOORD] +	ld a, [wXBlockCoord]  	and a  	jr z, .leftOfCenter  	jr .centerTileBlock diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index 28528116..f7f81070 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -135,7 +135,7 @@ FindHiddenItemOrCoinsIndex: ; 76857 (1d:6857)  	ld d, a  	ld a, [wHiddenObjectX]  	ld e, a -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld b, a  	ld c, -1  .loop diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index cabfc093..1fc20e5c 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -29,7 +29,7 @@ CheckForHiddenObject: ; 469a0 (11:69a0)  	ld b, a  	cp $ff  	jr z, .noMatch -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp b  	jr z, .foundMatchingMap  	inc de @@ -95,30 +95,30 @@ CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01)  	cp SPRITE_FACING_RIGHT  	jr z, .facingRight  ; facing down -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	inc a  	jr .upDownCommon  .facingUp -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	dec a  .upDownCommon  	cp b  	jr nz, .didNotMatch -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	cp c  	jr nz, .didNotMatch  	jr .matched  .facingLeft -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	dec a  	jr .leftRightCommon  .facingRight -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	inc a  .leftRightCommon  	cp c  	jr nz, .didNotMatch -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	cp b  	jr nz, .didNotMatch  .matched diff --git a/engine/overworld/is_player_just_outside_map.asm b/engine/overworld/is_player_just_outside_map.asm index 24e434b3..e9ba204a 100644 --- a/engine/overworld/is_player_just_outside_map.asm +++ b/engine/overworld/is_player_just_outside_map.asm @@ -1,13 +1,13 @@  ; returns whether the player is one tile outside the map in Z  IsPlayerJustOutsideMap: ; 128d8 (4:68d8) -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	ld b, a -	ld a, [W_CURMAPHEIGHT] +	ld a, [wCurMapHeight]  	call .compareCoordWithMapDimension  	ret z -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	ld b, a -	ld a, [W_CURMAPWIDTH] +	ld a, [wCurMapWidth]  .compareCoordWithMapDimension  	add a  	cp b diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm index 6fbe823d..f4f46535 100644 --- a/engine/overworld/item.asm +++ b/engine/overworld/item.asm @@ -1,9 +1,9 @@ -PickUpItem: +PickUpItem: ; 4d55 (1:4d55)  	call EnableAutoTextBoxDrawing  	ld a, [hSpriteIndexOrTextID]  	ld b, a -	ld hl, W_MISSABLEOBJECTLIST +	ld hl, wMissableObjectList  .missableObjectsListLoop  	ld a, [hli]  	cp $ff @@ -17,7 +17,7 @@ PickUpItem:  	ld a, [hl]  	ld [$ffdb], a -	ld hl, W_MAPSPRITEEXTRADATA +	ld hl, wMapSpriteExtraData  	ld a, [hSpriteIndexOrTextID]  	dec a  	add a @@ -44,11 +44,11 @@ PickUpItem:  	call PrintText  	ret -FoundItemText: +FoundItemText: ; 4d9a (1:4d9a)  	TX_FAR _FoundItemText  	db $0B  	db "@" -NoMoreRoomForItemText: +NoMoreRoomForItemText: ; 4da0 (1:4da0)  	TX_FAR _NoMoreRoomForItemText -	db "@" +	db "@"
\ No newline at end of file diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm index 84d67b36..eb4e2c03 100755 --- a/engine/overworld/map_sprites.asm +++ b/engine/overworld/map_sprites.asm @@ -30,12 +30,12 @@ _InitMapSprites: ; 1785b (5:785b)  ; InitOutsideMapSprites.  ; Loads tile pattern data for sprites into VRAM.  LoadMapSpriteTilePatterns: ; 17871 (5:7871) -	ld a,[W_NUMSPRITES] +	ld a,[wNumSprites]  	and a ; are there any sprites?  	jr nz,.spritesExist  	ret  .spritesExist -	ld c,a ; c = [W_NUMSPRITES] +	ld c,a ; c = [wNumSprites]  	ld b,$10 ; number of sprite slots  	ld hl,wSpriteStateData2 + $0d  	xor a @@ -251,7 +251,7 @@ ReadSpriteSheetData: ; 17971 (5:7971)  ; Loads sprite set for outside maps (cities and routes) and sets VRAM slots.  ; sets carry if the map is a city or route, unsets carry if not  InitOutsideMapSprites: ; 1797b (5:797b) -	ld a,[W_CURMAP] +	ld a,[wCurMap]  	cp a,REDS_HOUSE_1F ; is the map a city or a route (map ID less than $25)?  	ret nc ; if not, return  	ld hl,MapSpriteSets @@ -317,13 +317,13 @@ InitOutsideMapSprites: ; 1797b (5:797b)  	ld [hl],a ; $C2XD (sprite picture ID)  	dec b  	jr nz,.zeroRemainingSlotsLoop -	ld a,[W_NUMSPRITES] +	ld a,[wNumSprites]  	push af ; save number of sprites  	ld a,11 ; 11 sprites in sprite set -	ld [W_NUMSPRITES],a +	ld [wNumSprites],a  	call LoadMapSpriteTilePatterns  	pop af -	ld [W_NUMSPRITES],a ; restore number of sprites +	ld [wNumSprites],a ; restore number of sprites  	ld hl,wSpriteStateData2 + $1e  	ld b,$0f  ; The VRAM tile pattern slots that LoadMapSpriteTilePatterns set are in the @@ -399,10 +399,10 @@ GetSplitMapSpriteSetID: ; 17a1a (5:7a1a)  	ld b,a  	jr z,.eastWestDivide  .northSouthDivide -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	jr .compareCoord  .eastWestDivide -	ld a,[W_XCOORD] +	ld a,[wXCoord]  .compareCoord  	cp b  	jr c,.loadSpriteSetID @@ -415,7 +415,7 @@ GetSplitMapSpriteSetID: ; 17a1a (5:7a1a)  ; Route 20 is a special case because the two map sections have a more complex  ; shape instead of the map simply being split horizontally or vertically.  .route20 -	ld hl,W_XCOORD +	ld hl,wXCoord  	ld a,[hl]  	cp a,$2b  	ld a,$01 @@ -430,7 +430,7 @@ GetSplitMapSpriteSetID: ; 17a1a (5:7a1a)  	jr nc,.next  	ld b,$0d  .next -	ld a,[W_YCOORD] +	ld a,[wYCoord]  	cp b  	ld a,$0a  	ret c diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index be10fd69..dfd1c012 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -1,4 +1,4 @@ -UpdatePlayerSprite: ; 4e31 (1:4e31) +UpdatePlayerSprite: ; 4da5 (1:4da5)  	ld a, [wSpriteStateData2]  	and a  	jr z, .checkIfTextBoxInFrontOfSprite @@ -20,7 +20,13 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)  	ld [wSpriteStateData1 + 2], a  	ret  .lowerLeftTileIsMapTile +	ld a, [wUpdateSpritesEnabled] +	push af +	ld a, $ff +	ld [wUpdateSpritesEnabled], a  	call DetectCollisionBetweenSprites +	pop af +	ld [wUpdateSpritesEnabled], a  	ld h, wSpriteStateData1 / $100  	ld a, [wWalkCounter]  	and a @@ -46,42 +52,24 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)  	jr z, .notMoving  	ld a, SPRITE_FACING_RIGHT  	jr .next +.next +	ld [wSpriteStateData1 + 9], a ; facing direction +	ld a, [wFontLoaded] +	bit 0, a +	jr z, .moving  .notMoving  ; zero the animation counters  	xor a  	ld [wSpriteStateData1 + 7], a  	ld [wSpriteStateData1 + 8], a -	jr .calcImageIndex -.next -	ld [wSpriteStateData1 + 9], a ; facing direction -	ld a, [wFontLoaded] -	bit 0, a -	jr nz, .notMoving +	call Func_4e32 +	jr .skipSpriteAnim  .moving  	ld a, [wd736]  	bit 7, a ; is the player sprite spinning due to a spin tile?  	jr nz, .skipSpriteAnim -	ld a, [H_CURRENTSPRITEOFFSET] -	add $7 -	ld l, a -	ld a, [hl] -	inc a -	ld [hl], a -	cp 4 -	jr nz, .calcImageIndex -	xor a -	ld [hl], a -	inc hl -	ld a, [hl] -	inc a -	and $3 -	ld [hl], a -.calcImageIndex -	ld a, [wSpriteStateData1 + 8] -	ld b, a -	ld a, [wSpriteStateData1 + 9] -	add b -	ld [wSpriteStateData1 + 2], a +	call Func_5274 +	call Func_4e32  .skipSpriteAnim  ; If the player is standing on a grass tile, make the player's sprite have  ; lower priority than the background so that it's partially obscured by the @@ -89,7 +77,7 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)  ; bit set by later logic.  	ld a, [hTilePlayerStandingOn]  	ld c, a -	ld a, [W_GRASSTILE] +	ld a, [wGrassTile]  	cp c  	ld a, $0  	jr nz, .next2 @@ -98,28 +86,25 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)  	ld [wSpriteStateData2 + $07], a  	ret -UnusedReadSpriteDataFunction: ; 4ec7 (1:4ec7) -	push bc -	push af -	ld a, [H_CURRENTSPRITEOFFSET] -	ld c, a -	pop af -	add c -	ld l, a -	pop bc +Func_4e32: ; 4e32 (1:4e32) +	ld a, [wSpriteStateData1 + 8] +	ld b, a +	ld a, [wSpriteStateData1 + 9] +	add b +	ld [wSpriteStateData1 + 2], a  	ret - -UpdateNPCSprite: ; 4ed1 (1:4ed1) +	 +UpdateNPCSprite: ; 4e3e (1:4e3e)  	ld a, [H_CURRENTSPRITEOFFSET]  	swap a  	dec a  	add a -	ld hl, W_MAPSPRITEDATA +	ld hl, wMapSpriteData  	add l  	ld l, a  	ld a, [hl]        ; read movement byte 2  	ld [wCurSpriteMovement2], a -	ld h, $c1 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	ld l, a  	inc l @@ -128,7 +113,7 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1)  	jp z, InitializeSpriteStatus  	call CheckSpriteAvailability  	ret c             ; if sprite is invisible, on tile >=$60, in grass or player is currently walking -	ld h, $c1 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	ld l, a  	inc l @@ -144,19 +129,21 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1)  	jp z, UpdateSpriteMovementDelay  ; c1x1 == 2  	cp $3  	jp z, UpdateSpriteInWalkingAnimation  ; c1x1 == 3 +	cp $4 +	jp z, Func_5357  	ld a, [wWalkCounter]  	and a  	ret nz           ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)  	call InitializeSpriteScreenPosition -	ld h, $c2 +	ld h, wSpriteStateData2 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $6  	ld l, a  	ld a, [hl]       ; c2x6: movement byte 1  	inc a -	jr z, .randomMovement  ; value $FF +	jp z, .randomMovement  ; value $FF  	inc a -	jr z, .randomMovement  ; value $FE +	jp z, .randomMovement  ; value $FE  ; scripted movement  	dec a  	ld [hl], a       ; increment movement byte 1 (movement data index) @@ -181,12 +168,18 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1)  	ret  .next  	cp $fe -	jr nz, .determineDirection +	jr nz, .asm_4ecb  ; current NPC movement data is $fe. this seems buggy  	ld [hl], $1     ; set movement byte 1 to $1  	ld de, wNPCMovementDirections  	call LoadDEPlusA ; a = [wNPCMovementDirections + $fe] (?) -	jr .determineDirection +.asm_4ecb +	push af +	call Func_5288 +	pop bc +	ld a, b +	jr nc, .determineDirection +	ret  .randomMovement  	call GetTileSpriteStandsOn  	call Random @@ -249,7 +242,7 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1)  	jr TryWalking  ; changes facing direction by zeroing the movement delta and calling TryWalking -ChangeFacingDirection: ; 4fc8 (1:4fc8) +ChangeFacingDirection: ; 4f43 (1:4f43)  	ld de, $0  	; fall through @@ -259,61 +252,27 @@ ChangeFacingDirection: ; 4fc8 (1:4fc8)  ; e: X movement delta (-1, 0 or 1)  ; hl: pointer to tile the sprite would walk onto  ; set carry on failure, clears carry on success -TryWalking: ; 4fcb (1:4fcb) +TryWalking: ; 4f46 (1:4f46)  	push hl -	ld h, $c1 -	ld a, [H_CURRENTSPRITEOFFSET] -	add $9 -	ld l, a -	ld [hl], c          ; c1x9 (update facing direction) -	ld a, [H_CURRENTSPRITEOFFSET] -	add $3 -	ld l, a -	ld [hl], d          ; c1x3 (update Y movement delta) -	inc l -	inc l -	ld [hl], e          ; c1x5 (update X movement delta) +	call Func_5337  	pop hl  	push de -	ld c, [hl]          ; read tile to walk onto +	ld c, [hl]  	call CanWalkOntoTile  	pop de -	ret c               ; cannot walk there (reinitialization of delay values already done) -	ld h, $c2 +	ret c +	call Func_5349  	ld a, [H_CURRENTSPRITEOFFSET] -	add $4  	ld l, a -	ld a, [hl]          ; c2x4: Y position -	add d -	ld [hli], a         ; update Y position -	ld a, [hl]          ; c2x5: X position -	add e -	ld [hl], a          ; update X position -	ld a, [H_CURRENTSPRITEOFFSET] -	ld l, a -	ld [hl], $10        ; c2x0=16: walk animation counter +	ld [hl], $10          ; c1x9 (update facing direction)  	dec h  	inc l -	ld [hl], $3         ; c1x1: set movement status to walking +	ld [hl], $3  	jp UpdateSpriteImage  ; update the walking animation parameters for a sprite that is currently walking -UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe) -	ld a, [H_CURRENTSPRITEOFFSET] -	add $7 -	ld l, a -	ld a, [hl]                       ; c1x7 (counter until next walk animation frame) -	inc a -	ld [hl], a                       ; c1x7 += 1 -	cp $4 -	jr nz, .noNextAnimationFrame -	xor a -	ld [hl], a                       ; c1x7 = 0 -	inc l -	ld a, [hl]                       ; c1x8 (walk animation frame) -	inc a -	and $3 -	ld [hl], a                       ; advance to next animation frame every 4 ticks (16 ticks total for one step) +UpdateSpriteInWalkingAnimation: ; 4f61 (1:4f61) +	call Func_5274  .noNextAnimationFrame  	ld a, [H_CURRENTSPRITEOFFSET]  	add $3 @@ -371,7 +330,7 @@ UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe)  	ret  ; update delay value (c2x8) for sprites in the delayed state (c1x1) -UpdateSpriteMovementDelay: ; 5057 (1:5057) +UpdateSpriteMovementDelay: ; 4fa9 (1:4fa9)  	ld h, $c2  	ld a, [H_CURRENTSPRITEOFFSET]  	add $6 @@ -392,15 +351,15 @@ UpdateSpriteMovementDelay: ; 5057 (1:5057)  	inc a  	ld l, a  	ld [hl], $1             ; c1x1 = 1 (mark as ready to move) -notYetMoving: ; 5073 (1:5073) -	ld h, $c1 +notYetMoving: ; 4fc5 (1:4fc5) +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $8  	ld l, a  	ld [hl], $0             ; c1x8 = 0 (walk animation frame)  	jp UpdateSpriteImage -InitializeSpriteFacingDirection: ; 507f (1:507f) +InitializeSpriteFacingDirection: ; 4fd1 (1:4fd1)  	ld a, [wd72d]  	bit 5, a  	jr nz, notYetMoving @@ -429,7 +388,7 @@ InitializeSpriteFacingDirection: ; 507f (1:507f)  	ld [hl], c              ; c1x9: set facing direction  	jr notYetMoving -InitializeSpriteStatus: ; 50ad (1:50ad) +InitializeSpriteStatus: ; 4fff (1:4fff)  	ld [hl], $1   ; $c1x1: set movement status to ready  	inc l  	ld [hl], $ff  ; $c1x2: set sprite image to $ff (invisible/off screen) @@ -440,39 +399,52 @@ InitializeSpriteStatus: ; 50ad (1:50ad)  	ld a, $8  	ld [hli], a   ; $c2x2: set Y displacement to 8  	ld [hl], a    ; $c2x3: set X displacement to 8 +	call InitializeSpriteScreenPosition ; could have done fallthrough here  	ret  ; calculates the spprite's scrren position form its map position and the player position -InitializeSpriteScreenPosition: ; 50bd (1:50bd) -	ld h, $c2 +InitializeSpriteScreenPosition: ; 5012 (1:5012) +	ld h, wSpriteStateData2 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $4  	ld l, a -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	ld b, a  	ld a, [hl]      ; c2x4 (Y position + 4)  	sub b           ; relative to player position -	swap a          ; * 16 +	call Func_5033  	sub $4          ; - 4  	dec h  	ld [hli], a     ; c1x4 (screen Y position)  	inc h -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	ld b, a  	ld a, [hli]     ; c2x6 (X position + 4)  	sub b           ; relative to player position -	swap a          ; * 16 +	call Func_5033  	dec h  	ld [hl], a      ; c1x6 (screen X position)  	ret +Func_5033: ; 5033 (1:5033) +	jr nc, .asm_503c +	cpl +	inc a +	swap a +	cpl +	inc a +	ret +.asm_503c +	swap a +	ret +  ; tests if sprite is off screen or otherwise unable to do anything -CheckSpriteAvailability: ; 50dc (1:50dc) +CheckSpriteAvailability: ; 503f (1:503f)  	predef IsObjectHidden  	ld a, [$ffe5]  	and a  	jp nz, .spriteInvisible -	ld h, $c2 +	ld h, wSpriteStateData2 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $6  	ld l, a @@ -483,7 +455,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)  	add $4  	ld l, a  	ld b, [hl]      ; c2x4: Y pos (+4) -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	cp b  	jr z, .skipYVisibilityTest  	jr nc, .spriteInvisible ; above screen region @@ -493,7 +465,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)  .skipYVisibilityTest  	inc l  	ld b, [hl]      ; c2x5: X pos (+4) -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	cp b  	jr z, .skipXVisibilityTest  	jr nc, .spriteInvisible ; left of screen region @@ -520,7 +492,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)  	cp d  	jr c, .spriteVisible    ; standing on tile with ID >=$60 (top right tile)  .spriteInvisible -	ld h, $c1 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $2  	ld l, a @@ -537,7 +509,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)  	ld a, [H_CURRENTSPRITEOFFSET]  	add $7  	ld l, a -	ld a, [W_GRASSTILE] +	ld a, [wGrassTile]  	cp c  	ld a, $0  	jr nz, .notInGrass @@ -548,7 +520,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)  .done  	ret -UpdateSpriteImage: ; 5157 (1:5157) +UpdateSpriteImage: ; 50ba (1:50ba)  	ld h, $c1  	ld a, [H_CURRENTSPRITEOFFSET]  	add $8 @@ -573,8 +545,8 @@ UpdateSpriteImage: ; 5157 (1:5157)  ; d: Y movement delta (-1, 0 or 1)  ; e: X movement delta (-1, 0 or 1)  ; set carry on failure, clears carry on success -CanWalkOntoTile: ; 516e (1:516e) -	ld h, $c2 +CanWalkOntoTile: ; 50d1 (1:50d1) +	ld h, wSpriteStateData2 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $6  	ld l, a @@ -585,24 +557,16 @@ CanWalkOntoTile: ; 516e (1:516e)  	and a  	ret  .notScripted -	ld a, [W_TILESETCOLLISIONPTR] -	ld l, a -	ld a, [W_TILESETCOLLISIONPTR+1] -	ld h, a -.tilePassableLoop -	ld a, [hli] -	cp $ff -	jr z, .impassable -	cp c -	jr nz, .tilePassableLoop -	ld h, $c2 +	call _IsTilePassable +	jr c, .impassable +	ld h, wSpriteStateData2 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $6  	ld l, a  	ld a, [hl]         ; $c2x6 (movement byte 1)  	inc a  	jr z, .impassable  ; if $ff, no movement allowed (however, changing direction is) -	ld h, $c1 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $4  	ld l, a @@ -618,17 +582,23 @@ CanWalkOntoTile: ; 516e (1:516e)  	jr nc, .impassable ; don't walk off screen  	push de  	push bc +	ld a, [wUpdateSpritesEnabled] +	push af +	ld a, $ff +	ld [wUpdateSpritesEnabled], a  	call DetectCollisionBetweenSprites +	pop af +	ld [wUpdateSpritesEnabled], a  	pop bc  	pop de -	ld h, $c1 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $c  	ld l, a  	ld a, [hl]         ; c1xc (directions in which sprite collision would occur)  	and b              ; check against chosen direction (1,2,4 or 8)  	jr nz, .impassable ; collision between sprites, don't go there -	ld h, $c2 +	ld h, wSpriteStateData2 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $2  	ld l, a @@ -637,7 +607,7 @@ CanWalkOntoTile: ; 516e (1:516e)  	jr nz, .upwards  	add d  	cp $5 -	jr c, .impassable  ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites +	;jr c, .impassable (bugfix) ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites  	jr .checkHorizontal                          ; from walking out too far, but this line makes sprites get stuck  .upwards                                         ; whenever they walked upwards 5 steps  	sub $1                                       ; on the other hand, the amount a sprite can walk out to the @@ -659,7 +629,7 @@ CanWalkOntoTile: ; 516e (1:516e)  	and a              ; clear carry (marking success)  	ret  .impassable -	ld h, $c1 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	inc a  	ld l, a @@ -684,14 +654,14 @@ CanWalkOntoTile: ; 516e (1:516e)  ; calculates the tile pointer pointing to the tile the current sprite stancs on  ; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to  ; hl: output pointer -GetTileSpriteStandsOn: ; 5207 (1:5207) -	ld h, $c1 +GetTileSpriteStandsOn: ; 516a (1:516a) +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET]  	add $4  	ld l, a  	ld a, [hli]     ; c1x4: screen Y position  	add $4          ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top) -	and $f0         ; in case object is currently moving +	and $f8         ; in case object is currently moving (XXX why changed to $f8?)  	srl a           ; screen Y tile * 4  	ld c, a  	ld b, $0 @@ -713,7 +683,7 @@ GetTileSpriteStandsOn: ; 5207 (1:5207)  	ret  ; loads [de+a] into a -LoadDEPlusA: ; 522f (1:522f) +LoadDEPlusA: ; 5192 (1:5192)  	add e  	ld e, a  	jr nc, .noCarry @@ -722,7 +692,7 @@ LoadDEPlusA: ; 522f (1:522f)  	ld a, [de]  	ret -DoScriptedNPCMovement: ; 5236 (1:5236) +DoScriptedNPCMovement: ; 5199 (1:5199)  ; This is an alternative method of scripting an NPC's movement and is only used  ; a few times in the game. It is used when the NPC and player must walk together  ; in sync, such as when the player is following the NPC somewhere. An NPC can't @@ -793,23 +763,23 @@ DoScriptedNPCMovement: ; 5236 (1:5236)  	inc [hl]  	ret -InitScriptedNPCMovement: ; 52a6 (1:52a6) +InitScriptedNPCMovement: ; 5209 (1:5209)  	xor a  	ld [wNPCMovementDirections2Index], a  	ld a, 8  	ld [wScriptedNPCWalkCounter], a  	jp AnimScriptedNPCMovement -GetSpriteScreenYPointer: ; 52b2 (1:52b2) +GetSpriteScreenYPointer: ; 5215 (1:5215)  	ld a, $4  	ld b, a  	jr GetSpriteScreenXYPointerCommon -GetSpriteScreenXPointer: ; 52b7 (1:52b7) +GetSpriteScreenXPointer: ; 521a (1:521a)  	ld a, $6  	ld b, a -GetSpriteScreenXYPointerCommon: ; 52ba (1:52ba) +GetSpriteScreenXYPointerCommon: ; 521d (1:521d)  	ld hl, wSpriteStateData1  	ld a, [H_CURRENTSPRITEOFFSET]  	add l @@ -817,7 +787,7 @@ GetSpriteScreenXYPointerCommon: ; 52ba (1:52ba)  	ld l, a  	ret -AnimScriptedNPCMovement: ; 52c3 (1:52c3) +AnimScriptedNPCMovement: ; 5226 (1:5226)  	ld hl, wSpriteStateData2  	ld a, [H_CURRENTSPRITEOFFSET]  	add $e @@ -856,21 +826,236 @@ AnimScriptedNPCMovement: ; 52c3 (1:52c3)  	ld [hl], a  	ret -AdvanceScriptedNPCAnimFrameCounter: ; 5301 (1:5301) +AdvanceScriptedNPCAnimFrameCounter: ; 5264 (1:5264) +	call Func_5274 +	ld h, wSpriteStateData1 / $100  	ld a, [H_CURRENTSPRITEOFFSET] -	add $7 +	add $8  	ld l, a  	ld a, [hl] ; intra-animation frame counter +	and $3 +	ld [hSpriteAnimFrameCounter], a +	ret +	 +Func_5274: ; 5274 (1:5274) +	ld a, [H_CURRENTSPRITEOFFSET] +	add $7 +	ld l, a +	ld h, wSpriteStateData1 / $100 +	ld a, [hl]                       ; c1x7 (counter until next walk animation frame)  	inc a -	ld [hl], a -	cp 4 -	ret nz -	xor a -	ld [hl], a ; reset intra-animation frame counter +	and $3 +	ld [hl], a                       ; c1x7 += 1 +	ret nz           	             ; c1x7 = 0  	inc l -	ld a, [hl] ; animation frame counter +	ld a, [hl]                       ; c1x8 (walk animation frame)  	inc a  	and $3 +	ld [hl], a                       ; advance to next animation frame every 4 ticks (16 ticks total for one step) +	ret +	 +Func_5288: ; 5288 (1:5288) +; nice lookup table +; a is supposedly [wNPCMovementDirections + $fe] +	cp $5 +	jr z, .asm_52af +	cp $4 +	jr z, .asm_52aa +	cp $6 +	jr z, .asm_52b4 +	cp $7 +	jr z, .asm_52b9 +	cp $11 +	jr z, .asm_52c3 +	cp $12 +	jr z, .asm_52be +	cp $13 +	jr z, .asm_52c8 +	cp $14 +	jr z, .asm_52cd +	xor a +	ret +; set 1? +.asm_52aa +	call Func_531f +	jr .asm_52e6 +.asm_52af +	call Func_5325 +	jr .asm_52e6 +.asm_52b4 +	call Func_5331 +	jr .asm_52e6 +.asm_52b9 +	call Func_532b +	jr .asm_52e6 +; set 2? +.asm_52be +	call Func_531f +	jr .asm_52fa +.asm_52c3 +	call Func_5325 +	jr .asm_52fa +.asm_52c8 +	call Func_5331 +	jr .asm_52fa +.asm_52cd +	call Func_532b +	jr .asm_52fa +; set 3? (unused) +.asm_52d2 +	call Func_531f +	jr .asm_530b +.asm_52d7 +	call Func_5325 +	jr .asm_530b +.asm_52dc +	call Func_5331 +	jr .asm_530b +.asm_52e1 +	call Func_532b +	jr .asm_530b +	 +.asm_52e6 +	call Func_5337 +	call Func_5349 +	ld a, [H_CURRENTSPRITEOFFSET] +	ld l, a +	ld [hl], $8 +	dec h +	inc l +	ld [hl], $4 +	call UpdateSpriteImage +	scf +	ret + +.asm_52fa +	call Func_5337 +	ld a, [H_CURRENTSPRITEOFFSET] +	ld l, a +	ld [hl], $8 +	dec h +	inc l +	ld [hl], $3 +	call UpdateSpriteImage +	scf +	ret +	 +.asm_530b +	call Func_5337 +	call Func_5349 +	ld a, [H_CURRENTSPRITEOFFSET] +	ld l, a +	ld [hl], $8 +	dec h +	inc l +	ld [hl], $3 +	call UpdateSpriteImage +	scf +	ret +	 +Func_531f: ; 531f (1:531f) +	lb de, 1, 0 +	ld c, SPRITE_FACING_DOWN +	ret +	 +Func_5325: ; 5325 (1:5325) +	lb de, -1, 0 +	ld c, SPRITE_FACING_UP +	ret +	 +Func_532b: ; 532b (1:532b) +	lb de, 0, 1 +	ld c, SPRITE_FACING_RIGHT +	ret +	 +Func_5331: ; 5331 (1:5331) +	lb de, 0, -1 +	ld c, SPRITE_FACING_LEFT +	ret +	 +Func_5337: ; 5337 (1:5337) +	ld a, [H_CURRENTSPRITEOFFSET] +	add $9 +	ld l, a +	ld h, wSpriteStateData1 / $100 +	ld [hl], c          ; c1x9 (update facing direction) +	ld a, [H_CURRENTSPRITEOFFSET] +	add $3 +	ld l, a +	ld [hl], d          ; c1x3 (update Y movement delta) +	inc l +	inc l +	ld [hl], e          ; c1x5 (update X movement delta) +	ret +	 +Func_5349: ; 5349 (1:5349) +	ld h, wSpriteStateData2 / $100 +	ld a, [H_CURRENTSPRITEOFFSET] +	add $4 +	ld l, a +	ld a, [hl]          ; c2x4: Y position +	add d +	ld [hli], a         ; update Y position +	ld a, [hl]          ; c2x5: X position +	add e +	ld [hl], a          ; update X position +	ret +	 +Func_5357: ; 5357 (1:5357) +	call Func_5274 +	ld a, [H_CURRENTSPRITEOFFSET] +	add $3 +	ld l, a +	ld h, wSpriteStateData1 / $100 +	ld a, [hli] +	add a +	ld b, a +	ld a, [hl] +	add b +	ld [hli], a +	ld a, [hli] +	add a +	ld b, a +	ld a, [hl] +	add b  	ld [hl], a -	ld [hSpriteAnimFrameCounter], a +	ld a, [H_CURRENTSPRITEOFFSET] +	ld l, a +	ld h, wSpriteStateData2 / $100 +	dec [hl] +	ret nz +	ld a, $6 +	add l +	ld l, a +	ld a, [hl] +	cp $fe +	jr nc, .asm_5386 +	ld a, [H_CURRENTSPRITEOFFSET] +	inc a +	ld l, a +	ld h, wSpriteStateData1 / $100 +	ld [hl], $1  	ret +.asm_5386 +	call Random +	ld a, [H_CURRENTSPRITEOFFSET] +	add $8 +	ld l, a +	ld h, wSpriteStateData2 / $100 +	ld a, [hRandomAdd] +	and $7f +	ld [hl], a +	dec h +	ld a, [H_CURRENTSPRITEOFFSET] +	inc a +	ld l, a +	ld [hl], $2 +	inc l +	inc l +	xor a +	ld b, [hl] +	ld [hli], a +	inc l +	ld c, [hl] +	ld [hl], a +	ret
\ No newline at end of file diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 098be875..a609fb60 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -52,7 +52,7 @@ PalletMovementScriptPointerTable: ; 1a442 (6:6442)  	dw PalletMovementScript_Done  PalletMovementScript_OakMoveLeft: ; 1a44c (6:644c) -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	sub $a  	ld [wNumStepsToTake], a  	jr z, .playerOnLeftTile @@ -267,7 +267,7 @@ RLEList_PewterGymGuy: ; 1a5da (6:65da)  	db $FF  FreezeEnemyTrainerSprite: ; 1a5e7 (6:65e7) -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp POKEMONTOWER_7  	ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them  	ld hl, RivalIDs diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm index e81375a3..f51c839f 100644 --- a/engine/overworld/oam.asm +++ b/engine/overworld/oam.asm @@ -213,7 +213,7 @@ Func_4a7b: ; 4a7b (1:4a7b)  INCLUDE "engine/oam_dma.asm"  _IsTilePassable:: ; 4aaa (1:4aaa) -	ld hl,W_TILESETCOLLISIONPTR ; pointer to list of passable tiles +	ld hl,wTilesetCollisionPtr ; pointer to list of passable tiles  	ld a,[hli]  	ld h,[hl]  	ld l,a ; hl now points to passable tiles diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm index 4ac60e00..543dac91 100755 --- a/engine/overworld/pewter_guys.asm +++ b/engine/overworld/pewter_guys.asm @@ -17,9 +17,9 @@ PewterGuys: ; 37ca1 (d:7ca1)  	ld a, [hli]  	ld h, [hl]  	ld l, a -	ld a, [W_YCOORD] +	ld a, [wYCoord]  	ld b, a -	ld a, [W_XCOORD] +	ld a, [wXCoord]  	ld c, a  .findMatchingCoordsLoop  	ld a, [hli] diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm index 7d2ec0dd..66ae20ce 100755 --- a/engine/overworld/trainers.asm +++ b/engine/overworld/trainers.asm @@ -291,7 +291,7 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af)  ; tests if the player is in front of the sprite (rather than behind it)  CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3) -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp POWER_PLANT  	jp z, .engage       ; bypass this for power plant to get voltorb fake items to work  	ld a, [wTrainerSpriteOffset] diff --git a/engine/palettes.asm b/engine/palettes.asm index 722b7804..94b20469 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -152,7 +152,7 @@ SetPal_Overworld: ; 71fa5 (1c:5fa5)  	jr z, .PokemonTowerOrAgatha  	cp CAVERN  	jr z, .caveOrBruno -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp REDS_HOUSE_1F  	jr c, .townOrRoute  	cp UNKNOWN_DUNGEON_2 @@ -396,7 +396,7 @@ Func_7213b:: ; 7213b (1c:613b)  	jr z, .PokemonTowerOrAgatha  	cp CAVERN  	jr z, .caveOrBruno -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	cp REDS_HOUSE_1F  	jr c, .townOrRoute  	cp UNKNOWN_DUNGEON_2 diff --git a/engine/predefs17_2.asm b/engine/predefs17_2.asm index a2dac120..c0df7d0a 100755 --- a/engine/predefs17_2.asm +++ b/engine/predefs17_2.asm @@ -8,8 +8,8 @@ SetPartyMonTypes: ; 5db5e (17:5b5e)  	push hl  	call GetMonHeader  	pop hl -	ld a, [W_MONHTYPE1] +	ld a, [wMonHType1]  	ld [hli], a -	ld a, [W_MONHTYPE2] +	ld a, [wMonHType2]  	ld [hl], a  	ret diff --git a/engine/town_map.asm b/engine/town_map.asm index ea60e5a4..aff126ee 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -7,7 +7,7 @@ DisplayTownMap: ; 70eb7 (1c:4eb7)  	push hl  	ld a, $1  	ld [hJoy7], a -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	push af  	ld b, $0  	call DrawPlayerOrBirdSprite ; player sprite @@ -167,7 +167,7 @@ LoadTownMap_Fly: ; 71014 (1c:5014)  	coord hl, 0, 0  	ld de, ToText  	call PlaceString -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld b, $0  	call DrawPlayerOrBirdSprite  	ld hl, wFlyLocationsList @@ -262,9 +262,9 @@ BuildFlyLocationsList: ; 710fb (1c:50fb)  	ld hl, wFlyLocationsList - 1  	ld [hl], $ff  	inc hl -	ld a, [W_TOWNVISITEDFLAG] +	ld a, [wTownVisitedFlag]  	ld e, a -	ld a, [W_TOWNVISITEDFLAG + 1] +	ld a, [wTownVisitedFlag + 1]  	ld d, a  	ld bc, SAFFRON_CITY + 1  .loop @@ -415,7 +415,7 @@ DisplayWildLocations: ; 71279 (1c:5279)  	call PlaceString  	jr .done  .drawPlayerSprite -	ld a, [W_CURMAP] +	ld a, [wCurMap]  	ld b, $0  	call DrawPlayerOrBirdSprite  .done diff --git a/engine/trade.asm b/engine/trade.asm index 66afa47e..4bf90f8a 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -18,14 +18,14 @@ ExternalClockTradeAnim: ; 410f3 (10:50f3)  	ld de, ExternalClockTradeFuncSequence  TradeAnimCommon: ; 41102 (10:5102) -	ld a, [W_OPTIONS] +	ld a, [wOptions]  	push af  	ld a, [hSCY]  	push af  	ld a, [hSCX]  	push af  	xor a -	ld [W_OPTIONS], a +	ld [wOptions], a  	ld [hSCY], a  	ld [hSCX], a  	push de @@ -53,7 +53,7 @@ TradeAnimCommon: ; 41102 (10:5102)  	pop af  	ld [hSCY], a  	pop af -	ld [W_OPTIONS], a +	ld [wOptions], a  	ret  addtradefunc: MACRO | 
