diff --git a/README.md b/README.md index ae703eba..0529718f 100644 --- a/README.md +++ b/README.md @@ -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**. diff --git a/assaultcube.bat b/assaultcube.bat index 1bb850a8..7bcce679 100644 --- a/assaultcube.bat +++ b/assaultcube.bat @@ -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 diff --git a/config/autostart/checkaccount.cfg b/config/autostart/checkaccount.cfg index 6c39634f..e0d85537 100644 --- a/config/autostart/checkaccount.cfg +++ b/config/autostart/checkaccount.cfg @@ -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 + diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index 821abc54..62e3d267 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -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; diff --git a/source/src/entity.h b/source/src/entity.h index 45438574..5172c609 100644 --- a/source/src/entity.h +++ b/source/src/entity.h @@ -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 { diff --git a/source/src/main.cpp b/source/src/main.cpp index bdb2c9f8..4e94c947 100644 --- a/source/src/main.cpp +++ b/source/src/main.cpp @@ -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() { diff --git a/source/src/worldio.cpp b/source/src/worldio.cpp index 47cf343b..75d09a0f 100644 --- a/source/src/worldio.cpp +++ b/source/src/worldio.cpp @@ -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); diff --git a/source/vcpp/buildEnv/ac.nsi b/source/vcpp/buildEnv/ac.nsi index 75138b5f..b3ea5f4a 100644 --- a/source/vcpp/buildEnv/ac.nsi +++ b/source/vcpp/buildEnv/ac.nsi @@ -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 diff --git a/source/vcpp/buildEnv/build_1_exportACdev.bat b/source/vcpp/buildEnv/build_1_exportACdev.bat index de7146ed..3b2fd6e9 100644 --- a/source/vcpp/buildEnv/build_1_exportACdev.bat +++ b/source/vcpp/buildEnv/build_1_exportACdev.bat @@ -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