Files
@ r27487:4d1c2a7bde00
Branch filter:
Location: cpp/openttd-patchpack/source/src/gamelog.h - annotation
r27487:4d1c2a7bde00
3.3 KiB
text/x-c
Codechange: remove queue_wrap / last_position from mouse movement
No backend uses it anymore, so also no longer any need to support
it.
No backend uses it anymore, so also no longer any need to support
it.
r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r17630:7d818445376d r25701:43594ed167c5 r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r11069:3f09c162966b r9704:108fa337b182 r11527:64c8da2b83d1 r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r9457:ecfeb802c57a r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r9457:ecfeb802c57a r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r9457:ecfeb802c57a r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27376:7e6826313302 r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r11527:64c8da2b83d1 r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27235:9a91a121c2bd r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r9457:ecfeb802c57a r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r9457:ecfeb802c57a r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r9457:ecfeb802c57a r27223:23146c90355d r27223:23146c90355d r27223:23146c90355d r9704:108fa337b182 r27223:23146c90355d r18219:9a85d923ce33 r9457:ecfeb802c57a | /*
* 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 gamelog.h Functions to be called to log possibly unsafe game events */
#ifndef GAMELOG_H
#define GAMELOG_H
#include "newgrf_config.h"
/** The actions we log. */
enum GamelogActionType : uint8 {
GLAT_START, ///< Game created
GLAT_LOAD, ///< Game loaded
GLAT_GRF, ///< GRF changed
GLAT_CHEAT, ///< Cheat was used
GLAT_SETTING, ///< Setting changed
GLAT_GRFBUG, ///< GRF bug was triggered
GLAT_EMERGENCY, ///< Emergency savegame
GLAT_END, ///< So we know how many GLATs are there
GLAT_NONE = 0xFF, ///< No logging active; in savegames, end of list
};
/** Type of logged change */
enum GamelogChangeType : uint8 {
GLCT_MODE, ///< Scenario editor x Game, different landscape
GLCT_REVISION, ///< Changed game revision string
GLCT_OLDVER, ///< Loaded from savegame without logged data
GLCT_SETTING, ///< Non-networksafe setting value changed
GLCT_GRFADD, ///< Removed GRF
GLCT_GRFREM, ///< Added GRF
GLCT_GRFCOMPAT, ///< Loading compatible GRF
GLCT_GRFPARAM, ///< GRF parameter changed
GLCT_GRFMOVE, ///< GRF order changed
GLCT_GRFBUG, ///< GRF bug triggered
GLCT_EMERGENCY, ///< Emergency savegame
GLCT_END, ///< So we know how many GLCTs are there
GLCT_NONE = 0xFF, ///< In savegames, end of list
};
struct LoggedChange;
struct LoggedAction;
struct GamelogInternalData;
class Gamelog {
private:
std::unique_ptr<GamelogInternalData> data;
GamelogActionType action_type;
struct LoggedAction *current_action;
void Change(std::unique_ptr<LoggedChange> &&change);
public:
Gamelog();
~Gamelog();
void StartAction(GamelogActionType at);
void StopAction();
void StopAnyAction();
void Reset();
void Print(std::function<void(const std::string &)> proc);
void PrintDebug(int level);
void PrintConsole();
void Emergency();
bool TestEmergency();
void Revision();
void Mode();
void Oldver();
void Setting(const std::string &name, int32 oldval, int32 newval);
void GRFUpdate(const GRFConfig *oldg, const GRFConfig *newg);
void GRFAddList(const GRFConfig *newg);
void GRFRemove(uint32 grfid);
void GRFAdd(const GRFConfig *newg);
void GRFBug(uint32 grfid, byte bug, uint64 data);
bool GRFBugReverse(uint32 grfid, uint16 internal_id);
void GRFCompatible(const GRFIdentifier *newg);
void GRFMove(uint32 grfid, int32 offset);
void GRFParameters(uint32 grfid);
void TestRevision();
void TestMode();
void Info(uint32 *last_ottd_rev, byte *ever_modified, bool *removed_newgrfs);
const GRFIdentifier *GetOverriddenIdentifier(const GRFConfig *c);
/* Saveload handler for gamelog needs access to internal data. */
friend struct GLOGChunkHandler;
};
extern Gamelog _gamelog;
#endif /* GAMELOG_H */
|