genworld.h File Reference

#include "player_type.h"

Go to the source code of this file.

Data Structures

struct  gw_info

Defines

#define TEMPORARY_OTTDTHREAD_DEFINITION
#define OTTDThread   void

Typedefs

typedef void gw_done_proc ()
typedef void gw_abort_proc ()

Enumerations

enum  { LG_ORIGINAL = 0, LG_TERRAGENESIS = 1, GENERATE_NEW_SEED = (uint)-1 }
enum  gwp_class {
  GWP_MAP_INIT, GWP_LANDSCAPE, GWP_ROUGH_ROCKY, GWP_TOWN,
  GWP_INDUSTRY, GWP_UNMOVABLE, GWP_TREE, GWP_GAME_INIT,
  GWP_RUNTILELOOP, GWP_GAME_START, GWP_CLASS_COUNT
}

Functions

static bool IsGeneratingWorld ()
 Check if we are currently in the process of generating a world.
void SetGeneratingWorldPaintStatus (bool status)
 Set the status of the Paint flag.
bool IsGeneratingWorldReadyForPaint ()
 Returns true if the thread wants the main program to do a (full) paint.
bool IsGenerateWorldThreaded ()
 Tells if the world generation is done in a thread or not.
void GenerateWorldSetCallback (gw_done_proc *proc)
 Set here the function, if any, that you want to be called when landscape generation is done.
void GenerateWorldSetAbortCallback (gw_abort_proc *proc)
 Set here the function, if any, that you want to be called when landscape generation is aborted.
void WaitTillGeneratedWorld ()
 This will wait for the thread to finish up his work.
void GenerateWorld (int mode, uint size_x, uint size_y)
 Generate a world.
void AbortGeneratingWorld ()
 Initializes the abortion process.
bool IsGeneratingWorldAborted ()
 Is the generation being aborted?
void HandleGeneratingWorldAbortion ()
 Really handle the abortion, i.e.
void SetGeneratingWorldProgress (gwp_class cls, uint total)
 Set the total of a stage of the world generation.
void IncreaseGeneratingWorldProgress (gwp_class cls)
 Increases the current stage of the world generation with one.
void PrepareGenerateWorldProgress ()
 Initializes the progress counters to the starting point.
void ShowGenerateWorldProgress ()
 Show the window where a user can follow the process of the map generation.
void StartNewGameWithoutGUI (uint seed)
void ShowCreateScenario ()
void StartScenarioEditor ()


Detailed Description

Definition in file genworld.h.


Enumeration Type Documentation

anonymous enum

Enumerator:
LG_ORIGINAL  The original landscape generator.
LG_TERRAGENESIS  TerraGenesis Perlin landscape generator.
GENERATE_NEW_SEED  Create a new random seed.

Definition at line 24 of file genworld.h.

enum gwp_class

Enumerator:
GWP_MAP_INIT  Initialize/allocate the map, start economy.
GWP_LANDSCAPE  Create the landscape.
GWP_ROUGH_ROCKY  Make rough and rocky areas.
GWP_TOWN  Generate towns.
GWP_INDUSTRY  Generate industries.
GWP_UNMOVABLE  Generate unmovables (radio tower, light houses).
GWP_TREE  Generate trees.
GWP_GAME_INIT  Initialize the game.
GWP_RUNTILELOOP  Runs the tile loop 1280 times to make snow etc.
GWP_GAME_START  Really prepare to start the game.

Definition at line 54 of file genworld.h.


Function Documentation

void GenerateWorld ( int  mode,
uint  size_x,
uint  size_y 
)

Generate a world.

Parameters:
mode The mode of world generation (see GenerateWorldModes).
size_x The X-size of the map.
size_y The Y-size of the map.

Definition at line 249 of file genworld.cpp.

References _GenerateWorld(), ConvertYMDToDate(), DeleteAllNonVitalWindows(), HideVitalWindows(), MapSizeX(), MapSizeY(), OWNER_NONE, PLAYER_SPECTATOR, PrepareGenerateWorldProgress(), SetLocalPlayer(), ShowGenerateWorldProgress(), and TileXY().

void HandleGeneratingWorldAbortion (  ) 

Really handle the abortion, i.e.

clean up some of the mess

Definition at line 221 of file genworld.cpp.

References MarkWholeScreenDirty().

void IncreaseGeneratingWorldProgress ( gwp_class  cls  ) 

Increases the current stage of the world generation with one.

Parameters:
cls the current class we are in.
Warning: this function isn't clever. Don't go from class 4 to 3. Go upwards, always. Also, progress works if total is zero, total works if progress is zero.

Definition at line 989 of file genworld_gui.cpp.

Referenced by _GenerateWorld(), GenerateTerrainPerlin(), PlaceInitialIndustry(), and PlaceTreesRandomly().

bool IsGeneratingWorldReadyForPaint (  ) 

Returns true if the thread wants the main program to do a (full) paint.

If this returns false, please do not update the screen. Because we are writing in a thread, it can cause damaged data (reading and writing the same tile at the same time).

Definition at line 67 of file genworld.cpp.

Referenced by DrawDirtyBlocks().

void SetGeneratingWorldPaintStatus ( bool  status  ) 

Set the status of the Paint flag.

If it is true, the thread will hold with any futher generating till the drawing of the screen is done. This is handled by SetGeneratingWorldProgress(), so calling that function will stall from time to time.

Definition at line 56 of file genworld.cpp.

Referenced by DrawDirtyBlocks().

void SetGeneratingWorldProgress ( gwp_class  cls,
uint  total 
)

Set the total of a stage of the world generation.

Parameters:
cls the current class we are in.
total Set the total expected items for this class.
Warning: this function isn't clever. Don't go from class 4 to 3. Go upwards, always. Also, progress works if total is zero, total works if progress is zero.

Definition at line 975 of file genworld_gui.cpp.

Referenced by _GenerateWorld(), GenerateIndustries(), and GenerateTrees().

void WaitTillGeneratedWorld (  ) 

This will wait for the thread to finish up his work.

It will not continue till the work is done.

Definition at line 193 of file genworld.cpp.


Generated on Wed Oct 1 17:03:27 2008 for openttd by  doxygen 1.5.6