diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/movie/oak_speech/init_player_data.asm | 2 | ||||
| -rw-r--r-- | engine/movie/trade.asm | 64 | ||||
| -rw-r--r-- | engine/overworld/cut.asm | 11 | ||||
| -rw-r--r-- | engine/overworld/emotion_bubbles.asm | 11 | ||||
| -rw-r--r-- | engine/overworld/npc_movement_2.asm | 6 |
5 files changed, 55 insertions, 39 deletions
diff --git a/engine/movie/oak_speech/init_player_data.asm b/engine/movie/oak_speech/init_player_data.asm index 25b6067d..d393b333 100644 --- a/engine/movie/oak_speech/init_player_data.asm +++ b/engine/movie/oak_speech/init_player_data.asm @@ -39,7 +39,7 @@ DEF START_MONEY EQU $3000 ld hl, wObtainedBadges ld [hli], a - + assert wObtainedBadges + 1 == wUnusedObtainedBadges ld [hl], a ld hl, wPlayerCoins diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm index 990f1788..be826996 100644 --- a/engine/movie/trade.asm +++ b/engine/movie/trade.asm @@ -312,7 +312,7 @@ Trade_AnimateBallEnteringLinkCable: .moveBallInsideLinkCableLoop push bc xor a - ld de, Trade_BallInsideLinkCableOAM + ld de, Trade_BallInsideLinkCableOAMBlock call WriteOAMBlock ld a, [wLinkCableAnimBulgeToggle] xor $1 @@ -348,9 +348,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 @@ -620,7 +622,7 @@ Trade_AnimCircledMon: Trade_WriteCircledMonOAM: farcall WriteMonPartySpriteOAMBySpecies - call Trade_WriteCircleOAM + call Trade_WriteCircleOAMBlock Trade_AddOffsetsToOAMCoords: ld hl, wShadowOAM @@ -674,11 +676,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 @@ -701,33 +703,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_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 -Trade_CircleOAM0: - dbsprite 2, 7, 0, 0, ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 - dbsprite 2, 7, 0, 2, ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 +.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 -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 +.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 -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 +.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 -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 +.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 8cc76104..d26832ec 100644 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -120,12 +120,15 @@ LoadCutGrassAnimationTilePattern: WriteCutOrBoulderDustAnimationOAMBlock: call GetCutOrBoulderDustAnimationOffsets ld a, $9 - ld de, CutOrBoulderDustAnimationTilesAndAttributes + ld de, .OAMBlock jp WriteOAMBlock -CutOrBoulderDustAnimationTilesAndAttributes: - dbsprite 2, -1, 4, 4, $fd, OAM_OBP1 | OAM_HIGH_PALS - dbsprite 2, -1, 4, 6, $ff, OAM_OBP1 | OAM_HIGH_PALS +.OAMBlock: +; tile ID, attributes + db $fc, OAM_OBP1 | OAM_HIGH_PALS + db $fd, OAM_OBP1 | OAM_HIGH_PALS + db $fe, OAM_OBP1 | OAM_HIGH_PALS + db $ff, OAM_OBP1 | OAM_HIGH_PALS GetCutOrBoulderDustAnimationOffsets: ld hl, wSpritePlayerStateData1YPixels diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm index 61bbc4f5..da9502b0 100644 --- a/engine/overworld/emotion_bubbles.asm +++ b/engine/overworld/emotion_bubbles.asm @@ -54,7 +54,7 @@ EmotionBubble: add $8 ld c, a - ld de, EmotionBubblesOAM + ld de, EmotionBubblesOAMBlock xor a call WriteOAMBlock ld c, 60 @@ -66,9 +66,12 @@ EmotionBubble: ret -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/npc_movement_2.asm b/engine/overworld/npc_movement_2.asm index 2ced9da6..bca9bf52 100644 --- a/engine/overworld/npc_movement_2.asm +++ b/engine/overworld/npc_movement_2.asm @@ -1,7 +1,7 @@ -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 @@ -10,7 +10,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] |
