Merge remote-tracking branch 'origin/master' into next

This commit is contained in:
James R 2020-07-12 17:11:22 -07:00
commit 00ceca8cc6
10 changed files with 60 additions and 26 deletions

View File

@ -1,8 +1,12 @@
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
file(STRINGS src/version.h SRB2_VERSION)
string(REGEX MATCH "[0-9]+\\.[0-9.]+" SRB2_VERSION ${SRB2_VERSION})
# DO NOT CHANGE THIS SRB2 STRING! Some variable names depend on this string. # DO NOT CHANGE THIS SRB2 STRING! Some variable names depend on this string.
# Version change is fine. # Version change is fine.
project(SRB2 project(SRB2
VERSION 2.2.6 VERSION ${SRB2_VERSION}
LANGUAGES C) LANGUAGES C)
if(${PROJECT_SOURCE_DIR} MATCHES ${PROJECT_BINARY_DIR}) if(${PROJECT_SOURCE_DIR} MATCHES ${PROJECT_BINARY_DIR})

View File

@ -47,7 +47,7 @@ endif
# Automatically set version flag, but not if one was manually set # Automatically set version flag, but not if one was manually set
ifeq (,$(filter GCC%,$(.VARIABLES))) ifeq (,$(filter GCC%,$(.VARIABLES)))
ifneq (,$(findstring GCC,$(shell $(CC) --version))) # if it's GCC ifneq (,$(findstring gcc,$(shell $(CC) --version))) # if it's GCC
version:=$(shell $(CC) -dumpversion) version:=$(shell $(CC) -dumpversion)
# Turn version into words of major, minor # Turn version into words of major, minor

View File

