(f26b88b8c) Ignore revision number (the last digit of the version number) when determining client/server compatibility. Allows us to release hotfixes etc with a different version number without breaking compatibility. Also incremented version number to make the next version incompatible with older ones.

This commit is contained in:
Joonas Rikkonen
2019-06-15 13:27:33 +03:00
parent 5b92be044b
commit 3edae38d05
5 changed files with 40 additions and 9 deletions
@@ -241,6 +241,30 @@ namespace Barotrauma.Networking
public virtual void Update(float deltaTime) { }
public virtual void Disconnect() { }
}
/// <summary>
/// Check if the two version are compatible (= if they can play together in multiplayer).
/// Returns null if compatibility could not be determined (invalid/unknown version number).
/// </summary>
public static bool? IsCompatible(string myVersion, string remoteVersion)
{
if (!Version.TryParse(myVersion, out Version myVersionNumber)) { return null; }
if (!Version.TryParse(remoteVersion, out Version remoteVersionNumber)) { return null; }
return IsCompatible(myVersionNumber, remoteVersionNumber);
}
/// <summary>
/// Check if the two version are compatible (= if they can play together in multiplayer).
/// </summary>
public static bool IsCompatible(Version myVersion, Version remoteVersion)
{
//major.minor.build.revision
//revision number is ignored, other values have to match
return
myVersion.Major == remoteVersion.Major &&
myVersion.Minor == remoteVersion.Minor &&
myVersion.Build == remoteVersion.Build;
}
}
}