Advanced Strategic Command
gamemap.h
Go to the documentation of this file.
1 
5 /***************************************************************************
6  gamemap.h - description
7  -------------------
8  begin : Tue Feb 17 2001
9  copyright : (C) 2001 by Martin Bickel
10  email : bickel@asc-hq.org
11  ***************************************************************************/
12 
13 /***************************************************************************
14  * *
15  * This program is free software; you can redistribute it and/or modify *
16  * it under the terms of the GNU General Public License as published by *
17  * the Free Software Foundation; either version 2 of the License, or *
18  * (at your option) any later version. *
19  * *
20  ***************************************************************************/
21 
22 
23 #ifndef gamemapH
24  #define gamemapH
25 
26  #include <vector>
27  #include <time.h>
28 
29  #include "typen.h"
30  #include "baseaiinterface.h"
31  #include "vehicle.h"
32  #include "buildings.h"
33  #include "basestrm.h"
34  #include "messages.h"
35  #include "research.h"
36  #include "password.h"
37 #ifdef WEATHERGENERATOR
38  # include "weatherarea.h"
39 #endif
40  #include "objects.h"
41  #include "mapfield.h"
42  #include "networkinterface.h"
43  #include "player.h"
44 
45  #include "actions/actioncontainer.h"
46 
48 
50  public:
51 
52  RandomGenerator(int seedValue);
54 
55  unsigned int getPercentage();
56  unsigned int getRandomValue(int upperLimit);
57  unsigned int getRandomValue (int lowerLimit, int upperLimit);
58  };
59 
60 
61 #ifdef WEATHERGENERATOR
62 class WeatherSystem;
63 #endif
64 
65 
67  public:
68  virtual void readData ( tnstream& stream ) = 0;
69  virtual void writeData ( tnstream& stream ) = 0;
70  virtual ~ActionRecorder() {};
71 };
72 
73 
75 const int gameparameternum = 38;
76 
115 
116 
118  const char* name;
120  int minValue;
121  int maxValue;
123  bool legacy;
124  const char* longName;
125 };
127 
128 class LoadNextMap {
129  public:
130  int id;
131  LoadNextMap( int ID ) : id(ID) {};
132 };
133 
134 
135 
136 
137 
138 
139 class OverviewMapHolder : public sigc::trackable {
140  GameMap& map;
141  Surface overviewMapImage;
142  Surface completedMapImage;
143  bool initialized;
144  bool secondMapReady;
145  bool completed;
146  bool connected;
147  int x;
148  int y;
149  Surface createNewSurface();
150 
151  protected:
152  bool idleHandler( );
153  bool init();
154  void drawNextField( bool signalOnCompletion = true );
155  bool updateField( const MapCoordinate& pos );
156 
157  public:
158  OverviewMapHolder( GameMap& gamemap );
159 
164  const Surface& getOverviewMap( bool complete = true );
165 
166  static void clearmap( GameMap* actmap );
167 
168  static sigc::signal<void> generationComplete;
169 
170  void resetSize();
171 
172  void startUpdate();
173  void clear( bool allImages = false );
174  void connect();
175 };
176 
177 
178 class Event;
179 class PackageData;
180 
182 class GameMap {
183  void operator= ( const GameMap& map );
184  bool dialogsHooked;
185  int serverMapID;
186  public:
187  char* temp;
188  char* temp2;
189  int* temp3;
190  int* temp4;
191 
194 
195  void setServerMapID( int id ) { serverMapID = id; };
196  int getServerMapID() const { return serverMapID; };
197 
198  static const int maxTotalPlayers = 8;
199 
201  int xsize, ysize;
202 
203  int width() const { return xsize; };
204  int height() const { return ysize; };
205 
207  MapField* field;
208 
211 
214 
215  void setTitle( const ASCString& title ) { maptitle = title; };
216  ASCString getTitle() const { return maptitle; };
217 
218 
219  struct Campaign {
221  bool avail;
222 
224  int id;
225 
228  Campaign();
229  } campaign;
230 
232  signed char actplayer;
233 
236 
237  struct Weather {
239  int windSpeed;
241  } weather;
242 
243 #ifdef WEATHERGENERATOR
244  WeatherSystem* weatherSystem;
245 #endif
246 
251 
252 
254 
255  int getPlayerCount() const { return 8; };
256 
258  {
259  return player[p.getID() ];
260  }
261 
262  const Player& getPlayer( PlayerID p ) const
263  {
264  return player[p.getID() ];
265  }
266 
267 
269  {
270  return player[actplayer];
271  }
272 
273  const Player& getCurrentPlayer() const
274  {
275  return player[actplayer];
276  }
277 
278  int getNeutralPlayerNum() const { return 8; };
279 
280  private:
281  MapCoordinate findFirstContainer() const;
282  public:
283 
285  MapCoordinate getCursor() const;
286 
287 
288  int eventID;
289 
292 
293  vector<GameTime> eventTimes;
294 
295  int eventpassed ( int saveas, int action, int mapid );
296  int eventpassed ( int id, int mapid );
297 
298  class IDManager {
299  int unitnetworkid;
300  typedef map<int, Vehicle*> VehicleLookupCache;
301  VehicleLookupCache vehicleLookupCache;
302 
303  friend class SpawnUnit;
304  friend class SpawnMine;
305  friend class GameMap;
306 
307 
308  public:
309  IDManager() : unitnetworkid(0) {};
310 
312  int getNewNetworkID();
313  void registerUnitNetworkID( Vehicle* veh );
314  void unregisterUnitNetworkID( Vehicle* veh );
315 
316  void readData ( tnstream& stream );
317  void writeData ( tnstream& stream ) const;
318  } idManager;
319 
320 
322 
323  enum State {
325  // NormalAuto, /*!< normal operation, without user interaction */
326  // NormalManual, /*!< normal operation, with user interaction */
329  } state;
330 
331 
338  public:
341 
344  bool empty ( );
345  void read ( tnstream& stream );
346  void write ( tnstream& stream );
347  } tribute;
348 
352 
356 
359 
362 
363  void allocateFields ( int x, int y, TerrainType::Weather* terrain = NULL );
364 
367 
369 
370  class ReplayInfo {
371  public:
372  ReplayInfo ( void );
373 
377 
380  void read ( tnstream& stream );
381  void write ( tnstream& stream );
382 
384  void closeLogging();
385  ~ReplayInfo ( );
386 
387  };
388 
392 
393 
395 
397 
400 
401 
402  private:
403  int playerView;
404  public:
405 
410  int getPlayerView() const;
411  void setPlayerView( int player );
412 
414 
417 
422 
427 
433 
435 
437  public:
443  time_t modifytime;
445 
448  public:
449  typedef vector<int> IDsAllowed;
450  bool check ( int id );
452  } unitProduction;
453 
454  GameMap ( void );
455 
456  Vehicle* getUnit ( int x, int y, int nwid );
457  Vehicle* getUnit ( int nwid, bool consistencyCheck = true );
458  const Vehicle* getUnit ( int nwid, bool consistencyCheck = true ) const;
459  ContainerBase* getContainer ( int nwid );
460  const ContainerBase* getContainer ( int nwid ) const;
461  int getgameparameter ( GameParameter num ) const;
462  void setgameparameter ( GameParameter num, int value );
463  void cleartemps( int b = -1, int value = 0 );
464  bool isResourceGlobal ( int resource );
465  inline MapField* getField ( int x, int y ) {
466  return ((x < 0) || (y < 0) || (x >= xsize) || (y >= ysize)) ? NULL : &field[y * xsize + x];
467  }
468  inline const MapField* getField ( int x, int y ) const {
469  return ((x < 0) || (y < 0) || (x >= xsize) || (y >= ysize)) ? NULL : &field[y * xsize + x];
470  }
471  inline MapField* getField ( const MapCoordinate& pos ) { return getField ( pos.x, pos.y ); }
472 
473 
478 
480  void startGame ( );
481 
483  void beginTurn();
484 
485 
487  void endTurn();
488 
490  void endRound();
491 
492 
493  sigc::signal<void,Player&> sigPlayerTurnBegins;
494  sigc::signal<void,Player&> sigPlayerUserInteractionBegins;
495  sigc::signal<void,Player&> sigPlayerUserInteractionEnds;
496  sigc::signal<void,Player&> sigPlayerTurnEnds;
497  sigc::signal<void,Player&> sigPlayerTurnHasEnded;
498  sigc::signal<void,Player&> sigMapWon;
499 
500  static sigc::signal<void,GameMap&> sigMapCreation;
501  static sigc::signal<void,GameMap&> sigMapDeletion;
502  static sigc::signal<void,GameMap*,Player&> sigPlayerTurnEndsStatic;
503 
505  sigc::signal<void,const MapCoodinateVector&> sigCoordinateShift;
506 
508  sigc::signal<void> newRound;
509 
510 
513 
514 
516 
517 
518 
519 
521 
523  int resize( int top, int bottom, int left, int right );
524 
525  // bool compareResources( GameMap* replaymap, int player, ASCString* log = NULL );
526 
527  void calculateAllObjects ( void );
528 
529  void read ( tnstream& stream );
530  void write ( tnstream& stream );
531 
533 
538 
539 
541  ObjectType* getobjecttype_byid ( int id );
542  const ObjectType* getobjecttype_byid ( int id ) const;
543  VehicleType* getvehicletype_byid ( int id );
544  const VehicleType* getvehicletype_byid ( int id ) const;
546  const BuildingType* getbuildingtype_byid ( int id ) const;
547  const Technology* gettechnology_byid ( int id );
548 
550  ObjectType* getobjecttype_bypos ( int pos );
551  VehicleType* getvehicletype_bypos ( int pos );
552  BuildingType* getbuildingtype_bypos ( int pos );
553  const Technology* gettechnology_bypos ( int pos );
554 
555  int getTerrainTypeNum ( );
556  int getObjectTypeNum ( );
557  int getVehicleTypeNum ( );
558  int getBuildingTypeNum ( );
559  int getTechnologyNum ( );
560 
562 
563  ~GameMap();
564 
567 
569  int random( int max );
570 
571  void guiHooked();
572  bool getGuiHooked() { return dialogsHooked; };
573 
577 
579 
580  int getMemoryFootprint() const;
581 
583 
584  private:
585  Vehicle* getUnit ( Vehicle* eht, int nwid );
586 
587  void objectGrowth();
588  void setupResources ( void );
589 
591  void processJournal();
592 
593  unsigned int randomSeed;
594 
595  static void setPlayerMode( Player& p, State s );
596 };
597 
598 
599 
600 #endif
601 
void startGame()
prepares a new game for being played
Definition: gamemap.cpp:1911
the time in ASC, measured in turns and moves
Definition: typen.h:178
Player & getCurrentPlayer()
Definition: gamemap.h:268
static sigc::signal< void, GameMap *, Player & > sigPlayerTurnEndsStatic
Definition: gamemap.h:502
int id
an identification for identifying a map in the chain of maps that make up a campaign ...
Definition: gamemap.h:224
An in-memory storage of streamed data.
Definition: basestrm.h:172
void closeLogging()
Close the replay logging at the end of a players or the ai's turn.
Definition: gamemap.cpp:2232
ASCString codeWord
the codeword for accessing a map in a campaign
Definition: gamemap.h:210
int getVehicleTypeNum()
Definition: gamemap.cpp:1856
void cleartemps(int b=-1, int value=0)
Definition: gamemap.cpp:964
Player & getPlayer(PlayerID p)
Definition: gamemap.h:257
MapCoordinate & getCursor()
Definition: gamemap.cpp:933
void writeData(tnstream &stream) const
Definition: gamemap.cpp:1150
int xsize
the size of the map
Definition: gamemap.h:201
bool loadOldEvents
just a helper variable for loading the map; no function outside;
Definition: gamemap.h:566
void read(tnstream &stream)
Definition: gamemap.cpp:297
int getServerMapID() const
Definition: gamemap.h:196
void clear(bool allImages=false)
Definition: gamemap.cpp:201
static sigc::signal< void > generationComplete
Definition: gamemap.h:168
const Technology * gettechnology_bypos(int pos)
Definition: gamemap.cpp:1841
void drawNextField(bool signalOnCompletion=true)
Definition: gamemap.cpp:128
const char * name
Definition: gamemap.h:118
int random(int max)
generated a pseudo-random number with the map-internal seed
Definition: gamemap.cpp:1425
const int gameparameternum
The number of game paramters that can be specified for each map.
Definition: gamemap.h:75
const Player & getPlayer(PlayerID p) const
Definition: gamemap.h:262
int getNewNetworkID()
returns a new and unique ID
Definition: gamemap.cpp:1139
bool __loadunsentmessage
Definition: gamemap.h:351
Properties properties
general key/value storage, primarily for Lua scripts
Definition: gamemap.h:572
class GameMap::UnitProduction unitProduction
Classes and Functions managing the in-game mails and the journal.
Uint8 levelfinished
Definition: gamemap.h:321
class TerrainType * pterraintype
Definition: terraintype.h:72
bool ___loadtitle
Definition: gamemap.h:361
bool ___loadLegacyNetwork
Definition: gamemap.h:361
A class for holding, encoding and comparing passwords.
sigc::signal< void, Player & > sigMapWon
Definition: gamemap.h:498
void readData(tnstream &stream)
Definition: gamemap.cpp:1145
MemoryStreamStorage * guidata[8]
Definition: gamemap.h:374
ContainerBase * getContainer(int nwid)
Definition: gamemap.cpp:1231
VisibilityStates
the different states that a player's view on a field can have
Definition: typen.h:403
int getBuildingTypeNum()
Definition: gamemap.cpp:1861
void beginTurn()
called when a player starts his turn
Definition: gamemap.cpp:1263
class GameMap::ArchivalInformation archivalInformation
OverviewMapHolder(GameMap &gamemap)
Definition: gamemap.cpp:73
RandomGenerator(int seedValue)
Definition: gamemap.cpp:44
LoadNextMap(int ID)
Definition: gamemap.h:131
const Surface & getOverviewMap(bool complete=true)
returns the overview surface for the map.
Definition: gamemap.cpp:180
Events events
Definition: gamemap.h:291
Resources avail[8][8]
Definition: gamemap.h:339
bool __loadreplayinfo
a helper variable to store some information during the loading process. No usage outside.
Definition: gamemap.h:399
GameParameterSettings gameParameterSettings[gameparameternum]
Definition: gamemap.cpp:2258
The buildings which a placed on the map.
The interface for all kinds of IO stream.
a single field of the map
Definition: mapfield.h:26
sigc::signal< void, Player & > sigPlayerUserInteractionEnds
Definition: gamemap.h:495
GameTime lastjournalchange
Definition: gamemap.h:413
int getTerrainTypeNum()
Definition: gamemap.cpp:1846
Resources paid[8][8]
Definition: gamemap.h:340
struct GameMap::Weather weather
bool ___loadJournal
temporary variables for loading the map
Definition: gamemap.h:361
void setgameparameter(GameParameter num, int value)
Definition: gamemap.cpp:1058
const Player & getCurrentPlayer() const
Definition: gamemap.h:273
The ASCString class provides an abstract way to manipulate strings.
Definition: ascstring.h:14
char * temp2
Definition: gamemap.h:188
pterraintype getterraintype_bypos(int pos)
Definition: gamemap.cpp:1821
int getNeutralPlayerNum() const
Definition: gamemap.h:278
void setServerMapID(int id)
Definition: gamemap.h:195
void write(tnstream &stream)
Definition: gamemap.cpp:1615
ASCString gameJournal
Definition: gamemap.h:365
char * temp
Definition: gamemap.h:187
int getPlayerView() const
the player which is currently viewing the map.
Definition: gamemap.cpp:1007
bool playerAiRunning[9]
Definition: gamemap.h:192
int width() const
Definition: gamemap.h:203
int eventpassed(int saveas, int action, int mapid)
Definition: gamemap.cpp:1111
int getObjectTypeNum()
Definition: gamemap.cpp:1851
int resize(int top, int bottom, int left, int right)
resizes the map. Positive numbers enlarge the map in that direction
Definition: gamemap.cpp:1636
GameMap(void)
Definition: gamemap.cpp:223
struct GameMap::PreferredFilenames preferredFileNames
void read(tnstream &stream)
Definition: gamemap.cpp:2182
The class describing properties that are common to all vehicles of a certain kind.
Definition: vehicletype.h:177
sigc::signal< void, Player & > sigPlayerTurnEnds
Definition: gamemap.h:496
int getMemoryFootprint() const
Definition: gamemap.cpp:1970
int messageid
each message has an identification number (which is incremented with each message) for referencing it...
Definition: gamemap.h:358
int gameparameter_num
Definition: gamemap.h:425
The class describing properties that are common to all buildings of a certain kind.
Definition: buildingtype.h:35
bool updateField(const MapCoordinate &pos)
Definition: gamemap.cpp:97
void read(tnstream &stream)
Definition: gamemap.cpp:1585
int graphicset
the ID of the graphic set
Definition: gamemap.h:424
Resources bi_resource[8]
in BI resource mode ( see _resourcemode , isResourceGlobal ) , this is where the globally available r...
Definition: gamemap.h:416
ActionRecorder * actionRecorder
Definition: gamemap.h:391
MessageContainer messages
these are the messages themselfs. A MessagePntrContainer only stores pointers to message body which a...
Definition: gamemap.h:354
void endRound()
called between endTurn() of player 7 and the next turn of player 0
Definition: gamemap.cpp:1357
int stopRecordingActions
if stopRecordingActions > 0 then no actions will be recorded.
Definition: gamemap.h:379
vector< GameTime > eventTimes
Definition: gamemap.h:293
sigc::signal< void, Player & > sigPlayerTurnHasEnded
Definition: gamemap.h:497
bool idleHandler()
Definition: gamemap.cpp:88
pterraintype getterraintype_byid(int id)
Definition: gamemap.cpp:1778
class GameMap::ResourceTribute tribute
An object that can be placed on fields. Roads, pipelines and ditches are examples of objects...
Definition: objecttype.h:30
Coordinate on the twodimensional map.
Definition: typen.h:202
bool ___loadNewJournal
Definition: gamemap.h:361
BuildingType * getbuildingtype_bypos(int pos)
Definition: gamemap.cpp:1836
Reads data from or writes data to a MemoryStreamStorage This allows a completely volatile storage of ...
Definition: basestrm.h:204
bool isResourceGlobal(int resource)
Definition: gamemap.cpp:1024
static sigc::signal< void, GameMap & > sigMapDeletion
Definition: gamemap.h:501
void allocateFields(int x, int y, TerrainType::Weather *terrain=NULL)
Definition: gamemap.cpp:982
sigc::signal< void, Player & > sigPlayerTurnBegins
Definition: gamemap.h:493
void unregisterUnitNetworkID(Vehicle *veh)
Definition: gamemap.cpp:1131
virtual ~ActionRecorder()
Definition: gamemap.h:70
bool avail
is this a campaign map?
Definition: gamemap.h:221
The interface for the various streams that ASC offers, like file and memory streams.
AbstractTaskContainer * tasks
Definition: gamemap.h:394
int _resourcemode
how are Resources handled on this map 0= "ASC mode": complex system with mineral resources etc 1= "BI...
Definition: gamemap.h:250
void write(tnstream &stream)
Definition: gamemap.cpp:2212
VehicleType * getvehicletype_bypos(int pos)
Definition: gamemap.cpp:1831
int getTechnologyNum()
Definition: gamemap.cpp:1866
int height() const
Definition: gamemap.h:204
signed char actplayer
the player who is currently making his moves (may be human or AI)
Definition: gamemap.h:232
The tribute can not only be used to demand resources from enemies but also to transfer resources to a...
Definition: gamemap.h:337
VehicleType * getvehicletype_byid(int id)
Definition: gamemap.cpp:1794
BuildingType * getbuildingtype_byid(int id)
Definition: gamemap.cpp:1805
int * temp4
Definition: gamemap.h:190
Vehicle * getUnit(int x, int y, int nwid)
Definition: gamemap.cpp:1215
Player player[9]
Definition: gamemap.h:253
Some AI related classes.
static const int maxTotalPlayers
Definition: gamemap.h:198
ASCString getTitle() const
Definition: gamemap.h:216
bool directaccess
can the map be loaded just by knowing its filenmae? If 0, the codeword is required ...
Definition: gamemap.h:227
list< Message * > MessagePntrContainer
Definition: messages.h:74
IDsAllowed idsAllowed
Definition: gamemap.h:451
const char * longName
Definition: gamemap.h:124
void write(tnstream &stream)
Definition: gamemap.cpp:711
int ysize
Definition: gamemap.h:201
GameParameter
Definition: gamemap.h:77
PointerList< Event * > Events
Definition: gamemap.h:290
OverviewMapHolder overviewMapHolder
Definition: gamemap.h:532
int getgameparameter(GameParameter num) const
Definition: gamemap.cpp:1047
class GameMap::IDManager idManager
void registerUnitNetworkID(Vehicle *veh)
Definition: gamemap.cpp:1124
PackageData * packageData
Definition: gamemap.h:582
void setTitle(const ASCString &title)
Definition: gamemap.h:215
MapField * field
the array of fields
Definition: gamemap.h:204
ASCString maptitle
the title of the map
Definition: gamemap.h:213
int eventID
Definition: gamemap.h:288
const MapField * getField(int x, int y) const
Definition: gamemap.h:468
void calculateAllObjects(void)
Definition: gamemap.cpp:1002
bool __loadmessages
Definition: gamemap.h:355
ActionContainer actions
Records all action that have been done for undo/redo purposes.
Definition: gamemap.h:390
void startUpdate()
Definition: gamemap.cpp:194
Mine and Objects which can be placed on a map field.
MapField * getField(const MapCoordinate &pos)
Definition: gamemap.h:471
~GameMap()
Definition: gamemap.cpp:1481
Properties & getProperties()
Definition: gamemap.h:576
Password supervisorpasswordcrc
Definition: gamemap.h:368
GameMap * actmap
Definition: spfst.cpp:64
int * game_parameter
Definition: gamemap.h:426
GameTransferMechanism * network
Definition: gamemap.h:576
enum GameMap::State state
The parent class of Vehicle and Building; The name Container originates from Battle Isle...
Definition: containerbase.h:40
MessagePntrContainer unsentmessage
the list of messages that were written this turn and are waiting to be processed at the end of the tu...
Definition: gamemap.h:350
const T & max(const T &a, const T &b, const T &c)
Definition: misc.h:97
sigc::signal< void, const MapCoodinateVector & > sigCoordinateShift
called when the map is resized and all coordinates have to be adjusted
Definition: gamemap.h:505
int getID() const
Definition: player.h:48
unsigned int getPercentage()
Definition: gamemap.cpp:53
the different players in ASC. There may be 8 players (0..7) and neutral units (8) ...
Definition: player.h:99
void guiHooked()
Definition: gamemap.cpp:289
virtual void writeData(tnstream &stream)=0
void setPlayerView(int player)
Definition: gamemap.cpp:1017
a class for storing general key/values pairs. Intended as a mechanism to persist data from Lua script...
Definition: typen.h:273
int mineralResourcesDisplayed
Definition: gamemap.h:434
Resources are basically the currency of ASC.
Definition: typen.h:97
virtual void readData(tnstream &stream)=0
sigc::signal< void, Player & > sigPlayerUserInteractionBegins
Definition: gamemap.h:494
ObjectType * getobjecttype_bypos(int pos)
Definition: gamemap.cpp:1826
ObjectType * getobjecttype_byid(int id)
Definition: gamemap.cpp:1783
sigc::signal< void > newRound
called when a new round starts (after switching from player 7 to player 0 )
Definition: gamemap.h:508
vector< int > IDsAllowed
Definition: gamemap.h:449
ASCString nativeMessageLanguage
the language string that describes the messages which are saved in the game events For example: en_US...
Definition: gamemap.h:432
VisibilityStates playerAiVision[9]
Definition: gamemap.h:193
convenience-class which automatically determines the Player of units, buildings and other game object...
Definition: player.h:40
bool getGuiHooked()
Definition: gamemap.h:572
Everything related to research.
int getPlayerCount() const
Definition: gamemap.h:255
unsigned int getRandomValue(int upperLimit)
Definition: gamemap.cpp:57
void endTurn()
called after a player ends his turn
Definition: gamemap.cpp:1281
VisibilityStates getInitialMapVisibility(int player)
Definition: gamemap.cpp:1950
specifies which vehicle types can be constructed by construction units
Definition: gamemap.h:447
ReplayInfo * replayinfo
Definition: gamemap.h:396
Resources payStatusLastTurn[8][8]
for the messages that are send each turn it is necessary to record how much of the transfer happend d...
Definition: gamemap.h:343
GameTime time
the time in the game, mesured in a turns and moves
Definition: gamemap.h:235
MemoryStream * actmemstream
Definition: gamemap.h:376
static sigc::signal< void, GameMap & > sigMapCreation
Definition: gamemap.h:500
The map. THE central structure of ASC, which holds everything not globally available together...
Definition: gamemap.h:182
const Technology * gettechnology_byid(int id)
Definition: gamemap.cpp:1815
static void clearmap(GameMap *actmap)
Definition: gamemap.cpp:216
bool continueplaying
if a player has won a singleplayer map, but wants to continue playing without any enemies...
Definition: gamemap.h:512
int * temp3
Definition: gamemap.h:189
ASCString newJournal
Definition: gamemap.h:366
struct GameMap::Campaign campaign
MapField * getField(int x, int y)
Definition: gamemap.h:465