RULES.H 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885
  1. /*
  2. ** Command & Conquer Red Alert(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. /* $Header: /CounterStrike/RULES.H 1 3/03/97 10:25a Joe_bostic $ */
  19. /***********************************************************************************************
  20. *** 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 ***
  21. ***********************************************************************************************
  22. * *
  23. * Project Name : Command & Conquer *
  24. * *
  25. * File Name : RULES.H *
  26. * *
  27. * Programmer : Joe L. Bostic *
  28. * *
  29. * Start Date : 05/12/96 *
  30. * *
  31. * Last Update : May 12, 1996 [JLB] *
  32. * *
  33. *---------------------------------------------------------------------------------------------*
  34. * Functions: *
  35. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
  36. #ifndef RULES_H
  37. #define RULES_H
  38. #include "ccini.h"
  39. class DifficultyClass
  40. {
  41. public:
  42. fixed FirepowerBias;
  43. fixed GroundspeedBias;
  44. fixed AirspeedBias;
  45. fixed ArmorBias;
  46. fixed ROFBias;
  47. fixed CostBias;
  48. fixed BuildSpeedBias;
  49. fixed RepairDelay;
  50. fixed BuildDelay;
  51. unsigned IsBuildSlowdown:1;
  52. unsigned IsWallDestroyer:1;
  53. unsigned IsContentScan:1;
  54. };
  55. class RulesClass {
  56. public:
  57. RulesClass(void);
  58. bool Process(CCINIClass & file);
  59. bool General(CCINIClass & ini);
  60. bool MPlayer(CCINIClass & ini);
  61. bool Recharge(CCINIClass & ini);
  62. bool Heap_Maximums(CCINIClass & ini);
  63. bool AI(CCINIClass & ini);
  64. bool Powerups(CCINIClass & ini);
  65. bool Land_Types(CCINIClass & ini);
  66. bool Themes(CCINIClass & ini);
  67. bool IQ(CCINIClass & ini);
  68. bool Objects(CCINIClass & ini);
  69. bool Difficulty(CCINIClass & ini);
  70. /*
  71. ** This specifies the turbo boost speed for missiles when they are fired upon
  72. ** aircraft and the weapon is specified as having a turbo boost bonus.
  73. */
  74. fixed TurboBoost;
  75. /*
  76. ** This specifies the average number of minutes between each computer attack.
  77. */
  78. fixed AttackInterval;
  79. /*
  80. ** This specifies the average minutes delay before the computer will begin
  81. ** its first attack upon the player. The duration is also modified by the
  82. ** difficulty level.
  83. */
  84. fixed AttackDelay;
  85. /*
  86. ** If the power ratio falls below this percentage, then a power emergency is
  87. ** in effect. At such times, the computer might decide to sell off some
  88. ** power hungry buildings in order to alleviate the situation.
  89. */
  90. fixed PowerEmergencyFraction;
  91. /*
  92. ** The number of badgers that arrive when the parabomb option is used.
  93. */
  94. int BadgerBombCount;
  95. /*
  96. ** This specifies the percentage of the base (by building quantity) that should
  97. ** be composed of airstrips.
  98. */
  99. fixed AirstripRatio;
  100. /*
  101. ** Limit the number of airstrips to this amount.
  102. */
  103. int AirstripLimit;
  104. /*
  105. ** This specifies the percentage of the base (by building quantity) that should
  106. ** be composed of helipads.
  107. */
  108. fixed HelipadRatio;
  109. /*
  110. ** Limit the number of helipads to this amount.
  111. */
  112. int HelipadLimit;
  113. /*
  114. ** This specifies the percentage of the base (by building quantity) that should
  115. ** be composed of Tesla Coils.
  116. */
  117. fixed TeslaRatio;
  118. /*
  119. ** Limit tesla coil production to this maximum.
  120. */
  121. int TeslaLimit;
  122. /*
  123. ** This specifies the percentage of the base (by building quantity) that should
  124. ** be composed of anti-aircraft defense.
  125. */
  126. fixed AARatio;
  127. /*
  128. ** Limit anti-aircraft building quantity to this amount.
  129. */
  130. int AALimit;
  131. /*
  132. ** This specifies the percentage of the base (by building quantity) that should
  133. ** be composed of defensive structures.
  134. */
  135. fixed DefenseRatio;
  136. /*
  137. ** This is the limit to the number of defensive building that can be built.
  138. */
  139. int DefenseLimit;
  140. /*
  141. ** This specifies the percentage of the base (by building quantity) that should
  142. ** be composed of war factories.
  143. */
  144. fixed WarRatio;
  145. /*
  146. ** War factories are limited to this quantity for the computer controlled player.
  147. */
  148. int WarLimit;
  149. /*
  150. ** This specifies the percentage of the base (by building quantity) that should
  151. ** be composed of infantry producing structures.
  152. */
  153. fixed BarracksRatio;
  154. /*
  155. ** No more than this many barracks can be built.
  156. */
  157. int BarracksLimit;
  158. /*
  159. ** Refinery building is limited to this many refineries.
  160. */
  161. int RefineryLimit;
  162. /*
  163. ** This specifies the percentage of the base (by building quantity) that should
  164. ** be composed of refineries.
  165. */
  166. fixed RefineryRatio;
  167. /*
  168. ** The computer is limited in the size of the base it can build. It is limited to the
  169. ** size of the largest human opponent base plus this surplus count.
  170. */
  171. int BaseSizeAdd;
  172. /*
  173. ** If the power surplus is less than this amount, then the computer will
  174. ** build power plants.
  175. */
  176. int PowerSurplus;
  177. /*
  178. ** The computer will build infantry if their cash reserve is greater than this amount.
  179. */
  180. int InfantryReserve;
  181. /*
  182. ** This factor is multiplied by the number of buildings in the computer's base and infantry
  183. ** are always built until it matches that number.
  184. */
  185. int InfantryBaseMult;
  186. /*
  187. ** This specifies the duration that a unit will remain chronoshifted before it
  188. ** will be returned to its starting location.
  189. */
  190. fixed ChronoDuration;
  191. /*
  192. ** Percent chance that a water crate will be generated instead of a land
  193. ** crate when crates are on and in a multiplay game.
  194. */
  195. fixed WaterCrateChance;
  196. /*
  197. ** Solo play has money crate amount fixed according to this rule value.
  198. */
  199. int SoloCrateMoney;
  200. /*
  201. ** GPS tech level control.
  202. */
  203. int GPSTechLevel;
  204. /*
  205. ** If a unit type is specified here, then the unit crate will generate
  206. ** a unit of this type (always).
  207. */
  208. UnitType UnitCrateType;
  209. /*
  210. ** This is the time to delay between patrol-to-waypoint target scanning.
  211. */
  212. fixed PatrolTime;
  213. /*
  214. ** This is the time interval that checking to create teams will span. The
  215. ** smaller this number, the more often checking for team creation will occur.
  216. */
  217. fixed TeamDelay;
  218. /*
  219. ** This is the arbitrary delay to make all cloaking objects remain uncloaked
  220. ** before having it recloak.
  221. */
  222. fixed CloakDelay;
  223. /*
  224. ** This is an overall game apparent speed bias to use for object
  225. ** movement purposes.
  226. */
  227. fixed GameSpeedBias;
  228. /*
  229. ** If a potential target is close to the base then increase
  230. ** the likelyhood of attacking it by this bias factor.
  231. */
  232. fixed NervousBias;
  233. /*
  234. ** Controls the Chronal vortex characteristics.
  235. */
  236. LEPTON VortexRange;
  237. MPHType VortexSpeed;
  238. int VortexDamage;
  239. fixed VortexChance;
  240. /*
  241. ** When an explosive object explodes, the damage will spread out
  242. ** by this factor. The value represents the number of cells radius
  243. ** that the damage will spread for every 100 points of raw damage at
  244. ** the explosion center point.
  245. */
  246. fixed ExplosionSpread;
  247. /*
  248. ** For weapons specially marked to check for nearby friendly buildings
  249. ** when scanning for good targets, this indicates the scan radius. Such
  250. ** weapons will supress firing on enemies if they are in close proximity
  251. ** to allied buildings.
  252. */
  253. LEPTON SupressRadius;
  254. /*
  255. ** This is the tech level that para infantry are granted free to the owner
  256. ** of an airstrip.
  257. */
  258. int ParaInfantryTechLevel;
  259. /*
  260. ** This is the tech level that spy planes are granted free to the owner of
  261. ** an airstrip.
  262. */
  263. int SpyPlaneTechLevel;
  264. /*
  265. ** This is the tech level that the parabombs are granted free to the owner
  266. ** of an airstrip.
  267. */
  268. int ParaBombTechLevel;
  269. /*
  270. ** This is the maximum number of IQ settings available. The human player is
  271. ** presumed to be at IQ level zero.
  272. */
  273. int MaxIQ;
  274. /*
  275. ** The IQ level at which super weapons will be automatically fired by the computer.
  276. */
  277. int IQSuperWeapons;
  278. /*
  279. ** The IQ level at which production is automatically controlled by the computer.
  280. */
  281. int IQProduction;
  282. /*
  283. ** The IQ level at which newly produced units start out in guard area mode instead
  284. ** of normal guard mode.
  285. */
  286. int IQGuardArea;
  287. /*
  288. ** The IQ level at which the computer will be able to decide what gets repaired
  289. ** or sold.
  290. */
  291. int IQRepairSell;
  292. /*
  293. ** At this IQ level or higher, a unit is allowed to automatically try to crush
  294. ** an atagonist if possible.
  295. */
  296. int IQCrush;
  297. /*
  298. ** The unit/infantry will try to scatter if an incoming threat
  299. ** is detected.
  300. */
  301. int IQScatter;
  302. /*
  303. ** Tech level at which the computer will scan the contents of a transport
  304. ** in order to pick the best target to fire upon.
  305. */
  306. int IQContentScan;
  307. /*
  308. ** Aircraft replacement production occurs at this IQ level or higher.
  309. */
  310. int IQAircraft;
  311. /*
  312. ** Checks for and replaces lost harvesters.
  313. */
  314. int IQHarvester;
  315. /*
  316. ** Is allowed to sell a structure being damaged.
  317. */
  318. int IQSellBack;
  319. /*
  320. ** The silver and wood crates in solo play will have these powerups.
  321. */
  322. CrateType SilverCrate;
  323. CrateType WoodCrate;
  324. CrateType WaterCrate;
  325. /*
  326. ** This specifies the minimum number of crates to place on the map in spite
  327. ** of the number of actual human players.
  328. */
  329. int CrateMinimum;
  330. /*
  331. ** This specifies the crate maximum quantity to use.
  332. */
  333. int CrateMaximum;
  334. /*
  335. ** Landing zone maximum alternate zone scan radius.
  336. */
  337. LEPTON LZScanRadius;
  338. /*
  339. ** Multiplayer default settings.
  340. */
  341. int MPDefaultMoney;
  342. int MPMaxMoney;
  343. unsigned IsMPShadowGrow:1;
  344. unsigned IsMPBasesOn:1;
  345. unsigned IsMPTiberiumGrow:1;
  346. unsigned IsMPCrates:1;
  347. unsigned IsMPAIPlayers:1;
  348. unsigned IsMPCaptureTheFlag:1;
  349. /*
  350. ** Drop zone reveal radius.
  351. */
  352. LEPTON DropZoneRadius;
  353. /*
  354. ** This is the delay that multiplayer messages will remain on the screen.
  355. */
  356. fixed MessageDelay;
  357. /*
  358. ** Savour delay between when scenario detects end and the actual
  359. ** end of the play.
  360. */
  361. fixed SavourDelay;
  362. /*
  363. ** This specifies the damage to inflict for two differnt styles of
  364. ** land mine.
  365. */
  366. int AVMineDamage;
  367. int APMineDamage;
  368. /*
  369. ** This is the maximum number of multiplayers allowed.
  370. */
  371. int MaxPlayers;
  372. /*
  373. ** This is the delay between 'panic attacks' when the computer's base is under
  374. ** attack. This delay gives the previously assigned units a chance to affect the
  375. ** attacker before the computer sends more.
  376. */
  377. fixed BaseDefenseDelay;
  378. /*
  379. ** These values control the team suspension logic for dealing with immedate base threats.
  380. ** When the base is attacked, all teams with less than the specified priority will be
  381. ** temporarily put on hold for the number of minutes specified.
  382. */
  383. int SuspendPriority;
  384. fixed SuspendDelay;
  385. /*
  386. ** This serves as the fraction of a building's original cost that is converted
  387. ** into survivors (of some fashion). There are rounding and other marginal
  388. ** fudge effects, but this value is the greatest control over the survivor rate.
  389. */
  390. fixed SurvivorFraction;
  391. /*
  392. ** This is the aircraft reload rate expressed in minutes per ammo load.
  393. */
  394. fixed ReloadRate;
  395. /*
  396. ** The average time (in minutes) between the computer autocreating a team
  397. ** from the team's autocreate list.
  398. */
  399. fixed AutocreateTime;
  400. /*
  401. ** Build up time for buildings (minutes).
  402. */
  403. fixed BuildupTime;
  404. /*
  405. ** Ore truck speed for dumping.
  406. */
  407. int OreDumpRate;
  408. /*
  409. ** This is the amount of damage done by the atom bomb in solo missions. The
  410. ** damage done during multiplay will be 1/5th this value.
  411. */
  412. int AtomDamage;
  413. /*
  414. ** This array controls the difficulty affects on the game. There is one
  415. ** difficulty class object for each difficulty level.
  416. */
  417. DifficultyClass Diff[DIFF_COUNT];
  418. /*
  419. ** Is the computer paranoid? If so, then it will band together with other computer
  420. ** paranoid players when the situation looks rough.
  421. */
  422. bool IsComputerParanoid:1;
  423. /*
  424. ** Should helicopters shuffle their position between firing on their
  425. ** target?
  426. */
  427. bool IsCurleyShuffle:1;
  428. /*
  429. ** Flash the power bar when the power goes below 100%.
  430. */
  431. bool IsFlashLowPower:1;
  432. /*
  433. ** If the computer players will go to easy mode if there is more
  434. ** than one human player, this flag will be true.
  435. */
  436. bool IsCompEasyBonus:1;
  437. /*
  438. ** If fine control of difficulty settings is desired, then set this value to true.
  439. ** Fine control allows 5 settings. The coarse control only allows three settings.
  440. */
  441. bool IsFineDifficulty:1;
  442. /*
  443. ** If the harvester is to explode more violently than normal
  444. ** if it is carrying cargo, then this flag will be true.
  445. */
  446. unsigned IsExplosiveHarvester:1;
  447. /*
  448. ** Show the health bar on the enemy units?
  449. */
  450. unsigned IsHealthBar:1;
  451. /*
  452. ** If this flag is true, then the construction yard can undeploy back into an MCV.
  453. */
  454. unsigned IsMCVDeploy:1;
  455. /*
  456. ** If the base is to be revealed to a new ally, then this
  457. ** flag will be true.
  458. */
  459. unsigned IsAllyReveal:1;
  460. /*
  461. ** Can the helipad (and airfield) be purchased separately from the associated
  462. ** aircraft.
  463. */
  464. unsigned IsSeparate:1;
  465. /*
  466. ** Give target cursor for trees? Doing this will make targetting of trees easier.
  467. */
  468. unsigned IsTreeTarget:1;
  469. /*
  470. ** Are friendly units automatically aware of mines so that they can avoid them?
  471. */
  472. unsigned IsMineAware:1;
  473. /*
  474. ** If Tiberium is allowed to grow, then this flag will be true.
  475. */
  476. unsigned IsTGrowth:1;
  477. /*
  478. ** If Tiberium is allowed to spread, then this flag will be true.
  479. */
  480. unsigned IsTSpread:1;
  481. /*
  482. ** Should civilan buildings and civilians display their true name rather than
  483. ** the generic "Civilian Building" and "Civilain"?
  484. */
  485. unsigned IsNamed:1;
  486. /*
  487. ** Should player controlled vehicles automatically try to crush nearby infantry
  488. ** instead of required the player to manually direct them to crush.
  489. */
  490. unsigned IsAutoCrush:1;
  491. /*
  492. ** Should the player controlled buildings and units automatically return fire when
  493. ** fired upon?
  494. */
  495. unsigned IsSmartDefense:1;
  496. /*
  497. ** Should player controlled units try to scatter more easily in order to
  498. ** avoid damage or threats?
  499. */
  500. unsigned IsScatter:1;
  501. /*
  502. ** If the chronoshift effect should kill all cargo, then this flag will
  503. ** be set to true.
  504. */
  505. unsigned IsChronoKill:1;
  506. /*
  507. ** When infantry are prone or when civilians are running around like crazy,
  508. ** they are less prone to damage. This specifies the multiplier to the damage
  509. ** (as a fixed point number).
  510. */
  511. fixed ProneDamageBias;
  512. /*
  513. ** The time quake will do this percentage of damage to all units and buildings
  514. ** in the game. The number is expressed as a fixed point percentage.
  515. */
  516. fixed QuakeDamagePercent;
  517. /*
  518. ** Percentage chance that a time quake will occur with each chronoshift use.
  519. */
  520. fixed QuakeChance;
  521. /*
  522. ** Ore (Tiberium) growth rate. The value is the number of minutes between
  523. ** growth steps.
  524. */
  525. fixed GrowthRate;
  526. /*
  527. ** This specifies the number of minutes between each shroud regrowth process.
  528. */
  529. fixed ShroudRate;
  530. /*
  531. ** This is the average minutes between each generation of a random crate
  532. ** to be placed on the map if generating of random crates is indicated.
  533. */
  534. fixed CrateTime;
  535. /*
  536. ** This specifies the number of minutes remaining before that if the mission timer
  537. ** gets to this level or below, it will be displayed in red.
  538. */
  539. fixed TimerWarning;
  540. /*
  541. ** This specifies the minutes of delay between recharges for these
  542. ** special weapon types.
  543. */
  544. fixed SonarTime;
  545. fixed ChronoTime;
  546. fixed ParaBombTime;
  547. fixed ParaInfantryTime;
  548. fixed ParaSaboteurTime;
  549. fixed SpyTime;
  550. fixed IronCurtainTime;
  551. fixed GPSTime;
  552. fixed NukeTime;
  553. /*
  554. ** Other miscellaneous delay times.
  555. */
  556. fixed SpeakDelay;
  557. fixed DamageDelay;
  558. /*
  559. ** This is the gravity constant used to control the arcing and descent of ballistic
  560. ** object such as grenades and artillery.
  561. */
  562. int Gravity;
  563. /*
  564. ** Gap generators have a shroud radius of this many cells.
  565. */
  566. int GapShroudRadius;
  567. /*
  568. ** This is the minute interval between the gap generators refreshing
  569. ** their zones of gapping.
  570. */
  571. fixed GapRegenInterval;
  572. /*
  573. ** Mobile radar jammer radius of effect.
  574. */
  575. LEPTON RadarJamRadius;
  576. /*
  577. ** The speed at which a projectile that travels at or slower will cause
  578. ** objects in the target location to scatter. This simulates the ability
  579. ** of targets to run for cover if the projectile gives them enough time
  580. ** to react.
  581. */
  582. MPHType Incoming;
  583. /*
  584. ** Minimum and maximum damage allowed per shot.
  585. */
  586. int MinDamage;
  587. int MaxDamage;
  588. /*
  589. ** This is the rate of repair for units and buildings. The rate is the
  590. ** number of strength points repaired per repair clock tick. The cost of
  591. ** repair is the (fixed point) fractional cost to repair the object based
  592. ** on the full price of the object. Example; a value of 50% means that to
  593. ** repair the object from 1 damage point to full strength would cost 50% of
  594. ** the cost to build it from scratch.
  595. */
  596. int RepairStep;
  597. fixed RepairPercent;
  598. int URepairStep;
  599. fixed URepairPercent;
  600. /*
  601. ** This is the rate that objects with self healing will heal. They will repair a bit
  602. ** every 'this' number of minutes.
  603. */
  604. fixed RepairRate;
  605. /*
  606. ** These fixed point values are used to determine the status (health bar
  607. ** color) of the game objects. Objects in the 'yellow' are in a cautionary
  608. ** state. Object in the 'red' are in a danger state.
  609. */
  610. fixed ConditionGreen;
  611. fixed ConditionYellow;
  612. fixed ConditionRed;
  613. /*
  614. ** Average number of minutes between infantry random idle animations.
  615. */
  616. fixed RandomAnimateTime;
  617. /*
  618. ** These control the capacity and value of the ore types that a harvester
  619. ** may carry. The harvester carries a maximum discrete number of 'bails'.
  620. ** The value of each bail depends on the ore it is composed of.
  621. */
  622. int BailCount; // was STEP_COUNT
  623. int GoldValue; // was GOLD_WORTH
  624. int GemValue; // was GEM_WORTH
  625. /*
  626. ** This specifies the heap maximum for the various game objects.
  627. */
  628. int AircraftMax;
  629. int AnimMax;
  630. int BuildingMax;
  631. int BulletMax;
  632. int FactoryMax;
  633. int InfantryMax;
  634. int OverlayMax;
  635. int SmudgeMax;
  636. int TeamMax;
  637. int TeamTypeMax;
  638. int TemplateMax;
  639. int TerrainMax;
  640. int TriggerMax;
  641. int UnitMax;
  642. int VesselMax;
  643. int ProjectileMax;
  644. int WeaponMax;
  645. int WarheadMax;
  646. int TrigTypeMax;
  647. /*
  648. ** Close enough distance that is used to determine if the object should
  649. ** stop movement when blocked. If the distance to the desired destination
  650. ** is equal to this distance or less, but the path is blocked, then consider
  651. ** the object to have gotten "close enough" to the destination to stop.
  652. */
  653. LEPTON CloseEnoughDistance;
  654. /*
  655. ** Stray distance to group team members within. The larger the distance,
  656. ** the looser the teams will move.
  657. */
  658. LEPTON StrayDistance;
  659. /*
  660. ** If a vehicle is closer than this range to a target that it can crush
  661. ** by driving over it, then it will try to drive over it instead of firing
  662. ** upon it. The larger the value, the greater the 'bigfoot crush syndrome' is
  663. ** has.
  664. */
  665. LEPTON CrushDistance;
  666. /*
  667. ** For area effect crate bonus items will affect all objects within this radius.
  668. */
  669. LEPTON CrateRadius;
  670. /*
  671. ** Maximum scatter distances for homing and non-homing projectiles.
  672. */
  673. LEPTON HomingScatter;
  674. LEPTON BallisticScatter;
  675. /*
  676. ** This is the refund percentage when selling off buildings and units
  677. ** on the repair pad (service depot).
  678. */
  679. fixed RefundPercent;
  680. /*
  681. ** The Iron Curtain invulnerability effect lasts for this many minutes.
  682. */
  683. fixed IronCurtainDuration;
  684. /*
  685. ** The strength of bridges is held here. By corollary, the strength of the
  686. ** demolition charge carried by Tanya is equal to this value as well.
  687. */
  688. int BridgeStrength;
  689. /*
  690. ** This is the overall build speed bias. Multiply this value by the normal build
  691. ** delay to get the effective build delay.
  692. */
  693. fixed BuildSpeedBias;
  694. /*
  695. ** Weapon type array pointer should go here. Dynamic type.
  696. */
  697. /*
  698. ** Warhead type class array pointer should go here. Dynamic type.
  699. */
  700. /*
  701. ** Ground type and speed affect data should go here.
  702. */
  703. /*
  704. ** This is the delay between the time a C4 bomb is planted and the time it will
  705. ** explode. The longer the delay, the greater safety margin for a demolitioner
  706. ** type. The short the delay, the less time the victim has to sell the building
  707. ** off.
  708. */
  709. fixed C4Delay;
  710. /*
  711. ** The computer will only repair a structure if it has spare money greater than this
  712. ** amount. The thinking is that this will prevent the computer from frittering away
  713. ** all it's cash on repairing and thus leaving nothing for production of defenses.
  714. */
  715. int RepairThreshhold;
  716. /*
  717. ** This is the delay (in minutes) between retries of a failed path. The longer the
  718. ** delay the faster the system, but the longer the units take to react to a blocked
  719. ** terrain event.
  720. */
  721. fixed PathDelay;
  722. /*
  723. ** This is the special (debug version only) movie recorder timeout value. Each second
  724. ** results in about 2-3 megabytes.
  725. */
  726. fixed MovieTime;
  727. /*
  728. ** This is the level at or above which the chronosphere facility can
  729. ** actually produce the chronosphere effect. Below this tech level,
  730. ** the facility is merely a showpiece and has no effect.
  731. */
  732. int ChronoTechLevel;
  733. /*
  734. ** These are the Tiberium scan distances. The short range scan is used to determine if the
  735. ** current field has been exhausted. The long range scan is used when finding a Tiberium
  736. ** field to harvest. Keep these ranges as small as possible.
  737. */
  738. LEPTON TiberiumShortScan;
  739. LEPTON TiberiumLongScan;
  740. };
  741. #endif