1 #include <stdlib.h>
2 #include <conio.h>
3 #include "xtile21!.h"
4 #include <stdio.h>
5 #include <alloc.h>
6 #include <dos.h>
7
8
9 #define ALLBUTTONS 30
10 #define ALLBANDREDRAW 31
11
12 #define RELOAD (STORE + (1680/4) + 1)
13
14 #define AFTERSPLIT 3200
15
16 #define TRUE 1
17 #define FALSE 0
18
19
20 int Size, Color = 1;
21
22 int LastX = -1;
23 int LastY = -1;
24 float Slp = 0;
25
26
27 FILE *test;
28 char* far mpoint;
29 char* far mmask;
30 char* far mask1;
31 char* far pal;
32 char* far font;
33 char* far fmask;
34
35 char* far hex;
36
37 int Value;
38
39 int X, Y;
40 unsigned int SplitMFlag = NORMALPAGE;
41
42 /*void XUser_MouseHndlr ( unsigned int Mouse_X,
43 unsigned int Mouse_Y,
44 unsigned int Event_Mask ) {
45
46 if ( SplitMFlag == SPLITPAGE ) XSet_Write_Page( PAGE0, 400 );
47
48 XMouse_InActive();
49
50 XPaste_Tile( 0, 0, 8, 8, MOUSERELOAD );
51
52 XSet_Box( Mouse_X, Mouse_Y, 4, 4, 10 );
53 XSet_Write_Page( AFTERSPLIT, 400 );
54
55 XMouse_Active( XLEFT_BUTTON, Mouse_X, Mouse_Y, SplitMFlag );
56 }; */
57 /*
58 void XUser_MouseHndlr ( unsigned int Mouse_X,
59 unsigned int Mouse_Y,
60 unsigned int Event_Mask ) {
61
62 int X;
63
64 XMouse_InActiveS();
65
66 XPaste_Tile( 0, 0, 8, 8, MOUSERELOAD );
67
68
69 if ( Mouse_X > 209 ) X = Mouse_X -209;
70 else
71 X = Mouse_X;
72
73 XSet_Box( X, Mouse_Y, 4, 4, 10 );
74 XSet_Write_Page( AFTERSPLIT, 400 );
75
76 XMouse_ActiveS( XLEFT_BUTTON, Mouse_X, Mouse_Y );
77 };
78
79 */
80
81
82 void main() {
83
84
85 char What[20];
86 int Mode;
87 char Command;
88
89 printf("What mode : ");
90 gets( What );
91 Mode = atoi( What );
92
93 test = fopen("othello.pal", "rb");
94 pal = farmalloc( 768 );
95 fread( pal, sizeof(char), 768, test);
96 fclose( test );
97
98 /* test = fopen("mpoint2.spi", "rb");
99 mpoint = farmalloc( 256 );
100 fread( mpoint, sizeof(char), 256, test);
101 fclose( test );
102
103 test = fopen("mpoint2.spm", "rb");
104 mmask = farmalloc( 64 );
105 fread( mmask, sizeof(char), 64, test);
106 fclose( test );
107 */
108 test = fopen("board.vga", "rb");
109 hex = farmalloc( 16134 );
110 fread( hex, sizeof(char), 16134, test);
111 fclose( test );
112
113 /* test = fopen("test4.fnt", "rb");
114 font = farmalloc( 168 );
115 fread( font, sizeof(char), 168, test);
116 fclose( test );
117
118 test = fopen("test4.msf", "rb");
119 fmask = farmalloc( 24 );
120 fread( fmask, sizeof(char), 24, test);
121 fclose( test );
122
123 */
124 XClear(0);
125
126 XInit_Mode( Mode );
127
128 XClear(0);
129
130
131 XSet_Display_PageP( PAGE0, 320, 240, 0, 0, 0, 255, pal );
132 XSet_Write_Page( PAGE0, 320 );
133
134 X = 168;
135 Y = 96;
136
137 XSet_Clip( 4, 316, 4, 236 );
138 Command = getch();
139 while( (Command != 'q') && (Command != 'Q') ) {
140
141 XSet_Box( 0, 0, 320, 240, 0 );
142 XPut_ScaledBitmap( 4, 4, X, Y, 168, 96, hex+6 );
143
144 switch( Command ) {
145
146 case 'u' : Y++;
147 break;
148
149 case 'm' : Y--;
150 break;
151
152 case 'h' : X++;
153 break;
154
155 case 'k' : Y--;
156 break;
157
158 case 'j' : X = 168;
159 Y = 96;
160 break;
161 };
162
163 Command = getch();
164 };
165
166 /*
167 XSet_SplitScreen( 30 );
168 getch();
169
170 */
171
172
173
174 /*
175 getch();
176 XPut_Tile( 16, 10, 24, 17, hex );
177 XPut_Tile( 17, 29, 24, 17, hex );
178 XPut_Tile( 18, 48, 24, 17, hex );
179 XPut_Tile( 19, 67, 24, 17, hex );
180
181 getch();
182 XPut_TileA( 48, 10, 24, 17, hex );
183 XPut_TileA( 49, 29, 24, 17, hex );
184 XPut_TileA( 50, 48, 24, 17, hex );
185 XPut_TileA( 51, 67, 24, 17, hex );
186
187 getch();
188 XPut_Tile_M( 80, 10, 24, 17, hex );
189
190 getch();
191 XPut_TileA_M( 112, 10, 24, 17, hex );
192 XPut_TileA_M( 113, 29, 24, 17, hex );
193 XPut_TileA_M( 114, 48, 24, 17, hex );
194 XPut_TileA_M( 115, 67, 24, 17, hex );
195
196
197 XUpload_Sprite( STORE, 1680, mpoint );
198
199 XPaste_Tile( 0,0,20,21, STORE);
200 getch();
201
202
203 XReload_TileW( 0,0,20,21, RELOAD);
204
205 do {
206
207 XPaste_Sprite_M( X, Y, 20, 21, STORE, mmask );
208
209 XWait_Retrace();
210
211 XPaste_Tile( X, Y, 20, 21, RELOAD );
212
213 X = X + 2;
214 Y++;
215
216 XReload_TileW( X, Y, 20, 21, RELOAD );
217
218 } while (X < 321 );
219
220 getch();
221
222 XMove_Tile( 100, 100, 16, 16, 40, 40 );
223 getch();
224 XMove_Tile( 100, 100, 16, 16, 100, 150);
225 getch();
226 XMove_Tile( 100, 100, 16, 16, 40, 100);
227 getch();
228 XMove_Tile( 100, 100, 16, 16, 160, 100);
229 getch();
230 XMove_Tile( 100, 100, 16, 16, 108, 108);
231 */
232
233 /* Test fonts */
234 /* XRegister_Font4( STORE, 7, 'A', DONTUPLOADFONT, font );
235 XChar4( 100, 10, 'B');
236 XChar4_M( 100, 25, 'B');
237 getch();
238
239 XString4( 100, 50, DONTMASK, "ABCDEFG");
240 getch();
241 XString4( 100, 65, DOMASK, "ABCDEFG");
242
243 getch();
244
245 XRegister_Font4( STORE, 7, 'A', UPLOADFONT, font );
246 XChar4( 100, 80, 'A');
247 getch();
248 XString4( 100, 100, DONTMASK, "ABCDEFG");
249 Register_Font_Masks4( fmask );
250 getch();
251 XChar4_M( 200, 115, 'A');
252
253 getch();
254 XString4( 100, 130, DOMASK, "ABCDEFG");
255 getch();
256
257 XString4_C( 200, 130, 5, "ABCDEFG");
258 getch();
259
260 */
261 /* XRegister_Mouse( mpoint, mmask, XUser_MouseHndlr );
262
263 XPaste_Sprite_M( 120, 20, 8, 8, MOUSEOFFSET, mmask );
264 XPaste_Sprite_M( 121, 30, 8, 8, MOUSEOFFSET, mmask );
265 XPaste_Sprite_M( 122, 40, 8, 8, MOUSEOFFSET, mmask );
266 XPaste_Sprite_M( 123, 50, 8, 8, MOUSEOFFSET, mmask );
267 */
268 /* getch();
269
270 XMouse_Active( XLEFT_BUTTON, 64, 64, SplitMFlag );
271
272 getch();
273
274 XMouse_InActive();
275
276 SplitMFlag = SPLITPAGE;
277
278 XMouse_Active( XLEFT_BUTTON, 8, 8, SplitMFlag );
279
280 getch();
281
282 XMouse_InActive();
283
284 */
285 /* getch();
286
287 XMouse_ActiveS( XLEFT_BUTTON, 100, 207 );
288
289 getch();
290
291 XMouse_InActiveS();
292
293 getch();
294
295 XMouse_ActiveS( XLEFT_BUTTON, 100, 220 );
296
297 getch();
298
299 XMouse_InActiveS();
300
301 getch();
302
303
304 XSet_View( 12, 12 );
305 getch();
306 XSet_View( 16, 16 );
307 getch();
308 XSet_View( 20, 20 );
309 getch();
310 XSet_View( 24, 24 );
311 getch();
312
313 */
314
315
316
317
318 };
319
|