worm 0.89.0423
[wormy.git] / wormlvl.z80
1 #include "asm86.h"
2 #include "ti86asm.inc"
3
4   .org $E9E3-16       ;$E9E3-[name size]
5
6   .db "89"            ;worm header (version .88)
7   .db 16,"Worm LevelPack I" ;level name
8   .dw hiscore-single  ;leveldata size
9
10
11 levelsdata:
12
13   .dw single          ;points to singleplayer levels
14   .dw 0               ;...peaworm level (0 = no levels/empty level)
15   .dw deathmatch      ;...deathmatch
16   .dw foodmatch       ;...foodmatch
17   .dw linkmatch       ;...linkmatch
18   .dw hunting         ;...hunting
19   .dw race            ;...race
20   .dw ctf             ;...capture the flag
21
22   .db 2,2,3,2         ;max. choosable level+1 for each gametype
23   .db 2,2,2,2         ;so: 2 = level 1 only; 4 = level 1 to 3 available
24
25 single:
26
27   .db 5,4,15          ;peas in level, delay (0=fastest), pea-growth
28   .db 15,5            ;begin_size, sprite size (0=use default sprite)
29   .db %01110000       ;sprite
30   .db %10001000
31   .db %10001000
32   .db %10001000
33   .db %01110000
34   .db 0               ;balls (see below)
35   .db 0,2,63          ;your start d (0=down,$80=up), y, x
36   .db 128,57          ;field width (128-255), height (57-255)
37   .db 0,0             ;no additional lines, boxes
38
39   .db 8,4,15,15,0,0
40   .db $40,14,2
41   .db 128,57
42   .db 1               ;one line:
43   .db 28,28,100,28    ;line coords: x1,y1,x2,y2
44   .db 0
45
46   .db 9,4,15,15,0,0
47   .db $40,8,2
48   .db 128,57
49   .db 2
50   .db 28,14,100,14
51   .db 28,41,100,41
52   .db 0
53
54   .db 4,3,15,10,0,1
55   .db 2,4,0           ;1 bouncing ball, begin y, x, direction (%11=left+up)
56   .db 0,2,124
57   .db 128,57
58   .db 2
59   .db 28,14,100,41
60   .db 28,41,100,14
61   .db 0
62
63   .db 9,3,15,15,0,0
64   .db $40,8,2
65   .db 128,80
66   .db 2
67   .db 64,14,64,66
68   .db 20,40,108,40
69   .db 0
70
71   .db 10,3,15,15,0,0
72   .db 2,8,$40
73   .db 128,90
74   .db 3
75   .db 18,20,18,70
76   .db 110,20,110,70
77   .db 18,45,110,45
78   .db 0
79
80   .db 7,3,15,15,0,0
81   .db 64,4,0
82   .db 128,86
83   .db 6
84   .db 34,13,56,35
85   .db 34,71,56,49
86   .db 72,35,94,13
87   .db 72,49,94,71
88   .db 16,20,16,64
89   .db 110,20,110,64
90   .db 0
91
92   .db 9,3,15,15,0,0
93   .db $40,4,10
94   .db 128,82
95   .db 3
96   .db 0,20,74,20
97   .db 54,40,128,40
98   .db 0,60,74,60
99   .db 0
100
101   .db 12,3,15,15,0,0
102   .db $40,2,2
103   .db 128,90
104   .db 6
105   .db 20,16,54,16
106   .db 74,16,110,16
107   .db 20,16,20,72
108   .db 110,16,110,72
109   .db 20,72,54,72
110   .db 74,72,110,72
111   .db 0
112
113   .db 8,2,15,15,0,0
114   .db $C0,67,48
115   .db 128,128
116   .db 13
117   .db 34,56,56,34
118   .db 34,72,56,94
119   .db 72,34,94,56
120   .db 72,94,94,72
121   .db 46,64,80,64
122   .db 22,11,22,33
123   .db 11,22,33,22
124   .db 22,95,22,117
125   .db 11,106,33,106
126   .db 103,11,103,33
127   .db 91,22,115,22
128   .db 103,95,103,117
129   .db 91,106,115,106
130   .db 0
131
132   .db 255             ;end marker
133
134 ;Code to run when all levels are done:
135 ;Worm waits a second, then screen is cleared and this code will be run.
136 ;End with <ret> (stats-screen will then be displayed.)
137 ;If you don't want an ending, simply put <ret>.
138
139    ld   hl,endtext
140    call _puts         ;display text
141    jp   _getkey       ;wait for a key
142                       ;jp ? = call ? + ret
143 endtext:
144   .db "  Congratulations!!",0
145
146
147 deathmatch:
148   .db 8,5,15,31,0,0
149   .db $40,28,2        ;begin stats for each player
150   .db $C0,28,125      ;player 2 moves left
151   .db $00,2,63        ;player 3 moves down
152   .db $80,54,63       ;player 4 moves up
153   .db 128,57
154   .db 0
155   .db 4               ;4 boxes:
156   .db 16,12,48,12     ;x1,y1,x2,ysize(y2-y1)
157   .db 80,12,112,12    ;...
158   .db 16,34,48,12
159   .db 80,34,112,12
160
161   .db 8,4,18,15,0,0
162   .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64
163   .db 128,57
164   .db 0,0
165
166
167 foodmatch:
168 ctf:
169   .db 8,5,18,15,0,0
170   .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64
171   .db 128,57
172   .db 0,0
173
174
175 linkmatch:
176   .db 8,0,15,15,0,0
177   .db $40,30,2,$C0,30,125, $00,2,64,$80,54,64
178   .db 228,157
179   .db 0,0
180
181
182 hunting:
183   .db 8,7,15,17,0,0
184   .db $40,28,2,$C0,28,125, $00,2,63,$80,54,63
185   .db 128,57
186   .db 0
187   .db 4
188   .db 4,19,16,14
189   .db 4,19,80,14
190   .db 4,19,16,34
191   .db 4,19,80,34
192
193
194 race:
195   .db 8,2,15,10,0,0
196   .db $40,3,2,$40,6,2, $40,9,2,$40,12,2
197   .db 128,57
198   .db 0
199   .db 1
200   .db 8,29,32,20
201
202
203 hiscore:
204   .dw 0               ;singleplayer hiscore will be saved here
205   .dw 0               ;same for peaworm hiscore
206
207
208   .end
209 .end