1 /*
2  * Seven Kingdoms: Ancient Adversaries
3  *
4  * Copyright 1997,1998 Enlight Software Ltd.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20 
21 //Filename    : GAMEDEF.H
22 //Description : Maximum game constant
23 
24 #ifndef __GAMEDEF_H
25 #define __GAMEDEF_H
26 
27 //----------- define game version ------------//
28 
29 //#define GAME_VERSION_STR   "1.1"
30 extern const char *GAME_VERSION_STR;
31 //#define GAME_VERSION       110          // Version 1.00, don't change it unless the format of save game files has been changed
32 extern const int GAME_VERSION;
33 
34 //-------- Define constant ------------//
35 
36 #define APP_NAME           "SK"                         // application name
37 #define WIN_CLASS_NAME     "Seven_Kingdoms"             // for registering window class
38 #define WIN_TITLE          "Seven Kingdoms"             // window title
39 
40 //------- Data sub-directories -------//
41 
42 #ifdef USE_WINDOWS
43 #define PATH_DELIM "\\"
44 #else
45 #define PATH_DELIM "/"
46 #endif
47 
48 // config dir
49 #define CONFIG_ORGANIZATION_NAME "7kfans.com"
50 #define CONFIG_APPLICATION_NAME "7kaa"
51 
52 // data dirs
53 #define DIR_RES         "RESOURCE" PATH_DELIM
54 #define DIR_SPRITE      "SPRITE" PATH_DELIM
55 #define DIR_SOUND       "SOUND" PATH_DELIM
56 #define DIR_IMAGE       sys.dir_image
57 #define DIR_ENCYC       sys.dir_encyc
58 #define DIR_ENCYC2	sys.dir_encyc2
59 #define DIR_MUSIC       sys.dir_music
60 #define DIR_MOVIE       sys.dir_movie
61 #define DIR_TUTORIAL		sys.dir_tutorial
62 #define DIR_SCENARIO		sys.dir_scenario
63 // see MAX_SCENARIO_PATH in sys
64 #define DIR_SCENARIO_PATH(p)	sys.dir_scenario_path[p]
65 
66 //--------- Define direction types -----------//
67 
68 enum { MAX_DIR=8 };
69 
70 enum { DIR_N,     // building directions
71        DIR_NE,
72        DIR_E,
73        DIR_SE,
74        DIR_S,
75        DIR_SW,
76        DIR_W,
77        DIR_NW
78      };
79 
80 //---------- Link enable/disable status ---------//
81 
82 #define LINK_DD   0     // both sides disabled
83 #define LINK_ED   1     // host side enabled, client side disabled
84 #define LINK_DE   2     // host side disabled, client side enabled
85 #define LINK_EE   3     // both sides enabled
86 
87 //------------- define command types ------------//
88 
89 enum { COMMAND_PLAYER=0, COMMAND_REMOTE=1, COMMAND_AI, COMMAND_AUTO };
90 
91 //-------- Define maximum game constant ---------//
92 
93 #define MAX_RACE                  10
94 
95 #define MAX_COLOR_SCHEME             7    // Maximum no. of color schemes
96 
97 #define MAX_NATION                   MAX_COLOR_SCHEME // Maximum no. of nation should be equal to the maximum no. of color scheme-1 (the exclude one is for independent nations)
98 
99 #define MAX_UNIT_ATTACK_TYPE        3
100 
101 #define MAX_SPRITE_DIR_TYPE         8
102 
103 #define MAX_LINKED_FIRM_FIRM        23
104 #define MAX_LINKED_FIRM_TOWN        30
105 #define MAX_LINKED_TOWN_TOWN        18
106 
107 #define PROCESS_GOODS_INTERVAL      3     // Process goods in mines, factories and market places once 3 days
108 
109 #define PEASANT_FOOD_YEAR_PRODUCTION  30  // A peasant produce 2 units of food per month
110 #define PERSON_FOOD_YEAR_CONSUMPTION  10  // consume one unit of food per person per month
111 
112 #define NO_FOOD_LOYALTY_DECREASE_INTERVAL	 5  // When your kingdom runs out of food, the loyalty of all your units will decrease 1 point every 5 days.
113 
114 #define RAW_PRICE       1           // Cost per raw material
115 #define PRODUCT_PRICE   2           // Cost per product
116 #define CONSUMER_PRICE  4           // Cost per product for consumers
117 
118 #define REWARD_COST                 30
119 #define REWARD_LOYALTY_INCREASE     10
120 
121 #define UNIT_BETRAY_LOYALTY         30 // if a unit's loyalty is below this, it will betray
122 
123 #define PROMOTE_LOYALTY_INCREASE    20
124 #define DEMOTE_LOYALTY_DECREASE     40
125 
126 #define ATTACK_SLOW_DOWN            4  // how many times attacking damages should be reduced, this lessens all attacking damages, thus slowing down all battles.
127 
128 #define SPY_KILLED_REPUTATION_DECREASE		3
129 
130 //-----------------------------------------------//
131 
132 #endif
133