mirror of https://github.com/OpenTTD/OpenTTD
Change: Use git revision hash (with "modified" prefix) for gamelog
parent
faee0737e0
commit
cd757ecbf4
|
@ -39,6 +39,30 @@ uint _gamelog_actions = 0; ///< number of actions
|
||||||
static LoggedAction *_current_action = NULL; ///< current action we are logging, NULL when there is no action active
|
static LoggedAction *_current_action = NULL; ///< current action we are logging, NULL when there is no action active
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the revision string for the current client version, for use in gamelog.
|
||||||
|
* The string returned is at most GAMELOG_REVISION_LENGTH bytes long.
|
||||||
|
*/
|
||||||
|
static const char * GetGamelogRevisionString()
|
||||||
|
{
|
||||||
|
/* Allocate a buffer larger than necessary (git revision hash is 40 bytes) to avoid truncation later */
|
||||||
|
static char gamelog_revision[48] = { 0 };
|
||||||
|
assert_compile(lengthof(gamelog_revision) > GAMELOG_REVISION_LENGTH);
|
||||||
|
|
||||||
|
if (IsReleasedVersion()) {
|
||||||
|
return _openttd_revision;
|
||||||
|
} else if (gamelog_revision[0] == 0) {
|
||||||
|
/* Prefix character indication revision status */
|
||||||
|
assert(_openttd_revision_modified < 3);
|
||||||
|
gamelog_revision[0] = "gum"[_openttd_revision_modified]; // g = "git", u = "unknown", m = "modified"
|
||||||
|
/* Append the revision hash */
|
||||||
|
strecat(gamelog_revision, _openttd_revision_hash, lastof(gamelog_revision));
|
||||||
|
/* Truncate string to GAMELOG_REVISION_LENGTH bytes */
|
||||||
|
gamelog_revision[GAMELOG_REVISION_LENGTH - 1] = '\0';
|
||||||
|
}
|
||||||
|
return gamelog_revision;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores information about new action, but doesn't allocate it
|
* Stores information about new action, but doesn't allocate it
|
||||||
* Action is allocated only when there is at least one change
|
* Action is allocated only when there is at least one change
|
||||||
|
@ -415,7 +439,7 @@ void GamelogRevision()
|
||||||
if (lc == NULL) return;
|
if (lc == NULL) return;
|
||||||
|
|
||||||
memset(lc->revision.text, 0, sizeof(lc->revision.text));
|
memset(lc->revision.text, 0, sizeof(lc->revision.text));
|
||||||
strecpy(lc->revision.text, _openttd_revision, lastof(lc->revision.text));
|
strecpy(lc->revision.text, GetGamelogRevisionString(), lastof(lc->revision.text));
|
||||||
lc->revision.slver = SAVEGAME_VERSION;
|
lc->revision.slver = SAVEGAME_VERSION;
|
||||||
lc->revision.modified = _openttd_revision_modified;
|
lc->revision.modified = _openttd_revision_modified;
|
||||||
lc->revision.newgrf = _openttd_newgrf_version;
|
lc->revision.newgrf = _openttd_newgrf_version;
|
||||||
|
@ -484,7 +508,7 @@ void GamelogTestRevision()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rev == NULL || strcmp(rev->revision.text, _openttd_revision) != 0 ||
|
if (rev == NULL || strcmp(rev->revision.text, GetGamelogRevisionString()) != 0 ||
|
||||||
rev->revision.modified != _openttd_revision_modified ||
|
rev->revision.modified != _openttd_revision_modified ||
|
||||||
rev->revision.newgrf != _openttd_newgrf_version) {
|
rev->revision.newgrf != _openttd_newgrf_version) {
|
||||||
GamelogRevision();
|
GamelogRevision();
|
||||||
|
|
Loading…
Reference in New Issue