Remove build number aka C4XVER4

Armin Burgmeier 2012-10-18 23:54:50 +02:00
parent 89e7d633b0
commit b4aafdd874
20 changed files with 38 additions and 50 deletions

View File

@ -13,8 +13,7 @@ SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
SET(C4XVER1 5)
SET(C4XVER2 3)
SET(C4XVER3 2)
SET(C4XVER4 30)
SET(C4XVER3 90)
# C4VERSIONBUILDNAME should be witty and somewhat frequently changing
# for alpha and beta releases, and meaningful and stable for stable releases.

View File

@ -841,7 +841,7 @@ IDS_PRC_NOMISSIONACCESS=Noch kein Zugang zu dieser Mission.
IDS_PRC_NOMUSIC=Musik nicht verfügbar.
IDS_PRC_NONETREPLAY=Aufnahmen können nicht im Netzwerkmodus wiedergegeben werden.
IDS_PRC_NOREPLPLRCLR=Keine passende Ersatzfarbe für Spieler %s gefunden. Benutze Standardfarbe.
IDS_PRC_NOREQC4X=Dieses Szenario benötigt die Clonk Engine Version %d.%d%d.%d oder höher.
IDS_PRC_NOREQC4X=Dieses Szenario benötigt die Clonk Engine Version %d.%d.%d oder höher.
IDS_PRC_NOSND=Fehler bei Sound-Datei.
IDS_PRC_NOSYSMATS=System-Materialien nicht vorhanden.
IDS_PRC_OBJECTSLOADED=%d Objekte platziert.

View File

@ -841,7 +841,7 @@ IDS_PRC_NOMISSIONACCESS=Access to this mission not yet granted.
IDS_PRC_NOMUSIC=Music not available.
IDS_PRC_NONETREPLAY=Cannot play back records while in network mode.
IDS_PRC_NOREPLPLRCLR=Couldn't find a suitable replacement player color for player %s. Using default.
IDS_PRC_NOREQC4X=This scenario can only be played with engine version %d.%d%d.%d or higher.
IDS_PRC_NOREQC4X=This scenario can only be played with engine version %d.%d.%d or higher.
IDS_PRC_NOSND=Error at sound file.
IDS_PRC_NOSYSMATS=System materials missing.
IDS_PRC_OBJECTSLOADED=%d objects positioned.

View File

@ -36,7 +36,6 @@
#define C4XVER1 @C4XVER1@
#define C4XVER2 @C4XVER2@
#define C4XVER3 @C4XVER3@
#define C4XVER4 @C4XVER4@
#define C4VERSIONBUILDNAME "@C4VERSIONBUILDNAME@"
#define C4VERSIONEXTRA "@C4VERSIONEXTRA@"
#define C4REVISION "@C4REVISION@"
@ -53,22 +52,14 @@
#define C4ENGINEINFOLONG "@C4ENGINENAME@@C4VERSIONBUILDNAME@@C4VERSIONEXTRA@"
#define C4ENGINECAPTION "@C4ENGINENAME@@C4VERSIONBUILDNAME@"
#if C4XVER4 < 10
#define C4XVER4S "00" C4XVERTOC4XVERS(C4XVER4)
#elif C4XVER4 < 100
#define C4XVER4S "0" C4XVERTOC4XVERS(C4XVER4)
#else
#define C4XVER4S C4XVERTOC4XVERS(C4XVER4)
#endif
#define C4XVERTOC4XVERS(s) C4XVERTOC4XVERS2(s)
#define C4XVERTOC4XVERS2(s) #s
// if C4XVER3 >= 90, this is a pre-release version; add VCS revision instead of build number
// if C4XVER3 >= 90, this is a pre-release version; add VCS revision
#if C4XVER3 >= 90
#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) "." C4XVERTOC4XVERS(C4XVER3) " [" C4REVISION "]" C4VERSIONEXTRA C4BUILDOPT
#else
#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) "." C4XVERTOC4XVERS(C4XVER3) " [" C4XVER4S "]" C4VERSIONEXTRA C4BUILDOPT
#define C4VERSION C4XVERTOC4XVERS(C4XVER1) "." C4XVERTOC4XVERS(C4XVER2) "." C4XVERTOC4XVERS(C4XVER3) C4VERSIONEXTRA C4BUILDOPT
#endif
#endif

View File

