home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 April B / Pcwk4b98.iso / Gry / DARKREIG / Data / Dark / Aip / Aipdef.h next >
C/C++ Source or Header  |  1997-10-28  |  3KB  |  103 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // UCP Data Structure
  3. // -------------------
  4. // Default Unit Construction Program Definition.
  5. // When no other task demands a Construction Program, build according
  6. // to this program.
  7. struct UNIT_CONSTRUCTION_PROGRAM
  8. {
  9.     char account_name[80];                // The names of the budgetary accounts
  10.     int budget;                                        // How much money gets fed into account
  11.   int max_reserve;
  12. };
  13.  
  14. #define UNLIMITED -1
  15.  
  16. #define YES 1
  17. #define NO 0
  18.  
  19. // Targetting types: Low is simple, high is better
  20. #define TACTAI_LOW 0
  21. #define TACTAI_HIGH 2
  22.  
  23. #define MAX_UCP_LENGTH 20
  24.  
  25. ///////////////////////////////////////////////////////////////////////////////
  26. // ACCOUNT Data Structure
  27. // -------------------
  28. // Default Unit Construction Program Definition.
  29. // When no other task demands a Construction Program, build according
  30. // to this program.
  31. struct ACCOUNT
  32. {
  33.     int priority;                                    // What level of priority does this element have
  34.     char item_name[80];                        // What sort of thing should we buy/build?
  35.     int build_type;                                // Do we want fixed amounts, ratios, or what?
  36.     int build_amount;                            // How much of something (or what ratio) do we want.
  37. };
  38.  
  39. #define NUMBER_TO_HAVE 0
  40. #define NUMBER_TO_BUILD 1
  41. #define RATIO_TO_BUILD 2
  42. #define RATIO_TO_HAVE 3
  43.  
  44. #define MAX_ACCOUNT_LENGTH 50
  45.  
  46.  
  47. ///////////////////////////////////////////////////////////////////////////////
  48. // Force Matching Data Structure
  49. // -------------------
  50. // Unit Force matching modification definition.
  51. // All units in the game have a calculated unit strength which is roughly
  52. // (Damage_Dealt * Hitpoints)/Rate_of_fire (there is a minimum strength, too)
  53. // this allows the designer to assign coefficients to the strengths of particular
  54. // units (such as "Tachyon Tank" 2.0, which would double the apparent strength).
  55. struct FORCE_MATCHING
  56. {
  57.     char unit_name[80];                // The name of the unit type
  58.   float multiplier;         // How much by which to multiply its strength
  59. };
  60.  
  61. #define MAX_FORCE_MATCHING 100
  62.  
  63.  
  64. /////////////////////////////////////////////////////////////////////////////
  65. // BUILDING MATCHING
  66. // --------------\n"
  67. // Which buildings do we want to emphasize & target with this aip?
  68. // Note that this can be used for BOTH the AI team's unit strengths and
  69. // the opponents'
  70. // Where would we want to build the buildings if we could build them?
  71. /////////////////////////////////////////////////////////////////////////////
  72. struct BUILDING_MATCHING
  73. {
  74.     char unit_name[80];                // The name of the unit type
  75.   float multiplier;         // How much by which to multiply its strength
  76.   int  build_pos;           // How much by which to multiply its strength
  77. };
  78.  
  79. #define MAX_BUILDINGS 100
  80.  
  81. #define DONT_CARE 0
  82. #define CENTER_OF_BASE 1
  83. #define PERIMETER 2
  84. #define OUTSIDE_OF_BASE 3
  85. #define NEAR_ENEMY_BASE 4
  86. #define NEAR_ENEMY_TROOPS 5
  87.  
  88.  
  89. /////////////////////////////////////////////////////////////////////////////
  90. // UNIT_MATCH_UP
  91. // -------------
  92. // When we see a unit of one of the following types, build the corresponding 
  93. // unit in the corresponding quantity
  94. /////////////////////////////////////////////////////////////////////////////
  95. struct UNIT_MATCH_UP
  96. {
  97.     char unit_name[80];                    // The name of the unit type
  98.     char match_up_name[80];                // The name of the unit type
  99.   float match_amount;           // How much by which to multiply its strength
  100. };
  101.  
  102.  
  103.