Route the 5th mouse button to the game; bump savegame version.

The "double-click button4" had to make way for MOUSE5 in the button binds menu,
but I don't think anyone cares.  Savegame compatibility was actually silently
broken with the MAXTILES update earlier, but I forgot updating the version...

git-svn-id: https://svn.eduke32.com/eduke32@2284 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2012-01-26 21:58:55 +00:00
parent da218f7e65
commit d6530a862f
2 changed files with 44 additions and 42 deletions

View file

@ -68,7 +68,7 @@ extern "C" {
#define SAMESIZE_ACTOR_T #define SAMESIZE_ACTOR_T
// increase by 3, because atomic GRP adds 1, and Shareware adds 2 // increase by 3, because atomic GRP adds 1, and Shareware adds 2
#define BYTEVERSION_JF 234 #define BYTEVERSION_JF 237
#define BYTEVERSION_13 27 #define BYTEVERSION_13 27
#define BYTEVERSION_14 116 #define BYTEVERSION_14 116

View file

@ -51,7 +51,10 @@ static int32_t vidsets[16] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 }
static int32_t curvidset, newvidset = 0; static int32_t curvidset, newvidset = 0;
static int32_t soundbits, soundvoices, soundrate; static int32_t soundbits, soundvoices, soundrate;
#undef MAXMOUSEBUTTONS #undef MAXMOUSEBUTTONS
#define MAXMOUSEBUTTONS 6 // FIXME: menu needs an update for extra buttons //#define MAXMOUSEBUTTONS 7 // FIXME: menu needs an update for extra buttons
#define NUMDOUBLEMBTNS 3 // # of mouse buttons that can be double-clicked (mouse1 - mouse3)
#define NUMSINGLEMBTNS 4 // # of mouse buttons that can only be single-clicked (the rest)
#define NUMMOUSEFUNCTIONS (NUMDOUBLEMBTNS*2+NUMSINGLEMBTNS)
static char *mousebuttonnames[] = { "Mouse1", "Mouse2", "Mouse3", "Mouse4", "Wheel Up", "Wheel Down", "Mouse5", "Mouse6", "Mouse7", "Mouse8"}; static char *mousebuttonnames[] = { "Mouse1", "Mouse2", "Mouse3", "Mouse4", "Wheel Up", "Wheel Down", "Mouse5", "Mouse6", "Mouse7", "Mouse8"};
extern int32_t voting; extern int32_t voting;
@ -3626,11 +3629,11 @@ cheat_for_port_credits:
c = 60-4; c = 60-4;
onbar = (probey == (MAXMOUSEBUTTONS-2)*2+2); onbar = (probey == NUMMOUSEFUNCTIONS);
if (probey < (MAXMOUSEBUTTONS-2)*2+2) if (probey < NUMMOUSEFUNCTIONS)
x = probesm(73,38,8,(MAXMOUSEBUTTONS-2)*2+2+2+2+1); x = probesm(73,38,8,NUMMOUSEFUNCTIONS+2+2+1);
else else
x = probesm(40,123-((MAXMOUSEBUTTONS-2)*2+2)*9,9,(MAXMOUSEBUTTONS-2)*2+2+2+2+1); x = probesm(40,123-(NUMMOUSEFUNCTIONS)*9,9,NUMMOUSEFUNCTIONS+2+2+1);
if (x==-1) if (x==-1)
{ {
@ -3638,27 +3641,27 @@ cheat_for_port_credits:
probey = 5; probey = 5;
break; break;
} }
else if (x == (MAXMOUSEBUTTONS-2)*2+2) else if (x == NUMMOUSEFUNCTIONS)
{ {
// sensitivity // sensitivity
} }
else if (x == (MAXMOUSEBUTTONS-2)*2+2+1) else if (x == NUMMOUSEFUNCTIONS+1)
{ {
// mouse aiming toggle // mouse aiming toggle
if (!ud.mouseaiming) g_myAimMode = 1-g_myAimMode; if (!ud.mouseaiming) g_myAimMode = 1-g_myAimMode;
} }
else if (x == (MAXMOUSEBUTTONS-2)*2+2+2) else if (x == NUMMOUSEFUNCTIONS+2)
{ {
// invert mouse aim // invert mouse aim
ud.mouseflip = 1-ud.mouseflip; ud.mouseflip = 1-ud.mouseflip;
} }
else if (x == (MAXMOUSEBUTTONS-2)*2+2+2+1) else if (x == NUMMOUSEFUNCTIONS+2+1)
{ {
//input smoothing //input smoothing
ud.config.SmoothInput = !ud.config.SmoothInput; ud.config.SmoothInput = !ud.config.SmoothInput;
control_smoothmouse = ud.config.SmoothInput; control_smoothmouse = ud.config.SmoothInput;
} }
else if (x == (MAXMOUSEBUTTONS-2)*2+2+2+2) else if (x == NUMMOUSEFUNCTIONS+2+2)
{ {
//advanced //advanced
ChangeToMenu(212); ChangeToMenu(212);
@ -3670,18 +3673,18 @@ cheat_for_port_credits:
ChangeToMenu(211); ChangeToMenu(211);
function = 0; function = 0;
whichkey = x; whichkey = x;
if (x < (MAXMOUSEBUTTONS-2)*2) if (x < NUMDOUBLEMBTNS*2)
probey = ud.config.MouseFunctions[x>>1][x&1]; probey = ud.config.MouseFunctions[x>>1][x&1];
else else
probey = ud.config.MouseFunctions[x-4][0]; probey = ud.config.MouseFunctions[x-NUMDOUBLEMBTNS][0];
if (probey < 0) probey = NUMGAMEFUNCTIONS-1; if (probey < 0) probey = NUMGAMEFUNCTIONS-1;
break; break;
} }
for (l=0; l < (MAXMOUSEBUTTONS-2)*2+2; l++) for (l=0; l < NUMMOUSEFUNCTIONS; l++)
{ {
tempbuf[0] = 0; tempbuf[0] = 0;
if (l < (MAXMOUSEBUTTONS-2)*2) if (l < NUMDOUBLEMBTNS*2)
{ {
if (l&1) if (l&1)
{ {
@ -3694,8 +3697,8 @@ cheat_for_port_credits:
} }
else else
{ {
Bstrcpy(tempbuf, mousebuttonnames[l-(MAXMOUSEBUTTONS-2)]); Bstrcpy(tempbuf, mousebuttonnames[l-NUMDOUBLEMBTNS]);
m = ud.config.MouseFunctions[l-(MAXMOUSEBUTTONS-2)][0]; m = ud.config.MouseFunctions[l-NUMDOUBLEMBTNS][0];
} }
minitextshade(c+20,34+l*8,tempbuf,(l==probey)?0:16,1,10+16); minitextshade(c+20,34+l*8,tempbuf,(l==probey)?0:16,1,10+16);
@ -3710,39 +3713,40 @@ cheat_for_port_credits:
} }
} }
mgametextpal(40,118,"Base mouse sensitivity",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2),10); mgametextpal(40,118,"Base mouse sensitivity",MENUHIGHLIGHT(NUMMOUSEFUNCTIONS),10);
mgametextpal(40,118+9,"Use mouse aiming",!ud.mouseaiming?MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+1):DISABLEDMENUSHADE,10); mgametextpal(40,118+9,"Use mouse aiming",!ud.mouseaiming?MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+1):DISABLEDMENUSHADE,10);
mgametextpal(40,118+9+9,"Invert mouse",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2),10); mgametextpal(40,118+9+9,"Invert mouse",MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+2),10);
mgametextpal(40,118+9+9+9,"Smooth mouse movement",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+1),10); mgametextpal(40,118+9+9+9,"Smooth mouse movement",MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+2+1),10);
mgametextpal(40,118+9+9+9+9,"Advanced mouse setup",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+2),10); mgametextpal(40,118+9+9+9+9,"Advanced mouse setup",MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+2+2),10);
{ {
int32_t sense = (int32_t)(CONTROL_MouseSensitivity * 4.0f); int32_t sense = (int32_t)(CONTROL_MouseSensitivity * 4.0f);
sense = clamp(sense, 0, 63); sense = clamp(sense, 0, 63);
barsm(248,126,&sense,2,x==(MAXMOUSEBUTTONS-2)*2+2,MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2),PHX(-7)); barsm(248,126,&sense,2,x==NUMMOUSEFUNCTIONS,MENUHIGHLIGHT(NUMMOUSEFUNCTIONS),PHX(-7));
CONTROL_MouseSensitivity = sense / 4.0f; CONTROL_MouseSensitivity = sense / 4.0f;
} }
if (!ud.mouseaiming) modval(0,1,(int32_t *)&g_myAimMode,1,probey == (MAXMOUSEBUTTONS-2)*2+2+1); if (!ud.mouseaiming) modval(0,1,(int32_t *)&g_myAimMode,1,probey == NUMMOUSEFUNCTIONS+1);
else if (probey == (MAXMOUSEBUTTONS-2)*2+2+1) else if (probey == NUMMOUSEFUNCTIONS+1)
{ {
mgametext(160,140+9+9+9,"SET MOUSE AIM TYPE TO TOGGLE ON/OFF",0,2+8+16); mgametext(160,140+9+9+9,"SET MOUSE AIM TYPE TO TOGGLE ON/OFF",0,2+8+16);
mgametext(160,140+9+9+9+9,"IN THE PLAYER SETUP MENU TO ENABLE",0,2+8+16); mgametext(160,140+9+9+9+9,"IN THE PLAYER SETUP MENU TO ENABLE",0,2+8+16);
} }
modval(0,1,(int32_t *)&ud.mouseflip,1,probey == (MAXMOUSEBUTTONS-2)*2+2+2); modval(0,1,(int32_t *)&ud.mouseflip,1,probey == NUMMOUSEFUNCTIONS+2);
modval(0,1,(int32_t *)&ud.config.SmoothInput,1,probey == (MAXMOUSEBUTTONS-2)*2+2+2+1); modval(0,1,(int32_t *)&ud.config.SmoothInput,1,probey == NUMMOUSEFUNCTIONS+2+1);
if (probey == (MAXMOUSEBUTTONS-2)*2+2+2+1) if (probey == NUMMOUSEFUNCTIONS+2+1)
{ {
// mgametext(160,160+9,"THIS OPTION INCURS A MOVEMENT DELAY",0,2+8+16); // mgametext(160,160+9,"THIS OPTION INCURS A MOVEMENT DELAY",0,2+8+16);
control_smoothmouse = ud.config.SmoothInput; control_smoothmouse = ud.config.SmoothInput;
} }
mgametextpal(240,118+9, g_myAimMode && !ud.mouseaiming ? "Yes" : "No", !ud.mouseaiming?MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+1):DISABLEDMENUSHADE, 0); mgametextpal(240,118+9, g_myAimMode && !ud.mouseaiming ? "Yes" : "No",
mgametextpal(240,118+9+9, !ud.mouseflip ? "Yes" : "No", MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2), 0); !ud.mouseaiming?MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+1):DISABLEDMENUSHADE, 0);
mgametextpal(240,118+9+9+9, ud.config.SmoothInput ? "Yes" : "No", MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+1), 0); mgametextpal(240,118+9+9, !ud.mouseflip ? "Yes" : "No", MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+2), 0);
mgametextpal(240,118+9+9+9, ud.config.SmoothInput ? "Yes" : "No", MENUHIGHLIGHT(NUMMOUSEFUNCTIONS+2+1), 0);
if (probey < (MAXMOUSEBUTTONS-2)*2+2) if (probey < NUMMOUSEFUNCTIONS)
{ {
mgametext(160,160+9,"UP/DOWN = SELECT BUTTON",0,2+8+16); mgametext(160,160+9,"UP/DOWN = SELECT BUTTON",0,2+8+16);
mgametext(160,160+9+9,"ENTER = MODIFY",0,2+8+16); mgametext(160,160+9+9,"ENTER = MODIFY",0,2+8+16);
@ -3792,7 +3796,7 @@ cheat_for_port_credits:
if (function == 0) if (function == 0)
{ {
if (whichkey < (MAXMOUSEBUTTONS-2)*2) if (whichkey < NUMDOUBLEMBTNS*2)
{ {
ud.config.MouseFunctions[whichkey>>1][whichkey&1] = x; ud.config.MouseFunctions[whichkey>>1][whichkey&1] = x;
CONTROL_MapButton(x, whichkey>>1, whichkey&1, controldevice_mouse); CONTROL_MapButton(x, whichkey>>1, whichkey&1, controldevice_mouse);
@ -3800,9 +3804,9 @@ cheat_for_port_credits:
} }
else else
{ {
ud.config.MouseFunctions[whichkey-(MAXMOUSEBUTTONS-2)][0] = x; ud.config.MouseFunctions[whichkey-NUMDOUBLEMBTNS][0] = x;
CONTROL_MapButton(x, whichkey-(MAXMOUSEBUTTONS-2), 0, controldevice_mouse); CONTROL_MapButton(x, whichkey-NUMDOUBLEMBTNS, 0, controldevice_mouse);
MouseBindings[whichkey-(MAXMOUSEBUTTONS-2)].cmd[0] = 0; MouseBindings[whichkey-NUMDOUBLEMBTNS].cmd[0] = 0;
} }
ChangeToMenu(205); ChangeToMenu(205);
probey = whichkey; probey = whichkey;
@ -3843,10 +3847,10 @@ cheat_for_port_credits:
if (function == 0) if (function == 0)
{ {
if (whichkey < (MAXMOUSEBUTTONS-2)*2) if (whichkey < NUMDOUBLEMBTNS*2)
Bsprintf(tempbuf,"TO %s%s", (whichkey&1)?"DOUBLE-CLICKED ":"", mousebuttonnames[whichkey>>1]); Bsprintf(tempbuf,"TO %s%s", (whichkey&1)?"DOUBLE-CLICKED ":"", mousebuttonnames[whichkey>>1]);
else else
Bstrcpy(tempbuf, mousebuttonnames[whichkey-(MAXMOUSEBUTTONS-2)]); Bstrcpy(tempbuf, mousebuttonnames[whichkey-NUMDOUBLEMBTNS]);
} }
else if (function == 1) else if (function == 1)
{ {
@ -3898,9 +3902,7 @@ cheat_for_port_credits:
S_PlaySound(KICK_HIT); S_PlaySound(KICK_HIT);
} }
m = probey - 6; m = clamp(probey-6, 0, NUMGAMEFUNCTIONS-13);
if (m < 0) m = 0;
else if (m + 13 >= NUMGAMEFUNCTIONS) m = NUMGAMEFUNCTIONS-13;
for (l=0; l < min(13,NUMGAMEFUNCTIONS); l++) for (l=0; l < min(13,NUMGAMEFUNCTIONS); l++)
{ {
@ -3940,7 +3942,7 @@ cheat_for_port_credits:
{ {
case -1: case -1:
ChangeToMenu(205); ChangeToMenu(205);
probey = (MAXMOUSEBUTTONS-2)*2+2+2+2; probey = NUMMOUSEFUNCTIONS+2+2;
break; break;
case 0: case 0: