From e6c160ca857c262e311b673641d33f3add991377 Mon Sep 17 00:00:00 2001 From: zicodxx <> Date: Sat, 17 Jan 2009 11:02:59 +0000 Subject: [PATCH] Made MouseFilter selectable over Controls menu while defaulting to OFF - Saved in PLX --- CHANGELOG.txt | 4 ++++ arch/ogl/gr.c | 2 +- arch/sdl/mouse.c | 10 +++++++--- main/menu.c | 20 +++++++++++--------- main/playsave.c | 4 ++++ main/playsave.h | 1 + 6 files changed, 28 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2ed213d87..1d39a1458 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ D1X-Rebirth Changelog +20090117 +-------- +arch/sdl/mouse.c, main/menu.c, main/playsave.c, main/playsave.h: Made MouseFilter selectable over Controls menu while defaulting to OFF - Saved in PLX + 20090116 -------- arch/ogl/ogl.c, main/gamefont.c, main/menu.c: Reduced size of vectorial reticle to match the size of the original one; Only scale fonts by float if Texture filtering is on - otherwise scale by int diff --git a/arch/ogl/gr.c b/arch/ogl/gr.c index 007a354f3..4ad345d55 100644 --- a/arch/ogl/gr.c +++ b/arch/ogl/gr.c @@ -553,7 +553,7 @@ void write_bmp(char *savename,int w,int h,unsigned char *buf) { con_printf(CON_URGENT,"Could not create TGA file to dump screenshot!"); d_free(buf); - return 0; + return; } HeightH = (GLbyte)(h / 256); diff --git a/arch/sdl/mouse.c b/arch/sdl/mouse.c index f4a644cd9..fc2255702 100644 --- a/arch/sdl/mouse.c +++ b/arch/sdl/mouse.c @@ -15,6 +15,7 @@ #include "timer.h" #include "event.h" #include "mouse.h" +#include "playsave.h" struct mousebutton { ubyte pressed; @@ -130,9 +131,12 @@ void mouse_get_delta( int *dx, int *dy, int *dz ) *dy = Mouse.delta_y; *dz = Mouse.delta_z; - // filter delta - Mouse.delta_x = (*dx + old_delta_x) * 0.5; - Mouse.delta_y = (*dy + old_delta_y) * 0.5; + // filter delta? + if (PlayerCfg.MouseFilter) + { + Mouse.delta_x = (*dx + old_delta_x) * 0.5; + Mouse.delta_y = (*dy + old_delta_y) * 0.5; + } old_delta_x = *dx; old_delta_y = *dy; diff --git a/main/menu.c b/main/menu.c index 84ad3df2f..c487f74e2 100644 --- a/main/menu.c +++ b/main/menu.c @@ -579,9 +579,9 @@ void input_menuset(int nitems, newmenu_item * items, int *last_key, int citem ) void input_config() { - newmenu_item m[21]; + newmenu_item m[22]; int i, i1 = 5, j; - int nitems = 21; + int nitems = 22; m[0].type = NM_TYPE_RADIO; m[0].text = "KEYBOARD"; m[0].value = 0; m[0].group = 0; m[1].type = NM_TYPE_RADIO; m[1].text = "JOYSTICK"; m[1].value = 0; m[1].group = 0; @@ -600,10 +600,11 @@ void input_config() m[14].type = NM_TYPE_TEXT; m[14].text = "Mouse"; m[15].type = NM_TYPE_SLIDER; m[15].text="X Sensitivity"; m[15].value=PlayerCfg.MouseSensitivityX; m[15].min_value = 0; m[15].max_value = 16; m[16].type = NM_TYPE_SLIDER; m[16].text="Y Sensitivity"; m[16].value=PlayerCfg.MouseSensitivityY; m[16].min_value = 0; m[16].max_value = 16; - m[17].type = NM_TYPE_TEXT; m[17].text = ""; - m[18].type = NM_TYPE_MENU; m[18].text = "GAME SYSTEM KEYS"; - m[19].type = NM_TYPE_MENU; m[19].text = "NETGAME SYSTEM KEYS"; - m[20].type = NM_TYPE_MENU; m[20].text = "DEMO SYSTEM KEYS"; + m[17].type = NM_TYPE_CHECK; m[17].text="Mouse Smoothing/Filtering"; m[17].value=PlayerCfg.MouseFilter; + m[18].type = NM_TYPE_TEXT; m[18].text = ""; + m[19].type = NM_TYPE_MENU; m[19].text = "GAME SYSTEM KEYS"; + m[20].type = NM_TYPE_MENU; m[20].text = "NETGAME SYSTEM KEYS"; + m[21].type = NM_TYPE_MENU; m[21].text = "DEMO SYSTEM KEYS"; do { @@ -620,6 +621,7 @@ void input_config() PlayerCfg.JoystickDeadzone = m[12].value; PlayerCfg.MouseSensitivityX = m[15].value; PlayerCfg.MouseSensitivityY = m[16].value; + PlayerCfg.MouseFilter = m[17].value; for (j = 0; j <= 3; j++) if (m[j].value) @@ -640,13 +642,13 @@ void input_config() case 7: kconfig(4, "WEAPON KEYS"); break; - case 18: + case 19: show_help(); break; - case 19: + case 20: show_netgame_help(); break; - case 20: + case 21: show_newdemo_help(); break; } diff --git a/main/playsave.c b/main/playsave.c index 622e30bcd..6442cdff7 100644 --- a/main/playsave.c +++ b/main/playsave.c @@ -91,6 +91,7 @@ int new_player_config() PlayerCfg.JoystickSensitivityY = 8; PlayerCfg.MouseSensitivityX = 8; PlayerCfg.MouseSensitivityY = 8; + PlayerCfg.MouseFilter = 0; PlayerCfg.CockpitMode = CM_FULL_COCKPIT; PlayerCfg.ReticleOn = 1; PlayerCfg.HudMode = 0; @@ -239,6 +240,8 @@ int read_player_d1x(char *filename) PlayerCfg.MouseSensitivityX = atoi(line); if(!strcmp(word,"SENSITIVITYY")) PlayerCfg.MouseSensitivityY = atoi(line); + if(!strcmp(word,"FILTER")) + PlayerCfg.MouseFilter = atoi(line); d_free(word); cfgets(line,50,f); word=splitword(line,'='); @@ -528,6 +531,7 @@ int write_player_d1x(char *filename) PHYSFSX_printf(fout,"[mouse]\n"); PHYSFSX_printf(fout,"sensitivityx=%d\n",PlayerCfg.MouseSensitivityX); PHYSFSX_printf(fout,"sensitivityy=%d\n",PlayerCfg.MouseSensitivityY); + PHYSFSX_printf(fout,"filter=%d\n",PlayerCfg.MouseFilter); PHYSFSX_printf(fout,"[end]\n"); PHYSFSX_printf(fout,"[cockpit]\n"); PHYSFSX_printf(fout,"mode=%i\n",(PlayerCfg.CockpitMode==1?0:PlayerCfg.CockpitMode)); diff --git a/main/playsave.h b/main/playsave.h index a5db3bc5a..8c1615387 100644 --- a/main/playsave.h +++ b/main/playsave.h @@ -61,6 +61,7 @@ typedef struct player_config hli HighestLevels[MAX_MISSIONS]; ubyte MouseSensitivityX; ubyte MouseSensitivityY; + int MouseFilter; ubyte JoystickSensitivityX; ubyte JoystickSensitivityY; int JoystickDeadzone;