(svn r11330) -Add: OTTD version checking for NewGRFs. This allows NewGRFs to do something different for different versions of OpenTTD, like disabling it for too low versions or loading different graphics.
This commit is contained in:
@@ -3073,6 +3073,7 @@ STR_NEWGRF_ERROR_UNSET_SWITCH :{STRING} is des
|
||||
STR_NEWGRF_ERROR_INVALID_PARAMETER :Invalid parameter for {STRING}: parameter {STRING} ({NUM})
|
||||
STR_NEWGRF_ERROR_LOAD_BEFORE :{STRING} must be loaded before {STRING}.
|
||||
STR_NEWGRF_ERROR_LOAD_AFTER :{STRING} must be loaded after {STRING}.
|
||||
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{STRING} requires OpenTTD version {STRING} or better.
|
||||
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :the GRF file it was designed to translate
|
||||
|
||||
STR_NEWGRF_ADD :{BLACK}Add
|
||||
|
@@ -3424,6 +3424,11 @@ static uint32 GetParamVal(byte param, uint32 *cond_val)
|
||||
case 0x9E: // Miscellaneous GRF features
|
||||
return _misc_grf_features;
|
||||
|
||||
case 0xA1: { // OpenTTD version
|
||||
extern uint32 _openttd_newgrf_version;
|
||||
return _openttd_newgrf_version;
|
||||
}
|
||||
|
||||
default:
|
||||
/* GRF Parameter */
|
||||
if (param < 0x80) return _cur_grffile->param[param];
|
||||
@@ -3790,7 +3795,8 @@ static void GRFLoadError(byte *buf, int len)
|
||||
STR_NEWGRF_ERROR_UNSET_SWITCH,
|
||||
STR_NEWGRF_ERROR_INVALID_PARAMETER,
|
||||
STR_NEWGRF_ERROR_LOAD_BEFORE,
|
||||
STR_NEWGRF_ERROR_LOAD_AFTER
|
||||
STR_NEWGRF_ERROR_LOAD_AFTER,
|
||||
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER,
|
||||
};
|
||||
|
||||
static const StringID sevstr[] = {
|
||||
|
@@ -1,4 +1,5 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
// $Id$
|
||||
//
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@@ -65,8 +66,8 @@ END
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 0,5,99,0
|
||||
PRODUCTVERSION 0,5,99,0
|
||||
FILEVERSION 0,6,0,@@REVISION@@
|
||||
PRODUCTVERSION 0,6,0,@@REVISION@@
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@@ -1,4 +1,44 @@
|
||||
/* $Id$ */
|
||||
|
||||
/** @file rev.cpp Autogenerated file with the revision and such of OpenTTD. */
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
/**
|
||||
* The text version of OpenTTD's revision.
|
||||
* This will be either "<major>.<minor>.<build>[-RC<rc>]",
|
||||
* "r<revision number>[M][-<branch>]" or "norev000".
|
||||
*
|
||||
* The major, minor and build are the numbers that describe releases of
|
||||
* OpenTTD (like 0.5.3). "-RC" is used to flag release candidates.
|
||||
*
|
||||
* The revision number is fairly straight forward. The M is to show that
|
||||
* the binary is made from modified source code. The branch shows the
|
||||
* branch the revision is of and will not be there when it is trunk.
|
||||
*
|
||||
* norev000 is for non-releases that are made on systems without
|
||||
* subversion or sources that are not a checkout of subversion.
|
||||
*/
|
||||
extern const char _openttd_revision[] = "@@VERSION@@";
|
||||
|
||||
/**
|
||||
* The NewGRF revision of OTTD:
|
||||
* bits meaning.
|
||||
* 28-31 major version
|
||||
* 24-27 minor version
|
||||
* 20-23 build
|
||||
* 19 1 if it is a release, 0 if it is not.
|
||||
* 0-18 revision number; 0 for releases and when the revision is unknown.
|
||||
*
|
||||
* The 19th bit is there so the development/betas/alpha, etc. leading to a
|
||||
* final release will always have a lower version number than the released
|
||||
* version, thus making comparisions on specific revisions easy.
|
||||
*/
|
||||
uint32 _openttd_newgrf_version = 0 << 28 | 6 << 24 | 0 << 20 | 0 << 19 | (@@REVISION@@ & ((1 << 19) - 1));
|
||||
|
||||
#ifdef __MORPHOS__
|
||||
/**
|
||||
* Variable used by MorphOS to show the version.
|
||||
*/
|
||||
extern const char morphos_versions_tag[] = "\\0$VER: OpenTTD @@VERSION@@ (@@DATE@@) OpenTTD Team [MorphOS, PowerPC]";
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user