OpenTTD

genworld.h
Go to the documentation of this file.
1 /* $Id: genworld.h 27231 2015-04-11 18:45:18Z alberth $ */
2
3 /*
4 * This file is part of OpenTTD.
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8 */
9
12 #ifndef GENWORLD_H
13 #define GENWORLD_H
14
15 #include "company_type.h"
16
18 enum LandscapeGenerator {
19 /* Order of these enums has to be the same as in lang/english.txt
20 * Otherwise you will get inconsistent behaviour. */
21 LG_ORIGINAL = 0,
22 LG_TERRAGENESIS = 1,
23 };
24
25 static const uint GENERATE_NEW_SEED = UINT_MAX;
26
28 enum GenWorldMode {
29 GWM_NEWGAME = 0,
30 GWM_EMPTY = 1,
31 GWM_RANDOM = 2,
32 GWM_HEIGHTMAP = 3,
33 };
34
36 enum TgenSmoothness {
37 TGEN_SMOOTHNESS_BEGIN,
38 TGEN_SMOOTHNESS_VERY_SMOOTH = TGEN_SMOOTHNESS_BEGIN,
39 TGEN_SMOOTHNESS_SMOOTH,
40 TGEN_SMOOTHNESS_ROUGH,
41 TGEN_SMOOTHNESS_VERY_ROUGH,
42
43 TGEN_SMOOTHNESS_END,
44 };
45
46 static const uint CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY = 4;
47 static const uint CUSTOM_SEA_LEVEL_MIN_PERCENTAGE = 1;
48 static const uint CUSTOM_SEA_LEVEL_MAX_PERCENTAGE = 90;
49
50 typedef void GWDoneProc();
51 typedef void GWAbortProc();
52
54 struct GenWorldInfo {
55 bool abort;
56 bool quit_thread;
57 bool threaded;
58 GenWorldMode mode;
59 CompanyID lc;
60 uint size_x;
61 uint size_y;
62 GWDoneProc *proc;
63 GWAbortProc *abortp;
64 class ThreadObject *thread;
65 };
66
68 enum GenWorldProgress {
69 GWP_MAP_INIT,
70 GWP_LANDSCAPE,
71 GWP_RIVER,
72 GWP_ROUGH_ROCKY,
73 GWP_TOWN,
74 GWP_INDUSTRY,
75 GWP_OBJECT,
76 GWP_TREE,
77 GWP_GAME_INIT,
78 GWP_RUNTILELOOP,
79 GWP_RUNSCRIPT,
80 GWP_GAME_START,
81 GWP_CLASS_COUNT
82 };
83
84 /* genworld.cpp */
85 bool IsGenerateWorldThreaded();
86 void GenerateWorldSetCallback(GWDoneProc *proc);
87 void GenerateWorldSetAbortCallback(GWAbortProc *proc);
88 void WaitTillGeneratedWorld();
89 void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_settings = true);
90 void AbortGeneratingWorld();
91 bool IsGeneratingWorldAborted();
92 void HandleGeneratingWorldAbortion();
93
94 /* genworld_gui.cpp */
95 void SetNewLandscapeType(byte landscape);
96 void SetGeneratingWorldProgress(GenWorldProgress cls, uint total);
97 void IncreaseGeneratingWorldProgress(GenWorldProgress cls);
98 void PrepareGenerateWorldProgress();
99 void ShowGenerateWorldProgress();
100 void StartNewGameWithoutGUI(uint seed);
101 void ShowCreateScenario();
102 void StartScenarioEditor();
103
104 extern bool _generating_world;
105
106 #endif /* GENWORLD_H */
PrepareGenerateWorldProgress
void PrepareGenerateWorldProgress()
Initializes the progress counters to the starting point.
Definition: genworld_gui.cpp:1252
GWP_TREE
Generate trees.
Definition: genworld.h:76
GWP_INDUSTRY
Generate industries.
Definition: genworld.h:74
GWDoneProc
void GWDoneProc()
Procedure called when the genworld process finishes.
Definition: genworld.h:50
GenWorldProgress
GenWorldProgress
Current stage of world generation process.
Definition: genworld.h:68
GWP_OBJECT
Generate objects (radio tower, light houses)
Definition: genworld.h:75
StartNewGameWithoutGUI
void StartNewGameWithoutGUI(uint seed)
Start a normal game without the GUI.
Definition: genworld_gui.cpp:873
GWM_NEWGAME
Generate a map for a new game.
Definition: genworld.h:29
GenerateWorldSetAbortCallback
void GenerateWorldSetAbortCallback(GWAbortProc *proc)
Set here the function, if any, that you want to be called when landscape generation is aborted...
Definition: genworld.cpp:233
GenWorldInfo::size_y
uint size_y
Y-size of the map.
Definition: genworld.h:61
GenWorldMode
GenWorldMode
Modes for GenerateWorld.
Definition: genworld.h:28
CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY
static const uint CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY
Value for custom sea level in difficulty settings.
Definition: genworld.h:46
GWP_RIVER
Create the rivers.
Definition: genworld.h:71
GWP_MAP_INIT
Initialize/allocate the map, start economy.
Definition: genworld.h:69
IsGeneratingWorldAborted
bool IsGeneratingWorldAborted()
Is the generation being aborted?
Definition: genworld.cpp:269
TGEN_SMOOTHNESS_SMOOTH
Smoothness preset &#39;smooth&#39;.
Definition: genworld.h:39
ShowGenerateWorldProgress
void ShowGenerateWorldProgress()
Show the window where a user can follow the process of the map generation.
Definition: genworld_gui.cpp:1264
GWM_HEIGHTMAP
Generate a newgame from a heightmap.
Definition: genworld.h:32
GENERATE_NEW_SEED
static const uint GENERATE_NEW_SEED
Create a new random seed.
Definition: genworld.h:25
GenWorldInfo::mode
GenWorldMode mode
What mode are we making a world in.
Definition: genworld.h:58
GenWorldInfo::quit_thread
bool quit_thread
Do we want to quit the active thread.
Definition: genworld.h:56
GenWorldInfo::size_x
uint size_x
X-size of the map.
Definition: genworld.h:60
TGEN_SMOOTHNESS_ROUGH
Smoothness preset &#39;rough&#39;.
Definition: genworld.h:40
TGEN_SMOOTHNESS_VERY_ROUGH
Smoothness preset &#39;very rough&#39;.
Definition: genworld.h:41
GenWorldInfo::abort
bool abort
Whether to abort the thread ASAP.
Definition: genworld.h:55
GWP_LANDSCAPE
Create the landscape.
Definition: genworld.h:70
GenWorldInfo::proc
GWDoneProc * proc
Proc that is called when done (can be NULL)
Definition: genworld.h:62
TgenSmoothness
TgenSmoothness
Smoothness presets.
Definition: genworld.h:36
GWP_TOWN
Generate towns.
Definition: genworld.h:73
_generating_world
bool _generating_world
Whether we are generating the map or not.
Definition: genworld.cpp:61
IsGenerateWorldThreaded
bool IsGenerateWorldThreaded()
Tells if the world generation is done in a thread or not.
Definition: genworld.cpp:67
LG_TERRAGENESIS
TerraGenesis Perlin landscape generator.
Definition: genworld.h:22
GenWorldInfo::threaded
bool threaded
Whether we run _GenerateWorld threaded.
Definition: genworld.h:57
GenWorldInfo
Properties of current genworld process.
Definition: genworld.h:54
GWM_EMPTY
Generate an empty map (sea-level)
Definition: genworld.h:30
StartScenarioEditor
void StartScenarioEditor()
Start with a scenario editor.
Definition: genworld_gui.cpp:864
GenerateWorld
void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_settings=true)
Generate a world.
Definition: genworld.cpp:298
GWP_RUNTILELOOP
Runs the tile loop 1280 times to make snow etc.
Definition: genworld.h:78
TGEN_SMOOTHNESS_END
Used to iterate.
Definition: genworld.h:43
GWAbortProc
void GWAbortProc()
Called when genworld is aborted.
Definition: genworld.h:51
GenWorldInfo::abortp
GWAbortProc * abortp
Proc that is called when aborting (can be NULL)
Definition: genworld.h:63
TGEN_SMOOTHNESS_BEGIN
First smoothness value.
Definition: genworld.h:37
LandscapeGenerator
LandscapeGenerator
Constants related to world generation.
Definition: genworld.h:18
HandleGeneratingWorldAbortion
void HandleGeneratingWorldAbortion()
Really handle the abortion, i.e.
Definition: genworld.cpp:277
ShowCreateScenario
void ShowCreateScenario()
Show the window to create a scenario.
Definition: genworld_gui.cpp:1120
GWP_RUNSCRIPT
Runs the game script at most 2500 times, or when ever the script sleeps.
Definition: genworld.h:79
CUSTOM_SEA_LEVEL_MIN_PERCENTAGE
static const uint CUSTOM_SEA_LEVEL_MIN_PERCENTAGE
Minimum percentage a user can specify for custom sea level.
Definition: genworld.h:47
GenWorldInfo::lc
CompanyID lc
The local_company before generating.
Definition: genworld.h:59
GenWorldInfo::thread
class ThreadObject * thread
The thread we are in (can be NULL)
Definition: genworld.h:64
AbortGeneratingWorld
void AbortGeneratingWorld()
Initializes the abortion process.
Definition: genworld.cpp:260
GWP_ROUGH_ROCKY
Make rough and rocky areas.
Definition: genworld.h:72
company_type.h
Types related to companies.
LG_ORIGINAL
The original landscape generator.
Definition: genworld.h:21
CUSTOM_SEA_LEVEL_MAX_PERCENTAGE
static const uint CUSTOM_SEA_LEVEL_MAX_PERCENTAGE
Maximum percentage a user can specify for custom sea level.
Definition: genworld.h:48
WaitTillGeneratedWorld
void WaitTillGeneratedWorld()
This will wait for the thread to finish up his work.
Definition: genworld.cpp:242
Owner
Owner
Enum for all companies/owners.
Definition: company_type.h:20
SetGeneratingWorldProgress
void SetGeneratingWorldProgress(GenWorldProgress cls, uint total)
Set the total of a stage of the world generation.
Definition: genworld_gui.cpp:1340
GenerateWorldSetCallback
void GenerateWorldSetCallback(GWDoneProc *proc)
Set here the function, if any, that you want to be called when landscape generation is done...
Definition: genworld.cpp:223
SetNewLandscapeType
void SetNewLandscapeType(byte landscape)
Changes landscape type and sets genworld window dirty.
Definition: genworld_gui.cpp:51
IncreaseGeneratingWorldProgress
void IncreaseGeneratingWorldProgress(GenWorldProgress cls)
Increases the current stage of the world generation with one.
Definition: genworld_gui.cpp:1354
GWP_GAME_INIT
Initialize the game.
Definition: genworld.h:77
ThreadObject
A Thread Object which works on all our supported OSes.
Definition: thread.h:24
GWM_RANDOM
Generate a random map for SE.
Definition: genworld.h:31
GWP_GAME_START
Really prepare to start the game.
Definition: genworld.h:80
TGEN_SMOOTHNESS_VERY_SMOOTH
Smoothness preset &#39;very smooth&#39;.
Definition: genworld.h:38