Files @ r21584:561d516cfa45
Branch filter:

Location: cpp/openttd-patchpack/source/src/openttd.h - annotation

rubidium
(svn r26708) -Codechange: replace C preprocessor with all kinds of options to prevent adding certain things to the result and the sed script to remove everything that shouldn't be in the resulting nfo file but came out of the C preprocessor by a small-ish awk program. This means no more breaking if a C preprocessor decides to add more data to the processed file (like GCC's inclusion of stdc-predef.h when not passing -nostdinc). It furthermore more than halfs the time needed for the assemble step of the extra GRF compilation
r5475:3f5cd13d1b63
r8989:ff553dd7e4c1
r12768:980ae0491352
r12768:980ae0491352
r12768:980ae0491352
r12768:980ae0491352
r12768:980ae0491352
r12768:980ae0491352
r12768:980ae0491352
r9111:983de9c5a848
r5475:3f5cd13d1b63
r5475:3f5cd13d1b63
r5475:3f5cd13d1b63
r5475:3f5cd13d1b63
r11847:235c011992a8
r11847:235c011992a8
r17330:ddf80ef4b607
r11222:f66b1fc27a15
r8121:d05602c69734
r8121:d05602c69734
r11222:f66b1fc27a15
r18398:d59db4740015
r8121:d05602c69734
r8121:d05602c69734
r17330:ddf80ef4b607
r11223:d5864a79dfb6
r11223:d5864a79dfb6
r17717:b0ffe147807b
r17717:b0ffe147807b
r17717:b0ffe147807b
r17722:3fa2edce79df
r17717:b0ffe147807b
r17722:3fa2edce79df
r17722:3fa2edce79df
r17717:b0ffe147807b
r17717:b0ffe147807b
r17717:b0ffe147807b
r17717:b0ffe147807b
r5475:3f5cd13d1b63
r5475:3f5cd13d1b63
r17675:70155598b958
r15173:a59afd6301a6
r17675:70155598b958
r17675:70155598b958
r17675:70155598b958
r17675:70155598b958
r17675:70155598b958
r17675:70155598b958
r17894:3efa365a1d98
r6427:94a91cd8da86
r6427:94a91cd8da86
r11222:f66b1fc27a15
r11223:d5864a79dfb6
r8121:d05602c69734
r11847:235c011992a8
r11847:235c011992a8
r11847:235c011992a8
r13520:b28b2da3bc7b
r13520:b28b2da3bc7b
r13520:b28b2da3bc7b
r13520:b28b2da3bc7b
r13520:b28b2da3bc7b
r13520:b28b2da3bc7b
r18760:babf79514cd5
r13607:a7e0aef7f832
r17675:70155598b958
r13607:a7e0aef7f832
r11847:235c011992a8
r14900:c679fdaeebe6
r11847:235c011992a8
r11847:235c011992a8
r11847:235c011992a8
r11847:235c011992a8
r8121:d05602c69734
r17264:fce9f3d3fb3f
r17264:fce9f3d3fb3f
r17264:fce9f3d3fb3f
r20485:b630adf7e860
r17264:fce9f3d3fb3f
r17264:fce9f3d3fb3f
r18613:c44011152b31
r18613:c44011152b31
r5475:3f5cd13d1b63
/* $Id$ */

/*
 * This file is part of OpenTTD.
 * 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.
 * 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.
 * 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/>.
 */

/** @file openttd.h Some generic types. */

#ifndef OPENTTD_H
#define OPENTTD_H

#include "core/enum_type.hpp"

/** Mode which defines the state of the game. */
enum GameMode {
	GM_MENU,
	GM_NORMAL,
	GM_EDITOR,
	GM_BOOTSTRAP
};

/** Mode which defines what mode we're switching to. */
enum SwitchMode {
	SM_NONE,
	SM_NEWGAME,         ///< New Game --> 'Random game'.
	SM_RESTARTGAME,     ///< Restart --> 'Random game' with current settings.
	SM_EDITOR,          ///< Switch to scenario editor.
	SM_LOAD_GAME,       ///< Load game, Play Scenario.
	SM_MENU,            ///< Switch to game intro menu.
	SM_SAVE_GAME,       ///< Save game.
	SM_SAVE_HEIGHTMAP,  ///< Save heightmap.
	SM_GENRANDLAND,     ///< Generate random land within scenario editor.
	SM_LOAD_SCENARIO,   ///< Load scenario from scenario editor.
	SM_START_HEIGHTMAP, ///< Load a heightmap and start a new game from it.
	SM_LOAD_HEIGHTMAP,  ///< Load heightmap from scenario editor.
};

/** Display Options */
enum DisplayOptions {
	DO_SHOW_TOWN_NAMES     = 0, ///< Display town names.
	DO_SHOW_STATION_NAMES  = 1, ///< Display station names.
	DO_SHOW_SIGNS          = 2, ///< Display signs.
	DO_FULL_ANIMATION      = 3, ///< Perform palette animation.
	DO_FULL_DETAIL         = 5, ///< Also draw details of track and roads.
	DO_SHOW_WAYPOINT_NAMES = 6, ///< Display waypoint names.
	DO_SHOW_COMPETITOR_SIGNS = 7, ///< Display signs, station names and waypoint names of opponent companies. Buoys and oilrig-stations are always shown, even if this option is turned off.
};

extern GameMode _game_mode;
extern SwitchMode _switch_mode;
extern bool _exit_game;

/** Modes of pausing we've got */
enum PauseMode {
	PM_UNPAUSED              = 0,      ///< A normal unpaused game
	PM_PAUSED_NORMAL         = 1 << 0, ///< A game normally paused
	PM_PAUSED_SAVELOAD       = 1 << 1, ///< A game paused for saving/loading
	PM_PAUSED_JOIN           = 1 << 2, ///< A game paused for 'pause_on_join'
	PM_PAUSED_ERROR          = 1 << 3, ///< A game paused because a (critical) error
	PM_PAUSED_ACTIVE_CLIENTS = 1 << 4, ///< A game paused for 'min_active_clients'
	PM_PAUSED_GAME_SCRIPT    = 1 << 5, ///< A game paused by a game script

	/** Pause mode bits when paused for network reasons. */
	PMB_PAUSED_NETWORK = PM_PAUSED_ACTIVE_CLIENTS | PM_PAUSED_JOIN,
};
DECLARE_ENUM_AS_BIT_SET(PauseMode)
typedef SimpleTinyEnumT<PauseMode, byte> PauseModeByte;

/** The current pause mode */
extern PauseModeByte _pause_mode;

void AskExitGame();
void AskExitToGameMenu();

int openttd_main(int argc, char *argv[]);
void HandleExitGameRequest();

void SwitchToMode(SwitchMode new_mode);

#endif /* OPENTTD_H */