gamelog.h File Reference

Functions to be called to log possibly unsafe game events. More...

#include "newgrf_config.h"

Go to the source code of this file.

Typedefs

typedef void GamelogPrintProc (const char *s)

Enumerations

enum  GamelogActionType {
  GLAT_START, GLAT_LOAD, GLAT_GRF, GLAT_CHEAT,
  GLAT_SETTING, GLAT_GRFBUG, GLAT_EMERGENCY, GLAT_END,
  GLAT_NONE = 0xFF
}

Functions

void GamelogStartAction (GamelogActionType at)
 Stores information about new action, but doesn't allocate it Action is allocated only when there is at least one change.
void GamelogStopAction ()
 Stops logging of any changes.
void GamelogReset ()
 Resets and frees all memory allocated - used before loading or starting a new game.
void GamelogPrint (GamelogPrintProc *proc)
 Prints active gamelog.
void GamelogPrintDebug (int level)
 Prints gamelog to debug output.
void GamelogPrintConsole ()
void GamelogEmergency ()
 Logs a emergency savegame.
bool GamelogTestEmergency ()
 Finds out if current game is a loaded emergency savegame.
void GamelogRevision ()
 Logs a change in game revision.
void GamelogMode ()
 Logs a change in game mode (scenario editor or game).
void GamelogOldver ()
 Logs loading from savegame without gamelog.
void GamelogSetting (const char *name, int32 oldval, int32 newval)
 Logs change in game settings.
void GamelogGRFUpdate (const GRFConfig *oldg, const GRFConfig *newg)
 Compares two NewGRF lists and logs any change.
void GamelogGRFAddList (const GRFConfig *newg)
 Logs adding of list of GRFs.
void GamelogGRFRemove (uint32 grfid)
 Logs removal of a GRF.
void GamelogGRFAdd (const GRFConfig *newg)
 Logs adding of a GRF.
void GamelogGRFCompatible (const GRFIdentifier *newg)
 Logs loading compatible GRF (the same ID, but different MD5 hash).
void GamelogTestRevision ()
 Finds out if current revision is different than last revision stored in the savegame.
void GamelogTestMode ()
 Finds last stored game mode or landscape.
void GamelogTestGRF ()
bool GamelogGRFBugReverse (uint32 grfid, uint16 internal_id)
 Logs GRF bug - rail vehicle has different length after reversing.
void GamelogGetOriginalGRFMD5Checksum (uint32 grfid, byte *md5sum)
 Get the MD5 checksum of the original NewGRF that was loaded.


Detailed Description

Functions to be called to log possibly unsafe game events.

Definition in file gamelog.h.


Enumeration Type Documentation

Enumerator:
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  No logging active; in savegames, end of list.

Definition at line 17 of file gamelog.h.


Function Documentation

void GamelogGetOriginalGRFMD5Checksum ( uint32  grfid,
byte *  md5sum 
)

Get the MD5 checksum of the original NewGRF that was loaded.

Parameters:
grfid the GRF ID to search for
md5sum the MD5 checksum to write to.

Definition at line 717 of file gamelog.cpp.

References _gamelog_actions, LoggedAction::change, LoggedAction::changes, LoggedChange::ct, GLCT_GRFADD, LoggedChange::grfadd, GRFIdentifier::grfid, and GRFIdentifier::md5sum.

Referenced by NewGRFWindow::OnClick().

void GamelogGRFAdd ( const GRFConfig newg  ) 

Logs adding of a GRF.

Parameters:
newg added GRF

Definition at line 538 of file gamelog.cpp.

References _gamelog_action_type, GamelogChange(), GLAT_GRF, GLAT_LOAD, GLAT_START, GLCT_GRFADD, LoggedChange::grfadd, and IsLoggableGrfConfig().

Referenced by GamelogGRFAddList(), and GamelogGRFUpdate().

void GamelogGRFAddList ( const GRFConfig newg  ) 

Logs adding of list of GRFs.

Useful when old savegame is loaded or when new game is started

Parameters:
newg head of GRF linked list

Definition at line 597 of file gamelog.cpp.

References _gamelog_action_type, GamelogGRFAdd(), GLAT_LOAD, GLAT_START, and GRFConfig::next.

bool GamelogGRFBugReverse ( uint32  grfid,
uint16  internal_id 
)

Logs GRF bug - rail vehicle has different length after reversing.

