worm 0.90.0503: ctf, example level file
[wormy.git] / wormlvl.z80
index fd1c51a630ba6baac3c4528bd3fbd40d5d723756..57e2d55c7a14dc384d372d01764fdc709e247669 100644 (file)
@@ -1,43 +1,55 @@
+;Drawable screen is (2,2)-(125,54); center is (63.5,28)
+
 #include "asm86.h"
 #include "ti86asm.inc"
 
-  .org $EA00-20
 
-  .db 'T',0          ;worm header (Test version)
-  .dw hiscore-single ;leveldata size
+;---------- HEADER ----------
+
+  .org $F3E3-16
+
+  .db 'w',90
+  .db 16,"Worm LevelPack I"
+  .dw hiscore-single
 
 
 levelsdata:
 
-  .dw single         ;points to singleplayer levels
-  .dw 0              ;...peaworm level (0 = no levels/empty level)
-  .dw deathmatch     ;...deathmatch
-  .dw foodmatch      ;...foodmatch
-  .dw linkmatch      ;...linkmatch
-  .dw hunting        ;...hunting
-  .dw race           ;...race
-  .dw ctf            ;...capture the flag
+  .dw single
+  .dw peaworm
+  .dw deathmatch
+  .dw foodmatch
+  .dw linkmatch
+  .dw race
+  .dw ctf
+  .dw domination
+
+  .db 2,3,4,2
+  .db 2,2,2,2
+
 
+;---------- LEVELS ----------
 
 single:
 
-  .db 5,4,15         ;peas in level, delay (0=fastest), pea-growth
-  .db 15,5           ;begin_size, sprite size (0=use default sprite)
-  .db %01110000      ;sprite
+  .db 5,4,15          ;peas/delay/growth
+  .db 15,5            ;size/spritesize
+  .db %01110000       ;sprite
   .db %10001000
   .db %10001000
   .db %10001000
   .db %01110000
-  .db 0              ;balls (0 or 1)
-  .db 0,2,63         ;your start d (0=down,$80=up), y, x
-  .db 128,57         ;field width (128-255), height (57-255)
-  .db 0,0            ;no additional lines, boxes
+  .db 0               ;balls
+  .db 0,2,63          ;d/y/x
+  .db 128,57          ;field size
+  .db 0,0             ;no lines/boxes
 
-  .db 8,4,15,15,0,0
+  .db 8,4,15,15,0
+  .db 0               ;no sprite
   .db $40,14,2
   .db 128,57
-  .db 1              ;one line:
-  .db 28,28,100,28   ;line coords: x1,y1,x2,y2
+  .db 1
+  .db 28,28,100,28
   .db 0
 
   .db 9,4,15,15,0,0
@@ -48,11 +60,11 @@ single:
   .db 28,41,100,41
   .db 0
 
-  .db 4,3,15,10,0,1  ;...bouncing ball
-  .dw $20F           ;ball begin position
-  .db 0,2,63
+  .db 4,3,15,10,0,1
+  .db 2,4,0           ;ball
+  .db 0,2,124
   .db 128,57
-  .db 2
+  .db 2               ;lines
   .db 28,14,100,41
   .db 28,41,100,14
   .db 0
@@ -68,7 +80,7 @@ single:
   .db 10,3,15,15,0,0
   .db 2,8,$40
   .db 128,90
-  .db 3
+  .db 3               ;lines
   .db 18,20,18,70
   .db 110,20,110,70
   .db 18,45,110,45
@@ -89,14 +101,14 @@ single:
   .db 9,3,15,15,0,0
   .db $40,4,10
   .db 128,82
-  .db 3
+  .db 3               ;lines
   .db 0,20,74,20
   .db 54,40,128,40
   .db 0,60,74,60
   .db 0
 
   .db 12,3,15,15,0,0
-  .db $40,4,0
+  .db $40,2,2
   .db 128,90
   .db 6
   .db 20,16,54,16
@@ -108,9 +120,9 @@ single:
   .db 0
 
   .db 8,2,15,15,0,0
-  .db $C0,72,48
+  .db $C0,67,48
   .db 128,128
-  .db 13
+  .db 13              ;lines
   .db 34,56,56,34
   .db 34,72,56,94
   .db 72,34,94,56
@@ -126,38 +138,64 @@ single:
   .db 91,106,115,106
   .db 0
 
-  .db 255            ;end marker
-
-;Code to run when all levels are done:
-;Worm waits a second, then screen is cleared and this code will be run.
-;End with <ret> (stats-screen will then be displayed.)
-;If you don't want an ending, simply put <ret>.
+  .db 255
 
    ld   hl,endtext
-   call _puts        ;display text
-   jp   _getkey      ;wait for a key
-                     ;jp ? = call ? + ret
+   call _puts         ;display text
+   jp   _getkey       ;wait for a key
+
 endtext:
   .db "  Congratulations!!",0
 
 
+peaworm:
+  .db 5,4,15
+  .db 15,5
+  .db %01110000
+  .db %10001000
+  .db %10001000
+  .db %10001000
+  .db %01110000
+  .db 0
+  .db 0,2,63
+  .db 128,57
+  .db 0,0
+
+  .db 5,4,15,15,0,0
+  .db 0,2,63
+  .db 128,57
+  .db 0,0
+
+
 deathmatch:
   .db 8,5,15,31,0,0
-  .db $40,28,2       ;begin stats for each player
-  .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
+  .db $40,28,2        ;begin stats for each player
+  .db $C0,28,125
+  .db $00,2,63
+  .db $80,54,63
+  .db 128,57          ;field size
   .db 0
-  .db 4              ;4 boxes:
-  .db 16,12,48,12    ;x1,y1,x2,ysize(y2-y1)
-  .db 80,12,112,12   ;...
+  .db 4               ;4 boxes
+  .db 16,12,48,12
+  .db 80,12,112,12
   .db 16,34,48,12
   .db 80,34,112,12
 
+  .db 8,4,18,15,0,0
+  .db $20,2,2,$A0,54,125, $E0,2,125,$60,54,2
+  .db 128,57
+  .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
   .db 128,57
@@ -171,29 +209,19 @@ linkmatch:
   .db 0,0
 
 
-hunting:
-  .db 8,7,15,17,0,0
-  .db $40,28,2,$C0,28,125, $00,2,63,$80,54,63
-  .db 128,57
-  .db 0
-  .db 4
-  .db 4,19,16,14
-  .db 4,19,80,14
-  .db 4,19,16,34
-  .db 4,19,80,34
-
-
 race:
-  .db 8,2,15,10,0,0
+  .db 8,4,15,10,0,0
   .db $40,3,2,$40,6,2, $40,9,2,$40,12,2
   .db 128,57
   .db 0
-  .db 1
-  .db 8,29,32,20
+  .db 2
+  .db 22,21,104,15
+  .db 52,10,74,37
 
 
 hiscore:
-  .dw 0              ;singleplayer hiscore will be saved here
+  .dw 0
+  .dw 1,2
 
 
   .end