temporary win10 hotfix changes

Some changes to allow the current experimental branch to be used for a
hotfix release for win10 users.

The latest win10-update broke compatibility with SDL1.2 - and apparently
MS is not going to fix it. This hotfix allows win10 users to use our
experimental SDL2-based client.

It is quite incompatible with the 1.2.0.2 release - but it's good enough
to be played in pubs.

Coopedit will not work and quite a few custom maps won't work properly.
This is due to lots of changes in the map file format and does not mean,
that those custom maps can not be played in future game releases - they
just need to be reworked. See akimbo2 to check out the reworked maps, btw.
The old official maps and most conservative custom maps should be fine.

Due to some physics changes, players of the hotfix client will have some
advantages and some disadvantages compared to the regular clients, so DO
NOT USE THE HOTFIX CLIENT TO PLAY COMPETITIVELY.

By default, if an incompatible map is loaded in multiplayer, the client
will disconnect automatically. This can be disabled (disconnectonmaperror),
but will probably get you marked as cheater, because on incompatible maps,
model clipping may not work properly. Just stick to compatible maps...
This commit is contained in:
ac-stef
2018-02-10 11:28:51 +01:00
committed by aurhat
parent 11efe9f883
commit 7b5c91a3da
9 changed files with 30 additions and 10 deletions
+4
View File
@@ -10,6 +10,10 @@ connection. It's tiny too, weighing in at a lightweight about 50 MB package
available for [Windows](https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2.exe), [Mac](https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2.dmg) and [Linux](https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2.tar.bz2). On the correct settings, it can even run
on old hardware (Pentium III and above).
**Important information for Windows 10 users:**
if you experience a mouse glitch (random camera movement), you can use the experimental [hotfix for AssaultCube 1.2.0.2 on Windows 10](https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2_experimental_win10_hotfix_1.exe).
Note: the hotfix **SHOULD NOT** be used to competitive play and mapping - see [known issues](https://assault.cubers.net/docs/knownissues.html).
## Features in a nutshell:
* It's **FREE**.
+1 -1
View File
@@ -1 +1 @@
start bin_win32\ac_client.exe "--home=?MYDOCUMENTS?\My Games\AssaultCube\v1.2next" --init %1 %2 %3 %4 %5
start bin_win32\ac_client.exe "--home=?MYDOCUMENTS?\My Games\AssaultCube\v1.2" --init %1 %2 %3 %4 %5
+9 -1
View File
@@ -2,4 +2,12 @@
// * ask for password, if required
// * offer to create new account, if none exists
sleep 1000 checkaccount 1
//sleep 1000 checkaccount 1
sleep 1000 [
echo "\fs\f3Beware:\fr this is a hotfix release, intended to allow Win10 users to play despite Win10 being buggy."
echo " Although this hotfix can be played on regular 1.2.0.2 servers, it is not fully compatible."
echo " Coopedit will not work. Some maps will not work. Maps edited here will not work on old clients."
echo " There are slight changes in physics, so don't use this client to play competitively."
echo " Since this is based on the latest game development, you may notice other changes :)"
] 1
+5
View File
@@ -27,6 +27,10 @@ void neterr(const char *s)
VARP(autogetmap, 0, 1, 1); // only if the client doesn't have that map
VARP(autogetnewmaprevisions, 0, 1, 1);
VAR(disconnectonmaperror, 0, 1, 1);
extern bool incompatiblemap;
extern void trydisconnect();
bool localwrongmap = false;
int MA = 0, Hhits = 0; // flowtron: moved here
@@ -42,6 +46,7 @@ bool changemapserv(char *name, int mode, int download, int revision) // f
}
else if(player1->state==CS_EDITING) { /*conoutf("SANITY drop from EDITING");*/ toggleedit(true); } // fix stuck-in-editmode bug
bool loaded = load_world(name) >= 0;
if(disconnectonmaperror && incompatiblemap && multiplayer(NULL)) trydisconnect();
if(download > 0)
{
bool revmatch = hdr.maprevision == revision || revision == 0;
+1 -1
View File
@@ -412,7 +412,7 @@ public:
#define ROLLMOVMAX 20
#define ROLLMOVDEF 0
#define ROLLEFFMAX 30
#define ROLLEFFDEF 10
#define ROLLEFFDEF 0
class playerent : public dynent, public playerstate
{
+1 -1
View File
@@ -790,7 +790,7 @@ static void checkmousemotion(int &dx, int &dy)
int ignoremouse = 5, bootstrapentropy = 2;
#define EVENTDEBUG(x) x
//#define EVENTDEBUG(x)
EVENTDEBUG(VAR(debugevents, 0, 1, 2));
EVENTDEBUG(VAR(debugevents, 0, 0, 2));
void checkinput()
{
+4 -1
View File
@@ -819,8 +819,11 @@ extern float Mh;
static string lastloadedconfigfile;
bool incompatiblemap = false;
int load_world(char *mname) // still supports all map formats that have existed since the earliest cube betas!
{
incompatiblemap = false;
const int sizeof_header = sizeof(header), sizeof_baseheader = sizeof_header - sizeof(int) * 16;
stopwatch watch;
watch.start();
@@ -922,7 +925,7 @@ int load_world(char *mname) // still supports all map formats that have e
e.attr##x = ov = e.attr##x * entscale[e.type][x - 1]; \
if(ov != e.attr##x) { conoutf("overflow during conversion of attr%d of entity #%d (%s): value %d can no longer be represented - pls fix manually before saving the map",\
x, i, entnames[e.type], oe.attr##x); e.attr##x = oe.attr##x; res |= LWW_ENTATTROVERFLOW; \
defformatstring(desc)("%s: attr%d was %d, value can no longer be represented", entnames[e.type], x, oe.attr##x); addtodoentity(i, desc); }
defformatstring(desc)("%s: attr%d was %d, value can no longer be represented", entnames[e.type], x, oe.attr##x); addtodoentity(i, desc); incompatiblemap = true; }
SCALEATTR(1);
SCALEATTR(2);
SCALEATTR(3);
+3 -3
View File
@@ -52,9 +52,9 @@
SetCompressor /SOLID lzma
!define CURPATH ".\" ; must include the installer graphics and the AC_NEWVERSIONDIR directory
!define AC_FULLVERSIONINT "1.2.0.2"
!define AC_FULLVERSIONINT "1.2.0.2_hotfix1"
!define AC_FULLVERSION "v${AC_FULLVERSIONINT}"
!define AC_SHORTNAME "AssaultCube"
!define AC_SHORTNAME "AssaultCube ${AC_FULLVERSIONINT}"
!define AC_FULLNAME "AssaultCube ${AC_FULLVERSION}"
!define AC_URLPROTOCOL "assaultcube"
!define AC_MAJORVERSIONINT 1
@@ -66,7 +66,7 @@ SetCompressor /SOLID lzma
Name "${AC_SHORTNAME}"
VAR StartMenuFolder
!define AC_STARTMENUFOLDER "$SMPROGRAMS\$StartMenuFolder"
OutFile "AssaultCube_${AC_FULLVERSION}.exe"
OutFile "AssaultCube_v1.2.0.2_experimental_win10_hotfix_1.exe"
InstallDir "$PROGRAMFILES\${AC_SHORTNAME}"
InstallDirRegKey HKLM "Software\${AC_SHORTNAME}" ""
RequestExecutionLevel admin ; require admin in Vista/7
+2 -2
View File
@@ -13,7 +13,7 @@ del tmpFile
rem get AC files from latest local release tag
cd ..\..\..\
git archive --format zip --output source\vcpp\buildEnv\%ACDIR%\%NEWACTAG%.zip %NEWACTAG%
git archive --format zip --output source\vcpp\buildEnv\%ACDIR%\%NEWACTAG%.zip experimental
cd source\vcpp\buildEnv\%ACDIR%
7z x %NEWACTAG%.zip
7z x %NEWACTAG%.zip -o..\%ACDIRTESTING%
@@ -21,6 +21,6 @@ del ..\%ACDIRTESTING%\assaultcube.bat
del %NEWACTAG%.zip
rem get documentation files from latest remote release tag
svn export --force https://github.com/assaultcube/assaultcube.github.io/tags/%NEWACTAG%/htdocs/docs/ docs
svn export --force https://github.com/assaultcube/assaultcube.github.io/trunk/htdocs/docs/ docs
pause