From 60a422453332053fd2505fe4a9d4f1ccc24060f1 Mon Sep 17 00:00:00 2001 From: terminx Date: Mon, 13 Oct 2008 01:16:40 +0000 Subject: [PATCH] Some mouse changes... previous effect of the "mouse smoothing" menu option is now mandatory (since turning it off just means you'll lose input from tiny movements), new "mouse smoothing" effect is a more traditional average of the last 2 times the mouse input was read git-svn-id: https://svn.eduke32.com/eduke32@1099 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/eduke32/eduke32.vcproj | 4 -- polymer/eduke32/source/astub.c | 4 +- polymer/eduke32/source/config.c | 7 +- polymer/eduke32/source/duke3d.h | 2 +- polymer/eduke32/source/game.c | 43 ++++++++---- polymer/eduke32/source/jmact/control.c | 18 ++--- polymer/eduke32/source/jmact/control.h | 1 + polymer/eduke32/source/menus.c | 28 +++++--- polymer/eduke32/source/osdcmds.c | 4 +- polymer/eduke32/source/player.c | 95 +++++++++++--------------- polymer/eduke32/source/sector.c | 16 ++--- 11 files changed, 111 insertions(+), 111 deletions(-) diff --git a/polymer/eduke32/eduke32.vcproj b/polymer/eduke32/eduke32.vcproj index aaa24a410..b208c74ef 100644 --- a/polymer/eduke32/eduke32.vcproj +++ b/polymer/eduke32/eduke32.vcproj @@ -895,10 +895,6 @@ - - diff --git a/polymer/eduke32/source/astub.c b/polymer/eduke32/source/astub.c index c95f7b930..6b163be68 100644 --- a/polymer/eduke32/source/astub.c +++ b/polymer/eduke32/source/astub.c @@ -3383,7 +3383,7 @@ ENDFOR1: dax = sp->x; day = sp->y; daang = sp->ang; } - + j = sp->xrepeat*(hgap+tilesizx[sp->picnum]+2); setsprite(cursor, dax + ((j*sintable[daang])>>17), @@ -3472,7 +3472,7 @@ ENDFOR1: numletters--; deletesprite(last); - updatenumsprites(); + updatenumsprites(); asksave = 1; } else diff --git a/polymer/eduke32/source/config.c b/polymer/eduke32/source/config.c index c414525d4..b4e1ee92b 100644 --- a/polymer/eduke32/source/config.c +++ b/polymer/eduke32/source/config.c @@ -198,7 +198,7 @@ void CONFIG_SetDefaults(void) ud.config.MixRate = 48000; #endif ud.config.MouseBias = 0; - ud.config.MouseFilter = 0; + ud.config.MouseDeadZone = 0; ud.config.MusicDevice = 0; ud.config.MusicToggle = 1; ud.config.MusicVolume = 200; @@ -819,8 +819,9 @@ int32 CONFIG_ReadSetup(void) SCRIPT_GetNumber(ud.config.scripthandle, "Controls","MouseAiming",&ud.mouseaiming); // 1=momentary/0=toggle g_player[0].ps->aim_mode = ud.mouseaiming; SCRIPT_GetNumber(ud.config.scripthandle, "Controls","MouseBias",&ud.config.MouseBias); - SCRIPT_GetNumber(ud.config.scripthandle, "Controls","MouseFilter",&ud.config.MouseFilter); + SCRIPT_GetNumber(ud.config.scripthandle, "Controls","MouseDeadZone",&ud.config.MouseDeadZone); SCRIPT_GetNumber(ud.config.scripthandle, "Controls","SmoothInput",&ud.config.SmoothInput); + control_smoothmouse = ud.config.SmoothInput; SCRIPT_GetNumber(ud.config.scripthandle, "Controls","UseJoystick",&ud.config.UseJoystick); SCRIPT_GetNumber(ud.config.scripthandle, "Controls","UseMouse",&ud.config.UseMouse); SCRIPT_GetNumber(ud.config.scripthandle, "Controls","AimingFlag",(int32 *)&myaimmode); // (if toggle mode) gives state @@ -933,7 +934,7 @@ void CONFIG_WriteSetup(void) SCRIPT_PutNumber(ud.config.scripthandle, "Controls","MouseAimingFlipped",ud.mouseflip,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Controls","MouseAiming",ud.mouseaiming,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Controls","MouseBias",ud.config.MouseBias,false,false); - SCRIPT_PutNumber(ud.config.scripthandle, "Controls","MouseFilter",ud.config.MouseFilter,false,false); + SCRIPT_PutNumber(ud.config.scripthandle, "Controls","MouseDeadZone",ud.config.MouseDeadZone,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Controls","SmoothInput",ud.config.SmoothInput,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Controls","RunKeyBehaviour",ud.runkey_mode,false,false); SCRIPT_PutNumber(ud.config.scripthandle, "Controls","UseJoystick",ud.config.UseJoystick,false,false); diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 6528a76a2..27a39a089 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -340,7 +340,7 @@ typedef struct { int RunMode; int AutoAim; int ShowOpponentWeapons; - int MouseFilter,MouseBias; + int MouseDeadZone,MouseBias; int SmoothInput; // JBF 20031211: Store the input settings because diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 8417adef2..c49e73ed2 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -245,8 +245,10 @@ static inline int sbarsc(int sc) static inline int textsc(int sc) { // prevent ridiculousness to a degree - if (xdim <= 640) return sc; - if (xdim <= 800) return scale(sc,min(300,ud.textscale),100); + if (xdim <= 320) return sc; + else if (xdim <= 640) return scale(sc,min(200,ud.textscale),100); + else if (xdim <= 800) return scale(sc,min(300,ud.textscale),100); + else if (xdim <= 1024) return scale(sc,min(350,ud.textscale),100); return scale(sc,ud.textscale,100); } @@ -448,7 +450,7 @@ int gametextlen(int x,const char *t) static inline int mpgametext(int y,const char *t,int s,int dabits) { // if (xdim < 640 || ydim < 480) - // return(gametext_z(0,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); + // return(gametext_z(0,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); return(gametext_z(4,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); } @@ -2724,13 +2726,13 @@ static void operatefta(void) else k += 1; */ } -/* if (xdim >= 640 && ydim >= 480) - k = scale(k,ydim,200); */ + /* if (xdim >= 640 && ydim >= 480) + k = scale(k,ydim,200); */ j = k; // quotebot = min(quotebot,j); - // quotebotgoal = min(quotebotgoal,j); + // quotebotgoal = min(quotebotgoal,j); // if (g_player[myconnectindex].ps->gm&MODE_TYPE) j -= 8; //quotebotgoal = j; //j = quotebot; @@ -2739,9 +2741,18 @@ static void operatefta(void) { if (user_quote_time[i] <= 0) continue; k = user_quote_time[i]; - if (k > 4) { mpgametext(j,user_quote[i],0,2+8+16); j += textsc(8); } - else if (k > 2) { mpgametext(j,user_quote[i],0,2+8+16+1); j += textsc(k<<1); } - else { mpgametext(j,user_quote[i],0,2+8+16+1+32); j += textsc(k<<1); } + if (hud_glowingquotes) + { + if (k > 4) { mpgametext(j,user_quote[i],(sintable[(totalclock<<5)&2047]>>11),2+8+16); j += textsc(8); } + else if (k > 2) { mpgametext(j,user_quote[i],(sintable[(totalclock<<5)&2047]>>11),2+8+16+1); j += textsc(k<<1); } + else { mpgametext(j,user_quote[i],(sintable[(totalclock<<5)&2047]>>11),2+8+16+1+32); j += textsc(k<<1); } + } + else + { + if (k > 4) { mpgametext(j,user_quote[i],0,2+8+16); j += textsc(8); } + else if (k > 2) { mpgametext(j,user_quote[i],0,2+8+16+1); j += textsc(k<<1); } + else { mpgametext(j,user_quote[i],0,2+8+16+1+32); j += textsc(k<<1); } + } l = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(tempbuf,user_quote[i])); while (l > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) { @@ -2791,9 +2802,9 @@ static void operatefta(void) else gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],0,2+8+16+1+32); return; } - if (j > 4) gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],(sintable[(totalclock<<5)&2047]>>10),2+8+16); - else if (j > 2) gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],(sintable[(totalclock<<5)&2047]>>10),2+8+16+1); - else gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],(sintable[(totalclock<<5)&2047]>>10),2+8+16+1+32); + if (j > 4) gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],(sintable[(totalclock<<5)&2047]>>11),2+8+16); + else if (j > 2) gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],(sintable[(totalclock<<5)&2047]>>11),2+8+16+1); + else gametext(320>>1,k,fta_quotes[g_player[screenpeek].ps->ftq],(sintable[(totalclock<<5)&2047]>>11),2+8+16+1+32); } void FTA(int q, player_struct *p) @@ -3542,7 +3553,8 @@ void GetCrosshairColor(void) } ptr++; ii--; - } while (ii > 0); + } + while (ii > 0); default_crosshair_colors.r = crosshair_colors.r = curpalette[bri].r; default_crosshair_colors.g = crosshair_colors.g = curpalette[bri].g; @@ -11427,10 +11439,11 @@ MAIN_LOOP_RESTART: { static unsigned int lastrender = 0; + unsigned int j = getticks(); - if (r_maxfps == 0 || getticks() >= lastrender+g_FrameDelay) + if (r_maxfps == 0 || j >= lastrender+g_FrameDelay) { - lastrender = getticks(); + lastrender = j; displayrooms(screenpeek,i); displayrest(i); diff --git a/polymer/eduke32/source/jmact/control.c b/polymer/eduke32/source/jmact/control.c index 5687fe01b..24e6bf03d 100644 --- a/polymer/eduke32/source/jmact/control.c +++ b/polymer/eduke32/source/jmact/control.c @@ -59,6 +59,7 @@ static int32 CONTROL_DoubleClickSpeed; int extinput[CONTROL_NUM_FLAGS]; keybind boundkeys[MAXBOUNDKEYS], mousebind[MAXMOUSEBUTTONS]; int bindsenabled = 0; +int control_smoothmouse = 0; void CONTROL_GetMouseDelta(void) { @@ -66,15 +67,16 @@ void CONTROL_GetMouseDelta(void) MOUSE_GetDelta(&x, &y); - /* What in the name of all things sacred is this? - if (labs(*x) > labs(*y)) { - *x /= 3; - } else { - *y /= 3; + if (control_smoothmouse) + { + static int32 lastx = 0, lasty = 0; + + CONTROL_MouseAxes[0].analog = (((x + lastx) / 2) * (CONTROL_MouseSensitivity<<1)); + CONTROL_MouseAxes[1].analog = (((y + lasty) / 2) * (CONTROL_MouseSensitivity<<1))<<1; + lastx = x; + lasty = y; + return; } - *y = *y * 96; - *x = (*x * 32 * CONTROL_MouseSensitivity) >> 15; - */ CONTROL_MouseAxes[0].analog = (x * (CONTROL_MouseSensitivity<<1)); CONTROL_MouseAxes[1].analog = (y * (CONTROL_MouseSensitivity<<1))<<1; diff --git a/polymer/eduke32/source/jmact/control.h b/polymer/eduke32/source/jmact/control.h index 3e18b38fc..ab951419f 100644 --- a/polymer/eduke32/source/jmact/control.h +++ b/polymer/eduke32/source/jmact/control.h @@ -231,6 +231,7 @@ void CONTROL_ProcessBinds(void); #define CONTROL_NUM_FLAGS 64 extern int extinput[CONTROL_NUM_FLAGS]; +extern int control_smoothmouse; #ifdef __cplusplus }; diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index bb9602dbe..c995c2676 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -2433,7 +2433,7 @@ cheat_for_port_credits: case 230: #if defined(POLYMOST) && defined(USE_OPENGL) rotatesprite(320<<15,19<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1); - menutext(320>>1,24,0,0,"VIDEO SETUP"); + menutext(320>>1,24,0,0,"RENDERER SETUP"); c = (320>>1)-120; @@ -3020,7 +3020,7 @@ cheat_for_port_credits: int osdmode = OSD_GetTextMode(); if (x==io) osdmode = !osdmode; modval(0,1,(int *)&osdmode,1,probey==io); - mgametextpal(d,yy, osdmode? "Fast" : "Nice", MENUHIGHLIGHT(io), 0); + mgametextpal(d,yy, osdmode? "Plain" : "Sprites", MENUHIGHLIGHT(io), 0); if (OSD_GetTextMode() != osdmode) OSD_SetTextMode(osdmode); break; @@ -3482,7 +3482,7 @@ cheat_for_port_credits: if (gltexfiltermode != filter) gltexapplyprops(); mgametextpal(c+168,50+62+16+16-8,tempbuf,MENUHIGHLIGHT(5),!getrendermode()); - menutext(c,50+62+16+16+16,MENUHIGHLIGHT(6),bpp==8,"MORE SETTINGS"); + menutext(c,50+62+16+16+16,MENUHIGHLIGHT(6),bpp==8,"RENDERER SETUP"); } #endif break; @@ -3664,6 +3664,7 @@ cheat_for_port_credits: { //input smoothing ud.config.SmoothInput = !ud.config.SmoothInput; + control_smoothmouse = ud.config.SmoothInput; } else if (x == (MAXMOUSEBUTTONS-2)*2+2+2+2) { @@ -3720,7 +3721,7 @@ cheat_for_port_credits: mgametextpal(40,118,"Base mouse sensitivity",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2),10); mgametextpal(40,118+9,"Use mouse aiming",!ud.mouseaiming?MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+1):DISABLEDMENUSHADE,10); mgametextpal(40,118+9+9,"Invert mouse",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2),10); - mgametextpal(40,118+9+9+9,"Use mouse input smoothing",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+1),10); + mgametextpal(40,118+9+9+9,"Smooth mouse movement",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+1),10); mgametextpal(40,118+9+9+9+9,"Advanced mouse setup",MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2+2),10); { @@ -3739,6 +3740,11 @@ cheat_for_port_credits: modval(0,1,(int *)&ud.mouseflip,1,probey == (MAXMOUSEBUTTONS-2)*2+2+2); modval(0,1,(int *)&ud.config.SmoothInput,1,probey == (MAXMOUSEBUTTONS-2)*2+2+2+1); + if (probey == (MAXMOUSEBUTTONS-2)*2+2+2+1) + { + mgametext(160,160+9,"THIS OPTION INCURS A MOVEMENT DELAY",0,2+8+16); + control_smoothmouse = ud.config.SmoothInput; + } mgametextpal(240,118+9, myaimmode && !ud.mouseaiming ? "Yes" : "No", !ud.mouseaiming?MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+1):DISABLEDMENUSHADE, 0); mgametextpal(240,118+9+9, !ud.mouseflip ? "Yes" : "No", MENUHIGHLIGHT((MAXMOUSEBUTTONS-2)*2+2+2), 0); @@ -4004,19 +4010,19 @@ cheat_for_port_credits: mgametext(c+160-16,46+16-8,tempbuf,MENUHIGHLIGHT(1),2+8+16); menutext(c,46+16+16,MENUHIGHLIGHT(2),0,"DEAD ZONE"); - l = ud.config.MouseFilter>>1; + l = ud.config.MouseDeadZone>>1; bar(c+160+40,46+16+16,&l,2,x==2,MENUHIGHLIGHT(2),0); - ud.config.MouseFilter = l<<1; + ud.config.MouseDeadZone = l<<1; rotatesprite(320<<15,94<<16,65536L,0,MENUBAR,16,0,10,0,0,xdim-1,ydim-1); menutext(320>>1,43+16+16+16+8,0,0,"DIGITAL AXES SETUP"); - if (ud.config.MouseFilter == 0) + if (ud.config.MouseDeadZone == 0) Bsprintf(tempbuf," OFF"); - else if (ud.config.MouseFilter < 48) + else if (ud.config.MouseDeadZone < 48) Bsprintf(tempbuf," LOW"); - else if (ud.config.MouseFilter < 96) + else if (ud.config.MouseDeadZone < 96) Bsprintf(tempbuf," MED"); - else if (ud.config.MouseFilter < 128) + else if (ud.config.MouseDeadZone < 128) Bsprintf(tempbuf,"HIGH"); mgametext(c+160-16,46+16+16-8,tempbuf,MENUHIGHLIGHT(2),2+8+16); @@ -4444,7 +4450,7 @@ cheat_for_port_credits: "Restart sound system", "-", "Duke talk", - "Other player sounds in DM", + "Dukematch player sounds", "Ambient sounds", "Reverse stereo channels", NULL diff --git a/polymer/eduke32/source/osdcmds.c b/polymer/eduke32/source/osdcmds.c index 15d3653eb..af434c915 100644 --- a/polymer/eduke32/source/osdcmds.c +++ b/polymer/eduke32/source/osdcmds.c @@ -747,8 +747,8 @@ cvarmappings cvar[] = { "cl_angleinterpolation", "cl_angleinterpolation: enable/disable angle interpolation", (void*)&ud.angleinterpolation, CVAR_INT, 0, 0, 256 }, { "in_mousebias", "in_mousebias: emulates the original mouse code's weighting of input towards whichever axis is moving the most at any given time\n", (void*)&ud.config.MouseBias, CVAR_INT, 0, 0, 32 }, - { "in_mousefilter", "in_mousefilter: amount of mouse movement to filter out\n", (void*)&ud.config.MouseFilter, CVAR_INT, 0, 0, 512 }, - { "in_smoothinput", "in_smoothinput: enable/disable input smoothing\n", (void*)&ud.config.SmoothInput, CVAR_BOOL, 0, 0, 1 }, + { "in_mousedeadzone", "in_mousedeadzone: amount of mouse movement to filter out\n", (void*)&ud.config.MouseDeadZone, CVAR_INT, 0, 0, 512 }, + { "in_mousesmoothing", "in_mousesmoothing: enable/disable mouse input smoothing\n", (void*)&ud.config.SmoothInput, CVAR_BOOL, 0, 0, 1 }, #if defined(POLYMOST) && defined(USE_OPENGL) { "r_anamorphic", "r_anamorphic: enable/disable widescreen mode", (void*)&glwidescreen, CVAR_BOOL, 0, 0, 1 }, diff --git a/polymer/eduke32/source/player.c b/polymer/eduke32/source/player.c index ff6b1eb55..ce016b9d9 100644 --- a/polymer/eduke32/source/player.c +++ b/polymer/eduke32/source/player.c @@ -2789,8 +2789,7 @@ int jump_input = 0; void getinput(int snum) { int j, daang; - static ControlInfo info; - static ControlInfo lastinfo = { 0,0,0,0,0,0 }; + static ControlInfo info[2]; int32 tics; boolean running; int32 turnamount; @@ -2801,8 +2800,8 @@ void getinput(int snum) if ((p->gm&MODE_MENU) || (p->gm&MODE_TYPE) || (ud.pause_on && !KB_KeyPressed(sc_Pause)) || (numplayers > 1 && totalclock < 10)) // HACK: kill getinput() for the first 10 tics of a new map in multi { if (!(p->gm&MODE_MENU)) - CONTROL_GetInput(&info); - memset(&lastinfo, 0, sizeof(lastinfo)); + CONTROL_GetInput(&info[0]); + memset(&info[1], 0, sizeof(info[1])); loc.fvel = vel = 0; loc.svel = svel = 0; loc.avel = angvel = 0; @@ -2838,41 +2837,41 @@ void getinput(int snum) } } - CONTROL_GetInput(&info); + CONTROL_GetInput(&info[0]); - if (ud.config.MouseFilter) + if (ud.config.MouseDeadZone) { - if (info.dpitch > 0) + if (info[0].dpitch > 0) { - if (info.dpitch > ud.config.MouseFilter) - info.dpitch -= ud.config.MouseFilter; - else info.dpitch = 0; + if (info[0].dpitch > ud.config.MouseDeadZone) + info[0].dpitch -= ud.config.MouseDeadZone; + else info[0].dpitch = 0; } - else if (info.dpitch < 0) + else if (info[0].dpitch < 0) { - if (info.dpitch < -ud.config.MouseFilter) - info.dpitch += ud.config.MouseFilter; - else info.dpitch = 0; + if (info[0].dpitch < -ud.config.MouseDeadZone) + info[0].dpitch += ud.config.MouseDeadZone; + else info[0].dpitch = 0; } - if (info.dyaw > 0) + if (info[0].dyaw > 0) { - if (info.dyaw > ud.config.MouseFilter) - info.dyaw -= ud.config.MouseFilter; - else info.dyaw = 0; + if (info[0].dyaw > ud.config.MouseDeadZone) + info[0].dyaw -= ud.config.MouseDeadZone; + else info[0].dyaw = 0; } - else if (info.dyaw < 0) + else if (info[0].dyaw < 0) { - if (info.dyaw < -ud.config.MouseFilter) - info.dyaw += ud.config.MouseFilter; - else info.dyaw = 0; + if (info[0].dyaw < -ud.config.MouseDeadZone) + info[0].dyaw += ud.config.MouseDeadZone; + else info[0].dyaw = 0; } } if (ud.config.MouseBias) { - if (klabs(info.dyaw) > klabs(info.dpitch)) - info.dpitch /= ud.config.MouseBias; - else info.dyaw /= ud.config.MouseBias; + if (klabs(info[0].dyaw) > klabs(info[0].dpitch)) + info[0].dpitch /= ud.config.MouseBias; + else info[0].dyaw /= ud.config.MouseBias; } tics = totalclock-lastcontroltime; @@ -2963,44 +2962,26 @@ void getinput(int snum) svel = vel = angvel = horiz = 0; - if (ud.config.SmoothInput) + if (BUTTON(gamefunc_Strafe)) { - if (BUTTON(gamefunc_Strafe)) - { - svel = -(info.dyaw+lastinfo.dyaw)/8; - lastinfo.dyaw = (lastinfo.dyaw+info.dyaw) % 8; - } - else - { - angvel = (info.dyaw+lastinfo.dyaw)/64; - lastinfo.dyaw = (lastinfo.dyaw+info.dyaw) % 64; - } - - if (ud.mouseflip) - horiz = -(info.dpitch+lastinfo.dpitch)/(314-128); - else horiz = (info.dpitch+lastinfo.dpitch)/(314-128); - - lastinfo.dpitch = (lastinfo.dpitch+info.dpitch) % (314-128); + svel = -(info[0].dyaw+info[1].dyaw)/8; + info[1].dyaw = (info[1].dyaw+info[0].dyaw) % 8; } else { - if (BUTTON(gamefunc_Strafe)) - { - svel = -info.dyaw/8; - } - else - { - angvel = info.dyaw/64; - } - - if (ud.mouseflip) - horiz -= info.dpitch/(314-128); - else horiz += info.dpitch/(314-128); + angvel = (info[0].dyaw+info[1].dyaw)/64; + info[1].dyaw = (info[1].dyaw+info[0].dyaw) % 64; } - svel -= info.dx; - lastinfo.dz = info.dz % (1<<6); - vel = -info.dz>>6; + if (ud.mouseflip) + horiz = -(info[0].dpitch+info[1].dpitch)/(314-128); + else horiz = (info[0].dpitch+info[1].dpitch)/(314-128); + + info[1].dpitch = (info[1].dpitch+info[0].dpitch) % (314-128); + + svel -= info[0].dx; + info[1].dz = info[0].dz % (1<<6); + vel = -info[0].dz>>6; if (running) { diff --git a/polymer/eduke32/source/sector.c b/polymer/eduke32/source/sector.c index 409e3ee5f..40204c116 100644 --- a/polymer/eduke32/source/sector.c +++ b/polymer/eduke32/source/sector.c @@ -1649,14 +1649,14 @@ void checkhitwall(int spr,int dawallnum,int x,int y,int z,int atwith) case SEENINE__STATIC: case OOZFILTER__STATIC: case EXPLODINGBARREL__STATIC: - if (wal->nextwall == -1 || wall[wal->nextwall].pal != 4) - { - lotsofglass(spr,dawallnum,70); - wal->cstat &= ~16; - wal->overpicnum = MIRRORBROKE; - spritesound(GLASS_HEAVYBREAK,spr); - return; - } + if (wal->nextwall == -1 || wall[wal->nextwall].pal != 4) + { + lotsofglass(spr,dawallnum,70); + wal->cstat &= ~16; + wal->overpicnum = MIRRORBROKE; + spritesound(GLASS_HEAVYBREAK,spr); + return; + } } }