X-Git-Url: http://git.shiar.nl/wormy.git/blobdiff_plain/14699b6ef3e5d2192b16c8c5c9995d186e63f6d3..7ec10d8466fbe267a3d0a8fe8fbfaed79adbf07f:/wormlvl.z80 diff --git a/wormlvl.z80 b/wormlvl.z80 index 41bf14d..7ad6a49 100644 --- a/wormlvl.z80 +++ b/wormlvl.z80 @@ -1,86 +1,36 @@ -;128x57 FIELD: -; +-----------------+ -;(0,0)> |####(BORDER)#####| -; |#*(2,2) #| -; |# #| -; |#(63,28)*(64,28)#| -; |# #| -; |# (125,54)*#| -; |#################| <(127,56) -; +-----------------+ ;Drawable screen is (2,2)-(125,54); center is (63.5,28) - #include "asm86.h" #include "ti86asm.inc" ;---------- HEADER ---------- - .org $F3E3-16 ;$F3E3-[name size] - ;^^ <-MUST EQUAL NAME SIZE BELOW!!! If not, Worm will crash! + .org $F3E3-16 - .db 'w',90 ;wormLevel header (version .90) - .db 16,"Worm LevelPack I" ;name size (UPDATE .ORG!!!); level name - .dw hiscore-single ;leveldata size + .db 'w',91 + .db 16,"Worm LevelPack I" + .dw hiscore-single levelsdata: - .dw single ;points to singleplayer levels below - .dw peaworm ;...peaworm level - .dw deathmatch ;...deathmatch - .dw foodmatch ;...foodmatch - .dw linkmatch ;...linkmatch - .dw race ;...race - .dw ctf ;...capture the flag - .dw domination ;...domination - -;note: use <.dw 0> if no levels present (empty level will be used). - - .db 2,3,3,2 ;max. choosable level+1 for each gametype - .db 2,2,2,2 ;so: 2 = level 1 only; 4 = level 1 to 3 available + .dw single + .dw peaworm + .dw deathmatch + .dw foodmatch + .dw linkmatch + .dw race + .dw ctf + .dw domination -;again .db 0 indicates no levels present. + .db 1,2,3,1 + .db 1,1,2,1 ;---------- LEVELS ---------- -;LEVEL-FORMAT: -;------------ -; .db 5 ;nr. of peas in level -; .db 4 ;delay (0=fastest, 4=normal) -; .db 15 ;growth per pea -; .db 15 ;begin size -; .db 4 ;sprite size (1-8; 0=use default sprite) -; .db %01100000 ;the sprite -; .db %11110000 -; .db %11110000 -; .db %01100000 -; .db 2 ;bouncing balls (0-40) -; .db 2 ;BALL #1: begin y-position -; .db 4 ; begin-x -; .db %00 ; direction (%00=right+down, %11=left+up) -; .db 2,7,%00 ;BALL #2: y,x,direction -; .db 0 ;your start direction (0=down,$40=right,$80=up,$C0=left) -; .db 2 ;your y-position (2=at top) -; .db 63 ;your x-position (63=center) -; ;IN MULTIPLAYER LEVELS also set positions for worm 2-4: -;(.db $C0,28,125 ) ;player 2 moves left -;(.db $00, 2, 63 ) ;player 3 moves down -;(.db $80,54, 63 ) ;player 4 moves up -; -; .db 128,57 ;field size: width (128-255), height (57-255) -; ; screen will SCROLL if size is more than 128,57 -; .db 2 ;number of lines: -; .db 28,14,100,41 ;LINE #1 coordinates: (x1,y1)-(x2,y2) -; .db 28,41,100,14 ;LINE #2: the same -; .db 1 ;number of boxes: -; .db 16,12,48,12 ;BOX #1: x1,y1,x2,ysize(y2-y1) -;------------ ;THAT'S ALL; repeat for all levels - - -single: ;singleplayer levels start here +single: .db 5,4,15 ;peas/delay/growth .db 15,5 ;size/spritesize @@ -188,17 +138,12 @@ single: ;singleplayer levels start here .db 91,106,115,106 .db 0 - .db 255 ;end marker: no more levels - -;Code to run when all levels are done: -;Worm waits a second, then screen is cleared and this code will be run. -;End with (stats-screen will then be displayed.) -;If you don't want an ending, simply put . + .db 255 ld hl,endtext call _puts ;display text jp _getkey ;wait for a key - ;jp ? = call ? + ret + endtext: .db " Congratulations!!",0 @@ -237,13 +182,18 @@ deathmatch: .db 80,34,112,12 .db 8,4,18,15,0,0 - .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64 + .db $20,2,2,$A0,54,125, $E0,2,125,$60,54,2 .db 128,57 - .db 0,0 + .db 1 + .db 35,28,92,28 + .db 4 + .db 2,20,18,17 + .db 109,20,125,17 + .db 48,2,79,10 + .db 48,47,79,55 foodmatch: -ctf: domination: .db 8,5,18,15,0,0 .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64 @@ -268,9 +218,24 @@ race: .db 52,10,74,37 +ctf: + .db 8,5,18,15,0,0 + .db $20,2,2,$A0,54,125, $20,2,7,$A0,54,120 + .db 128,57 + .db 9,117,46,10 + .db 0,0 + + .db 8,5,18,15,0,0 + .db $60,54,2,$E0,2,125, $60,49,2,$E0,7,125 + .db 128,57 + .db 9,10,46,117 + .db 0,1 + .db 20,14,107,31 + + hiscore: - .dw 0 ;singleplayer hiscore will be saved here - .dw 1,2 ;peaworm hiscore for each peaworm-level + .dw 0 + .dw 0,0 .end