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:
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user