ADATA.CPP 111 KB

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