@ -14,8 +14,8 @@ LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION C4XVER1,C4XVER2,C4XVER3,C4XVER4
PRODUCTVERSION C4XVER1,C4XVER2,C4XVER3,C4XVER4
FILEVERSION C4XVER1,C4XVER2,C4XVER3
PRODUCTVERSION C4XVER1,C4XVER2,C4XVER3
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@ -68,7 +68,7 @@ bool C4GameSave::SaveCore()
rC4S = Game.C4S;
// Always mark current engine version
rC4S.Head.C4XVer[0]=C4XVER1; rC4S.Head.C4XVer[1]=C4XVER2;
rC4S.Head.C4XVer[2]=C4XVER3; rC4S.Head.C4XVer[3]=C4XVER4;
rC4S.Head.C4XVer[2]=C4XVER3;
// Some flags are not to be set for initial settings:
// They depend on whether specific runtime data is present, which may simply not be stored into initial
// saves, because they rely on any data present and up-to-date within the scenario!
@ -303,7 +303,7 @@ void C4GameSave::WriteDescGameTime(StdStrBuf &sBuf)
void C4GameSave::WriteDescEngine(StdStrBuf &sBuf)
{
char ver[5]; sprintf(ver, "%03d", (int) C4XVER4);
char ver[32]; sprintf(ver, "%d.%d.%d", (int)C4XVER1, (int)C4XVER2, (int)C4XVER3);
sBuf.AppendFormat(LoadResStr("IDS_DESC_VERSION"), ver);
WriteDescLineFeed(sBuf);
}
@ -545,7 +545,7 @@ void C4GameSaveRecord::AdjustCore(C4Scenario &rC4S)
rC4S.Head.Icon=29;
// default record title
char buf[1024 + 1];
sprintf(buf, "%03i %s [%d]", iNum, Game.ScenarioTitle.getData(), (int) C4XVER4);
sprintf(buf, "%03i %s [%d.%d.%d]", iNum, Game.ScenarioTitle.getData(), (int)C4XVER1, (int)C4XVER2, (int)C4XVER3);
SCopy(buf, rC4S.Head.Title, C4MaxTitle);
}

View File

@ -146,7 +146,7 @@ bool C4Game::InitDefs()
if (!iDefs) { LogFatal(LoadResStr("IDS_PRC_NODEFS")); return false; }
// Check def engine version (should be done immediately on def load)
iDefs=::Definitions.CheckEngineVersion(C4XVER1,C4XVER2,C4XVER3,C4XVER4);
iDefs=::Definitions.CheckEngineVersion(C4XVER1,C4XVER2,C4XVER3);
if (iDefs>0) { LogF(LoadResStr("IDS_PRC_DEFSINVC4X"),iDefs); }
// Check for unmet requirements
@ -207,9 +207,9 @@ bool C4Game::OpenScenario()
{ LogFatal(LoadResStr("IDS_PRC_FILEINVALID")); return false; }
// Check minimum engine version
if (CompareVersion(C4S.Head.C4XVer[0],C4S.Head.C4XVer[1],C4S.Head.C4XVer[2],C4S.Head.C4XVer[3]) > 0)
if (CompareVersion(C4S.Head.C4XVer[0],C4S.Head.C4XVer[1],C4S.Head.C4XVer[2]) > 0)
{
LogFatal(FormatString(LoadResStr("IDS_PRC_NOREQC4X"), C4S.Head.C4XVer[0],C4S.Head.C4XVer[1],C4S.Head.C4XVer[2],C4S.Head.C4XVer[3]).getData());
LogFatal(FormatString(LoadResStr("IDS_PRC_NOREQC4X"), C4S.Head.C4XVer[0],C4S.Head.C4XVer[1],C4S.Head.C4XVer[2]).getData());
return false;
}

View File

