1;; ======================================================================== ;; 2;; Graphics for 'Tank'. ;; 3;; ======================================================================== ;; 4 5 6; Here's what the ugly tank looks like, roughly. It is composed of 3 MOBs 7; to get 3 different colors. The mobs will be displayed half-height. 8; Two of the MOBs will be 8x16, and one will be 8x8. This will allow the 9; turret MOB to also provide some color to the tank treads. 10; 11; 0 1 2 3 4 5 6 7 12; : : : : : : : : : 13; 0 : : : : : : : : : 14; 1 : : : : : : : : : 15; 2 : : : : : : : : : 16; 3 : : : : : : : : : 17; 4 : : : : : : : : : 18; 5 : : : : : : : : : 19; 6 : : ########: : : : : 20; 7 : : ########************: : 21; 8 : : ########: : : : : 22; 9 : ####################: : : 23;10 ################################: 24;11 ################################: 25;12 ############################: : 26;13 : ****++++++++****++++: : : 27;14 : ++++############++++: : : 28;15 : ++++****++++++++****: : : 29; : : : : : : : : : 30; 31 32 33;; ======================================================================== ;; 34;; GFX_DATA: The actual graphics data. ;; 35;; ======================================================================== ;; 36GFX_DATA PROC 37 ;; ------------------------------------------------------------ ;; 38 ;; Tank graphics. ;; 39 ;; ------------------------------------------------------------ ;; 40 41@@tbody: ;; Tank body. 42 gfx_start ;01234567; 43 gfx_row "........" ; 0 44 gfx_row "........" ; 1 45 gfx_row "........" ; 2 46 gfx_row "........" ; 3 47 gfx_row "........" ; 4 48 gfx_row "........" ; 5 49 gfx_row "..##...." ; 6 50 gfx_row "..##...." ; 7 51 gfx_row "..##...." ; 8 52 gfx_row ".#####.." ; 9 53 gfx_row "########" ; 10 54 gfx_row "########" ; 11 55 gfx_row "#######." ; 12 56 gfx_row ".#####.." ; 13 57 gfx_row ".#####.." ; 14 58 gfx_row ".#####.." ; 15 59 gfx_flush ;01234567; 60 61@@tread0: ;; Tank tread, position 0 62 gfx_start ;01234567; 63 gfx_row "........" ; 8 64 gfx_row "........" ; 9 65 gfx_row "........" ; 10 66 gfx_row "........" ; 11 67 gfx_row "........" ; 12 68 gfx_row "..++.+.." ; 13 69 gfx_row ".+...+.." ; 14 70 gfx_row ".+.++..." ; 15 71 gfx_flush ;01234567; 72 73@@tread1: ;; Tank tread, position 1 74 gfx_start ;01234567; 75 gfx_row "........" ; 8 76 gfx_row "........" ; 9 77 gfx_row "........" ; 10 78 gfx_row "........" ; 11 79 gfx_row "........" ; 12 80 gfx_row ".+.++..." ; 13 81 gfx_row ".+...+.." ; 14 82 gfx_row "..++.+.." ; 15 83 gfx_flush ;01234567; 84 85@@tread2: ;; Tank tread, position 2 86 gfx_start ;01234567; 87 gfx_row "........" ; 8 88 gfx_row "........" ; 9 89 gfx_row "........" ; 10 90 gfx_row "........" ; 11 91 gfx_row "........" ; 12 92 gfx_row ".++.++.." ; 13 93 gfx_row "........" ; 14 94 gfx_row ".++.++.." ; 15 95 gfx_flush ;01234567; 96 97 ;; ------------------------------------------------------------ ;; 98 ;; The turret graphic pictures are cut into two sets. Rows ;; 99 ;; 0..7 form the upper half, and change based on the current ;; 100 ;; aiming of the tank. Rows 8..15 form the bottom half, and ;; 101 ;; remain fixed. The lower rows add color to the tank treads. ;; 102 ;; ------------------------------------------------------------ ;; 103 104@@turbot: ;; Turret graphic, bottom half 105 gfx_start ;01234567; 106 gfx_row "........" ; 8 107 gfx_row "........" ; 9 108 gfx_row "........" ; 10 109 gfx_row "........" ; 11 110 gfx_row "........" ; 12 111 gfx_row ".*****.." ; 13 112 gfx_row ".*...*.." ; 14 113 gfx_row ".*****.." ; 15 114 gfx_flush ;01234567; 115 116 117 ; 0 degrees 118 ; 119 ; 0 1 2 3 4 5 6 7 120 ; : : : : : : : : : 121 ; 0 : : : : : : : : : 122 ; 1 : : : : : : : : : 123 ; 2 : : : : : : : : : 124 ; 3 : : : : : : : : : 125 ; 4 : : : : : : : : : 126 ; 5 : : : : : : : : : 127 ; 6 : : ########: : : : : 128 ; 7 : : ########************: : 129 ; 8 : : ########: : : : : 130 ; 9 : ####################: : : 131 ;10 ################################: 132 ;11 ################################: 133 ;12 ############################: : 134 ;13 : ****++++++++****++++: : : 135 ;14 : ++++############++++: : : 136 ;15 : ++++****++++++++****: : : 137 ; : : : : : : : : : 138 139@@tur0: ;; Turret graphic, upper half, 0 degrees (horizontal) 140 gfx_start ;01234567; 141 gfx_row "........" ; 0 142 gfx_row "........" ; 1 143 gfx_row "........" ; 2 144 gfx_row "........" ; 3 145 gfx_row "........" ; 4 146 gfx_row "........" ; 5 147 gfx_row "........" ; 6 148 gfx_row "....***." ; 7 149 gfx_flush ;01234567; 150 151 152 ; 8.1 degrees 153 ; 154 ; 0 1 2 3 4 5 6 7 155 ; : : : : : : : : : 156 ; 0 : : : : : : : : : 157 ; 1 : : : : : : : : : 158 ; 2 : : : : : : : : : 159 ; 3 : : : : : : : : : 160 ; 4 : : : : : : : : : 161 ; 5 : : : : : : : : : 162 ; 6 : : ########: ********: : 163 ; 7 : : ########****: : : : 164 ; 8 : : ########: : : : : 165 ; 9 : ####################: : : 166 ;10 ################################: 167 ;11 ################################: 168 ;12 ############################: : 169 ;13 : ****++++++++****++++: : : 170 ;14 : ++++############++++: : : 171 ;15 : ++++****++++++++****: : : 172 ; : : : : : : : : : 173 174@@tur1: ;; Turret graphic, upper half, 7 degrees 175 gfx_start ;01234567; 176 gfx_row "........" ; 0 177 gfx_row "........" ; 1 178 gfx_row "........" ; 2 179 gfx_row "........" ; 3 180 gfx_row "........" ; 4 181 gfx_row "........" ; 5 182 gfx_row ".....**." ; 6 183 gfx_row "....*..." ; 7 184 gfx_flush ;01234567; 185 186 ; 23 degrees 187 ; 188 ; 0 1 2 3 4 5 6 7 189 ; : : : : : : : : : 190 ; 0 : : : : : : : : : 191 ; 1 : : : : : : : : : 192 ; 2 : : : : : : : : : 193 ; 3 : : : : : : : : : 194 ; 4 : : : : : : ****: : 195 ; 5 : : : : : ****: : : 196 ; 6 : : ########****: : : : 197 ; 7 : : ########: : : : : 198 ; 8 : : ########: : : : : 199 ; 9 : ####################: : : 200 ;10 ################################: 201 ;11 ################################: 202 ;12 ############################: : 203 ;13 : ****++++++++****++++: : : 204 ;14 : ++++############++++: : : 205 ;15 : ++++****++++++++****: : : 206 ; : : : : : : : : : 207 208@@tur2: ;; Turret graphic, upper half, 20 degrees 209 gfx_start ;01234567; 210 gfx_row "........" ; 0 211 gfx_row "........" ; 1 212 gfx_row "........" ; 2 213 gfx_row "........" ; 3 214 gfx_row "......*." ; 4 215 gfx_row ".....*.." ; 5 216 gfx_row "....*..." ; 6 217 gfx_row "........" ; 7 218 gfx_flush ;01234567; 219 220 221 ; 39 degrees 222 ; 223 ; 0 1 2 3 4 5 6 7 224 ; : : : : : : : : : 225 ; 0 : : : : : : : : : 226 ; 1 : : : : : : : : : 227 ; 2 : : : : : ****: : : 228 ; 3 : : : : : ****: : : 229 ; 4 : : : : ****: : : : 230 ; 5 : : : : ****: : : : 231 ; 6 : : ########: : : : : 232 ; 7 : : ########: : : : : 233 ; 8 : : ########: : : : : 234 ; 9 : ####################: : : 235 ;10 ################################: 236 ;11 ################################: 237 ;12 ############################: : 238 ;13 : ****++++++++****++++: : : 239 ;14 : ++++############++++: : : 240 ;15 : ++++****++++++++****: : : 241 ; : : : : : : : : : 242 243@@tur3: ;; Turret graphic, upper half, 39 degrees 244 gfx_start ;01234567; 245 gfx_row "........" ; 0 246 gfx_row "........" ; 1 247 gfx_row ".....*.." ; 2 248 gfx_row ".....*.." ; 3 249 gfx_row "....*..." ; 4 250 gfx_row "....*..." ; 5 251 gfx_row "........" ; 6 252 gfx_row "........" ; 7 253 gfx_flush ;01234567; 254 255 256 ; 257 ; 60 degrees 258 ; 259 ; 0 1 2 3 4 5 6 7 260 ; : : : : : : : : : 261 ; 0 : : : : : : : : : 262 ; 1 : : : : ****: : : : 263 ; 2 : : : : ****: : : : 264 ; 3 : : : ********: : : : 265 ; 4 : : : ****: : : : : 266 ; 5 : : : ****: : : : : 267 ; 6 : : ########: : : : : 268 ; 7 : : ########: : : : : 269 ; 8 : : ########: : : : : 270 ; 9 : ####################: : : 271 ;10 ################################: 272 ;11 ################################: 273 ;12 ############################: : 274 ;13 : ****++++++++****++++: : : 275 ;14 : ++++############++++: : : 276 ;15 : ++++****++++++++****: : : 277 ; : : : : : : : : : 278 ; 279 280@@tur4: ;; Turret graphic, upper half, 60 degrees 281 gfx_start ;01234567; 282 gfx_row "........" ; 0 283 gfx_row "....*..." ; 1 284 gfx_row "....*..." ; 2 285 gfx_row "...**..." ; 3 286 gfx_row "...*...." ; 4 287 gfx_row "...*...." ; 5 288 gfx_row "........" ; 6 289 gfx_row "........" ; 7 290 gfx_flush ;01234567; 291 292 ; 293 ; 75 degrees 294 ; 295 ; 0 1 2 3 4 5 6 7 296 ; : : : : : : : : : 297 ; 0 : : : : ****: : : : 298 ; 1 : : : : ****: : : : 299 ; 2 : : : ********: : : : 300 ; 3 : : : ****; : : : : 301 ; 4 : : : ****: : : : : 302 ; 5 : : : ****: : : : : 303 ; 6 : : ########: : : : : 304 ; 7 : : ########: : : : : 305 ; 8 : : ########: : : : : 306 ; 9 : ####################: : : 307 ;10 ################################: 308 ;11 ################################: 309 ;12 ############################: : 310 ;13 : ****++++++++****++++: : : 311 ;14 : ++++############++++: : : 312 ;15 : ++++****++++++++****: : : 313 ; : : : : : : : : : 314 ; 315 316@@tur5: ;; Turret graphic, upper half, 75 degrees 317 gfx_start ;01234567; 318 gfx_row "....*..." ; 0 319 gfx_row "....*..." ; 1 320 gfx_row "...**..." ; 2 321 gfx_row "...*...." ; 3 322 gfx_row "...*...." ; 4 323 gfx_row "...*...." ; 5 324 gfx_row "........" ; 6 325 gfx_row "........" ; 7 326 gfx_flush ;01234567; 327 328 329 ; 330 ; 331 ; 90 degrees 332 ; 333 ; 0 1 2 3 4 5 6 7 334 ; : : : : : : : : : 335 ; 0 : : : ****: : : : : 336 ; 1 : : : ****: : : : : 337 ; 2 : : : ****: : : : : 338 ; 3 : : : ****: : : : : 339 ; 4 : : : ****: : : : : 340 ; 5 : : : ****: : : : : 341 ; 6 : : ########: : : : : 342 ; 7 : : ########: : : : : 343 ; 8 : : ########: : : : : 344 ; 9 : ####################: : : 345 ;10 ################################: 346 ;11 ################################: 347 ;12 ############################: : 348 ;13 : ****++++++++****++++: : : 349 ;14 : ++++############++++: : : 350 ;15 : ++++****++++++++****: : : 351 ; : : : : : : : : : 352 353@@tur6: ;; Turret graphic, upper half, 90 degrees 354 gfx_start ;01234567; 355 gfx_row "...*...." ; 0 356 gfx_row "...*...." ; 1 357 gfx_row "...*...." ; 2 358 gfx_row "...*...." ; 3 359 gfx_row "...*...." ; 4 360 gfx_row "...*...." ; 5 361 gfx_row "........" ; 6 362 gfx_row "........" ; 7 363 gfx_flush ;01234567; 364 365 366 ;; ------------------------------------------------------------ ;; 367 ;; Miscellaneous other graphics. ;; 368 ;; ------------------------------------------------------------ ;; 369 370@@exp0: ;; Frame 0 of an explosion. Explosions are normal res 8x8 MOBs. 371 372 gfx_start ;01234567; 373 gfx_row "........" ; 0 374 gfx_row "........" ; 1 375 gfx_row "........" ; 2 376 gfx_row "........" ; 3 377 gfx_row "........" ; 4 378 gfx_row "........" ; 5 379 gfx_row "........" ; 6 380 gfx_row "...##..." ; 7 381 gfx_flush ;01234567; 382 383@@exp1: ;; Frame 1 of an explosion. 384 385 gfx_start ;01234567; 386 gfx_row "........" ; 0 387 gfx_row "........" ; 1 388 gfx_row "........" ; 2 389 gfx_row "........" ; 3 390 gfx_row "........" ; 4 391 gfx_row "........" ; 5 392 gfx_row "...##..." ; 6 393 gfx_row "..####.." ; 7 394 gfx_flush ;01234567; 395 396@@exp2: ;; Frame 2 of an explosion. 397 398 gfx_start ;01234567; 399 gfx_row "........" ; 0 400 gfx_row "........" ; 1 401 gfx_row "........" ; 2 402 gfx_row "........" ; 3 403 gfx_row "........" ; 4 404 gfx_row "..####.." ; 5 405 gfx_row ".######." ; 6 406 gfx_row "..#..#.." ; 7 407 gfx_flush ;01234567; 408 409@@exp3: ;; Frame 3 of an explosion. 410 411 gfx_start ;01234567; 412 gfx_row "........" ; 0 413 gfx_row "........" ; 1 414 gfx_row "........" ; 2 415 gfx_row "........" ; 3 416 gfx_row "..####.." ; 4 417 gfx_row ".######." ; 5 418 gfx_row ".##..##." ; 6 419 gfx_row "..####.." ; 7 420 gfx_flush ;01234567; 421 422@@exp4: ;; Frame 4 of an explosion. 423 424 gfx_start ;01234567; 425 gfx_row "........" ; 0 426 gfx_row "........" ; 1 427 gfx_row "........" ; 2 428 gfx_row ".#.##.#." ; 3 429 gfx_row "#.####.#" ; 4 430 gfx_row ".##..##." ; 5 431 gfx_row ".######." ; 6 432 gfx_row "..#..#.." ; 7 433 gfx_flush ;01234567; 434 435@@exp5: ;; Frame 5 of an explosion. 436 437 gfx_start ;01234567; 438 gfx_row "........" ; 0 439 gfx_row "........" ; 1 440 gfx_row "..#..#.." ; 2 441 gfx_row "#......#" ; 3 442 gfx_row "..####.." ; 4 443 gfx_row ".##..##." ; 5 444 gfx_row ".#....#." ; 6 445 gfx_row "........" ; 7 446 gfx_flush ;01234567; 447 448@@exp6: ;; Frame 6 of an explosion. 449 450 gfx_start ;01234567; 451 gfx_row "........" ; 0 452 gfx_row "........" ; 1 453 gfx_row "...##..." ; 2 454 gfx_row ".#....#." ; 3 455 gfx_row "........" ; 4 456 gfx_row "#......#" ; 5 457 gfx_row "........" ; 6 458 gfx_row "........" ; 7 459 gfx_flush ;01234567; 460 461@@exp7: ;; Frame 7 of an explosion. 462 463 gfx_start ;01234567; 464 gfx_row "........" ; 0 465 gfx_row "........" ; 1 466 gfx_row "..#..#.." ; 2 467 gfx_row "#......#" ; 3 468 gfx_row "........" ; 4 469 gfx_row "........" ; 5 470 gfx_row "........" ; 6 471 gfx_row "........" ; 7 472 gfx_flush ;01234567; 473 474 475@@bullet: ;; This is the projectile we'll be firing. For now it is an 476 ;; uninspiring dot. 477 gfx_start ;01234567; 478 gfx_row "........" ; 0 479 gfx_row "........" ; 1 480 gfx_row "........" ; 2 481 gfx_row "........" ; 3 482 gfx_row "........" ; 4 483 gfx_row "........" ; 5 484 gfx_row "........" ; 6 485 gfx_row ".......#" ; 7 486 gfx_flush ;01234567; 487 488 489@@gram_img: ;; These cards are loaded in the beginning of GRAM at the 490 ;; start of the game 491 492 493 ; degrees symbol. Loaded in GRAM #0 494@@degsym: 495 gfx_start ;01234567; 496 gfx_row ".###...." 497 gfx_row ".#.#...." 498 gfx_row ".###...." 499 gfx_row "........" 500 gfx_row "........" 501 gfx_row "........" 502 gfx_row "........" 503 gfx_flush 504 505 ; horizontal bar. This forms the top edge of status row. 506@@st_bar: 507 gfx_start ;01234567; 508 gfx_row "........" 509 gfx_row "........" 510 gfx_row "........" 511 gfx_row "........" 512 gfx_row "........" 513 gfx_row "........" 514 gfx_row "........" 515 gfx_row "########" 516 gfx_flush 517 518@@gram_end 519 ENDP 520 521 522;; ======================================================================== ;; 523;; GFX: Short-hand names for referring to individual pictures in above. ;; 524;; These labels are integer picture numbers that fit in 8-bit mem. ;; 525;; ======================================================================== ;; 526GFX PROC 527@@tbody EQU (GFX_DATA.tbody - GFX_DATA) / 4 528@@tread0 EQU (GFX_DATA.tread0 - GFX_DATA) / 4 529@@tread1 EQU (GFX_DATA.tread1 - GFX_DATA) / 4 530@@tread2 EQU (GFX_DATA.tread2 - GFX_DATA) / 4 531@@turbot EQU (GFX_DATA.turbot - GFX_DATA) / 4 532@@tur0 EQU (GFX_DATA.tur0 - GFX_DATA) / 4 533@@tur1 EQU (GFX_DATA.tur1 - GFX_DATA) / 4 534@@tur2 EQU (GFX_DATA.tur2 - GFX_DATA) / 4 535@@tur3 EQU (GFX_DATA.tur3 - GFX_DATA) / 4 536@@tur4 EQU (GFX_DATA.tur4 - GFX_DATA) / 4 537@@tur5 EQU (GFX_DATA.tur5 - GFX_DATA) / 4 538@@tur6 EQU (GFX_DATA.tur6 - GFX_DATA) / 4 539@@exp0 EQU (GFX_DATA.exp0 - GFX_DATA) / 4 540@@exp1 EQU (GFX_DATA.exp1 - GFX_DATA) / 4 541@@exp2 EQU (GFX_DATA.exp2 - GFX_DATA) / 4 542@@exp3 EQU (GFX_DATA.exp3 - GFX_DATA) / 4 543@@exp4 EQU (GFX_DATA.exp4 - GFX_DATA) / 4 544@@exp5 EQU (GFX_DATA.exp5 - GFX_DATA) / 4 545@@exp6 EQU (GFX_DATA.exp6 - GFX_DATA) / 4 546@@exp7 EQU (GFX_DATA.exp7 - GFX_DATA) / 4 547@@bullet EQU (GFX_DATA.bullet - GFX_DATA) / 4 548 549@@none EQU $80 550 551@@gram_size EQU GFX_DATA.gram_end - GFX_DATA.gram_img 552 553@@degsym EQU (GFX_DATA.degsym - GFX_DATA.gram_img) / 4 554@@st_bar EQU (GFX_DATA.st_bar - GFX_DATA.gram_img) / 4 555 556 ENDP 557