diff --git a/028.bs/foreground.tmx b/028.bs/foreground.tmx index 70e462f..1d19dce 100644 --- a/028.bs/foreground.tmx +++ b/028.bs/foreground.tmx @@ -13,7 +13,7 @@ - eJxjYBgFo2AUjIKhCc4D8Uck/kkgNmZkYNBlRKVHAW0BLJwlgfgxlE8IgNR9JKhqFNATjMbJ4AOw/AQrz0bBKBguAADWxQoq + eJxjYBgFo2AUkAvOA/HHgXbECAbo4c/KyMDADcQngWxjIK3LCKFHAW0BLJwlgfgxlA8DsDhBByB1o3mH/gAUF6w48sRonNAf3AVieTxlFCw/wcqzUTAKhgsAAErmDLs= diff --git a/028.bs/game1.s b/028.bs/game1.s index 4488126..b82f518 100644 --- a/028.bs/game1.s +++ b/028.bs/game1.s @@ -242,7 +242,7 @@ Update: .c1: .skipForegroundUpdates: - jsr InstallNextPathwayColor + ;; jsr InstallNextPathwayColor jsr CheckPlayerMiss rts diff --git a/028.bs/player.s b/028.bs/player.s index 848110b..be802e2 100644 --- a/028.bs/player.s +++ b/028.bs/player.s @@ -279,12 +279,16 @@ CheckPlayerMiss: add.l d1,a2 add.l d1,a3 - ;; a2 now points at the tile under the sprite + ;; a2 now points at the pathway tile under the sprite move.w (a2),d0 + + bsr CheckDirection + cmp.w #$78e,d0 bge .noBigBang - move.w (a3),d0 + ;; a3 now points at the tile under the sprite + move.w (a3),d0 cmp.w #$78e,d0 bge .noBigBang @@ -308,6 +312,84 @@ CheckPlayerMiss: .dontClearPathway: rts + +CheckDirection: + cmp.w #$7080,d0 ; dark horizontal + beq .horizontal + cmp.w #$708c,d0 ; light horizontal + beq .horizontal + + cmp.w #$6900,d0 ; dark left-top + beq .topLeft + cmp.w #$690c,d0 ; light left-top + beq .topLeft + + cmp.w #$5a00,d0 ; dark left-bottom + beq .leftBottom + cmp.w #$5a0c,d0 ; light left-bottom + beq .leftBottom + + cmp.w #$4b00,d0 ; dark right-bottom + beq .rightBottom + cmp.w #$4b0c,d0 ; light right-bottom + beq .rightBottom + + cmp.w #$5280,d0 ; dark top-right + beq .topRight + cmp.w #$528c,d0 ; light top-right + beq .topRight + + cmp.w #$6180,d0 ; dark vertical + beq .vertical + cmp.w #$618c,d0 ; light vertical + beq .vertical + + cmp.w #0,d0 + beq .ok + jmp BigBang + +.horizontal: + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteR + beq .ok + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteL + beq .ok + jmp BigBang +.vertical: + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteU + beq .ok + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteD + beq .ok + jmp BigBang + +.topLeft: + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteR + beq .ok + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteD + beq .ok + jmp BigBang +.topRight: + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteD + beq .ok + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteL + beq .ok + jmp BigBang +.rightBottom: + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteU + beq .ok + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteL + beq .ok + jmp BigBang +.leftBottom: + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteR + beq .ok + cmp.w #PLAYER_CHECK_MISS_PIXELS,spriteU + beq .ok + jmp BigBang + +.ok: + rts + + SelectNextPlayerSprite: cmp.l #pigPlayerSpriteConfig,playerSpriteConfig bne .s1