@ -28,14 +28,14 @@ struct C4GameVersion
ValidatedStdCopyStrBuf<C4InVal::VAL_NameAllowEmpty> sEngineName; // status only - not used for comparison
int32_t iVer[4];
C4GameVersion(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2, int32_t iVer3=C4XVER3, int32_t iVer4=C4XVER4)
{ Set(szEngine, iVer1, iVer2, iVer3, iVer4); }
void Set(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2, int32_t iVer3=C4XVER3, int32_t iVer4=C4XVER4)
{ sEngineName.CopyValidated(szEngine); iVer[0]=iVer1; iVer[1]=iVer2; iVer[2]=iVer3; iVer[3]=iVer4; }
C4GameVersion(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2, int32_t iVer3=C4XVER3)
{ Set(szEngine, iVer1, iVer2, iVer3); }
void Set(const char *szEngine=C4ENGINENAME, int32_t iVer1=C4XVER1, int32_t iVer2=C4XVER2, int32_t iVer3=C4XVER3)
{ sEngineName.CopyValidated(szEngine); iVer[0]=iVer1; iVer[1]=iVer2; iVer[2]=iVer3; }
StdStrBuf GetString() const
{ return FormatString("%s %d.%d.%d [%03d]", sEngineName.getData(), (int)iVer[0], (int)iVer[1], (int)iVer[2], (int)iVer[3]); }
{ return FormatString("%s %d.%d.%d", sEngineName.getData(), (int)iVer[0], (int)iVer[1], (int)iVer[2]); }
bool operator == (const C4GameVersion &rCmp) const
{ return /*sEngineName==rCmp.sEngineName &&*/ iVer[0]==rCmp.iVer[0] && iVer[1]==rCmp.iVer[1] && iVer[2]==rCmp.iVer[2] && iVer[3]==rCmp.iVer[3]; }
{ return /*sEngineName==rCmp.sEngineName &&*/ iVer[0]==rCmp.iVer[0] && iVer[1]==rCmp.iVer[1] && iVer[2]==rCmp.iVer[2]; }
void CompileFunc(StdCompiler *pComp, bool fEngineName)
{
@ -46,18 +46,17 @@ struct C4GameVersion
}
else if (pComp->isCompiler())
sEngineName = "";
pComp->Value(mkArrayAdapt(iVer,4,0));;
pComp->Value(mkArrayAdapt(iVer,3,0));;
}
};
// helper
inline int CompareVersion(int iVer1, int iVer2, int iVer3, int iVer4,
int iRVer1 = C4XVER1, int iRVer2 = C4XVER2, int iRVer3 = C4XVER3, int iRVer4 = C4XVER4)
inline int CompareVersion(int iVer1, int iVer2, int iVer3,
int iRVer1 = C4XVER1, int iRVer2 = C4XVER2, int iRVer3 = C4XVER3)
{
if (iVer1 > iRVer1) return 1; if (iVer1 < iRVer1) return -1;
if (iVer2 > iRVer2) return 1; if (iVer2 < iRVer2) return -1;
if (iVer3 > iRVer3) return 1; if (iVer3 < iRVer3) return -1;
if (iVer4 > iRVer4) return 1; if (iVer4 < iRVer4) return -1;
return 0;
}

View File

@ -871,7 +871,7 @@ void C4StartupNetDlg::UpdateMasterserver()
else
{
pMasterserverClient = new C4StartupNetListEntry(pGameSelList, NULL, this);
StdStrBuf strVersion; strVersion.Format("%d.%d.%d.%d", C4XVER1, C4XVER2, C4XVER3, C4XVER4);
StdStrBuf strVersion; strVersion.Format("%d.%d.%d", C4XVER1, C4XVER2, C4XVER3);
StdStrBuf strQuery; strQuery.Format("%s?version=%s&platform=%s", Config.Network.GetLeagueServerAddress(), strVersion.getData(), C4_OS);
pMasterserverClient->SetRefQuery(strQuery.getData(), C4StartupNetListEntry::NRQT_Masterserver);
}

View File

@ -147,7 +147,7 @@ void C4SHead::Default()
Origin.Clear();
Icon=18;
*Title = *Loader = *Font = *Engine = *MissionAccess = '\0';
C4XVer[0] = C4XVer[1] = C4XVer[2] = C4XVer[3] = 0;
C4XVer[0] = C4XVer[1] = C4XVer[2] = 0;
Difficulty = StartupPlayerCount = RandomSeed = 0;
SaveGame = Replay = NoInitialize = false;
Film = 0;

View File

