ADATA.CPP 105 KB

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