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