@ -68,7 +68,7 @@ enum C4SFilmMode
class C4SHead
{
public:
int32_t C4XVer[4];
int32_t C4XVer[3];
char Title[C4MaxTitle+1];
char Loader[C4MaxTitle+1];
char Font[C4MaxTitle+1]; // scenario specific font; may be 0

View File

@ -1073,9 +1073,9 @@ void C4Network2::HandleConn(const C4PacketConn &Pkt, C4Network2IOConnection *pCo
// check engine version
bool fWrongPassword = false;
if (Pkt.getVer() != C4XVER4)
if (Pkt.getVer() != C4XVER1*10000 + C4XVER2*100 + C4XVER3)
{
reply.Format("wrong engine (%d, I have %d)", Pkt.getVer(), C4XVER4);
reply.Format("wrong engine (%d.%d.%d, I have %d.%d.%d)", Pkt.getVer()/10000, Pkt.getVer()/100%100, Pkt.getVer()%100, C4XVER1, C4XVER2, C4XVER3);
fOK = false;
}
else

View File

@ -408,12 +408,12 @@ void C4PacketList::CompileFunc(StdCompiler *pComp)
// *** C4PacketConn
C4PacketConn::C4PacketConn()
: iVer(C4XVER4)
: iVer(C4XVER1*10000 + C4XVER2*100 + C4XVER3)
{
}
C4PacketConn::C4PacketConn(const C4ClientCore &nCCore, uint32_t inConnID, const char *szPassword)
: iVer(C4XVER4),
: iVer(C4XVER1*10000 + C4XVER2*100 + C4XVER3),
iConnID(inConnID),
CCore(nCCore),
Password(szPassword)

View File

@ -38,7 +38,7 @@
void C4Def::DefaultDefCore()
{
rC4XVer[0]=rC4XVer[1]=rC4XVer[2]=rC4XVer[3]=0;
rC4XVer[0]=rC4XVer[1]=rC4XVer[2]=0;
RequireDef.Clear();
Shape.Default();
Entrance.Default();
@ -105,7 +105,7 @@ bool C4Def::LoadDefCore(C4Group &hGroup)
Source.Clear();
// Let's be bold: Rewrite, with current version
/*rC4XVer[0] = C4XVER1; rC4XVer[1] = C4XVER2; rC4XVer[2] = C4XVER3; rC4XVer[3] = C4XVER4;
/*rC4XVer[0] = C4XVER1; rC4XVer[1] = C4XVER2; rC4XVer[2] = C4XVER3;
hGroup.Rename(C4CFN_DefCore, C4CFN_DefCore ".old");
Save(hGroup);*/

View File

@ -106,7 +106,7 @@ class C4Def: public C4PropListStatic
{
public:
C4ID id;
int32_t rC4XVer[4];
int32_t rC4XVer[3];
C4IDList RequireDef;
C4Shape Shape;
C4Rect Entrance;

View File

@ -290,14 +290,14 @@ int32_t C4DefList::RemoveTemporary()
return removed;
}
int32_t C4DefList::CheckEngineVersion(int32_t ver1, int32_t ver2, int32_t ver3, int32_t ver4)
int32_t C4DefList::CheckEngineVersion(int32_t ver1, int32_t ver2, int32_t ver3)
{
int32_t rcount=0;
C4Def *cdef,*prev,*next;
for (cdef=FirstDef,prev=NULL; cdef; cdef=next)
{
next=cdef->Next;
if (CompareVersion(cdef->rC4XVer[0],cdef->rC4XVer[1],cdef->rC4XVer[2],cdef->rC4XVer[3],ver1,ver2,ver3,ver4) > 0)
if (CompareVersion(cdef->rC4XVer[0],cdef->rC4XVer[1],cdef->rC4XVer[2],ver1,ver2,ver3) > 0)
{
if (prev) prev->Next=cdef->Next;
else FirstDef=cdef->Next;

View File

@ -58,7 +58,7 @@ public:
int32_t GetDefCount();
int32_t GetIndex(C4ID id);
int32_t RemoveTemporary();
int32_t CheckEngineVersion(int32_t ver1, int32_t ver2, int32_t ver3, int32_t ver4);
int32_t CheckEngineVersion(int32_t ver1, int32_t ver2, int32_t ver3);
int32_t CheckRequireDef();
void Draw(C4ID id, C4Facet &cgo, bool fSelected, int32_t iColor);
void Remove(C4Def *def);

View File

@ -185,6 +185,6 @@
<key>CFBundleShortVersionString</key>
<string>${C4VERSION}</string>
<key>CFBundleVersion</key>
<string>${C4XVER4}</string>
<string>${C4XVER1}.${C4XVER2}.${C4XVER3}</string>
</dict>
</plist>

View File

@ -41,8 +41,8 @@ __GDF_XML DATA "WindowsGamesExplorer.xml"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION C4XVER1,C4XVER2,C4XVER3,C4XVER4
PRODUCTVERSION C4XVER1,C4XVER2,C4XVER3,C4XVER4
FILEVERSION C4XVER1,C4XVER2,C4XVER3
PRODUCTVERSION C4XVER1,C4XVER2,C4XVER3
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L

View File

@ -573,7 +573,6 @@ C4ScriptConstDef C4ScriptConstMap[]=
{ "C4X_Ver1", C4V_Int, C4XVER1},
{ "C4X_Ver2", C4V_Int, C4XVER2},
{ "C4X_Ver3", C4V_Int, C4XVER3},
{ "C4X_Ver4", C4V_Int, C4XVER4},
{ NULL, C4V_Nil, 0}
};