diff --git a/028.bs/constants.i b/028.bs/constants.i index c7819da..0f38853 100644 --- a/028.bs/constants.i +++ b/028.bs/constants.i @@ -27,6 +27,15 @@ SPLASH_USE_FOREGROUND equ 0 PATHWAY_FADE_TIMER_COUNT equ 100 +PATHWAY_CONFIG_FREE equ 0 +PATHWAY_CONFIG_HORIZONTAL equ 1 +PATHWAY_CONFIG_VERTICAL equ 2 +PATHWAY_CONFIG_TOP_LEFT equ 3 +PATHWAY_CONFIG_TOP_RIGHT equ 4 +PATHWAY_CONFIG_BOT_LEFT equ 5 +PATHWAY_CONFIG_BOT_RIGHT equ 6 + + FOREGROUND_DELAY_BIT equ 0 FOREGROUND_SCROLL_SHIFT_CONVERT equ 4 FOREGROUND_SCROLL_TILE_INDEX_CONVERT equ 3 diff --git a/028.bs/levels/levelA_foreground.tmx b/028.bs/levels/levelA_foreground.tmx index 7050d39..49ef434 100644 --- a/028.bs/levels/levelA_foreground.tmx +++ b/028.bs/levels/levelA_foreground.tmx @@ -13,12 +13,12 @@ - eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA== + eJztVDsOwjAMtYdOPUGmnoCp9z8AU0/A1BMwsUKErD4eTpq0RSCRJ1WW8vF7z44r0vAvGFXkpK+xYR+mx3c9OGevS+7Yp1vF3RItZ1newCeBPEd7MHD9O33WD7n3vvNO/YgajIe1cy89LT2tcX6E+fJqdMnsMU+Ow7sXea2Hk3PGvAWoP3Kxx4hZts2O5eJoCPp+FrVgNOCs8R76xzp4mnJ6jcPTOUv5PMY+D5r2kjqPelJ3tvRkbT5Yy+j4HhJ9Yu24hpHnyta8mSutm4fcHKe8rMHz6OUt/Wezjpq39Q3U1g3rEX7YV8M67n5mN/0= - eJztlVsOgyAQRWVp1arYh5Ko+9+KmpSEUuYpNX54PvHOneFOgkVxcSZKI6+5MWuckfXwuodiJsrzKHL02/LFMq7Mt1bjH3p0hMdz552qDJloPTh1I6HxGaeynsyv1uvugO8LOIf0Mdi+4nkkQHNp4dxHm4Vdv9efrG2gdcg+HLJHiJqhDXty9G9CMx/8ZknY7hfPT+VpGTuR0BA1Gs8c/fvEOTUrRspP6yn9T0gzbBH9v/exl+Hk813kYwFAERLp + eJztlV0OgyAQhOFo1tpSqy1J2/tfRUlKshJhf0DCg98jzs4uswkqddISF82v6Yg1VvN6eN0omAnzrEWJfi7fVMa93mol/tDjgXg8M+/UF8hE6kGp+yAanzEla7i7a0Q/Rc5j+pDUvr4ZWcfmkkK5jzQLs34f/lkboLVBHdyHZezRMxC0sCdFPyOaX+U3i4O7Xzg/lqch7ITDDamReJbo/9o5x2ZNsecn9eT+J7gZ3hP6o/eRy7vx+U7KsQCydRKU diff --git a/028.bs/levels/levelB_foreground.tmx b/028.bs/levels/levelB_foreground.tmx index 7050d39..14ffb24 100644 --- a/028.bs/levels/levelB_foreground.tmx +++ b/028.bs/levels/levelB_foreground.tmx @@ -8,17 +8,17 @@ - eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1FdPZ33k+AEWH5TE9Wg6p03+wJfulpOZDuidB8iVI9d/1HYnNfLHqBz1yo2hWH/QIp0PFjlYfEgz4G6D0UJuMLYxB5McAAccW5U= + eJxjZ2BgsGLEjtlH5eguZwektwKxGBAzodF2WMSIlcNnZiUN7BvqcpbQeNHCIQ+iB5vcbjL11dNZHzl+gMUHJXE9ms7pnz+Wk5kO6J0HyJUj13/Udic18seoHPXKDeT8Qe88MJjS+WCRg8WHNAPuNhgt5AZjG3MwyQEAaJtcNA== - eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA== + eJztVEEOgkAMbA+ceAEnXuCJ/z/AEy/wxAs8edXGNNSxLQti3EQmMTVbaGc6W4gO1IiBiU78Gmus+Q8YH7+rEwn+74WW59ri023FuyVczjTfgW/C9tlTQ8PPGWG0Odv703vesB8V6pP0Qe7opcelhTOsb6G6vBldkhz2yXp470lf9XB08p4nthdqFEy0bXe0FkZFx+/PWi42KuyuYc7qt3PwOGV8tYfHc6LyfRSfe461ZPuhfCL/t3iytB/IfXB094FPqhVryJmNuFd65u1cCc8I2R5HWiLOmIugdUu/2chjzd36BbK5Zc/LPLqKdR1Yxh1ayD2g - eJztlVsOgyAQRWVp1arYh5Ko+9+KmpSEUuYpNX54PvHOneFOgkVxcSZKI6+5MWuckfXwuodiJsrzKHL02/LFMq7Mt1bjH3p0hMdz552qDJloPTh1I6HxGaeynsyv1uvugO8LOIf0Mdi+4nkkQHNp4dxHm4Vdv9efrG2gdcg+HLJHiJqhDXty9G9CMx/8ZknY7hfPT+VpGTuR0BA1Gs8c/fvEOTUrRspP6yn9T0gzbBH9v/exl+Hk813kYwFAERLp + eJztlVkOgzAMRMnRgFIoSxup0PsfpUUiUhrilYD44H2G8dgZSyHLLs5EYeQ1ObPGGlkPp2sVM1GeR5Gi35wvlnFp/rUaf9/jQXh0G+9UJshE68GpexMal3Es69GstU53A3x74BzSh2D7CueRAM2lhXMfbRbN73u1ZN14WovswyJ7hKgYWr8nRz8QmungN0vCfL9w/g9jVz6xnUi4EzUazxT9n5FzalaMmJ/WU/qfkGZYI/q997GV18nnu0jHF6ItEv4= diff --git a/028.bs/macros.i b/028.bs/macros.i index b898c8a..6768cfe 100644 --- a/028.bs/macros.i +++ b/028.bs/macros.i @@ -100,6 +100,16 @@ ItemControl: macro PlayerMoveRight: macro + cmp.w #PATHWAY_CONFIG_VERTICAL,pathwayLastConfig + beq .\@miss + cmp.w #PATHWAY_CONFIG_TOP_LEFT,pathwayLastConfig + beq .\@miss + cmp.w #PATHWAY_CONFIG_BOT_LEFT,pathwayLastConfig + beq .\@miss + bra .\@ok +.\@miss: + move.w #1,pathwayMissPending +.\@ok: move.w playerJumpPixels,d1 add.w playerPausePixels,d1 move.w d1,spriteR @@ -124,6 +134,16 @@ PlayerMoveDown: macro endm PlayerMoveLeft: macro + cmp.w #PATHWAY_CONFIG_VERTICAL,pathwayLastConfig + beq .\@miss + cmp.w #PATHWAY_CONFIG_TOP_RIGHT,pathwayLastConfig + beq .\@miss + cmp.w #PATHWAY_CONFIG_BOT_RIGHT,pathwayLastConfig + beq .\@miss + bra .\@ok +.\@miss: + move.w #1,pathwayMissPending +.\@ok: move.w playerJumpPixels,d1 add.w playerPausePixels,d1 move.w d1,spriteL diff --git a/028.bs/map.s b/028.bs/map.s index 18e3cc7..cb87b31 100644 --- a/028.bs/map.s +++ b/028.bs/map.s @@ -6,9 +6,8 @@ RenderPathway: move.l pathwayPlayerTileAddress,d5 andi.w #$fff0,d5 ; point the address to the last tile of the previous column - addq #2,d5 ; move.l d5,a4 - move.w #1,d5 + move.w #0,d5 .loopX: move.w #6,d6 ; y index move.w #0,d7 ; number of rows without a pathway diff --git a/028.bs/player.s b/028.bs/player.s index 96575d1..db2ee89 100644 --- a/028.bs/player.s +++ b/028.bs/player.s @@ -29,6 +29,9 @@ ResetPlayer: add.l #6*PLAYER_SPRITE_VERTICAL_BYTES,d0 move.l d0,currentSprite + move.w #PATHWAY_CONFIG_FREE,pathwayLastConfig + move.w #0,pathwayMissPending + bsr SpriteDisableAuto move.w #0,spritePlayerFallingAnimation move.w #PLAYER_INITIAL_X,spriteX @@ -286,6 +289,11 @@ CheckPlayerMiss: rts .check: + cmp.w #1,pathwayMissPending + beq .doBigBang + + move.w #PATHWAY_CONFIG_FREE,pathwayLastConfig + move.l pathwayMapPtr,a2 move.l foregroundMapPtr,a3 @@ -488,36 +496,42 @@ CheckDirection: jmp BigBang .horizontal: + move.w #PATHWAY_CONFIG_HORIZONTAL,pathwayLastConfig cmp.w spriteR,d1 beq .ok cmp.w spriteL,d1 beq .ok jmp BigBang .vertical: + move.w #PATHWAY_CONFIG_VERTICAL,pathwayLastConfig cmp.w spriteU,d1 beq .ok cmp.w spriteD,d1 beq .ok jmp BigBang .topLeft: + move.w #PATHWAY_CONFIG_TOP_LEFT,pathwayLastConfig cmp.w spriteR,d1 beq .ok cmp.w spriteD,d1 beq .ok jmp BigBang .topRight: + move.w #PATHWAY_CONFIG_TOP_RIGHT,pathwayLastConfig cmp.w spriteD,d1 beq .ok cmp.w spriteL,d1 beq .ok jmp BigBang .rightBottom: + move.w #PATHWAY_CONFIG_BOT_RIGHT,pathwayLastConfig cmp.w spriteU,d1 beq .ok cmp.w spriteL,d1 beq .ok jmp BigBang .leftBottom: + move.w #PATHWAY_CONFIG_BOT_LEFT,pathwayLastConfig cmp.w spriteR,d1 beq .ok cmp.w spriteU,d1 @@ -595,4 +609,9 @@ playerJumpPixels: playerPausePixels dc.w PLAYER_PAUSE_PIXELS playerMissPixels - dc.w PLAYER_CHECK_MISS_PIXELS \ No newline at end of file + dc.w PLAYER_CHECK_MISS_PIXELS +pathwayLastConfig: + dc.w PATHWAY_CONFIG_FREE +pathwayMissPending: + dc.w 0 + \ No newline at end of file