gamelog_internal.h
Go to the documentation of this file.00001
00002
00005 #ifndef GAMELOG_INTERNAL_H
00006 #define GAMELOG_INTERNAL_H
00007
00008 #include "network/core/config.h"
00009
00011 enum GamelogChangeType {
00012 GLCT_MODE,
00013 GLCT_REVISION,
00014 GLCT_OLDVER,
00015 GLCT_SETTING,
00016 GLCT_GRFADD,
00017 GLCT_GRFREM,
00018 GLCT_GRFCOMPAT,
00019 GLCT_GRFPARAM,
00020 GLCT_GRFMOVE,
00021 GLCT_GRFBUG,
00022 GLCT_EMERGENCY,
00023 GLCT_END,
00024 GLCT_NONE = 0xFF,
00025 };
00026
00027
00029 struct LoggedChange {
00030 GamelogChangeType ct;
00031 union {
00032 struct {
00033 byte mode;
00034 byte landscape;
00035 } mode;
00036 struct {
00037 char text[NETWORK_REVISION_LENGTH];
00038 uint32 newgrf;
00039 uint16 slver;
00040 byte modified;
00041 } revision;
00042 struct {
00043 uint32 type;
00044 uint32 version;
00045 } oldver;
00046 GRFIdentifier grfadd;
00047 struct {
00048 uint32 grfid;
00049 } grfrem;
00050 GRFIdentifier grfcompat;
00051 struct {
00052 uint32 grfid;
00053 } grfparam;
00054 struct {
00055 uint32 grfid;
00056 int32 offset;
00057 } grfmove;
00058 struct {
00059 char *name;
00060 int32 oldval;
00061 int32 newval;
00062 } setting;
00063 struct {
00064 uint64 data;
00065 uint32 grfid;
00066 byte bug;
00067 } grfbug;
00068 };
00069 };
00070
00071
00073 struct LoggedAction {
00074 LoggedChange *change;
00075 uint32 changes;
00076 GamelogActionType at;
00077 uint16 tick;
00078 };
00079
00080 extern LoggedAction *_gamelog_action;
00081 extern uint _gamelog_actions;
00082
00083 #endif