mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 14:01:27 +00:00
level switching wip
This commit is contained in:
+9
-7
@@ -192,14 +192,14 @@ out/panelFade.s: assets/panel.pal ../tools/fade/out/fade
|
||||
out/%_tileFade.s: out/%_tileFadeFrom.pal out/%_tileFadeTo.pal ../tools/fade/out/fade
|
||||
../tools/fade/out/fade --steps=64 --colors=2 --from=out/$*_tileFadeFrom.pal --to=out/$*_tileFadeTo.pal --output=$*_tileFade > out/$*_tileFade.s
|
||||
|
||||
out/foreground-map.s: foreground.tmx
|
||||
../tools/mapgen/out/mapgen --depth=3 --input=foreground.tmx
|
||||
@mv foreground-map.s out
|
||||
out/%_foreground-map.s: levels/%_foreground.tmx
|
||||
../tools/mapgen/out/mapgen --depth=3 --input=levels/$*_foreground.tmx
|
||||
@mv foreground-map.s out/$*_foreground-map.s
|
||||
@rm items-map.s
|
||||
@mv items-indexes.s out
|
||||
@mv items-indexes.s out/$*_items-indexes.s
|
||||
@rm foreground-indexes.s
|
||||
@mv pathway-map.s out
|
||||
@mv pathway-indexes.s out
|
||||
@mv pathway-map.s out/$*_pathway-map.s
|
||||
@mv pathway-indexes.s out/$*_pathway-indexes.s
|
||||
|
||||
|
||||
out/background-map.s: background.tmx
|
||||
@@ -222,7 +222,9 @@ out/chaching.raw: assets/chaching.wav
|
||||
out/yay.raw: assets/yay.wav
|
||||
sox -v 2.0 assets/yay.wav -c 1 -r 4000 -b 8 out/yay.raw
|
||||
|
||||
out/main.o: $(IMAGEDATA) out/background-map.s out/foreground-map.s Makefile link.script.x\
|
||||
out/main.o: $(IMAGEDATA) \
|
||||
out/levelA_foreground-map.s out/levelB_foreground-map.s \
|
||||
out/background-map.s Makefile link.script.x\
|
||||
out/paletteA_playarea_fade.s out/paletteA_flags_fade.s out/paletteA_foreground-palette-table.s out/paletteA_tileFade.s\
|
||||
out/paletteB_playarea_fade.s out/paletteB_flags_fade.s out/paletteB_foreground-palette-table.s out/paletteB_tileFade.s\
|
||||
out/panelFade.s out/jump.raw out/falling.raw out/chaching.raw out/whoosh.raw out/yay.raw
|
||||
|
||||
+61
-111
@@ -86,6 +86,7 @@ Entry:
|
||||
move.w #(DMAF_SPRITE|DMAF_BLITTER|DMAF_SETCLR|DMAF_COPPER|DMAF_RASTER|DMAF_MASTER),DMACON(a6)
|
||||
|
||||
jsr InitialiseItems
|
||||
jsr InstallLevelA
|
||||
Reset:
|
||||
lea livesCounterText,a0
|
||||
bsr DecrementCounter
|
||||
@@ -95,9 +96,11 @@ Reset:
|
||||
lea player1Text,a1
|
||||
move.w #192,d0
|
||||
jsr RenderCounter
|
||||
|
||||
|
||||
move.l startForegroundMapPtr,foregroundMapPtr
|
||||
move.l startPathwayMapPtr,pathwayMapPtr
|
||||
|
||||
move.l startForegroundMapPtr,foregroundMapPtr
|
||||
move.l startPathwayMapPtr,pathwayMapPtr
|
||||
move.w #0,pathwayRenderPending
|
||||
move.w #0,pathwayClearPending
|
||||
move.w #0,moving
|
||||
@@ -117,8 +120,7 @@ Reset:
|
||||
bne .notGameOver
|
||||
bra GameOver
|
||||
.notGameOver:
|
||||
lea message,a1
|
||||
move.w #128,d0
|
||||
move.l startMessage,a1
|
||||
jsr Message
|
||||
|
||||
|
||||
@@ -300,14 +302,12 @@ Update:
|
||||
|
||||
GameOver:
|
||||
lea gameOverMessage,a1
|
||||
move.w #128,d0
|
||||
jsr Message
|
||||
jsr InstallPaletteA
|
||||
jsr InstallLevelA
|
||||
|
||||
jsr WaitForJoystick
|
||||
|
||||
move.l #level1ForegroundMap,startForegroundMapPtr
|
||||
move.l #level1PathwayMap,startPathwayMapPtr
|
||||
|
||||
move.l #'0004',livesCounterText
|
||||
jsr InitialiseItems
|
||||
bra Reset
|
||||
@@ -319,25 +319,22 @@ LevelComplete:
|
||||
jsr ResetPlayer
|
||||
|
||||
jsr SelectNextPlayerSprite
|
||||
move.l nextPaletteInstaller,a0
|
||||
move.l nextLevelInstaller,a0
|
||||
cmp.l #0,(a0)
|
||||
bne .dontResetPaletteInstaller
|
||||
move.l #paletteInstallers,nextPaletteInstaller
|
||||
move.l nextPaletteInstaller,a0
|
||||
.dontResetPaletteInstaller:
|
||||
bne .dontResetLevelInstaller
|
||||
move.l #levelInstallers,nextLevelInstaller
|
||||
move.l nextLevelInstaller,a0
|
||||
.dontResetLevelInstaller:
|
||||
move.l (a0),a1
|
||||
jsr (a1)
|
||||
add.l #4,a0
|
||||
move.l a0,nextPaletteInstaller
|
||||
move.l a0,nextLevelInstaller
|
||||
|
||||
lea levelCompleteMessage,a1
|
||||
move.w #100,d0
|
||||
move.l levelCompleteMessage,a1
|
||||
jsr Message
|
||||
|
||||
jsr WaitForJoystick
|
||||
|
||||
move.l #level1ForegroundMap,startForegroundMapPtr
|
||||
move.l #level1PathwayMap,startPathwayMapPtr
|
||||
move.l #'0004',livesCounterText
|
||||
jsr InitialiseItems
|
||||
bra Reset
|
||||
@@ -876,6 +873,15 @@ Message:
|
||||
;; d0 - xpos
|
||||
;; d1 - ypos
|
||||
|
||||
move.w #SCREEN_WIDTH/2,d0
|
||||
move.l a1,a2
|
||||
.loop:
|
||||
cmp.b #0,(a2)+
|
||||
beq .lengthComplete
|
||||
sub.w #4,d0
|
||||
bra .loop
|
||||
|
||||
.lengthComplete:
|
||||
move.w d0,d1
|
||||
move.w #(32*4)<<6|(8),d0
|
||||
lea mpanelOrig,a0
|
||||
@@ -955,21 +961,13 @@ player2Text:
|
||||
dc.b "P2"
|
||||
dc.b 0
|
||||
align 4
|
||||
|
||||
message:
|
||||
dc.b "LETS PLAY!"
|
||||
dc.b 0
|
||||
align 4
|
||||
|
||||
|
||||
gameOverMessage:
|
||||
dc.b "GAME OVER"
|
||||
dc.b 0
|
||||
align 4
|
||||
|
||||
levelCompleteMessage:
|
||||
dc.b "LEVEL COMPLETE!"
|
||||
dc.b 0
|
||||
align 4
|
||||
|
||||
skippedFramesCounterText:
|
||||
dc.b "0000"
|
||||
@@ -1413,19 +1411,9 @@ InstallFlagGreyPalette:
|
||||
rts
|
||||
|
||||
|
||||
InstallPaletteA:
|
||||
move.l #paletteA_playAreaPalette,playAreaPalette
|
||||
move.l #paletteA_playareaFade,playareaFade
|
||||
move.l #paletteA_flagsFade,flagsFade
|
||||
move.l #paletteA_tileFade,tileFade
|
||||
rts
|
||||
Level A,"LEVEL 1"
|
||||
Level B,"LEVEL 2"
|
||||
|
||||
InstallPaletteB:
|
||||
move.l #paletteB_playAreaPalette,playAreaPalette
|
||||
move.l #paletteB_playareaFade,playareaFade
|
||||
move.l #paletteB_flagsFade,flagsFade
|
||||
move.l #paletteB_tileFade,tileFade
|
||||
rts
|
||||
|
||||
foregroundOnscreen:
|
||||
dc.l foregroundBitplanes1
|
||||
@@ -1438,38 +1426,11 @@ panel:
|
||||
mpanel:
|
||||
incbin "out/mpanel.bin"
|
||||
mpanelOrig:
|
||||
incbin "out/mpanelOrig.bin"
|
||||
level1ForegroundMap:
|
||||
include "out/foreground-map.s"
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
level1PathwayMap:
|
||||
include "out/pathway-map.s"
|
||||
itemsMap:
|
||||
include "out/items-indexes.s"
|
||||
incbin "out/mpanelOrig.bin"
|
||||
itemsMapOffset:
|
||||
dc.l itemsMap-level1ForegroundMap
|
||||
foregroundMapPtr:
|
||||
dc.l 0
|
||||
pathwayMapPtr:
|
||||
dc.l 0
|
||||
startForegroundMapPtr:
|
||||
dc.l level1ForegroundMap
|
||||
startPathwayMapPtr:
|
||||
dc.l level1PathwayMap
|
||||
|
||||
|
||||
|
||||
dc.l levelAItemsMap-levelAForegroundMap
|
||||
foregroundScrollPixels:
|
||||
dc.l FOREGROUND_SCROLL_PIXELS
|
||||
foregroundScrollX:
|
||||
dc.l 0
|
||||
dc.l FOREGROUND_SCROLL_PIXELS
|
||||
frameCount:
|
||||
dc.l 0
|
||||
verticalBlankCount:
|
||||
@@ -1478,18 +1439,8 @@ movingCounter:
|
||||
dc.w 0
|
||||
moving:
|
||||
dc.w 0
|
||||
|
||||
foregroundPlayerTileAddress:
|
||||
dc.l 0
|
||||
pathwayRenderPending:
|
||||
dc.w 0
|
||||
pathwayPlayerTileAddress:
|
||||
dc.l 0
|
||||
pathwayClearPending:
|
||||
dc.w 0
|
||||
pathwayFadeCount:
|
||||
dc.w 0
|
||||
|
||||
tileFadePtr:
|
||||
dc.l 0
|
||||
playareaFadePtr:
|
||||
@@ -1583,32 +1534,6 @@ deAnimIndexPattern:
|
||||
panelGreyPalette:
|
||||
include "out/panel-grey-table.s"
|
||||
|
||||
paletteA_playAreaPalette:
|
||||
include "out/paletteA_foreground-palette-table.s"
|
||||
include "out/background-palette-table.s"
|
||||
|
||||
paletteA_playareaFade:
|
||||
include "out/paletteA_playarea_fade.s"
|
||||
|
||||
paletteA_flagsFade:
|
||||
include "out/paletteA_flags_fade.s"
|
||||
|
||||
paletteA_tileFade:
|
||||
include "out/paletteA_tileFade.s"
|
||||
|
||||
paletteB_playAreaPalette:
|
||||
include "out/paletteB_foreground-palette-table.s"
|
||||
include "out/background-palette-table.s"
|
||||
|
||||
paletteB_playareaFade:
|
||||
include "out/paletteB_playarea_fade.s"
|
||||
|
||||
paletteB_flagsFade:
|
||||
include "out/paletteB_flags_fade.s"
|
||||
|
||||
paletteB_tileFade:
|
||||
include "out/paletteB_tileFade.s"
|
||||
|
||||
playAreaPalette:
|
||||
dc.l paletteA_playAreaPalette
|
||||
playareaFade:
|
||||
@@ -1618,13 +1543,13 @@ flagsFade:
|
||||
tileFade:
|
||||
dc.l paletteA_tileFade
|
||||
|
||||
paletteInstallers:
|
||||
dc.l InstallPaletteA
|
||||
dc.l InstallPaletteB
|
||||
levelInstallers:
|
||||
dc.l InstallLevelA
|
||||
dc.l InstallLevelB
|
||||
dc.l 0
|
||||
|
||||
nextPaletteInstaller:
|
||||
dc.l paletteInstallers+4
|
||||
nextLevelInstaller:
|
||||
dc.l levelInstallers+4
|
||||
|
||||
panelFade:
|
||||
include "out/panelFade.s"
|
||||
@@ -1636,7 +1561,32 @@ foregroundBitplanes1:
|
||||
endif
|
||||
.endSplash
|
||||
ds.b (IMAGESIZE*2)-(.endSplash-foregroundBitplanes1)
|
||||
section .bss
|
||||
|
||||
startMessage:
|
||||
dc.l 0
|
||||
levelCompleteMessage:
|
||||
dc.l 0
|
||||
foregroundMapPtr:
|
||||
dc.l 0
|
||||
pathwayMapPtr:
|
||||
dc.l 0
|
||||
startForegroundMapPtr:
|
||||
dc.l 0
|
||||
startPathwayMapPtr:
|
||||
dc.l 0
|
||||
foregroundPlayerTileAddress:
|
||||
dc.l 0
|
||||
pathwayRenderPending:
|
||||
dc.w 0
|
||||
pathwayPlayerTileAddress:
|
||||
dc.l 0
|
||||
pathwayClearPending:
|
||||
dc.w 0
|
||||
foregroundScrollX:
|
||||
dc.l 0
|
||||
|
||||
section .bss
|
||||
|
||||
startUserstack:
|
||||
ds.b $1000 ; size of stack
|
||||
userstack:
|
||||
|
||||
+2
-1
@@ -6,4 +6,5 @@
|
||||
include "hardware/intbits.i"
|
||||
include "hardware/blit.i"
|
||||
include "constants.i"
|
||||
include "macros.i"
|
||||
include "macros.i"
|
||||
include "level.i"
|
||||
@@ -0,0 +1,54 @@
|
||||
Level: macro
|
||||
InstallLevel\1:
|
||||
move.l #level\1StartMessage,startMessage
|
||||
move.l #level\1CompleteMessage,levelCompleteMessage
|
||||
move.l #level\1ForegroundMap,startForegroundMapPtr
|
||||
move.l #level\1PathwayMap,startPathwayMapPtr
|
||||
move.l #level\1ForegroundMap,foregroundMapPtr
|
||||
move.l #level\1PathwayMap,pathwayMapPtr
|
||||
move.l #palette\1_playAreaPalette,playAreaPalette
|
||||
move.l #palette\1_playareaFade,playareaFade
|
||||
move.l #palette\1_flagsFade,flagsFade
|
||||
move.l #palette\1_tileFade,tileFade
|
||||
rts
|
||||
|
||||
level\1ForegroundMap:
|
||||
include "out/level\1_foreground-map.s"
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
dc.w $FFFF
|
||||
level\1PathwayMap:
|
||||
include "out/level\1_pathway-map.s"
|
||||
level\1ItemsMap:
|
||||
include "out/level\1_items-indexes.s"
|
||||
|
||||
level\1StartMessage:
|
||||
dc.b \2
|
||||
dc.b 0
|
||||
align 4
|
||||
|
||||
level\1CompleteMessage:
|
||||
dc.b \2
|
||||
dc.b " COMPLETE!"
|
||||
dc.b 0
|
||||
align 4
|
||||
|
||||
|
||||
palette\1_playAreaPalette:
|
||||
include "out/palette\1_foreground-palette-table.s"
|
||||
include "out/background-palette-table.s"
|
||||
|
||||
palette\1_playareaFade:
|
||||
include "out/palette\1_playarea_fade.s"
|
||||
|
||||
palette\1_flagsFade:
|
||||
include "out/palette\1_flags_fade.s"
|
||||
|
||||
palette\1_tileFade:
|
||||
include "out/palette\1_tileFade.s"
|
||||
endm
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.0" orientation="orthogonal" renderorder="right-down" width="100" height="8" tilewidth="16" tileheight="16" nextobjectid="1">
|
||||
<tileset firstgid="1" name="foreground" tilewidth="16" tileheight="16" tilecount="320" columns="20">
|
||||
<image source="assets/assets.png" width="320" height="256"/>
|
||||
</tileset>
|
||||
<tileset firstgid="321" name="items" tilewidth="16" tileheight="16" tilecount="320" columns="20">
|
||||
<image source="assets/items.png" trans="000000" width="320" height="256"/>
|
||||
</tileset>
|
||||
<layer name="foreground" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjZ2BgsGLEjtlH5eguZwekmYBYDAtNidxWPHKVNLBvqMtZQuNFC4c8iB5scrvJ1FdPZ33k+AEWH5TE9Wg6p03+wJfulpOZDuidB8iVI9d/1HYnNfLHqBz1yo2hWH/QIp0PFjlYfEgz4G6D0UJuMLYxB5McAAccW5U=
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="pathway" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlD0OwjAMheOhU0+QqSdg4v4HYOoJmDgBEyu10FPdh5M0bRFI5JOiSGli+/mnITT+hbOEcJLl3tjHOK37wTZ7mW1rnR4Vb9fEcglzD3wS6+doDYDz38krf9b33j7vxN9tDPDDsXMtvVh6OmP7FujycnTNfGM/OR/eO/WLGo7OHWiL07qFZW+hJoze2zI7sMU7iPJ+18Zid2Bnjb9Z/TYPXky5eOHDi5NzlkPrPEhaS4le0m+21KQ0Hxb0qPWnuodEnaCVbeiZ3XmucObN3Na8Kbk5Tmkp4Wn07K79Z3McNb31DWrzZvMRf1hXo8wTZUo3PA==
|
||||
</data>
|
||||
</layer>
|
||||
<layer name="items" width="100" height="8">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztVVsOgjAQpNfxFooooqIBq/e/CZDQpJbusw3hg/mEmdnZ2Y8WxY4t4WTkmiNT0xnZDMdrFJkoz7WQY97UL9Zxaf65Gn/foyc87ok7lRk60XpwdNT+ruNY1x+z5DreGfB9AN8hfogbwgvzSBDLleLH0Wq7sOP/au669rhv5B4WuSOEisG1HofDfzJ2S4FEfxB6T/uF+ak+a+Qm4b04uBAajedXoIHmt5nfGsiP2j8G6Tsh7fCK8DX3WBMvIt9v4/l38DEAYj8UWQ==
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
||||
Reference in New Issue
Block a user