@ -2336,8 +2336,8 @@ void CL_UpdateServerList(boolean internetsearch, INT32 room)
if (server_list) if (server_list)
{ {
char version[8] = ""; char version[8] = "";
#if VERSION > 0 || SUBVERSION > 0 #ifndef DEVELOP
snprintf(version, sizeof (version), "%d.%d.%d", VERSION/100, VERSION%100, SUBVERSION); strcpy(version, SRB2VERSION);
#else #else
strcpy(version, GetRevisionString()); strcpy(version, GetRevisionString());
#endif #endif

View File

@ -93,6 +93,10 @@ int snprintf(char *str, size_t n, const char *fmt, ...);
#include "lua_script.h" #include "lua_script.h"
// Version numbers for netplay :upside_down_face:
int VERSION;
int SUBVERSION;
// platform independant focus loss // platform independant focus loss
UINT8 window_notinfocus = false; UINT8 window_notinfocus = false;
@ -1142,6 +1146,21 @@ static inline void D_Titlebar(void)
} }
#endif #endif
static void
D_ConvertVersionNumbers (void)
{
/* leave at defaults (0) under DEVELOP */
#ifndef DEVELOP
int major;
int minor;
sscanf(SRB2VERSION, "%d.%d.%d", &major, &minor, &SUBVERSION);
/* this is stupid */
VERSION = ( major * 100 ) + minor;
#endif
}
// //
// D_SRB2Main // D_SRB2Main
// //
@ -1152,6 +1171,9 @@ void D_SRB2Main(void)
INT32 pstartmap = 1; INT32 pstartmap = 1;
boolean autostart = false; boolean autostart = false;
/* break the version string into version numbers, for netplay */
D_ConvertVersionNumbers();
// Print GPL notice for our console users (Linux) // Print GPL notice for our console users (Linux)
CONS_Printf( CONS_Printf(
"\n\nSonic Robo Blast 2\n" "\n\nSonic Robo Blast 2\n"

View File

@ -9484,8 +9484,6 @@ struct {
{"PUSHACCEL",PUSHACCEL}, {"PUSHACCEL",PUSHACCEL},
{"MODID",MODID}, // I don't know, I just thought it would be cool for a wad to potentially know what mod it was loaded into. {"MODID",MODID}, // I don't know, I just thought it would be cool for a wad to potentially know what mod it was loaded into.
{"CODEBASE",CODEBASE}, // or what release of SRB2 this is. {"CODEBASE",CODEBASE}, // or what release of SRB2 this is.
{"VERSION",VERSION}, // Grab the game's version!
{"SUBVERSION",SUBVERSION}, // more precise version number
{"NEWTICRATE",NEWTICRATE}, // TICRATE*NEWTICRATERATIO {"NEWTICRATE",NEWTICRATE}, // TICRATE*NEWTICRATERATIO
{"NEWTICRATERATIO",NEWTICRATERATIO}, {"NEWTICRATERATIO",NEWTICRATERATIO},

View File

@ -86,6 +86,7 @@
// warning C4213: nonstandard extension used : cast on l-value // warning C4213: nonstandard extension used : cast on l-value
#include "version.h"
#include "doomtype.h" #include "doomtype.h"
#include <stdarg.h> #include <stdarg.h>
@ -135,21 +136,17 @@ extern char logfilename[1024];
//#define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3 //#define DEVELOP // Disable this for release builds to remove excessive cheat commands and enable MD5 checking and stuff, all in one go. :3
#ifdef DEVELOP #ifdef DEVELOP
#define VERSION 0 // Game version
#define SUBVERSION 0 // more precise version number
#define VERSIONSTRING "Development EXE" #define VERSIONSTRING "Development EXE"
#define VERSIONSTRINGW L"Development EXE"
// most interface strings are ignored in development mode. // most interface strings are ignored in development mode.
// we use comprevision and compbranch instead. // we use comprevision and compbranch instead.
#else #else
#define VERSION 202 // Game version #define VERSIONSTRING "v"SRB2VERSION
#define SUBVERSION 6 // more precise version number
#define VERSIONSTRING "v2.2.6"
#define VERSIONSTRINGW L"v2.2.6"
// Hey! If you change this, add 1 to the MODVERSION below! // Hey! If you change this, add 1 to the MODVERSION below!
// Otherwise we can't force updates! // Otherwise we can't force updates!
#endif #endif
#define VERSIONSTRINGW WSTRING (VERSIONSTRING)
/* A custom URL protocol for server links. */ /* A custom URL protocol for server links. */
#define SERVER_URL_PROTOCOL "srb2://" #define SERVER_URL_PROTOCOL "srb2://"
@ -204,17 +201,6 @@ extern char logfilename[1024];
// Will always resemble the versionstring, 205 = 2.0.5, 210 = 2.1, etc. // Will always resemble the versionstring, 205 = 2.0.5, 210 = 2.1, etc.
#define CODEBASE 220 #define CODEBASE 220
// The Modification ID; must be obtained from a Master Server Admin ( https://mb.srb2.org/showgroups.php ).
// DO NOT try to set this otherwise, or your modification will be unplayable through the Master Server.
// "18" is the default mod ID for version 2.2
#define MODID 18
// The Modification Version, starting from 1. Do not follow your version string for this,
// it's only for detection of the version the player is using so the MS can alert them of an update.
// Only set it higher, not lower, obviously.
// Note that we use this to help keep internal testing in check; this is why v2.2.0 is not version "1".
#define MODVERSION 47
// To version config.cfg, MAJOREXECVERSION is set equal to MODVERSION automatically. // To version config.cfg, MAJOREXECVERSION is set equal to MODVERSION automatically.
// Increment MINOREXECVERSION whenever a config change is needed that does not correspond // Increment MINOREXECVERSION whenever a config change is needed that does not correspond
// to an increment in MODVERSION. This might never happen in practice. // to an increment in MODVERSION. This might never happen in practice.
@ -503,6 +489,8 @@ char *sizeu4(size_t num);
char *sizeu5(size_t num); char *sizeu5(size_t num);
// d_main.c // d_main.c
extern int VERSION;
extern int SUBVERSION;
extern boolean devparm; // development mode (-debug) extern boolean devparm; // development mode (-debug)
// d_netcmd.c // d_netcmd.c
extern INT32 cv_debug; extern INT32 cv_debug;

View File

@ -367,4 +367,8 @@ typedef UINT32 tic_t;
#define UINT2RGBA(a) (UINT32)((a&0xff)<<24)|((a&0xff00)<<8)|((a&0xff0000)>>8)|(((UINT32)a&0xff000000)>>24) #define UINT2RGBA(a) (UINT32)((a&0xff)<<24)|((a&0xff00)<<8)|((a&0xff0000)>>8)|(((UINT32)a&0xff000000)>>24)
#endif #endif
/* preprocessor dumb and needs second macro to expand input */
#define WSTRING2(s) L ## s
#define WSTRING(s) WSTRING2 (s)
#endif //__DOOMTYPE__ #endif //__DOOMTYPE__

View File

@ -344,6 +344,12 @@ int LUA_PushGlobals(lua_State *L, const char *word)
} else if (fastcmp(word,"gravity")) { } else if (fastcmp(word,"gravity")) {
lua_pushinteger(L, gravity); lua_pushinteger(L, gravity);
return 1; return 1;
} else if (fastcmp(word,"VERSION")) {
lua_pushinteger(L, VERSION);
return 1;
} else if (fastcmp(word,"SUBVERSION")) {
lua_pushinteger(L, SUBVERSION);
return 1;
} else if (fastcmp(word,"VERSIONSTRING")) { } else if (fastcmp(word,"VERSIONSTRING")) {
lua_pushstring(L, VERSIONSTRING); lua_pushstring(L, VERSIONSTRING);
return 1; return 1;

View File

@ -754,8 +754,8 @@ static INT32 AddToMasterServer(boolean firstadd)
strcpy(info->port, int2str(current_port)); strcpy(info->port, int2str(current_port));
strcpy(info->name, cv_servername.string); strcpy(info->name, cv_servername.string);
M_Memcpy(&info->room, & room, sizeof (INT32)); M_Memcpy(&info->room, & room, sizeof (INT32));
#if VERSION > 0 || SUBVERSION > 0 #ifndef DEVELOP
sprintf(info->version, "%d.%d.%d", VERSION/100, VERSION%100, SUBVERSION); strcpy(info->version, SRB2VERSION);
#else // Trunk build, send revision info #else // Trunk build, send revision info
strcpy(info->version, GetRevisionString()); strcpy(info->version, GetRevisionString());
#endif #endif

12
src/version.h Normal file
View File

@ -0,0 +1,12 @@
#define SRB2VERSION "2.2.6"/* this must be the first line, for cmake !! */
// The Modification ID; must be obtained from a Master Server Admin ( https://mb.srb2.org/showgroups.php ).
// DO NOT try to set this otherwise, or your modification will be unplayable through the Master Server.
// "18" is the default mod ID for version 2.2
#define MODID 18
// The Modification Version, starting from 1. Do not follow your version string for this,
// it's only for detection of the version the player is using so the MS can alert them of an update.
// Only set it higher, not lower, obviously.
// Note that we use this to help keep internal testing in check; this is why v2.2.0 is not version "1".
#define MODVERSION 47