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 ++++++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 31 deletions(-) (limited to 'engine/movie') 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: -- cgit v1.3.1-sl0p