+;Drawable screen is (2,2)-(125,54); center is (63.5,28)
+
#include "asm86.h"
#include "ti86asm.inc"
- .org $F3E3-16 ;$E9E3-[name size]
- .db 'w',89 ;wormLevel header (version .89)
- .db 16,"Worm LevelPack I" ;level name
- .dw hiscore-single ;leveldata size
+;---------- HEADER ----------
+
+ .org $F3E3-16
+
+ .db 'w',91
+ .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 1,2,3,1
+ .db 6,1,2,1
- .db 2,2,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
+
+;---------- 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 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 (see below)
- .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
.db 0
.db 4,3,15,10,0,1
- .db 2,4,0 ;1 bouncing ball, begin y, x, direction (%11=left+up)
+ .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
.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
.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 8,2,15,15,0,0
.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
.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
+
endtext:
.db " Congratulations!!",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
+peaworm:
+ .db 5,4,15
+ .db 15,5
+ .db %01110000
+ .db %10001000
+ .db %10001000
+ .db %10001000
+ .db %01110000
.db 0
- .db 4 ;4 boxes:
- .db 16,12,48,12 ;x1,y1,x2,ysize(y2-y1)
- .db 80,12,112,12 ;...
- .db 16,34,48,12
- .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 0,2,63
.db 128,57
.db 0,0
-
-foodmatch:
-ctf:
- .db 8,5,18,15,0,0
- .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64
+ .db 5,4,15,15,0,0
+ .db 0,2,63
.db 128,57
.db 0,0
.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
+deathmatch:
+ .db 8,5,15,31,0,0
+ .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
+ .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 4,19,16,14
- .db 4,19,80,14
- .db 4,19,16,34
- .db 4,19,80,34
+ .db 2,20,18,17
+ .db 109,20,125,17
+ .db 48,2,79,10
+ .db 48,47,79,55
+
+
+foodmatch:
+domination:
+ .db 8,5,18,15,0,0
+ .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64
+ .db 128,57
+ .db 0,0
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
+
+
+ctf:
+ .db 8,5,18,15,0,0
+ .db $00,2,62,$00,2,64, $20,2,7,$A0,54,120
+ .db 128,57
+ .db 46,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 0 ;same for peaworm hiscore
+ .dw 0
+ .dw 0,0
.end