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