initial commit, lordsawar source, slightly modified
[lordsawar] / src / game-parameters.h
1 //  Copyright (C) 2007 Ole Laursen
2 //  Copyright (C) 2007, 2008 Ben Asselstine
3 //
4 //  This program is free software; you can redistribute it and/or modify
5 //  it under the terms of the GNU General Public License as published by
6 //  the Free Software Foundation; either version 3 of the License, or
7 //  (at your option) any later version.
8 //
9 //  This program is distributed in the hope that it will be useful,
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 //  GNU Library General Public License for more details.
13 //
14 //  You should have received a copy of the GNU General Public License
15 //  along with this program; if not, write to the Free Software
16 //  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
17 //  02110-1301, USA.
18
19 #ifndef GAME_PARAMETERS_H
20 #define GAME_PARAMETERS_H
21
22 #include <vector>
23 #include <string>
24
25 struct GameParameters
26 {
27     struct Player 
28     {
29         enum Type { HUMAN, EASY, HARD, OFF };
30
31         Type type;
32         std::string name;
33         int id;
34     };
35
36     std::vector<Player> players;
37
38     struct Map
39     {
40         int width, height;
41         int grass, water, swamp, forest, hills, mountains;
42         int cities, ruins, temples, signposts;
43     };
44
45     Map map;
46
47     // path to map file to load, empty if none
48     std::string map_path;
49     std::string tile_theme;
50     std::string army_theme;
51     std::string shield_theme;
52     std::string city_theme;
53
54     enum ProcessArmies {
55         PROCESS_ARMIES_AT_PLAYERS_TURN = 0,
56         PROCESS_ARMIES_WHEN_ROUND_BEGINS
57     };
58     ProcessArmies process_armies;
59
60     bool see_opponents_stacks;
61     bool see_opponents_production;
62     enum QuestPolicy {
63       NO_QUESTING = 0, ONE_QUEST_PER_PLAYER, ONE_QUEST_PER_HERO
64     };
65     QuestPolicy play_with_quests;
66     bool hidden_map;
67     bool diplomacy;
68
69     enum NeutralCities {
70         AVERAGE = 0, STRONG, ACTIVE, DEFENSIVE
71     };
72     NeutralCities neutral_cities;
73     enum RazingCities {
74         NEVER = 0, ON_CAPTURE, ALWAYS
75     };
76     RazingCities razing_cities;
77
78     enum QuickStartPolicy {
79       NO_QUICK_START = 0,
80       EVENLY_DIVIDED = 1,
81       AI_HEAD_START = 2,
82     };
83     QuickStartPolicy quick_start;
84     bool cusp_of_war;
85     bool intense_combat;
86     bool military_advisor;
87     bool random_turns;
88     bool cities_can_produce_allies;
89     int difficulty;
90     std::string name;
91 };
92
93 #endif