Ensures this is logged only once for each GRF and engine type This check takes some time, but it is called pretty seldom, so it doesn't matter that much (ideally it shouldn't be called at all).

Parameters:
grfid the broken NewGRF
internal_id the internal ID of whatever's broken in the NewGRF
Returns:
true iff a unique record was done

Definition at line 492 of file gamelog.cpp.

References _gamelog_actions, LoggedAction::change, GamelogGRFBug(), GamelogStartAction(), GamelogStopAction(), GBUG_VEH_LENGTH, GLAT_GRFBUG, and GLCT_GRFBUG.

Referenced by RailVehicleLengthChanged().

void GamelogGRFCompatible ( const GRFIdentifier newg  ) 

Logs loading compatible GRF (the same ID, but different MD5 hash).

Parameters:
newg new (updated) GRF

Definition at line 554 of file gamelog.cpp.

References _gamelog_action_type, GamelogChange(), GLAT_GRF, GLAT_LOAD, GLCT_GRFCOMPAT, and LoggedChange::grfcompat.

Referenced by GamelogGRFUpdate(), and IsGoodGRFConfigList().

void GamelogGRFRemove ( uint32  grfid  ) 

Logs removal of a GRF.

Parameters:
grfid ID of removed GRF

Definition at line 525 of file gamelog.cpp.

References _gamelog_action_type, GamelogChange(), GLAT_GRF, GLAT_LOAD, GLCT_GRFREM, and LoggedChange::grfrem.

Referenced by GamelogGRFUpdate(), and IsGoodGRFConfigList().

void GamelogGRFUpdate ( const GRFConfig oldc,
const GRFConfig newc 
)

Compares two NewGRF lists and logs any change.

Parameters:
oldc original GRF list
newc new GRF list

Definition at line 636 of file gamelog.cpp.

References GamelogGRFAdd(), GamelogGRFCompatible(), GamelogGRFMove(), GamelogGRFParameters(), GamelogGRFRemove(), GenerateGRFList(), GRFList::grf, GRFIdentifier::grfid, GRFIdentifier::md5sum, GRFList::n, GRFConfig::num_params, and GRFConfig::param.

Referenced by NewGRFConfirmationCallback().

void GamelogPrint ( GamelogPrintProc *  proc  ) 

void GamelogPrintDebug ( int  level  ) 

Prints gamelog to debug output.

Code is executed even when there will be no output. It is called very seldom, so it doesn't matter that much. At least it gives more uniform code...

Parameters:
level debug level we need to print stuff

Definition at line 303 of file gamelog.cpp.

References GamelogPrint().

Referenced by GamelogStopAction().

void GamelogSetting ( const char *  name,
int32  oldval,
int32  newval 
)

Logs change in game settings.

Only non-networksafe settings are logged

Parameters:
name setting name
oldval old setting value
newval new setting value

Definition at line 413 of file gamelog.cpp.

References _gamelog_action_type, GamelogChange(), GLAT_SETTING, GLCT_SETTING, and LoggedChange::setting.

Referenced by CmdChangeSetting().

void GamelogStartAction ( GamelogActionType  at  ) 

Stores information about new action, but doesn't allocate it Action is allocated only when there is at least one change.

Parameters:
at type of action

Definition at line 47 of file gamelog.cpp.

References _gamelog_action_type, and GLAT_NONE.

Referenced by ClickChangeClimateCheat(), CmdChangeSetting(), GamelogEmergency(), GamelogGRFBugReverse(), NewGRFConfirmationCallback(), and SaveOrLoad().

void GamelogTestMode (  ) 

Finds last stored game mode or landscape.

Any change is logged

Definition at line 451 of file gamelog.cpp.

References _gamelog_actions, _settings_game, LoggedAction::change, GameSettings::game_creation, GamelogMode(), GLCT_MODE, GameCreationSettings::landscape, and LoggedChange::mode.

Referenced by ClickChangeClimateCheat().

void GamelogTestRevision (  ) 

Finds out if current revision is different than last revision stored in the savegame.

Appends GLCT_REVISION when the revision string changed

Definition at line 429 of file gamelog.cpp.

References _gamelog_actions, LoggedAction::change, GamelogRevision(), GLCT_REVISION, and LoggedChange::revision.


Generated on Tue Jan 5 21:03:03 2010 for OpenTTD by  doxygen 1.5.6