From af36156a5bbd571f97378f10d1357b1da8f555cd Mon Sep 17 00:00:00 2001 From: Vortyne <104168801+Vortyne@users.noreply.github.com> Date: Wed, 25 Sep 2024 23:02:15 -0400 Subject: This byte is written to, but not used (#471) it's written to in init_player_data.asm ``` ld hl, wObtainedBadges ld [hli], a ld [hl], a ``` --- engine/movie/oak_speech/init_player_data.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine') diff --git a/engine/movie/oak_speech/init_player_data.asm b/engine/movie/oak_speech/init_player_data.asm index 492e8068..6b0a1a11 100644 --- a/engine/movie/oak_speech/init_player_data.asm +++ b/engine/movie/oak_speech/init_player_data.asm @@ -34,7 +34,7 @@ DEF START_MONEY EQU $3000 ld hl, wObtainedBadges ld [hli], a - + assert wObtainedBadges + 1 == wUnusedObtainedBadges ld [hl], a ld hl, wPlayerCoins -- cgit v1.3.1-sl0p From 1aa3fb24ec2d5002dc7b755776f42e855b709970 Mon Sep 17 00:00:00 2001 From: Vortyne <104168801+Vortyne@users.noreply.github.com> Date: Sun, 29 Sep 2024 18:54:41 -0400 Subject: `dbsprite` is the wrong macro for `WriteOAMBlock` data (#472) --- engine/movie/trade.asm | 72 ++++++++++++++++++++---------------- engine/overworld/cut.asm | 11 ++++-- engine/overworld/emotion_bubbles.asm | 11 ++++-- engine/overworld/ledges.asm | 11 ++++-- scripts/VermilionDock.asm | 2 +- 5 files changed, 63 insertions(+), 44 deletions(-) (limited to 'engine') diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm index 14a53a24..fd1c6ac1 100644 --- a/engine/movie/trade.asm +++ b/engine/movie/trade.asm @@ -309,7 +309,7 @@ Trade_AnimateBallEnteringLinkCable: .moveBallInsideLinkCableLoop push bc xor a - ld de, Trade_BallInsideLinkCableOAM + ld de, Trade_BallInsideLinkCableOAMBlock call WriteOAMBlock ld a, [wLinkCableAnimBulgeToggle] xor $1 @@ -345,9 +345,11 @@ Trade_AnimateBallEnteringLinkCable: ldh [hAutoBGTransferEnabled], a ret -Trade_BallInsideLinkCableOAM: - dbsprite 0, 15, 0, 6, $7e, OAM_HFLIP - dbsprite 8, 15, 0, 6, $7e, OAM_HFLIP | OAM_VFLIP +Trade_BallInsideLinkCableOAMBlock: + db $7e, 0 + db $7e, OAM_HFLIP + db $7e, OAM_VFLIP + db $7e, OAM_HFLIP | OAM_VFLIP Trade_ShowEnemyMon: ld a, TRADE_BALL_TILT_ANIM @@ -616,7 +618,7 @@ Trade_AnimCircledMon: Trade_WriteCircledMonOAM: farcall WriteMonPartySpriteOAMBySpecies - call Trade_WriteCircleOAM + call Trade_WriteCircleOAMBlock Trade_AddOffsetsToOAMCoords: ld hl, wShadowOAM @@ -670,11 +672,11 @@ Trade_AnimMonMoveVertical: jr nz, .loop ret -Trade_WriteCircleOAM: +Trade_WriteCircleOAMBlock: ; Writes the OAM blocks for the circle around the traded mon as it passes ; the link cable. - ld hl, Trade_CircleOAMPointers - ld c, $4 + ld hl, Trade_CircleOAMBlocks + ld c, 4 xor a .loop push bc @@ -697,33 +699,41 @@ Trade_WriteCircleOAM: jr nz, .loop ret -MACRO trade_circle_oam +MACRO trade_circle_oam_block + ; oam block pointer, upper-left x coord, upper-left y coord dw \1 db \2, \3 ENDM -Trade_CircleOAMPointers: - ; oam pointer, upper-left x coord, upper-left y coord - trade_circle_oam Trade_CircleOAM0, $08, $08 - trade_circle_oam Trade_CircleOAM1, $18, $08 - trade_circle_oam Trade_CircleOAM2, $08, $18 - trade_circle_oam Trade_CircleOAM3, $18, $18 - -Trade_CircleOAM0: - dbsprite 2, 7, 0, 0, ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 - dbsprite 2, 7, 0, 2, ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 - -Trade_CircleOAM1: - dbsprite 6, 7, 0, 1, ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP - dbsprite 6, 7, 0, 3, ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP - -Trade_CircleOAM2: - dbsprite 10, 7, 0, 2, ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_VFLIP - dbsprite 10, 7, 0, 0, ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_VFLIP - -Trade_CircleOAM3: - dbsprite 14, 7, 0, 3, ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP - dbsprite 14, 7, 0, 1, ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP +Trade_CircleOAMBlocks: + trade_circle_oam_block .OAMBlock0, 8, 8 + trade_circle_oam_block .OAMBlock1, 24, 8 + trade_circle_oam_block .OAMBlock2, 8, 24 + trade_circle_oam_block .OAMBlock3, 24, 24 + +.OAMBlock0: + db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 + db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 + db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 + db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 + +.OAMBlock1: + db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_HFLIP + db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP + db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_HFLIP + db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP + +.OAMBlock2: + db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_VFLIP + +.OAMBlock3: + db ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP + db ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP ; a = species Trade_LoadMonSprite: diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 3e514672..2f839f8c 100644 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -119,12 +119,15 @@ LoadCutGrassAnimationTilePattern: WriteCutOrBoulderDustAnimationOAMBlock: call GetCutOrBoulderDustAnimationOffsets ld a, $9 - ld de, CutOrBoulderDustAnimationTilesAndAttributes + ld de, .OAMBlock jp WriteOAMBlock -CutOrBoulderDustAnimationTilesAndAttributes: - dbsprite 2, -1, 0, 4, $fd, OAM_OBP1 - dbsprite 2, -1, 0, 6, $ff, OAM_OBP1 +.OAMBlock: +; tile ID, attributes + db $fc, OAM_OBP1 + db $fd, OAM_OBP1 + db $fe, OAM_OBP1 + db $ff, OAM_OBP1 GetCutOrBoulderDustAnimationOffsets: ld hl, wSpritePlayerStateData1YPixels diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm index d25d5ff1..d44a12ce 100644 --- a/engine/overworld/emotion_bubbles.asm +++ b/engine/overworld/emotion_bubbles.asm @@ -51,7 +51,7 @@ EmotionBubble: add $8 ld c, a - ld de, EmotionBubblesOAM + ld de, EmotionBubblesOAMBlock xor a call WriteOAMBlock ld c, 60 @@ -67,9 +67,12 @@ EmotionBubblesPointerTable: dw QuestionEmote dw HappyEmote -EmotionBubblesOAM: - dbsprite 0, -1, 0, 0, $f9, 0 - dbsprite 0, -1, 0, 2, $fb, 0 +EmotionBubblesOAMBlock: +; tile ID, attributes + db $f8, 0 + db $f9, 0 + db $fa, 0 + db $fb, 0 EmotionBubbles: ShockEmote: INCBIN "gfx/emotes/shock.2bpp" diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index 73733e15..d88cef76 100644 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -63,7 +63,7 @@ LoadHoppingShadowOAM: call CopyVideoDataDouble ld a, $9 lb bc, $54, $48 ; b, c = y, x coordinates of shadow - ld de, LedgeHoppingShadowOAM + ld de, LedgeHoppingShadowOAMBlock call WriteOAMBlock ret @@ -71,6 +71,9 @@ LedgeHoppingShadow: INCBIN "gfx/overworld/shadow.1bpp" LedgeHoppingShadowEnd: -LedgeHoppingShadowOAM: - dbsprite 2, -1, 0, 7, $ff, OAM_HFLIP - dbsprite 8, -1, 0, 7, $ff, OAM_HFLIP | OAM_VFLIP +LedgeHoppingShadowOAMBlock: +; tile ID, attributes + db $ff, OAM_OBP1 + db $ff, OAM_HFLIP + db $ff, OAM_VFLIP + db $ff, OAM_HFLIP | OAM_VFLIP diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm index 11f9a09f..532a9bb5 100644 --- a/scripts/VermilionDock.asm +++ b/scripts/VermilionDock.asm @@ -155,7 +155,7 @@ VermilionDock_EmitSmokePuff: ret VermilionDockOAMBlock: - ; tile id, attribute +; tile ID, attributes db $fc, $10 db $fd, $10 db $fe, $10 -- cgit v1.3.1-sl0p From 678d014aef79fe62d38acfeb59cade17e6137f74 Mon Sep 17 00:00:00 2001 From: Vortyne <104168801+Vortyne@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:03:26 -0400 Subject: `FreezeEnemyTrainerSprite` -> `SetEnemyTrainerToStayAndFaceAnyDirection` --- engine/overworld/auto_movement.asm | 6 +++--- home/map_objects.asm | 4 ++-- home/trainers.asm | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'engine') diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm index 8a45735f..0452176e 100644 --- a/engine/overworld/auto_movement.asm +++ b/engine/overworld/auto_movement.asm @@ -266,10 +266,10 @@ RLEList_PewterGymGuy: db NPC_MOVEMENT_RIGHT, 3 db -1 ; end -FreezeEnemyTrainerSprite:: +SetEnemyTrainerToStayAndFaceAnyDirection:: ld a, [wCurMap] cp POKEMON_TOWER_7F - ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them + ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't set them ld hl, RivalIDs ld a, [wEngagedTrainerClass] ld b, a @@ -278,7 +278,7 @@ FreezeEnemyTrainerSprite:: cp -1 jr z, .notRival cp b - ret z ; the rival leaves after battling, so don't freeze him + ret z ; the rival leaves after battling, so don't set him jr .loop .notRival ld a, [wSpriteIndex] diff --git a/home/map_objects.asm b/home/map_objects.asm index e200238a..e0d9b6a5 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -219,9 +219,9 @@ SetSpriteMovementBytesToFE:: SetSpriteMovementBytesToFF:: push hl call GetSpriteMovementByte1Pointer - ld [hl], $FF + ld [hl], STAY call GetSpriteMovementByte2Pointer - ld [hl], $FF ; prevent person from walking? + ld [hl], NONE pop hl ret diff --git a/home/trainers.asm b/home/trainers.asm index bcd15850..04752cc2 100644 --- a/home/trainers.asm +++ b/home/trainers.asm @@ -358,7 +358,7 @@ PrintEndBattleText:: pop af ldh [hLoadedROMBank], a ld [MBC1RomBank], a - farcall FreezeEnemyTrainerSprite + farcall SetEnemyTrainerToStayAndFaceAnyDirection jp WaitForSoundToFinish GetSavedEndBattleTextPointer:: -- cgit v1.3.1-sl0p