CnC_Remastered_Collection

Command and Conquer: Red Alert
Log | Files | Refs | README | LICENSE

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