ADATA.CPP (113266B)
1 // 2 // Copyright 2020 Electronic Arts Inc. 3 // 4 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is free 5 // software: you can redistribute it and/or modify it under the terms of 6 // the GNU General Public License as published by the Free Software Foundation, 7 // either version 3 of the License, or (at your option) any later version. 8 9 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed 10 // in the hope that it will be useful, but with permitted additional restrictions 11 // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 12 // distributed with this program. You should have received a copy of the 13 // GNU General Public License along with permitted additional restrictions 14 // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection 15 16 /* $Header: /CounterStrike/ADATA.CPP 3 3/07/97 4:27p Joe_bostic $ */ 17 /*********************************************************************************************** 18 *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S *** 19 *********************************************************************************************** 20 * * 21 * Project Name : Command & Conquer * 22 * * 23 * File Name : ADATA.CPP * 24 * * 25 * Programmer : Joe L. Bostic * 26 * * 27 * Start Date : May 30, 1994 * 28 * * 29 * Last Update : July 9, 1996 [JLB] * 30 * * 31 *---------------------------------------------------------------------------------------------* 32 * Functions: * 33 * AnimTypeClass::AnimTypeClass -- Constructor for animation types. * 34 * AnimTypeClass::One_Time -- Performs one time action for animation types. * 35 * AnimTypeClass::Init -- Load any animation artwork that is theater specific. * 36 * Anim_Name -- Fetches the ASCII name of the animation type specified. * 37 * AnimTypeClass::As_Reference -- Fetch a reference to the animation type specified. * 38 * AnimTypeClass::Init_Heap -- Initialize the animation type system. * 39 * AnimTypeClass::operator new -- Allocate an animation type object from private pool. * 40 * AnimTypeClass::operator delete -- Returns an anim type class object back to the pool. * 41 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 42 43 #include "function.h" 44 45 static AnimTypeClass const AtomBomb( 46 ANIM_ATOM_BLAST, // Animation number. 47 "ATOMSFX", // Data name of animation. 48 72, // Maximum dimension of animation. 49 19, // Biggest animation stage. 50 false, // Theater specific art imagery? 51 false, // Normalized animation rate? 52 false, // Uses white translucent table? 53 true, // Scorches the ground? 54 true, // Forms a crater? 55 false, // Sticks to unit in square? 56 false, // Ground level animation? 57 false, // Translucent colors in this animation? 58 false, // Is this a flame thrower animation? 59 0, // Damage to apply per tick (fixed point). 60 1, // Delay between frames. 61 0, // Starting frame number. 62 0, // Loop start frame number. 63 0, // Ending frame of loop back. 64 -1, // Number of animation stages. 65 0, // Number of times the animation loops. 66 VOC_NONE, // Sound effect to play. 67 ANIM_NONE, 68 75, // Virtual stages 69 0x300 // Virtual scale 70 ); 71 72 static AnimTypeClass const SputDoor( 73 ANIM_SPUTDOOR, // Animation number. 74 "SPUTDOOR", // Data name of animation. 75 42, // Maximum dimension of animation. 76 1, // Biggest animation stage. 77 false, // Theater specific art imagery? 78 true, // Normalized animation rate? 79 false, // Uses white translucent table? 80 false, // Scorches the ground? 81 false, // Forms a crater? 82 false, // Sticks to unit in square? 83 false, // Ground level animation? 84 false, // Translucent colors in this animation? 85 false, // Is this a flame thrower animation? 86 0, // Damage to apply per tick (fixed point). 87 1, // Delay between frames. 88 0, // Starting frame number. 89 0, // Loop start frame number. 90 -1, // Ending frame of loop back. 91 -1, // Number of animation stages. 92 1, // Number of times the animation loops. 93 VOC_NONE, // Sound effect to play. 94 ANIM_NONE 95 ); 96 97 // Electrocution death anim from Tesla coil 98 static AnimTypeClass const ElectricDie( 99 ANIM_ELECT_DIE, // Animation number. 100 "ELECTRO", // Data name of animation. 101 16, // Maximum dimension of animation. 102 0, // Biggest animation stage. 103 true, // Theater specific art imagery? 104 false, // Normalized animation rate? 105 false, // Uses white translucent table? 106 true, // Scorches the ground? 107 false, // Forms a crater? 108 false, // Sticks to unit in square? 109 true, // Ground level animation? 110 false, // Translucent colors in this animation? 111 false, // Is this a flame thrower animation? 112 0, // Damage to apply per tick (fixed point). 113 1, // Delay between frames. 114 0, // Starting frame number. 115 0, // Loop start frame number. 116 3, // Ending frame of loop back. 117 -1, // Number of animation stages. 118 5, // Number of times the animation loops. 119 VOC_NONE, // Sound effect to play. 120 ANIM_FIRE_MED 121 ); 122 123 // Electrocution death anim from Tesla coil for dog 124 static AnimTypeClass const DogElectricDie( 125 ANIM_DOG_ELECT_DIE, // Animation number. 126 "ELECTDOG", // Data name of animation. 127 17, // Maximum dimension of animation. 128 0, // Biggest animation stage. 129 false, // Theater specific art imagery? 130 false, // Normalized animation rate? 131 false, // Uses white translucent table? 132 true, // Scorches the ground? 133 false, // Forms a crater? 134 false, // Sticks to unit in square? 135 true, // Ground level animation? 136 false, // Translucent colors in this animation? 137 false, // Is this a flame thrower animation? 138 0, // Damage to apply per tick (fixed point). 139 1, // Delay between frames. 140 0, // Starting frame number. 141 0, // Loop start frame number. 142 3, // Ending frame of loop back. 143 -1, // Number of animation stages. 144 5, // Number of times the animation loops. 145 VOC_NONE, // Sound effect to play. 146 ANIM_FIRE_MED 147 ); 148 149 static AnimTypeClass const SAMN( 150 ANIM_SAM_N, // Animation number. 151 "SAMFIRE", // Data name of animation. 152 55, // Maximum dimension of animation. 153 4, // Biggest animation stage. 154 false, // Theater specific art imagery? 155 false, // Normalized animation rate? 156 false, // Uses white translucent table? 157 false, // Scorches the ground? 158 false, // Forms a crater? 159 false, // Sticks to unit in square? 160 false, // Ground level animation? 161 false, // Translucent colors in this animation? 162 false, // Is this a flame thrower animation? 163 0, // Damage to apply per tick (fixed point). 164 1, // Delay between frames. 165 18*0, // Starting frame number. 166 0, // Loop start frame number. 167 0, // Ending frame of loop back. 168 18, // Number of animation stages. 169 0, // Number of times the animation loops. 170 VOC_NONE, // Sound effect to play. 171 ANIM_NONE 172 ); 173 static AnimTypeClass const SAMNW( 174 ANIM_SAM_NW, // Animation number. 175 "SAMFIRE", // Data name of animation. 176 55, // Maximum dimension of animation. 177 22, // Biggest animation stage. 178 false, // Theater specific art imagery? 179 false, // Normalized animation rate? 180 false, // Uses white translucent table? 181 false, // Scorches the ground? 182 false, // Forms a crater? 183 false, // Sticks to unit in square? 184 false, // Ground level animation? 185 false, // Translucent colors in this animation? 186 false, // Is this a flame thrower animation? 187 0, // Damage to apply per tick (fixed point). 188 1, // Delay between frames. 189 18*1, // Starting frame number. 190 0, // Loop start frame number. 191 0, // Ending frame of loop back. 192 18, // Number of animation stages. 193 0, // Number of times the animation loops. 194 VOC_NONE, // Sound effect to play. 195 ANIM_NONE 196 ); 197 static AnimTypeClass const SAMW( 198 ANIM_SAM_W, // Animation number. 199 "SAMFIRE", // Data name of animation. 200 55, // Maximum dimension of animation. 201 40, // Biggest animation stage. 202 false, // Theater specific art imagery? 203 false, // Normalized animation rate? 204 false, // Uses white translucent table? 205 false, // Scorches the ground? 206 false, // Forms a crater? 207 false, // Sticks to unit in square? 208 false, // Ground level animation? 209 false, // Translucent colors in this animation? 210 false, // Is this a flame thrower animation? 211 0, // Damage to apply per tick (fixed point). 212 1, // Delay between frames. 213 18*2, // Starting frame number. 214 0, // Loop start frame number. 215 0, // Ending frame of loop back. 216 18, // Number of animation stages. 217 0, // Number of times the animation loops. 218 VOC_NONE, // Sound effect to play. 219 ANIM_NONE 220 ); 221 static AnimTypeClass const SAMSW( 222 ANIM_SAM_SW, // Animation number. 223 "SAMFIRE", // Data name of animation. 224 55, // Maximum dimension of animation. 225 58, // Biggest animation stage. 226 false, // Theater specific art imagery? 227 false, // Normalized animation rate? 228 false, // Uses white translucent table? 229 false, // Scorches the ground? 230 false, // Forms a crater? 231 false, // Sticks to unit in square? 232 false, // Ground level animation? 233 false, // Translucent colors in this animation? 234 false, // Is this a flame thrower animation? 235 0, // Damage to apply per tick (fixed point). 236 1, // Delay between frames. 237 18*3, // Starting frame number. 238 0, // Loop start frame number. 239 0, // Ending frame of loop back. 240 18, // Number of animation stages. 241 0, // Number of times the animation loops. 242 VOC_NONE, // Sound effect to play. 243 ANIM_NONE 244 ); 245 static AnimTypeClass const SAMS( 246 ANIM_SAM_S, // Animation number. 247 "SAMFIRE", // Data name of animation. 248 55, // Maximum dimension of animation. 249 76, // Biggest animation stage. 250 false, // Theater specific art imagery? 251 false, // Normalized animation rate? 252 false, // Uses white translucent table? 253 false, // Scorches the ground? 254 false, // Forms a crater? 255 false, // Sticks to unit in square? 256 false, // Ground level animation? 257 false, // Translucent colors in this animation? 258 false, // Is this a flame thrower animation? 259 0, // Damage to apply per tick (fixed point). 260 1, // Delay between frames. 261 18*4, // Starting frame number. 262 0, // Loop start frame number. 263 0, // Ending frame of loop back. 264 18, // Number of animation stages. 265 0, // Number of times the animation loops. 266 VOC_NONE, // Sound effect to play. 267 ANIM_NONE 268 ); 269 static AnimTypeClass const SAMSE( 270 ANIM_SAM_SE, // Animation number. 271 "SAMFIRE", // Data name of animation. 272 55, // Maximum dimension of animation. 273 94, // Biggest animation stage. 274 false, // Theater specific art imagery? 275 false, // Normalized animation rate? 276 false, // Uses white translucent table? 277 false, // Scorches the ground? 278 false, // Forms a crater? 279 false, // Sticks to unit in square? 280 false, // Ground level animation? 281 false, // Translucent colors in this animation? 282 false, // Is this a flame thrower animation? 283 0, // Damage to apply per tick (fixed point). 284 1, // Delay between frames. 285 18*5, // Starting frame number. 286 0, // Loop start frame number. 287 0, // Ending frame of loop back. 288 18, // Number of animation stages. 289 0, // Number of times the animation loops. 290 VOC_NONE, // Sound effect to play. 291 ANIM_NONE 292 ); 293 static AnimTypeClass const SAME( 294 ANIM_SAM_E, // Animation number. 295 "SAMFIRE", // Data name of animation. 296 55, // Maximum dimension of animation. 297 112, // Biggest animation stage. 298 false, // Theater specific art imagery? 299 false, // Normalized animation rate? 300 false, // Uses white translucent table? 301 false, // Scorches the ground? 302 false, // Forms a crater? 303 false, // Sticks to unit in square? 304 false, // Ground level animation? 305 false, // Translucent colors in this animation? 306 false, // Is this a flame thrower animation? 307 0, // Damage to apply per tick (fixed point). 308 1, // Delay between frames. 309 18*6, // Starting frame number. 310 0, // Loop start frame number. 311 0, // Ending frame of loop back. 312 18, // Number of animation stages. 313 0, // Number of times the animation loops. 314 VOC_NONE, // Sound effect to play. 315 ANIM_NONE 316 ); 317 static AnimTypeClass const SAMNE( 318 ANIM_SAM_NE, // Animation number. 319 "SAMFIRE", // Data name of animation. 320 55, // Maximum dimension of animation. 321 130, // Biggest animation stage. 322 false, // Theater specific art imagery? 323 false, // Normalized animation rate? 324 false, // Uses white translucent table? 325 false, // Scorches the ground? 326 false, // Forms a crater? 327 false, // Sticks to unit in square? 328 false, // Ground level animation? 329 false, // Translucent colors in this animation? 330 false, // Is this a flame thrower animation? 331 0, // Damage to apply per tick (fixed point). 332 1, // Delay between frames. 333 18*7, // Starting frame number. 334 0, // Loop start frame number. 335 0, // Ending frame of loop back. 336 18, // Number of animation stages. 337 0, // Number of times the animation loops. 338 VOC_NONE, // Sound effect to play. 339 ANIM_NONE 340 ); 341 342 static AnimTypeClass const LZSmoke( 343 ANIM_LZ_SMOKE, // Animation number. 344 "SMOKLAND", // Data name of animation. 345 32, // Maximum dimension of animation. 346 72, // Biggest animation stage. 347 false, // Theater specific art imagery? 348 true, // Normalized animation rate? 349 false, // Uses white translucent table? 350 false, // Scorches the ground? 351 false, // Forms a crater? 352 false, // Sticks to unit in square? 353 true, // Ground level animation? 354 false, // Translucent colors in this animation? 355 false, // Is this a flame thrower animation? 356 0, // Damage to apply per tick (fixed point). 357 2, // Delay between frames. 358 0, // Starting frame number. 359 72, // Loop start frame number. 360 91, // Ending frame of loop back. 361 -1, // Number of animation stages. 362 127, // Number of times the animation loops. 363 VOC_NONE, // Sound effect to play. 364 ANIM_NONE 365 ); 366 367 /* 368 ** Flammable object burning animations. Primarily used on trees and buildings. 369 */ 370 static AnimTypeClass const BurnSmall( 371 ANIM_BURN_SMALL, // Animation number. 372 "BURN-S", // Data name of animation. 373 11, // Maximum dimension of animation. 374 13, // Biggest animation stage. 375 false, // Theater specific art imagery? 376 false, // Normalized animation rate? 377 false, // Uses white translucent table? 378 false, // Scorches the ground? 379 false, // Forms a crater? 380 false, // Sticks to unit in square? 381 true, // Ground level animation? 382 false, // Translucent colors in this animation? 383 false, // Is this a flame thrower animation? 384 fixed(1, 32), // Damage to apply per tick (fixed point). 385 2, // Delay between frames. 386 0, // Starting frame number. 387 30, // Loop start frame number. 388 62, // Ending frame of loop back. 389 -1, // Number of animation stages. 390 4, // Number of times the animation loops. 391 VOC_NONE, // Sound effect to play. 392 ANIM_NONE 393 ); 394 static AnimTypeClass const BurnMed( 395 ANIM_BURN_MED, // Animation number. 396 "BURN-M", // Data name of animation. 397 14, // Maximum dimension of animation. 398 13, // Biggest animation stage. 399 false, // Theater specific art imagery? 400 false, // Normalized animation rate? 401 false, // Uses white translucent table? 402 false, // Scorches the ground? 403 false, // Forms a crater? 404 false, // Sticks to unit in square? 405 true, // Ground level animation? 406 false, // Translucent colors in this animation? 407 false, // Is this a flame thrower animation? 408 fixed(1, 16), // Damage to apply per tick (fixed point). 409 2, // Delay between frames. 410 0, // Starting frame number. 411 30, // Loop start frame number. 412 62, // Ending frame of loop back. 413 -1, // Number of animation stages. 414 4, // Number of times the animation loops. 415 VOC_NONE, // Sound effect to play. 416 ANIM_NONE 417 ); 418 static AnimTypeClass const BurnBig( 419 ANIM_BURN_BIG, // Animation number. 420 "BURN-L", // Data name of animation. 421 23, // Maximum dimension of animation. 422 13, // Biggest animation stage. 423 false, // Theater specific art imagery? 424 false, // Normalized animation rate? 425 false, // Uses white translucent table? 426 true, // Scorches the ground? 427 false, // Forms a crater? 428 false, // Sticks to unit in square? 429 true, // Ground level animation? 430 false, // Translucent colors in this animation? 431 false, // Is this a flame thrower animation? 432 fixed(1, 10), // Damage to apply per tick (fixed point). 433 2, // Delay between frames. 434 0, // Starting frame number. 435 30, // Loop start frame number. 436 62, // Ending frame of loop back. 437 -1, // Number of animation stages. 438 4, // Number of times the animation loops. 439 VOC_NONE, // Sound effect to play. 440 ANIM_NONE 441 ); 442 443 /* 444 ** Flammable object burning animations that trail into smoke. Used for 445 ** buildings and the gunboat. 446 */ 447 static AnimTypeClass const OnFireSmall( 448 ANIM_ON_FIRE_SMALL, // Animation number. 449 "BURN-S", // Data name of animation. 450 11, // Maximum dimension of animation. 451 13, // Biggest animation stage. 452 false, // Theater specific art imagery? 453 false, // Normalized animation rate? 454 false, // Uses white translucent table? 455 false, // Scorches the ground? 456 false, // Forms a crater? 457 false, // Sticks to unit in square? 458 true, // Ground level animation? 459 false, // Translucent colors in this animation? 460 false, // Is this a flame thrower animation? 461 fixed(1, 32), // Damage to apply per tick (fixed point). 462 2, // Delay between frames. 463 0, // Starting frame number. 464 30, // Loop start frame number. 465 62, // Ending frame of loop back. 466 -1, // Number of animation stages. 467 4, // Number of times the animation loops. 468 VOC_NONE, // Sound effect to play. 469 ANIM_SMOKE_M 470 ); 471 static AnimTypeClass const OnFireMed( 472 ANIM_ON_FIRE_MED, // Animation number. 473 "BURN-M", // Data name of animation. 474 14, // Maximum dimension of animation. 475 13, // Biggest animation stage. 476 false, // Theater specific art imagery? 477 false, // Normalized animation rate? 478 false, // Uses white translucent table? 479 false, // Scorches the ground? 480 false, // Forms a crater? 481 false, // Sticks to unit in square? 482 true, // Ground level animation? 483 false, // Translucent colors in this animation? 484 false, // Is this a flame thrower animation? 485 fixed(1, 16), // Damage to apply per tick (fixed point). 486 2, // Delay between frames. 487 0, // Starting frame number. 488 30, // Loop start frame number. 489 62, // Ending frame of loop back. 490 -1, // Number of animation stages. 491 4, // Number of times the animation loops. 492 VOC_NONE, // Sound effect to play. 493 ANIM_ON_FIRE_SMALL 494 ); 495 static AnimTypeClass const OnFireBig( 496 ANIM_ON_FIRE_BIG, // Animation number. 497 "BURN-L", // Data name of animation. 498 23, // Maximum dimension of animation. 499 13, // Biggest animation stage. 500 false, // Theater specific art imagery? 501 false, // Normalized animation rate? 502 false, // Uses white translucent table? 503 true, // Scorches the ground? 504 false, // Forms a crater? 505 false, // Sticks to unit in square? 506 true, // Ground level animation? 507 false, // Translucent colors in this animation? 508 false, // Is this a flame thrower animation? 509 fixed(1, 10), // Damage to apply per tick (fixed point). 510 2, // Delay between frames. 511 0, // Starting frame number. 512 30, // Loop start frame number. 513 62, // Ending frame of loop back. 514 -1, // Number of animation stages. 515 4, // Number of times the animation loops. 516 VOC_NONE, // Sound effect to play. 517 ANIM_ON_FIRE_MED 518 ); 519 static AnimTypeClass const Parachute( 520 ANIM_PARACHUTE, // Animation number. 521 "PARACH", // Data name of animation. 522 32, // Maximum dimension of animation. 523 15, // Biggest animation stage. 524 false, // Theater specific art imagery? 525 false, // Normalized animation rate? 526 false, // Uses white translucent table? 527 false, // Scorches the ground? 528 false, // Forms a crater? 529 false, // Sticks to unit in square? 530 false, // Ground level animation? 531 false, // Translucent colors in this animation? 532 false, // Is this a flame thrower animation? 533 0, // Damage to apply per tick (fixed point). 534 4, // Delay between frames. 535 0, // Starting frame number. 536 7, // Loop start frame number. 537 -1, // Loopback frame number. 538 -1, // Number of animation stages. 539 15, // Number of times the animation loops. 540 VOC_NONE, // Sound effect to play. 541 ANIM_NONE 542 ); 543 static AnimTypeClass const ParaBomb( 544 ANIM_PARA_BOMB, // Animation number. 545 "PARABOMB", // Data name of animation. 546 32, // Maximum dimension of animation. 547 8, // Biggest animation stage. 548 false, // Theater specific art imagery? 549 false, // Normalized animation rate? 550 false, // Uses white translucent table? 551 false, // Scorches the ground? 552 false, // Forms a crater? 553 false, // Sticks to unit in square? 554 false, // Ground level animation? 555 false, // Translucent colors in this animation? 556 false, // Is this a flame thrower animation? 557 0, // Damage to apply per tick (fixed point). 558 4, // Delay between frames. 559 0, // Starting frame number. 560 7, // Loop start frame number. 561 -1, // Loopback frame number. 562 -1, // Number of animation stages. 563 15, // Number of times the animation loops. 564 VOC_NONE, // Sound effect to play. 565 ANIM_NONE 566 ); 567 568 static AnimTypeClass const FBall1( 569 ANIM_FBALL1, // Animation number. 570 "FBALL1", // Data name of animation. 571 67, // Maximum dimension of animation. 572 6, // Biggest animation stage. 573 false, // Theater specific art imagery? 574 true, // Normalized animation rate? 575 false, // Uses white translucent table? 576 false, // Scorches the ground? 577 true, // Forms a crater? 578 false, // Sticks to unit in square? 579 false, // Ground level animation? 580 false, // Translucent colors in this animation? 581 false, // Is this a flame thrower animation? 582 0, // Damage to apply per tick (fixed point). 583 1, // Delay between frames. 584 0, // Starting frame number. 585 0, // Loop start frame number. 586 -1, // Ending frame of loop back. 587 -1, // Number of animation stages. 588 1, // Number of times the animation loops. 589 VOC_KABOOM25, // Sound effect to play. 590 ANIM_NONE 591 ); 592 593 static AnimTypeClass const Frag1( 594 ANIM_FRAG1, // Animation number. 595 "FRAG1", // Data name of animation. 596 45, // Maximum dimension of animation. 597 3, // Biggest animation stage. 598 false, // Theater specific art imagery? 599 true, // Normalized animation rate? 600 false, // Uses white translucent table? 601 false, // Scorches the ground? 602 true, // Forms a crater? 603 true, // Sticks to unit in square? 604 true, // Ground level animation? 605 false, // Translucent colors in this animation? 606 false, // Is this a flame thrower animation? 607 0, // Damage to apply per tick (fixed point). 608 1, // Delay between frames. 609 0, // Starting frame number. 610 0, // Loop start frame number. 611 -1, // Ending frame of loop back. 612 -1, // Number of animation stages. 613 1, // Number of times the animation loops. 614 VOC_KABOOM30, // Sound effect to play. 615 ANIM_NONE, 616 29 // Virtual stages 617 ); 618 619 static AnimTypeClass const VehHit1( 620 ANIM_VEH_HIT1, // Animation number. 621 "VEH-HIT1", // Data name of animation. 622 30, // Maximum dimension of animation. 623 4, // Biggest animation stage. 624 false, // Theater specific art imagery? 625 true, // Normalized animation rate? 626 false, // Uses white translucent table? 627 false, // Scorches the ground? 628 true, // Forms a crater? 629 true, // Sticks to unit in square? 630 false, // Ground level animation? 631 false, // Translucent colors in this animation? 632 false, // Is this a flame thrower animation? 633 0, // Damage to apply per tick (fixed point). 634 1, // Delay between frames. 635 0, // Starting frame number. 636 0, // Loop start frame number. 637 -1, // Ending frame of loop back. 638 -1, // Number of animation stages. 639 1, // Number of times the animation loops. 640 VOC_KABOOM25, // Sound effect to play. 641 ANIM_NONE 642 ); 643 644 static AnimTypeClass const VehHit2( 645 ANIM_VEH_HIT2, // Animation number. 646 "VEH-HIT2", // Data name of animation. 647 21, // Maximum dimension of animation. 648 1, // Biggest animation stage. 649 false, // Theater specific art imagery? 650 true, // Normalized animation rate? 651 false, // Uses white translucent table? 652 false, // Scorches the ground? 653 true, // Forms a crater? 654 true, // Sticks to unit in square? 655 false, // Ground level animation? 656 false, // Translucent colors in this animation? 657 false, // Is this a flame thrower animation? 658 0, // Damage to apply per tick (fixed point). 659 1, // Delay between frames. 660 0, // Starting frame number. 661 0, // Loop start frame number. 662 -1, // Ending frame of loop back. 663 -1, // Number of animation stages. 664 1, // Number of times the animation loops. 665 VOC_KABOOM12, // Sound effect to play. 666 ANIM_NONE 667 ); 668 669 static AnimTypeClass const VehHit3( 670 ANIM_VEH_HIT3, // Animation number. 671 "VEH-HIT3", // Data name of animation. 672 19, // Maximum dimension of animation. 673 3, // Biggest animation stage. 674 false, // Theater specific art imagery? 675 true, // Normalized animation rate? 676 false, // Uses white translucent table? 677 false, // Scorches the ground? 678 false, // Forms a crater? 679 true, // Sticks to unit in square? 680 false, // Ground level animation? 681 false, // Translucent colors in this animation? 682 false, // Is this a flame thrower animation? 683 0, // Damage to apply per tick (fixed point). 684 1, // Delay between frames. 685 0, // Starting frame number. 686 0, // Loop start frame number. 687 -1, // Ending frame of loop back. 688 -1, // Number of animation stages. 689 1, // Number of times the animation loops. 690 VOC_KABOOM12, // Sound effect to play. 691 ANIM_NONE 692 ); 693 694 static AnimTypeClass const ArtExp1( 695 ANIM_ART_EXP1, // Animation number. 696 "ART-EXP1", // Data name of animation. 697 41, // Maximum dimension of animation. 698 1, // Biggest animation stage. 699 false, // Theater specific art imagery? 700 true, // Normalized animation rate? 701 false, // Uses white translucent table? 702 false, // Scorches the ground? 703 true, // Forms a crater? 704 false, // Sticks to unit in square? 705 false, // Ground level animation? 706 false, // Translucent colors in this animation? 707 false, // Is this a flame thrower animation? 708 0, // Damage to apply per tick (fixed point). 709 1, // Delay between frames. 710 0, // Starting frame number. 711 0, // Loop start frame number. 712 -1, // Ending frame of loop back. 713 -1, // Number of animation stages. 714 1, // Number of times the animation loops. 715 VOC_KABOOM22, // Sound effect to play. 716 ANIM_NONE 717 ); 718 719 static AnimTypeClass const Napalm1( 720 ANIM_NAPALM1, // Animation number. 721 "NAPALM1", // Data name of animation. 722 21, // Maximum dimension of animation. 723 5, // Biggest animation stage. 724 false, // Theater specific art imagery? 725 false, // Normalized animation rate? 726 false, // Uses white translucent table? 727 true, // Scorches the ground? 728 false, // Forms a crater? 729 false, // Sticks to unit in square? 730 false, // Ground level animation? 731 false, // Translucent colors in this animation? 732 false, // Is this a flame thrower animation? 733 0, // Damage to apply per tick (fixed point). 734 1, // Delay between frames. 735 0, // Starting frame number. 736 0, // Loop start frame number. 737 -1, // Ending frame of loop back. 738 -1, // Number of animation stages. 739 1, // Number of times the animation loops. 740 VOC_FIRE_EXPLODE, // Sound effect to play. 741 ANIM_NONE 742 ); 743 744 static AnimTypeClass const Napalm2( 745 ANIM_NAPALM2, // Animation number. 746 "NAPALM2", // Data name of animation. 747 41, // Maximum dimension of animation. 748 5, // Biggest animation stage. 749 false, // Theater specific art imagery? 750 false, // Normalized animation rate? 751 false, // Uses white translucent table? 752 true, // Scorches the ground? 753 false, // Forms a crater? 754 false, // Sticks to unit in square? 755 false, // Ground level animation? 756 false, // Translucent colors in this animation? 757 false, // Is this a flame thrower animation? 758 0, // Damage to apply per tick (fixed point). 759 1, // Delay between frames. 760 0, // Starting frame number. 761 0, // Loop start frame number. 762 -1, // Ending frame of loop back. 763 -1, // Number of animation stages. 764 1, // Number of times the animation loops. 765 VOC_FIRE_EXPLODE, // Sound effect to play. 766 ANIM_NONE 767 ); 768 769 static AnimTypeClass const Napalm3( 770 ANIM_NAPALM3, // Animation number. 771 "NAPALM3", // Data name of animation. 772 78, // Maximum dimension of animation. 773 5, // Biggest animation stage. 774 false, // Theater specific art imagery? 775 false, // Normalized animation rate? 776 false, // Uses white translucent table? 777 true, // Scorches the ground? 778 false, // Forms a crater? 779 false, // Sticks to unit in square? 780 false, // Ground level animation? 781 false, // Translucent colors in this animation? 782 false, // Is this a flame thrower animation? 783 0, // Damage to apply per tick (fixed point). 784 1, // Delay between frames. 785 0, // Starting frame number. 786 0, // Loop start frame number. 787 -1, // Ending frame of loop back. 788 -1, // Number of animation stages. 789 1, // Number of times the animation loops. 790 VOC_FIRE_LAUNCH, // Sound effect to play. 791 ANIM_NONE 792 ); 793 794 static AnimTypeClass const SmokePuff( 795 ANIM_SMOKE_PUFF, // Animation number. 796 "SMOKEY", // Data name of animation. 797 24, // Maximum dimension of animation. 798 2, // Biggest animation stage. 799 false, // Theater specific art imagery? 800 true, // Normalized animation rate? 801 false, // Uses white translucent table? 802 false, // Scorches the ground? 803 false, // Forms a crater? 804 false, // Sticks to unit in square? 805 false, // Ground level animation? 806 true, // Translucent colors in this animation? 807 false, // Is this a flame thrower animation? 808 0, // Damage to apply per tick (fixed point). 809 1, // Delay between frames. 810 0, // Starting frame number. 811 0, // Loop start frame number. 812 -1, // Ending frame of loop back. 813 -1, // Number of animation stages. 814 1, // Number of times the animation loops. 815 VOC_NONE, // Sound effect to play. 816 ANIM_NONE 817 ); 818 819 static AnimTypeClass const FireBallFade( 820 ANIM_FBALL_FADE, // Animation number. 821 "FB2", // Data name of animation. 822 24, // Maximum dimension of animation. 823 1, // Biggest animation stage. 824 false, // Theater specific art imagery? 825 true, // Normalized animation rate? 826 false, // Uses white translucent table? 827 false, // Scorches the ground? 828 false, // Forms a crater? 829 false, // Sticks to unit in square? 830 false, // Ground level animation? 831 false, // Translucent colors in this animation? 832 false, // Is this a flame thrower animation? 833 0, // Damage to apply per tick (fixed point). 834 1, // Delay between frames. 835 0, // Starting frame number. 836 0, // Loop start frame number. 837 -1, // Ending frame of loop back. 838 -1, // Number of animation stages. 839 1, // Number of times the animation loops. 840 VOC_NONE, // Sound effect to play. 841 ANIM_NONE 842 ); 843 844 static AnimTypeClass const Piff( 845 ANIM_PIFF, // Animation number. 846 "PIFF", // Data name of animation. 847 13, // Maximum dimension of animation. 848 1, // Biggest animation stage. 849 false, // Theater specific art imagery? 850 true, // Normalized animation rate? 851 false, // Uses white translucent table? 852 false, // Scorches the ground? 853 false, // Forms a crater? 854 false, // Sticks to unit in square? 855 false, // Ground level animation? 856 false, // Translucent colors in this animation? 857 false, // Is this a flame thrower animation? 858 0, // Damage to apply per tick (fixed point). 859 1, // Delay between frames. 860 0, // Starting frame number. 861 0, // Loop start frame number. 862 -1, // Ending frame of loop back. 863 -1, // Number of animation stages. 864 1, // Number of times the animation loops. 865 VOC_NONE, // Sound effect to play. 866 ANIM_NONE 867 ); 868 869 static AnimTypeClass const PiffPiff( 870 ANIM_PIFFPIFF, // Animation number. 871 "PIFFPIFF", // Data name of animation. 872 20, // Maximum dimension of animation. 873 2, // Biggest animation stage. 874 false, // Theater specific art imagery? 875 true, // Normalized animation rate? 876 false, // Uses white translucent table? 877 false, // Scorches the ground? 878 false, // Forms a crater? 879 false, // Sticks to unit in square? 880 false, // Ground level animation? 881 false, // Translucent colors in this animation? 882 false, // Is this a flame thrower animation? 883 0, // Damage to apply per tick (fixed point). 884 1, // Delay between frames. 885 0, // Starting frame number. 886 0, // Loop start frame number. 887 -1, // Ending frame of loop back. 888 -1, // Number of animation stages. 889 1, // Number of times the animation loops. 890 VOC_NONE, // Sound effect to play. 891 ANIM_NONE 892 ); 893 894 static AnimTypeClass const Fire3( 895 ANIM_FIRE_SMALL, // Animation number. 896 "FIRE3", // Data name of animation. 897 23, // Maximum dimension of animation. 898 0, // Biggest animation stage. 899 false, // Theater specific art imagery? 900 false, // Normalized animation rate? 901 false, // Uses white translucent table? 902 false, // Scorches the ground? 903 false, // Forms a crater? 904 false, // Sticks to unit in square? 905 true, // Ground level animation? 906 false, // Translucent colors in this animation? 907 false, // Is this a flame thrower animation? 908 fixed(1, 32), // Damage to apply per tick (fixed point). 909 1, // Delay between frames. 910 0, // Starting frame number. 911 0, // Loop start frame number. 912 -1, // Ending frame of loop back. 913 -1, // Number of animation stages. 914 2, // Number of times the animation loops. 915 VOC_NONE, // Sound effect to play. 916 ANIM_NONE, 917 -1, // Virtual stages 918 0x100, // Virtual scale 919 NULL, // Virtual name 920 ANIM_FIRE_SMALL_VIRTUAL // Virtual anim 921 ); 922 923 static AnimTypeClass const Fire3Virtual( 924 ANIM_FIRE_SMALL_VIRTUAL, // Animation number. 925 "FIRE3", // Data name of animation. 926 23, // Maximum dimension of animation. 927 0, // Biggest animation stage. 928 false, // Theater specific art imagery? 929 false, // Normalized animation rate? 930 false, // Uses white translucent table? 931 false, // Scorches the ground? 932 false, // Forms a crater? 933 false, // Sticks to unit in square? 934 true, // Ground level animation? 935 false, // Translucent colors in this animation? 936 false, // Is this a flame thrower animation? 937 0, // Damage to apply per tick (fixed point). 938 1, // Delay between frames. 939 0, // Starting frame number. 940 10, // Loop start frame number. 941 21, // Ending frame of loop back. 942 29, // Number of animation stages. 943 2, // Number of times the animation loops. 944 VOC_NONE, // Sound effect to play. 945 ANIM_NONE 946 ); 947 948 static AnimTypeClass const Fire1( 949 ANIM_FIRE_MED2, // Animation number. 950 "FIRE1", // Data name of animation. 951 23, // Maximum dimension of animation. 952 0, // Biggest animation stage. 953 false, // Theater specific art imagery? 954 false, // Normalized animation rate? 955 false, // Uses white translucent table? 956 true, // Scorches the ground? 957 false, // Forms a crater? 958 false, // Sticks to unit in square? 959 true, // Ground level animation? 960 false, // Translucent colors in this animation? 961 false, // Is this a flame thrower animation? 962 fixed(1, 16), // Damage to apply per tick (fixed point). 963 1, // Delay between frames. 964 0, // Starting frame number. 965 0, // Loop start frame number. 966 -1, // Ending frame of loop back. 967 -1, // Number of animation stages. 968 3, // Number of times the animation loops. 969 VOC_NONE, // Sound effect to play. 970 ANIM_NONE, 971 -1, // Virtual stages 972 0x100, // Virtual scale 973 NULL, // Virtual name 974 ANIM_FIRE_MED2_VIRTUAL // Virtual anim 975 ); 976 977 static AnimTypeClass const Fire1Virtual( 978 ANIM_FIRE_MED2_VIRTUAL, // Animation number. 979 "FIRE1", // Data name of animation. 980 23, // Maximum dimension of animation. 981 0, // Biggest animation stage. 982 false, // Theater specific art imagery? 983 false, // Normalized animation rate? 984 false, // Uses white translucent table? 985 true, // Scorches the ground? 986 false, // Forms a crater? 987 false, // Sticks to unit in square? 988 true, // Ground level animation? 989 false, // Translucent colors in this animation? 990 false, // Is this a flame thrower animation? 991 0, // Damage to apply per tick (fixed point). 992 1, // Delay between frames. 993 0, // Starting frame number. 994 10, // Loop start frame number. 995 21, // Ending frame of loop back. 996 29, // Number of animation stages. 997 3, // Number of times the animation loops. 998 VOC_NONE, // Sound effect to play. 999 ANIM_NONE 1000 ); 1001 1002 static AnimTypeClass const Fire4( 1003 ANIM_FIRE_TINY, // Animation number. 1004 "FIRE4", // Data name of animation. 1005 7, // Maximum dimension of animation. 1006 0, // Biggest animation stage. 1007 false, // Theater specific art imagery? 1008 false, // Normalized animation rate? 1009 false, // Uses white translucent table? 1010 false, // Scorches the ground? 1011 false, // Forms a crater? 1012 false, // Sticks to unit in square? 1013 true, // Ground level animation? 1014 false, // Translucent colors in this animation? 1015 false, // Is this a flame thrower animation? 1016 fixed(1, 32), // Damage to apply per tick (fixed point). 1017 1, // Delay between frames. 1018 0, // Starting frame number. 1019 0, // Loop start frame number. 1020 -1, // Ending frame of loop back. 1021 -1, // Number of animation stages. 1022 3, // Number of times the animation loops. 1023 VOC_NONE, // Sound effect to play. 1024 ANIM_NONE, 1025 -1, // Virtual stages 1026 0x100, // Virtual scale 1027 NULL, // Virtual name 1028 ANIM_FIRE_TINY_VIRTUAL // Virtual anim 1029 ); 1030 1031 static AnimTypeClass const Fire4Virtual( 1032 ANIM_FIRE_TINY_VIRTUAL, // Animation number. 1033 "FIRE4", // Data name of animation. 1034 7, // Maximum dimension of animation. 1035 0, // Biggest animation stage. 1036 false, // Theater specific art imagery? 1037 false, // Normalized animation rate? 1038 false, // Uses white translucent table? 1039 false, // Scorches the ground? 1040 false, // Forms a crater? 1041 false, // Sticks to unit in square? 1042 true, // Ground level animation? 1043 false, // Translucent colors in this animation? 1044 false, // Is this a flame thrower animation? 1045 0, // Damage to apply per tick (fixed point). 1046 1, // Delay between frames. 1047 0, // Starting frame number. 1048 10, // Loop start frame number. 1049 21, // Ending frame of loop back. 1050 29, // Number of animation stages. 1051 3, // Number of times the animation loops. 1052 VOC_NONE, // Sound effect to play. 1053 ANIM_NONE 1054 ); 1055 1056 static AnimTypeClass const Fire2( 1057 ANIM_FIRE_MED, // Animation number. 1058 "FIRE2", // Data name of animation. 1059 23, // Maximum dimension of animation. 1060 0, // Biggest animation stage. 1061 false, // Theater specific art imagery? 1062 false, // Normalized animation rate? 1063 false, // Uses white translucent table? 1064 true, // Scorches the ground? 1065 false, // Forms a crater? 1066 false, // Sticks to unit in square? 1067 true, // Ground level animation? 1068 false, // Translucent colors in this animation? 1069 false, // Is this a flame thrower animation? 1070 fixed(1, 16), // Damage to apply per tick (fixed point). 1071 1, // Delay between frames. 1072 0, // Starting frame number. 1073 0, // Loop start frame number. 1074 -1, // Ending frame of loop back. 1075 -1, // Number of animation stages. 1076 3, // Number of times the animation loops. 1077 VOC_NONE, // Sound effect to play. 1078 ANIM_NONE, 1079 -1, // Virtual stages 1080 0x100, // Virtual scale 1081 NULL, // Virtual name 1082 ANIM_FIRE_MED_VIRTUAL // Virtual anim 1083 ); 1084 1085 static AnimTypeClass const Fire2Virtual( 1086 ANIM_FIRE_MED_VIRTUAL, // Animation number. 1087 "FIRE2", // Data name of animation. 1088 23, // Maximum dimension of animation. 1089 0, // Biggest animation stage. 1090 false, // Theater specific art imagery? 1091 false, // Normalized animation rate? 1092 false, // Uses white translucent table? 1093 true, // Scorches the ground? 1094 false, // Forms a crater? 1095 false, // Sticks to unit in square? 1096 true, // Ground level animation? 1097 false, // Translucent colors in this animation? 1098 false, // Is this a flame thrower animation? 1099 0, // Damage to apply per tick (fixed point). 1100 1, // Delay between frames. 1101 0, // Starting frame number. 1102 10, // Loop start frame number. 1103 21, // Ending frame of loop back. 1104 29, // Number of animation stages. 1105 3, // Number of times the animation loops. 1106 VOC_NONE, // Sound effect to play. 1107 ANIM_NONE 1108 ); 1109 1110 static AnimTypeClass const OilFieldBurn( 1111 ANIM_OILFIELD_BURN, // Animation number. 1112 "FLMSPT", // Data name of animation. 1113 42, // Maximum dimension of animation. 1114 58, // Biggest animation stage. 1115 false, // Theater specific art imagery? 1116 true, // Normalized animation rate? 1117 false, // Uses white translucent table? 1118 false, // Scorches the ground? 1119 false, // Forms a crater? 1120 false, // Sticks to unit in square? 1121 true, // Ground level animation? 1122 false, // Translucent colors in this animation? 1123 false, // Is this a flame thrower animation? 1124 0, // Damage to apply per tick (fixed point). 1125 1, // Delay between frames. 1126 0, // Starting frame number. 1127 33, // Loop start frame number. 1128 99, // Ending frame of loop back. 1129 66, // Number of animation stages. 1130 127, // Number of times the animation loops. 1131 VOC_NONE, // Sound effect to play. 1132 ANIM_NONE 1133 ); 1134 1135 static AnimTypeClass const Gunfire( 1136 ANIM_MUZZLE_FLASH, // Animation number. 1137 "GUNFIRE", // Data name of animation. 1138 16, // Maximum dimension of animation. 1139 0, // Biggest animation stage. 1140 false, // Theater specific art imagery? 1141 false, // Normalized animation rate? 1142 false, // Uses white translucent table? 1143 false, // Scorches the ground? 1144 false, // Forms a crater? 1145 false, // Sticks to unit in square? 1146 true, // Ground level animation? 1147 true, // Translucent colors in this animation? 1148 false, // Is this a flame thrower animation? 1149 0, // Damage to apply per tick (fixed point). 1150 1, // Delay between frames. 1151 0, // Starting frame number. 1152 0, // Loop start frame number. 1153 0, // Number of times the animation loops. 1154 1, // Number of animation stages. 1155 1, // Ending frame of loop back. 1156 VOC_NONE, // Sound effect to play. 1157 ANIM_NONE, 1158 10 // Virtual stages 1159 ); 1160 1161 static AnimTypeClass const SmokeM( 1162 ANIM_SMOKE_M, // Animation number. 1163 "SMOKE_M", // Data name of animation. 1164 28, // Maximum dimension of animation. 1165 30, // Biggest animation stage. 1166 false, // Theater specific art imagery? 1167 true, // Normalized animation rate? 1168 false, // Uses white translucent table? 1169 false, // Scorches the ground? 1170 false, // Forms a crater? 1171 false, // Sticks to unit in square? 1172 true, // Ground level animation? 1173 false, // Translucent colors in this animation? 1174 false, // Is this a flame thrower animation? 1175 0, // Damage to apply per tick (fixed point). 1176 1, // Delay between frames. 1177 0, // Starting frame number. 1178 67, // Loop start frame number. 1179 -1, // Loopback frame number. 1180 -1, // Number of animation stages. 1181 6, // Number of times the animation loops. 1182 VOC_NONE, // Sound effect to play. 1183 ANIM_NONE, 1184 105 // Virtual stages 1185 ); 1186 1187 /* 1188 ** Mini-gun fire effect -- used by guard towers. 1189 */ 1190 static AnimTypeClass const GUNN( 1191 ANIM_GUN_N, // Animation number. 1192 "MINIGUN", // Data name of animation. 1193 18, // Maximum dimension of animation. 1194 0, // Biggest animation stage. 1195 false, // Theater specific art imagery? 1196 false, // Normalized animation rate? 1197 false, // Uses white translucent table? 1198 false, // Scorches the ground? 1199 false, // Forms a crater? 1200 false, // Sticks to unit in square? 1201 false, // Ground level animation? 1202 false, // Translucent colors in this animation? 1203 false, // Is this a flame thrower animation? 1204 0, // Damage to apply per tick (fixed point). 1205 1, // Delay between frames. 1206 0, // Starting frame number. 1207 0, // Loop start frame number. 1208 0, // Number of times the animation loops. 1209 6, // Number of animation stages. 1210 0, // Ending frame of loop back. 1211 VOC_NONE, // Sound effect to play. 1212 ANIM_NONE 1213 ); 1214 static AnimTypeClass const GUNNW( 1215 ANIM_GUN_NW, // Animation number. 1216 "MINIGUN", // Data name of animation. 1217 18, // Maximum dimension of animation. 1218 0, // Biggest animation stage. 1219 false, // Theater specific art imagery? 1220 false, // Normalized animation rate? 1221 false, // Uses white translucent table? 1222 false, // Scorches the ground? 1223 false, // Forms a crater? 1224 false, // Sticks to unit in square? 1225 false, // Ground level animation? 1226 false, // Translucent colors in this animation? 1227 false, // Is this a flame thrower animation? 1228 0, // Damage to apply per tick (fixed point). 1229 1, // Delay between frames. 1230 6, // Starting frame number. 1231 0, // Loop start frame number. 1232 0, // Number of times the animation loops. 1233 6, // Number of animation stages. 1234 0, // Ending frame of loop back. 1235 VOC_NONE, // Sound effect to play. 1236 ANIM_NONE 1237 ); 1238 static AnimTypeClass const GUNW( 1239 ANIM_GUN_W, // Animation number. 1240 "MINIGUN", // Data name of animation. 1241 18, // Maximum dimension of animation. 1242 0, // Biggest animation stage. 1243 false, // Theater specific art imagery? 1244 false, // Normalized animation rate? 1245 false, // Uses white translucent table? 1246 false, // Scorches the ground? 1247 false, // Forms a crater? 1248 false, // Sticks to unit in square? 1249 false, // Ground level animation? 1250 false, // Translucent colors in this animation? 1251 false, // Is this a flame thrower animation? 1252 0, // Damage to apply per tick (fixed point). 1253 1, // Delay between frames. 1254 12, // Starting frame number. 1255 0, // Loop start frame number. 1256 0, // Number of times the animation loops. 1257 6, // Number of animation stages. 1258 0, // Ending frame of loop back. 1259 VOC_NONE, // Sound effect to play. 1260 ANIM_NONE 1261 ); 1262 static AnimTypeClass const GUNSW( 1263 ANIM_GUN_SW, // Animation number. 1264 "MINIGUN", // Data name of animation. 1265 18, // Maximum dimension of animation. 1266 0, // Biggest animation stage. 1267 false, // Theater specific art imagery? 1268 false, // Normalized animation rate? 1269 false, // Uses white translucent table? 1270 false, // Scorches the ground? 1271 false, // Forms a crater? 1272 false, // Sticks to unit in square? 1273 false, // Ground level animation? 1274 false, // Translucent colors in this animation? 1275 false, // Is this a flame thrower animation? 1276 0, // Damage to apply per tick (fixed point). 1277 1, // Delay between frames. 1278 18, // Starting frame number. 1279 0, // Loop start frame number. 1280 0, // Number of times the animation loops. 1281 6, // Number of animation stages. 1282 0, // Ending frame of loop back. 1283 VOC_NONE, // Sound effect to play. 1284 ANIM_NONE 1285 ); 1286 static AnimTypeClass const GUNS( 1287 ANIM_GUN_S, // Animation number. 1288 "MINIGUN", // Data name of animation. 1289 18, // Maximum dimension of animation. 1290 0, // Biggest animation stage. 1291 false, // Theater specific art imagery? 1292 false, // Normalized animation rate? 1293 false, // Uses white translucent table? 1294 false, // Scorches the ground? 1295 false, // Forms a crater? 1296 false, // Sticks to unit in square? 1297 false, // Ground level animation? 1298 false, // Translucent colors in this animation? 1299 false, // Is this a flame thrower animation? 1300 0, // Damage to apply per tick (fixed point). 1301 1, // Delay between frames. 1302 24, // Starting frame number. 1303 0, // Loop start frame number. 1304 0, // Number of times the animation loops. 1305 6, // Number of animation stages. 1306 0, // Ending frame of loop back. 1307 VOC_NONE, // Sound effect to play. 1308 ANIM_NONE 1309 ); 1310 static AnimTypeClass const GUNSE( 1311 ANIM_GUN_SE, // Animation number. 1312 "MINIGUN", // Data name of animation. 1313 18, // Maximum dimension of animation. 1314 0, // Biggest animation stage. 1315 false, // Theater specific art imagery? 1316 false, // Normalized animation rate? 1317 false, // Uses white translucent table? 1318 false, // Scorches the ground? 1319 false, // Forms a crater? 1320 false, // Sticks to unit in square? 1321 false, // Ground level animation? 1322 false, // Translucent colors in this animation? 1323 false, // Is this a flame thrower animation? 1324 0, // Damage to apply per tick (fixed point). 1325 1, // Delay between frames. 1326 30, // Starting frame number. 1327 0, // Loop start frame number. 1328 0, // Number of times the animation loops. 1329 6, // Number of animation stages. 1330 0, // Ending frame of loop back. 1331 VOC_NONE, // Sound effect to play. 1332 ANIM_NONE 1333 ); 1334 static AnimTypeClass const GUNE( 1335 ANIM_GUN_E, // Animation number. 1336 "MINIGUN", // Data name of animation. 1337 18, // Maximum dimension of animation. 1338 0, // Biggest animation stage. 1339 false, // Theater specific art imagery? 1340 false, // Normalized animation rate? 1341 false, // Uses white translucent table? 1342 false, // Scorches the ground? 1343 false, // Forms a crater? 1344 false, // Sticks to unit in square? 1345 false, // Ground level animation? 1346 false, // Translucent colors in this animation? 1347 false, // Is this a flame thrower animation? 1348 0, // Damage to apply per tick (fixed point). 1349 1, // Delay between frames. 1350 36, // Starting frame number. 1351 0, // Loop start frame number. 1352 0, // Number of times the animation loops. 1353 6, // Number of animation stages. 1354 0, // Ending frame of loop back. 1355 VOC_NONE, // Sound effect to play. 1356 ANIM_NONE 1357 ); 1358 static AnimTypeClass const GUNNE( 1359 ANIM_GUN_NE, // Animation number. 1360 "MINIGUN", // Data name of animation. 1361 18, // Maximum dimension of animation. 1362 0, // Biggest animation stage. 1363 false, // Theater specific art imagery? 1364 false, // Normalized animation rate? 1365 false, // Uses white translucent table? 1366 false, // Scorches the ground? 1367 false, // Forms a crater? 1368 false, // Sticks to unit in square? 1369 false, // Ground level animation? 1370 false, // Translucent colors in this animation? 1371 false, // Is this a flame thrower animation? 1372 0, // Damage to apply per tick (fixed point). 1373 1, // Delay between frames. 1374 42, // Starting frame number. 1375 0, // Loop start frame number. 1376 0, // Number of times the animation loops. 1377 6, // Number of animation stages. 1378 0, // Ending frame of loop back. 1379 VOC_NONE, // Sound effect to play. 1380 ANIM_NONE 1381 ); 1382 static AnimTypeClass const CDeviator( 1383 ANIM_CRATE_DEVIATOR, // Animation number. 1384 "DEVIATOR", // Data name of animation. 1385 48, // Maximum dimension of animation. 1386 0, // Biggest animation stage. 1387 false, // Theater specific art imagery? 1388 true, // Normalized animation rate? 1389 false, // Uses white translucent table? 1390 false, // Scorches the ground? 1391 false, // Forms a crater? 1392 false, // Sticks to unit in square? 1393 false, // Ground level animation? 1394 false, // Translucent colors in this animation? 1395 false, // Is this a flame thrower animation? 1396 0, // Damage to apply per tick (fixed point). 1397 2, // Delay between frames. 1398 0, // Starting frame number. 1399 0, // Loop start frame number. 1400 0, // Ending frame of loop back. 1401 -1, // Number of animation stages. 1402 0, // Number of times the animation loops. 1403 VOC_NONE, // Sound effect to play. 1404 ANIM_NONE // Follow up animation. 1405 ); 1406 1407 static AnimTypeClass const CrateArmor( 1408 ANIM_CRATE_ARMOR, // Animation number. 1409 "ARMOR", // Data name of animation. 1410 48, // Maximum dimension of animation. 1411 0, // Biggest animation stage. 1412 false, // Theater specific art imagery? 1413 true, // Normalized animation rate? 1414 false, // Uses white translucent table? 1415 false, // Scorches the ground? 1416 false, // Forms a crater? 1417 false, // Sticks to unit in square? 1418 false, // Ground level animation? 1419 false, // Translucent colors in this animation? 1420 false, // Is this a flame thrower animation? 1421 0, // Damage to apply per tick (fixed point). 1422 2, // Delay between frames. 1423 0, // Starting frame number. 1424 0, // Loop start frame number. 1425 0, // Ending frame of loop back. 1426 -1, // Number of animation stages. 1427 0, // Number of times the animation loops. 1428 VOC_NONE, // Sound effect to play. 1429 ANIM_NONE // Follow up animation. 1430 ); 1431 static AnimTypeClass const CrateSpeed( 1432 ANIM_CRATE_SPEED, // Animation number. 1433 "SPEED", // Data name of animation. 1434 48, // Maximum dimension of animation. 1435 0, // Biggest animation stage. 1436 false, // Theater specific art imagery? 1437 true, // Normalized animation rate? 1438 false, // Uses white translucent table? 1439 false, // Scorches the ground? 1440 false, // Forms a crater? 1441 false, // Sticks to unit in square? 1442 false, // Ground level animation? 1443 false, // Translucent colors in this animation? 1444 false, // Is this a flame thrower animation? 1445 0, // Damage to apply per tick (fixed point). 1446 2, // Delay between frames. 1447 0, // Starting frame number. 1448 0, // Loop start frame number. 1449 0, // Ending frame of loop back. 1450 -1, // Number of animation stages. 1451 0, // Number of times the animation loops. 1452 VOC_NONE, // Sound effect to play. 1453 ANIM_NONE // Follow up animation. 1454 ); 1455 1456 static AnimTypeClass const CrateFPower( 1457 ANIM_CRATE_FPOWER, // Animation number. 1458 "FPOWER", // Data name of animation. 1459 48, // Maximum dimension of animation. 1460 0, // Biggest animation stage. 1461 false, // Theater specific art imagery? 1462 true, // Normalized animation rate? 1463 false, // Uses white translucent table? 1464 false, // Scorches the ground? 1465 false, // Forms a crater? 1466 false, // Sticks to unit in square? 1467 false, // Ground level animation? 1468 false, // Translucent colors in this animation? 1469 false, // Is this a flame thrower animation? 1470 0, // Damage to apply per tick (fixed point). 1471 2, // Delay between frames. 1472 0, // Starting frame number. 1473 0, // Loop start frame number. 1474 0, // Ending frame of loop back. 1475 -1, // Number of animation stages. 1476 0, // Number of times the animation loops. 1477 VOC_NONE, // Sound effect to play. 1478 ANIM_NONE // Follow up animation. 1479 ); 1480 static AnimTypeClass const CrateTQuake( 1481 ANIM_CRATE_TQUAKE, // Animation number. 1482 "TQUAKE", // Data name of animation. 1483 48, // Maximum dimension of animation. 1484 0, // Biggest animation stage. 1485 false, // Theater specific art imagery? 1486 true, // Normalized animation rate? 1487 false, // Uses white translucent table? 1488 false, // Scorches the ground? 1489 false, // Forms a crater? 1490 false, // Sticks to unit in square? 1491 false, // Ground level animation? 1492 false, // Translucent colors in this animation? 1493 false, // Is this a flame thrower animation? 1494 0, // Damage to apply per tick (fixed point). 1495 2, // Delay between frames. 1496 0, // Starting frame number. 1497 0, // Loop start frame number. 1498 0, // Ending frame of loop back. 1499 -1, // Number of animation stages. 1500 0, // Number of times the animation loops. 1501 VOC_NONE, // Sound effect to play. 1502 ANIM_NONE // Follow up animation. 1503 ); 1504 1505 static AnimTypeClass const CDollar( 1506 ANIM_CRATE_DOLLAR, // Animation number. 1507 "DOLLAR", // Data name of animation. 1508 48, // Maximum dimension of animation. 1509 0, // Biggest animation stage. 1510 false, // Theater specific art imagery? 1511 true, // Normalized animation rate? 1512 false, // Uses white translucent table? 1513 false, // Scorches the ground? 1514 false, // Forms a crater? 1515 false, // Sticks to unit in square? 1516 false, // Ground level animation? 1517 false, // Translucent colors in this animation? 1518 false, // Is this a flame thrower animation? 1519 0, // Damage to apply per tick (fixed point). 1520 2, // Delay between frames. 1521 0, // Starting frame number. 1522 0, // Loop start frame number. 1523 0, // Ending frame of loop back. 1524 -1, // Number of animation stages. 1525 0, // Number of times the animation loops. 1526 VOC_NONE, // Sound effect to play. 1527 ANIM_NONE // Follow up animation. 1528 ); 1529 static AnimTypeClass const CEarth( 1530 ANIM_CRATE_EARTH, // Animation number. 1531 "EARTH", // Data name of animation. 1532 48, // Maximum dimension of animation. 1533 0, // Biggest animation stage. 1534 false, // Theater specific art imagery? 1535 true, // Normalized animation rate? 1536 false, // Uses white translucent table? 1537 false, // Scorches the ground? 1538 false, // Forms a crater? 1539 false, // Sticks to unit in square? 1540 false, // Ground level animation? 1541 false, // Translucent colors in this animation? 1542 false, // Is this a flame thrower animation? 1543 0, // Damage to apply per tick (fixed point). 1544 2, // Delay between frames. 1545 0, // Starting frame number. 1546 0, // Loop start frame number. 1547 0, // Ending frame of loop back. 1548 -1, // Number of animation stages. 1549 0, // Number of times the animation loops. 1550 VOC_NONE, // Sound effect to play. 1551 ANIM_NONE // Follow up animation. 1552 ); 1553 static AnimTypeClass const CEmpulse( 1554 ANIM_CRATE_EMPULSE, // Animation number. 1555 "EMPULSE", // Data name of animation. 1556 48, // Maximum dimension of animation. 1557 0, // Biggest animation stage. 1558 false, // Theater specific art imagery? 1559 true, // Normalized animation rate? 1560 false, // Uses white translucent table? 1561 false, // Scorches the ground? 1562 false, // Forms a crater? 1563 false, // Sticks to unit in square? 1564 false, // Ground level animation? 1565 false, // Translucent colors in this animation? 1566 false, // Is this a flame thrower animation? 1567 0, // Damage to apply per tick (fixed point). 1568 2, // Delay between frames. 1569 0, // Starting frame number. 1570 0, // Loop start frame number. 1571 0, // Ending frame of loop back. 1572 -1, // Number of animation stages. 1573 0, // Number of times the animation loops. 1574 VOC_NONE, // Sound effect to play. 1575 ANIM_NONE // Follow up animation. 1576 ); 1577 static AnimTypeClass const CInvun( 1578 ANIM_CRATE_INVUN, // Animation number. 1579 "INVUN", // Data name of animation. 1580 48, // Maximum dimension of animation. 1581 0, // Biggest animation stage. 1582 false, // Theater specific art imagery? 1583 true, // Normalized animation rate? 1584 false, // Uses white translucent table? 1585 false, // Scorches the ground? 1586 false, // Forms a crater? 1587 false, // Sticks to unit in square? 1588 false, // Ground level animation? 1589 false, // Translucent colors in this animation? 1590 false, // Is this a flame thrower animation? 1591 0, // Damage to apply per tick (fixed point). 1592 2, // Delay between frames. 1593 0, // Starting frame number. 1594 0, // Loop start frame number. 1595 0, // Ending frame of loop back. 1596 -1, // Number of animation stages. 1597 0, // Number of times the animation loops. 1598 VOC_NONE, // Sound effect to play. 1599 ANIM_NONE // Follow up animation. 1600 ); 1601 static AnimTypeClass const CMine( 1602 ANIM_CRATE_MINE, // Animation number. 1603 "MINE", // Data name of animation. 1604 48, // Maximum dimension of animation. 1605 0, // Biggest animation stage. 1606 false, // Theater specific art imagery? 1607 true, // Normalized animation rate? 1608 false, // Uses white translucent table? 1609 false, // Scorches the ground? 1610 false, // Forms a crater? 1611 false, // Sticks to unit in square? 1612 false, // Ground level animation? 1613 false, // Translucent colors in this animation? 1614 false, // Is this a flame thrower animation? 1615 0, // Damage to apply per tick (fixed point). 1616 2, // Delay between frames. 1617 0, // Starting frame number. 1618 0, // Loop start frame number. 1619 0, // Ending frame of loop back. 1620 -1, // Number of animation stages. 1621 0, // Number of times the animation loops. 1622 VOC_NONE, // Sound effect to play. 1623 ANIM_NONE // Follow up animation. 1624 ); 1625 static AnimTypeClass const CRapid( 1626 ANIM_CRATE_RAPID, // Animation number. 1627 "RAPID", // Data name of animation. 1628 48, // Maximum dimension of animation. 1629 0, // Biggest animation stage. 1630 false, // Theater specific art imagery? 1631 true, // Normalized animation rate? 1632 false, // Uses white translucent table? 1633 false, // Scorches the ground? 1634 false, // Forms a crater? 1635 false, // Sticks to unit in square? 1636 false, // Ground level animation? 1637 false, // Translucent colors in this animation? 1638 false, // Is this a flame thrower animation? 1639 0, // Damage to apply per tick (fixed point). 1640 2, // Delay between frames. 1641 0, // Starting frame number. 1642 0, // Loop start frame number. 1643 0, // Ending frame of loop back. 1644 -1, // Number of animation stages. 1645 0, // Number of times the animation loops. 1646 VOC_NONE, // Sound effect to play. 1647 ANIM_NONE // Follow up animation. 1648 ); 1649 static AnimTypeClass const CStealth( 1650 ANIM_CRATE_STEALTH, // Animation number. 1651 "STEALTH2", // Data name of animation. 1652 48, // Maximum dimension of animation. 1653 0, // Biggest animation stage. 1654 false, // Theater specific art imagery? 1655 true, // Normalized animation rate? 1656 false, // Uses white translucent table? 1657 false, // Scorches the ground? 1658 false, // Forms a crater? 1659 false, // Sticks to unit in square? 1660 false, // Ground level animation? 1661 false, // Translucent colors in this animation? 1662 false, // Is this a flame thrower animation? 1663 0, // Damage to apply per tick (fixed point). 1664 2, // Delay between frames. 1665 0, // Starting frame number. 1666 0, // Loop start frame number. 1667 0, // Ending frame of loop back. 1668 -1, // Number of animation stages. 1669 0, // Number of times the animation loops. 1670 VOC_NONE, // Sound effect to play. 1671 ANIM_NONE // Follow up animation. 1672 ); 1673 static AnimTypeClass const ChronoBox( 1674 ANIM_CHRONO_BOX, // Animation number. 1675 "CHRONBOX", // Data name of animation. 1676 48, // Maximum dimension of animation. 1677 0, // Biggest animation stage. 1678 false, // Theater specific art imagery? 1679 true, // Normalized animation rate? 1680 false, // Uses white translucent table? 1681 false, // Scorches the ground? 1682 false, // Forms a crater? 1683 false, // Sticks to unit in square? 1684 false, // Ground level animation? 1685 false, // Translucent colors in this animation? 1686 false, // Is this a flame thrower animation? 1687 0, // Damage to apply per tick (fixed point). 1688 2, // Delay between frames. 1689 0, // Starting frame number. 1690 0, // Loop start frame number. 1691 0, // Ending frame of loop back. 1692 -1, // Number of animation stages. 1693 0, // Number of times the animation loops. 1694 VOC_NONE, // Sound effect to play. 1695 ANIM_NONE // Follow up animation. 1696 ); 1697 static AnimTypeClass const GPSBox( 1698 ANIM_GPS_BOX, // Animation number. 1699 "GPSBOX", // Data name of animation. 1700 48, // Maximum dimension of animation. 1701 0, // Biggest animation stage. 1702 false, // Theater specific art imagery? 1703 true, // Normalized animation rate? 1704 false, // Uses white translucent table? 1705 false, // Scorches the ground? 1706 false, // Forms a crater? 1707 false, // Sticks to unit in square? 1708 false, // Ground level animation? 1709 false, // Translucent colors in this animation? 1710 false, // Is this a flame thrower animation? 1711 0, // Damage to apply per tick (fixed point). 1712 2, // Delay between frames. 1713 0, // Starting frame number. 1714 0, // Loop start frame number. 1715 0, // Ending frame of loop back. 1716 -1, // Number of animation stages. 1717 0, // Number of times the animation loops. 1718 VOC_NONE, // Sound effect to play. 1719 ANIM_NONE // Follow up animation. 1720 ); 1721 static AnimTypeClass const InvulBox( 1722 ANIM_INVUL_BOX, // Animation number. 1723 "INVULBOX", // Data name of animation. 1724 48, // Maximum dimension of animation. 1725 0, // Biggest animation stage. 1726 false, // Theater specific art imagery? 1727 true, // Normalized animation rate? 1728 false, // Uses white translucent table? 1729 false, // Scorches the ground? 1730 false, // Forms a crater? 1731 false, // Sticks to unit in square? 1732 false, // Ground level animation? 1733 false, // Translucent colors in this animation? 1734 false, // Is this a flame thrower animation? 1735 0, // Damage to apply per tick (fixed point). 1736 2, // Delay between frames. 1737 0, // Starting frame number. 1738 0, // Loop start frame number. 1739 0, // Ending frame of loop back. 1740 -1, // Number of animation stages. 1741 0, // Number of times the animation loops. 1742 VOC_NONE, // Sound effect to play. 1743 ANIM_NONE // Follow up animation. 1744 ); 1745 static AnimTypeClass const ParaBox( 1746 ANIM_PARA_BOX, // Animation number. 1747 "PARABOX", // Data name of animation. 1748 48, // Maximum dimension of animation. 1749 0, // Biggest animation stage. 1750 false, // Theater specific art imagery? 1751 true, // Normalized animation rate? 1752 false, // Uses white translucent table? 1753 false, // Scorches the ground? 1754 false, // Forms a crater? 1755 false, // Sticks to unit in square? 1756 false, // Ground level animation? 1757 false, // Translucent colors in this animation? 1758 false, // Is this a flame thrower animation? 1759 0, // Damage to apply per tick (fixed point). 1760 2, // Delay between frames. 1761 0, // Starting frame number. 1762 0, // Loop start frame number. 1763 0, // Ending frame of loop back. 1764 -1, // Number of animation stages. 1765 0, // Number of times the animation loops. 1766 VOC_NONE, // Sound effect to play. 1767 ANIM_NONE // Follow up animation. 1768 ); 1769 static AnimTypeClass const SonarBox( 1770 ANIM_SONAR_BOX, // Animation number. 1771 "SONARBOX", // Data name of animation. 1772 48, // Maximum dimension of animation. 1773 0, // Biggest animation stage. 1774 false, // Theater specific art imagery? 1775 true, // Normalized animation rate? 1776 false, // Uses white translucent table? 1777 false, // Scorches the ground? 1778 false, // Forms a crater? 1779 false, // Sticks to unit in square? 1780 false, // Ground level animation? 1781 false, // Translucent colors in this animation? 1782 false, // Is this a flame thrower animation? 1783 0, // Damage to apply per tick (fixed point). 1784 2, // Delay between frames. 1785 0, // Starting frame number. 1786 0, // Loop start frame number. 1787 0, // Ending frame of loop back. 1788 -1, // Number of animation stages. 1789 0, // Number of times the animation loops. 1790 VOC_NONE, // Sound effect to play. 1791 ANIM_NONE // Follow up animation. 1792 ); 1793 1794 static AnimTypeClass const CMissile( 1795 ANIM_CRATE_MISSILE, // Animation number. 1796 "MISSILE2", // Data name of animation. 1797 48, // Maximum dimension of animation. 1798 0, // Biggest animation stage. 1799 false, // Theater specific art imagery? 1800 true, // Normalized animation rate? 1801 false, // Uses white translucent table? 1802 false, // Scorches the ground? 1803 false, // Forms a crater? 1804 false, // Sticks to unit in square? 1805 false, // Ground level animation? 1806 false, // Translucent colors in this animation? 1807 false, // Is this a flame thrower animation? 1808 0, // Damage to apply per tick (fixed point). 1809 2, // Delay between frames. 1810 0, // Starting frame number. 1811 0, // Loop start frame number. 1812 0, // Ending frame of loop back. 1813 -1, // Number of animation stages. 1814 0, // Number of times the animation loops. 1815 VOC_NONE, // Sound effect to play. 1816 ANIM_NONE // Follow up animation. 1817 ); 1818 1819 static AnimTypeClass const MoveFlash( 1820 ANIM_MOVE_FLASH, // Animation number. 1821 "MOVEFLSH", // Data name of animation. 1822 24, // Maximum dimension of animation. 1823 0, // Biggest animation stage. 1824 true, // Theater specific art imagery? 1825 true, // Normalized animation rate? 1826 true, // Uses white translucent table? 1827 false, // Scorches the ground? 1828 false, // Forms a crater? 1829 false, // Sticks to unit in square? 1830 true, // Ground level animation? 1831 false, // Translucent colors in this animation? 1832 false, // Is this a flame thrower animation? 1833 0, // Damage to apply per tick (fixed point). 1834 1, // Delay between frames. 1835 0, // Starting frame number. 1836 0, // Loop start frame number. 1837 0, // Ending frame of loop back. 1838 -1, // Number of animation stages. 1839 0, // Number of times the animation loops. 1840 VOC_NONE, // Sound effect to play. 1841 ANIM_NONE // Follow up animation. 1842 ); 1843 1844 static AnimTypeClass const Corpse1( 1845 ANIM_CORPSE1, // Animation number. 1846 "CORPSE1", // Data name of animation. 1847 24, // Maximum dimension of animation. 1848 1, // Biggest animation stage. 1849 true, // Theater specific art imagery? 1850 true, // Normalized animation rate? 1851 false, // Uses white translucent table? 1852 false, // Scorches the ground? 1853 false, // Forms a crater? 1854 false, // Sticks to unit in square? 1855 true, // Ground level animation? 1856 true, // Translucent colors in this animation? 1857 false, // Is this a flame thrower animation? 1858 0, // Damage to apply per tick (fixed point). 1859 15, // Delay between frames. 1860 0, // Starting frame number. 1861 0, // Loop start frame number. 1862 0, // Ending frame of loop back. 1863 -1, // Number of animation stages. 1864 0, // Number of times the animation loops. 1865 VOC_NONE, // Sound effect to play. 1866 ANIM_NONE 1867 ); 1868 1869 static AnimTypeClass const Corpse2( 1870 ANIM_CORPSE2, // Animation number. 1871 "CORPSE2", // Data name of animation. 1872 24, // Maximum dimension of animation. 1873 1, // Biggest animation stage. 1874 true, // Theater specific art imagery? 1875 true, // Normalized animation rate? 1876 false, // Uses white translucent table? 1877 false, // Scorches the ground? 1878 false, // Forms a crater? 1879 false, // Sticks to unit in square? 1880 true, // Ground level animation? 1881 true, // Translucent colors in this animation? 1882 false, // Is this a flame thrower animation? 1883 0, // Damage to apply per tick (fixed point). 1884 15, // Delay between frames. 1885 0, // Starting frame number. 1886 0, // Loop start frame number. 1887 0, // Ending frame of loop back. 1888 -1, // Number of animation stages. 1889 0, // Number of times the animation loops. 1890 VOC_NONE, // Sound effect to play. 1891 ANIM_NONE 1892 ); 1893 1894 static AnimTypeClass const Corpse3( 1895 ANIM_CORPSE3, // Animation number. 1896 "CORPSE3", // Data name of animation. 1897 24, // Maximum dimension of animation. 1898 1, // Biggest animation stage. 1899 true, // Theater specific art imagery? 1900 true, // Normalized animation rate? 1901 false, // Uses white translucent table? 1902 false, // Scorches the ground? 1903 false, // Forms a crater? 1904 false, // Sticks to unit in square? 1905 true, // Ground level animation? 1906 true, // Translucent colors in this animation? 1907 false, // Is this a flame thrower animation? 1908 0, // Damage to apply per tick (fixed point). 1909 15, // Delay between frames. 1910 0, // Starting frame number. 1911 0, // Loop start frame number. 1912 0, // Ending frame of loop back. 1913 -1, // Number of animation stages. 1914 0, // Number of times the animation loops. 1915 VOC_NONE, // Sound effect to play. 1916 ANIM_NONE 1917 ); 1918 1919 static AnimTypeClass const Twinkle1( 1920 ANIM_TWINKLE1, // Animation number. 1921 "TWINKLE1", // Data name of animation. 1922 8, // Maximum dimension of animation. 1923 1, // Biggest animation stage. 1924 false, // Theater specific art imagery? 1925 true, // Normalized animation rate? 1926 false, // Uses white translucent table? 1927 false, // Scorches the ground? 1928 false, // Forms a crater? 1929 false, // Sticks to unit in square? 1930 false, // Ground level animation? 1931 false, // Translucent colors in this animation? 1932 false, // Is this a flame thrower animation? 1933 0, // Damage to apply per tick (fixed point). 1934 1, // Delay between frames. 1935 0, // Starting frame number. 1936 0, // Loop start frame number. 1937 -1, // Ending frame of loop back. 1938 -1, // Number of animation stages. 1939 1, // Number of times the animation loops. 1940 VOC_NONE, // Sound effect to play. 1941 ANIM_NONE 1942 ); 1943 static AnimTypeClass const Twinkle2( 1944 ANIM_TWINKLE2, // Animation number. 1945 "TWINKLE2", // Data name of animation. 1946 8, // Maximum dimension of animation. 1947 1, // Biggest animation stage. 1948 false, // Theater specific art imagery? 1949 true, // Normalized animation rate? 1950 false, // Uses white translucent table? 1951 false, // Scorches the ground? 1952 false, // Forms a crater? 1953 false, // Sticks to unit in square? 1954 false, // Ground level animation? 1955 false, // Translucent colors in this animation? 1956 false, // Is this a flame thrower animation? 1957 0, // Damage to apply per tick (fixed point). 1958 1, // Delay between frames. 1959 0, // Starting frame number. 1960 0, // Loop start frame number. 1961 -1, // Ending frame of loop back. 1962 -1, // Number of animation stages. 1963 1, // Number of times the animation loops. 1964 VOC_NONE, // Sound effect to play. 1965 ANIM_NONE 1966 ); 1967 static AnimTypeClass const Twinkle3( 1968 ANIM_TWINKLE3, // Animation number. 1969 "TWINKLE3", // Data name of animation. 1970 8, // Maximum dimension of animation. 1971 1, // Biggest animation stage. 1972 false, // Theater specific art imagery? 1973 true, // Normalized animation rate? 1974 false, // Uses white translucent table? 1975 false, // Scorches the ground? 1976 false, // Forms a crater? 1977 false, // Sticks to unit in square? 1978 false, // Ground level animation? 1979 false, // Translucent colors in this animation? 1980 false, // Is this a flame thrower animation? 1981 0, // Damage to apply per tick (fixed point). 1982 1, // Delay between frames. 1983 0, // Starting frame number. 1984 0, // Loop start frame number. 1985 -1, // Ending frame of loop back. 1986 -1, // Number of animation stages. 1987 1, // Number of times the animation loops. 1988 VOC_NONE, // Sound effect to play. 1989 ANIM_NONE 1990 ); 1991 static AnimTypeClass const Flak( 1992 ANIM_FLAK, // Animation number. 1993 "FLAK", // Data name of animation. 1994 8, // Maximum dimension of animation. 1995 7, // Biggest animation stage. 1996 false, // Theater specific art imagery? 1997 true, // Normalized animation rate? 1998 false, // Uses white translucent table? 1999 false, // Scorches the ground? 2000 false, // Forms a crater? 2001 false, // Sticks to unit in square? 2002 false, // Ground level animation? 2003 false, // Translucent colors in this animation? 2004 false, // Is this a flame thrower animation? 2005 0, // Damage to apply per tick (fixed point). 2006 1, // Delay between frames. 2007 0, // Starting frame number. 2008 0, // Loop start frame number. 2009 -1, // Ending frame of loop back. 2010 -1, // Number of animation stages. 2011 1, // Number of times the animation loops. 2012 VOC_NONE, // Sound effect to play. 2013 ANIM_NONE, 2014 17 // Virtual stages 2015 ); 2016 static AnimTypeClass const WaterExp1( 2017 ANIM_WATER_EXP1, // Animation number. 2018 "H2O_EXP1", // Data name of animation. 2019 64, // Maximum dimension of animation. 2020 3, // Biggest animation stage. 2021 false, // Theater specific art imagery? 2022 true, // Normalized animation rate? 2023 false, // Uses white translucent table? 2024 false, // Scorches the ground? 2025 false, // Forms a crater? 2026 false, // Sticks to unit in square? 2027 true, // Ground level animation? 2028 false, // Translucent colors in this animation? 2029 false, // Is this a flame thrower animation? 2030 0, // Damage to apply per tick (fixed point). 2031 1, // Delay between frames. 2032 0, // Starting frame number. 2033 0, // Loop start frame number. 2034 -1, // Ending frame of loop back. 2035 -1, // Number of animation stages. 2036 1, // Number of times the animation loops. 2037 VOC_SPLASH, // Sound effect to play. 2038 ANIM_NONE 2039 ); 2040 static AnimTypeClass const WaterExp2( 2041 ANIM_WATER_EXP2, // Animation number. 2042 "H2O_EXP2", // Data name of animation. 2043 40, // Maximum dimension of animation. 2044 3, // Biggest animation stage. 2045 false, // Theater specific art imagery? 2046 true, // Normalized animation rate? 2047 false, // Uses white translucent table? 2048 false, // Scorches the ground? 2049 false, // Forms a crater? 2050 false, // Sticks to unit in square? 2051 true, // Ground level animation? 2052 false, // Translucent colors in this animation? 2053 false, // Is this a flame thrower animation? 2054 0, // Damage to apply per tick (fixed point). 2055 1, // Delay between frames. 2056 0, // Starting frame number. 2057 0, // Loop start frame number. 2058 -1, // Ending frame of loop back. 2059 -1, // Number of animation stages. 2060 1, // Number of times the animation loops. 2061 VOC_SPLASH, // Sound effect to play. 2062 ANIM_NONE 2063 ); 2064 static AnimTypeClass const WaterExp3( 2065 ANIM_WATER_EXP3, // Animation number. 2066 "H2O_EXP3", // Data name of animation. 2067 32, // Maximum dimension of animation. 2068 3, // Biggest animation stage. 2069 false, // Theater specific art imagery? 2070 true, // Normalized animation rate? 2071 false, // Uses white translucent table? 2072 false, // Scorches the ground? 2073 false, // Forms a crater? 2074 false, // Sticks to unit in square? 2075 true, // Ground level animation? 2076 false, // Translucent colors in this animation? 2077 false, // Is this a flame thrower animation? 2078 0, // Damage to apply per tick (fixed point). 2079 1, // Delay between frames. 2080 0, // Starting frame number. 2081 0, // Loop start frame number. 2082 -1, // Ending frame of loop back. 2083 -1, // Number of animation stages. 2084 1, // Number of times the animation loops. 2085 VOC_SPLASH, // Sound effect to play. 2086 ANIM_NONE 2087 ); 2088 2089 2090 static AnimTypeClass const MineExp1( 2091 ANIM_MINE_EXP1, // Animation number. 2092 "VEH-HIT2", // Data name of animation. 2093 21, // Maximum dimension of animation. 2094 1, // Biggest animation stage. 2095 false, // Theater specific art imagery? 2096 true, // Normalized animation rate? 2097 false, // Uses white translucent table? 2098 false, // Scorches the ground? 2099 true, // Forms a crater? 2100 false, // Sticks to unit in square? 2101 false, // Ground level animation? 2102 false, // Translucent colors in this animation? 2103 false, // Is this a flame thrower animation? 2104 0, // Damage to apply per tick (fixed point). 2105 1, // Delay between frames. 2106 0, // Starting frame number. 2107 0, // Loop start frame number. 2108 -1, // Ending frame of loop back. 2109 -1, // Number of animation stages. 2110 1, // Number of times the animation loops. 2111 VOC_MINEBLOW, // Sound effect to play. 2112 ANIM_NONE 2113 ); 2114 2115 static AnimTypeClass const Flag( 2116 ANIM_FLAG, // Animation number. 2117 "FLAGFLY", // Data name of animation. 2118 21, // Maximum dimension of animation. 2119 0, // Biggest animation stage. 2120 false, // Theater specific art imagery? 2121 false, // Normalized animation rate? 2122 false, // Uses white translucent table? 2123 false, // Scorches the ground? 2124 false, // Forms a crater? 2125 false, // Sticks to unit in square? 2126 false, // Ground level animation? 2127 false, // Translucent colors in this animation? 2128 false, // Is this a flame thrower animation? 2129 0, // Damage to apply per tick (fixed point). 2130 1, // Delay between frames. 2131 0, // Starting frame number. 2132 0, // Loop start frame number. 2133 -1, // Ending frame of loop back. 2134 -1, // Number of animation stages. 2135 -1, // Number of times the animation loops. 2136 VOC_NONE, // Sound effect to play. 2137 ANIM_NONE 2138 ); 2139 2140 static AnimTypeClass const Beacon( 2141 ANIM_BEACON, // Animation number. 2142 "MOVEFLSH", // Data name of animation. 2143 21, // Maximum dimension of animation. 2144 0, // Biggest animation stage. 2145 true, // Theater specific art imagery? 2146 false, // Normalized animation rate? 2147 false, // Uses white translucent table? 2148 false, // Scorches the ground? 2149 false, // Forms a crater? 2150 false, // Sticks to unit in square? 2151 false, // Ground level animation? 2152 false, // Translucent colors in this animation? 2153 false, // Is this a flame thrower animation? 2154 0, // Damage to apply per tick (fixed point). 2155 1, // Delay between frames. 2156 0, // Starting frame number. 2157 0, // Loop start frame number. 2158 -1, // Ending frame of loop back. 2159 1, // Number of animation stages. 2160 -1, // Number of times the animation loops. 2161 VOC_NONE, // Sound effect to play. 2162 ANIM_NONE, 2163 -1, // Virtual stages 2164 0x100, // Virtual scale 2165 NULL, // Virtual name 2166 ANIM_BEACON_VIRTUAL // Virtual anim 2167 ); 2168 2169 static AnimTypeClass const BeaconVirtual( 2170 ANIM_BEACON_VIRTUAL, // Animation number. 2171 "BEACON", // Data name of animation. 2172 21, // Maximum dimension of animation. 2173 0, // Biggest animation stage. 2174 false, // Theater specific art imagery? 2175 false, // Normalized animation rate? 2176 false, // Uses white translucent table? 2177 false, // Scorches the ground? 2178 false, // Forms a crater? 2179 false, // Sticks to unit in square? 2180 false, // Ground level animation? 2181 false, // Translucent colors in this animation? 2182 false, // Is this a flame thrower animation? 2183 0, // Damage to apply per tick (fixed point). 2184 1, // Delay between frames. 2185 0, // Starting frame number. 2186 0, // Loop start frame number. 2187 -1, // Ending frame of loop back. 2188 1, // Number of animation stages. 2189 -1, // Number of times the animation loops. 2190 VOC_NONE, // Sound effect to play. 2191 ANIM_NONE 2192 ); 2193 2194 #ifdef FIXIT_ANTS 2195 static AnimTypeClass const Ant1Death( 2196 ANIM_ANT1_DEATH, // Animation number. 2197 "ANTDIE", // Data name of animation. 2198 28, // Maximum dimension of animation. 2199 1, // Biggest animation stage. 2200 false, // Theater specific art imagery? 2201 true, // Normalized animation rate? 2202 false, // Uses white translucent table? 2203 false, // Scorches the ground? 2204 false, // Forms a crater? 2205 false, // Sticks to unit in square? 2206 true, // Ground level animation? 2207 true, // Translucent colors in this animation? 2208 false, // Is this a flame thrower animation? 2209 0, // Damage to apply per tick (fixed point). 2210 4, // Delay between frames. 2211 0, // Starting frame number. 2212 0, // Loop start frame number. 2213 -1, // Ending frame of loop back. 2214 -1, // Number of animation stages. 2215 1, // Number of times the animation loops. 2216 VOC_ANTDIE, // Sound effect to play. 2217 ANIM_NONE, 2218 -1, 2219 0x100, 2220 "ANTDIE1" 2221 ); 2222 2223 static AnimTypeClass const Ant2Death( 2224 ANIM_ANT2_DEATH, // Animation number. 2225 "ANTDIE", // Data name of animation. 2226 28, // Maximum dimension of animation. 2227 1, // Biggest animation stage. 2228 false, // Theater specific art imagery? 2229 true, // Normalized animation rate? 2230 false, // Uses white translucent table? 2231 false, // Scorches the ground? 2232 false, // Forms a crater? 2233 false, // Sticks to unit in square? 2234 true, // Ground level animation? 2235 true, // Translucent colors in this animation? 2236 false, // Is this a flame thrower animation? 2237 0, // Damage to apply per tick (fixed point). 2238 4, // Delay between frames. 2239 0, // Starting frame number. 2240 0, // Loop start frame number. 2241 -1, // Ending frame of loop back. 2242 -1, // Number of animation stages. 2243 1, // Number of times the animation loops. 2244 VOC_ANTDIE, // Sound effect to play. 2245 ANIM_NONE, 2246 -1, 2247 0x100, 2248 "ANTDIE2" 2249 ); 2250 2251 static AnimTypeClass const Ant3Death( 2252 ANIM_ANT3_DEATH, // Animation number. 2253 "ANTDIE", // Data name of animation. 2254 28, // Maximum dimension of animation. 2255 1, // Biggest animation stage. 2256 false, // Theater specific art imagery? 2257 true, // Normalized animation rate? 2258 false, // Uses white translucent table? 2259 false, // Scorches the ground? 2260 false, // Forms a crater? 2261 false, // Sticks to unit in square? 2262 true, // Ground level animation? 2263 true, // Translucent colors in this animation? 2264 false, // Is this a flame thrower animation? 2265 0, // Damage to apply per tick (fixed point). 2266 4, // Delay between frames. 2267 0, // Starting frame number. 2268 0, // Loop start frame number. 2269 -1, // Ending frame of loop back. 2270 -1, // Number of animation stages. 2271 1, // Number of times the animation loops. 2272 VOC_ANTDIE, // Sound effect to play. 2273 ANIM_NONE, 2274 -1, 2275 0x100, 2276 "ANTDIE3" 2277 ); 2278 #endif 2279 2280 /*********************************************************************************************** 2281 * AnimTypeClass::AnimTypeClass -- Constructor for animation types. * 2282 * * 2283 * This is the constructor for static objects that elaborate the various animation types * 2284 * allowed in the game. Each animation in the game is of one of these types. * 2285 * * 2286 * INPUT: see below... * 2287 * * 2288 * OUTPUT: none * 2289 * * 2290 * WARNINGS: none * 2291 * * 2292 * HISTORY: * 2293 * 08/23/1994 JLB : Created. * 2294 *=============================================================================================*/ 2295 AnimTypeClass::AnimTypeClass( 2296 AnimType anim, 2297 char const * name, 2298 int size, 2299 int biggest, 2300 bool istheater, 2301 bool isnormal, 2302 bool iswhitetrans, 2303 bool isscorcher, 2304 bool iscrater, 2305 bool issticky, 2306 bool ground, 2307 bool istrans, 2308 bool isflame, 2309 fixed damage, 2310 int delaytime, 2311 int start, 2312 int loopstart, 2313 int loopend, 2314 int stages, 2315 int loops, 2316 VocType soundid, 2317 AnimType chainto, 2318 int virtualstages, 2319 int virtualscale, 2320 char const * virtualname, 2321 AnimType virtualanim) : 2322 ObjectTypeClass(RTTI_ANIMTYPE, 2323 int(anim), 2324 true, 2325 true, 2326 false, 2327 false, 2328 true, 2329 true, 2330 false, 2331 TXT_NONE, 2332 name 2333 ), 2334 IsNormalized(isnormal), 2335 IsGroundLayer(ground), 2336 IsTranslucent(istrans), 2337 IsWhiteTrans(iswhitetrans), 2338 IsFlameThrower(isflame), 2339 IsScorcher(isscorcher), 2340 IsCraterForming(iscrater), 2341 IsSticky(issticky), 2342 IsTheater(istheater), 2343 Type(anim), 2344 Size(size), 2345 Biggest(biggest), 2346 Damage(damage), 2347 Delay(delaytime), 2348 Start(start), 2349 LoopStart(loopstart), 2350 LoopEnd(loopend), 2351 Stages(stages), 2352 Loops(loops), 2353 Sound(soundid), 2354 ChainTo(chainto), 2355 VirtualStages(virtualstages), 2356 VirtualScale(virtualscale), 2357 VirtualName(virtualname), 2358 VirtualAnim(virtualanim) 2359 { 2360 } 2361 2362 2363 /*********************************************************************************************** 2364 * AnimTypeClass::operator new -- Allocate an animation type object from private pool. * 2365 * * 2366 * This routine will allocate an animation type class object. * 2367 * * 2368 * INPUT: none * 2369 * * 2370 * OUTPUT: Returns with a pointer to the newly allocated anim type object. If no anim type * 2371 * could be allocated, then NULL is returned. * 2372 * * 2373 * WARNINGS: none * 2374 * * 2375 * HISTORY: * 2376 * 07/09/1996 JLB : Created. * 2377 *=============================================================================================*/ 2378 void * AnimTypeClass::operator new(size_t) 2379 { 2380 return(AnimTypes.Alloc()); 2381 } 2382 2383 2384 /*********************************************************************************************** 2385 * AnimTypeClass::operator delete -- Returns an anim type class object back to the pool. * 2386 * * 2387 * This will return the anim type class object back to the memory pool from whence it was * 2388 * previously allocated. * 2389 * * 2390 * INPUT: pointer -- Pointer to the anim type class object to return to the memory pool. * 2391 * * 2392 * OUTPUT: none * 2393 * * 2394 * WARNINGS: none * 2395 * * 2396 * HISTORY: * 2397 * 07/09/1996 JLB : Created. * 2398 *=============================================================================================*/ 2399 void AnimTypeClass::operator delete(void * pointer) 2400 { 2401 AnimTypes.Free((AnimTypeClass *)pointer); 2402 } 2403 2404 2405 /*********************************************************************************************** 2406 * AnimTypeClass::Init_Heap -- Initialize the animation type system. * 2407 * * 2408 * This routine is called to initialize the animation type class heap. It allocates all * 2409 * known animation types. * 2410 * * 2411 * INPUT: none * 2412 * * 2413 * OUTPUT: none * 2414 * * 2415 * WARNINGS: none * 2416 * * 2417 * HISTORY: * 2418 * 07/09/1996 JLB : Created. * 2419 *=============================================================================================*/ 2420 void AnimTypeClass::Init_Heap(void) 2421 { 2422 /* 2423 ** These anim type class objects must be allocated in the exact order that they 2424 ** are specified in the AnimType enumeration. This is necessary because the heap 2425 ** allocation block index serves double duty as the type number index. 2426 */ 2427 new AnimTypeClass(FBall1); 2428 new AnimTypeClass(FireBallFade); 2429 new AnimTypeClass(Frag1); 2430 new AnimTypeClass(VehHit1); 2431 new AnimTypeClass(VehHit2); 2432 new AnimTypeClass(VehHit3); 2433 new AnimTypeClass(ArtExp1); 2434 new AnimTypeClass(Napalm1); 2435 new AnimTypeClass(Napalm2); 2436 new AnimTypeClass(Napalm3); 2437 new AnimTypeClass(SmokePuff); 2438 new AnimTypeClass(Piff); 2439 new AnimTypeClass(PiffPiff); 2440 new AnimTypeClass(Fire3); 2441 new AnimTypeClass(Fire2); 2442 new AnimTypeClass(Fire1); 2443 new AnimTypeClass(Fire4); 2444 new AnimTypeClass(Gunfire); 2445 new AnimTypeClass(SmokeM); 2446 new AnimTypeClass(BurnSmall); 2447 new AnimTypeClass(BurnMed); 2448 new AnimTypeClass(BurnBig); 2449 new AnimTypeClass(OnFireSmall); 2450 new AnimTypeClass(OnFireMed); 2451 new AnimTypeClass(OnFireBig); 2452 new AnimTypeClass(SAMN); 2453 new AnimTypeClass(SAMNE); 2454 new AnimTypeClass(SAME); 2455 new AnimTypeClass(SAMSE); 2456 new AnimTypeClass(SAMS); 2457 new AnimTypeClass(SAMSW); 2458 new AnimTypeClass(SAMW); 2459 new AnimTypeClass(SAMNW); 2460 new AnimTypeClass(GUNN); 2461 new AnimTypeClass(GUNNE); 2462 new AnimTypeClass(GUNE); 2463 new AnimTypeClass(GUNSE); 2464 new AnimTypeClass(GUNS); 2465 new AnimTypeClass(GUNSW); 2466 new AnimTypeClass(GUNW); 2467 new AnimTypeClass(GUNNW); 2468 new AnimTypeClass(LZSmoke); 2469 new AnimTypeClass(CDeviator); 2470 new AnimTypeClass(CDollar); 2471 new AnimTypeClass(CEarth); 2472 new AnimTypeClass(CEmpulse); 2473 new AnimTypeClass(CInvun); 2474 new AnimTypeClass(CMine); 2475 new AnimTypeClass(CRapid); 2476 new AnimTypeClass(CStealth); 2477 new AnimTypeClass(CMissile); 2478 new AnimTypeClass(MoveFlash); 2479 new AnimTypeClass(OilFieldBurn); 2480 new AnimTypeClass(ElectricDie); 2481 new AnimTypeClass(Parachute); 2482 new AnimTypeClass(DogElectricDie); 2483 new AnimTypeClass(Corpse1); 2484 new AnimTypeClass(Corpse2); 2485 new AnimTypeClass(Corpse3); 2486 new AnimTypeClass(SputDoor); 2487 new AnimTypeClass(AtomBomb); 2488 new AnimTypeClass(ChronoBox); 2489 new AnimTypeClass(GPSBox); 2490 new AnimTypeClass(InvulBox); 2491 new AnimTypeClass(ParaBox); 2492 new AnimTypeClass(SonarBox); 2493 new AnimTypeClass(Twinkle1); 2494 new AnimTypeClass(Twinkle2); 2495 new AnimTypeClass(Twinkle3); 2496 new AnimTypeClass(Flak); 2497 new AnimTypeClass(WaterExp1); 2498 new AnimTypeClass(WaterExp2); 2499 new AnimTypeClass(WaterExp3); 2500 new AnimTypeClass(CrateArmor); 2501 new AnimTypeClass(CrateSpeed); 2502 new AnimTypeClass(CrateFPower); 2503 new AnimTypeClass(CrateTQuake); 2504 new AnimTypeClass(ParaBomb); 2505 new AnimTypeClass(MineExp1); 2506 new AnimTypeClass(Flag); 2507 new AnimTypeClass(Beacon); 2508 #ifdef FIXIT_ANTS 2509 new AnimTypeClass(Ant1Death); 2510 new AnimTypeClass(Ant2Death); 2511 new AnimTypeClass(Ant3Death); 2512 #endif 2513 new AnimTypeClass(Fire3Virtual); 2514 new AnimTypeClass(Fire2Virtual); 2515 new AnimTypeClass(Fire1Virtual); 2516 new AnimTypeClass(Fire4Virtual); 2517 new AnimTypeClass(BeaconVirtual); 2518 } 2519 2520 /*********************************************************************************************** 2521 * AnimTypeClass::One_Time -- Performs one time action for animation types. * 2522 * * 2523 * This will load the animation shape data. It is called by the game initialization * 2524 * process. * 2525 * * 2526 * INPUT: none * 2527 * * 2528 * OUTPUT: none * 2529 * * 2530 * WARNINGS: This routine should be called ONLY once. * 2531 * * 2532 * HISTORY: * 2533 * 06/02/1994 JLB : Created. * 2534 *=============================================================================================*/ 2535 void AnimTypeClass::One_Time(void) 2536 { 2537 for (int index = ANIM_FIRST; index < ANIM_COUNT; index++) { 2538 char fullname[_MAX_FNAME+_MAX_EXT]; 2539 2540 AnimTypeClass const & anim = As_Reference((AnimType)index); 2541 2542 if (!anim.IsTheater) { 2543 2544 _makepath(fullname, NULL, NULL, As_Reference((AnimType)index).IniName, ".SHP"); 2545 2546 #ifndef NDEBUG 2547 RawFileClass file(fullname); 2548 if (file.Is_Available()) { 2549 ((void const *&)As_Reference((AnimType)index).ImageData) = Load_Alloc_Data(file); 2550 } else { 2551 ((void const *&)As_Reference((AnimType)index).ImageData) = MFCD::Retrieve(fullname); 2552 } 2553 #else 2554 ((void const *&)As_Reference((AnimType)index).ImageData) = MFCD::Retrieve(fullname); 2555 #endif 2556 } 2557 } 2558 } 2559 2560 2561 /*********************************************************************************************** 2562 * AnimTypeClass::Init -- Load any animation artwork that is theater specific. * 2563 * * 2564 * This routine will examine all the animation types and for any that are theater * 2565 * specific, it will fetch a pointer to the artwork appropriate for the theater specified. * 2566 * * 2567 * INPUT: theater -- The theater to align the animation artwork with. * 2568 * * 2569 * OUTPUT: none * 2570 * * 2571 * WARNINGS: Call this routine when the theater changes. * 2572 * * 2573 * HISTORY: * 2574 * 07/06/1996 JLB : Created. * 2575 *=============================================================================================*/ 2576 void AnimTypeClass::Init(TheaterType theater) 2577 { 2578 if (theater != LastTheater) { 2579 for (int index = ANIM_FIRST; index < ANIM_COUNT; index++) { 2580 AnimTypeClass const & anim = As_Reference((AnimType)index); 2581 2582 if (anim.IsTheater) { 2583 char fullname[_MAX_FNAME+_MAX_EXT]; // Fully constructed iconset name. 2584 _makepath(fullname, NULL, NULL, anim.IniName, Theaters[theater].Suffix); 2585 ((void const *&)anim.ImageData) = MFCD::Retrieve(fullname); 2586 } 2587 } 2588 2589 // Set up beacon image data manually since they're new animations only available in the virtual renderer 2590 ((void const *&)As_Reference(ANIM_BEACON_VIRTUAL).ImageData) = As_Reference(ANIM_BEACON).ImageData; 2591 } 2592 } 2593 2594 2595 /*********************************************************************************************** 2596 * Anim_Name -- Fetches the ASCII name of the animation type specified. * 2597 * * 2598 * This will convert the animation type specified into a text name. This name can be used * 2599 * for uniquely identifying the animation. * 2600 * * 2601 * INPUT: anim -- The anim type to convert to a text string. * 2602 * * 2603 * OUTPUT: Returns with a pointer to the ASCII string that identifies this animation. * 2604 * * 2605 * WARNINGS: none * 2606 * * 2607 * HISTORY: * 2608 * 07/06/1996 JLB : Created. * 2609 *=============================================================================================*/ 2610 char const * Anim_Name(AnimType anim) 2611 { 2612 if (anim == ANIM_NONE) return(""); 2613 2614 return(AnimTypeClass::As_Reference(anim).IniName); 2615 } 2616 2617 2618 /*********************************************************************************************** 2619 * AnimTypeClass::As_Reference -- Fetch a reference to the animation type specified. * 2620 * * 2621 * This routine will convert the animation type specified into a reference to the * 2622 * animation type class object. * 2623 * * 2624 * INPUT: type -- The animation type to convert into a reference. * 2625 * * 2626 * OUTPUT: Returns with a reference to the animation type class object. * 2627 * * 2628 * WARNINGS: Be sure that the animation type specified is legal. If it isn't then the * 2629 * results of this routine are undefined. * 2630 * * 2631 * HISTORY: * 2632 * 07/06/1996 JLB : Created. * 2633 *=============================================================================================*/ 2634 AnimTypeClass & AnimTypeClass::As_Reference(AnimType type) 2635 { 2636 return(* AnimTypes.Ptr(type)); 2637 } 2638