diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2710de5c9..c528b7984 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ D2X-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 309202f79..ee7adb732 100644 --- a/arch/ogl/gr.c +++ b/arch/ogl/gr.c @@ -572,7 +572,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 0ad7df172..bd735072b 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; @@ -128,9 +129,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 db535db74..9eb750da6 100644 --- a/main/menu.c +++ b/main/menu.c @@ -583,9 +583,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; @@ -604,10 +604,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 { @@ -623,6 +624,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) @@ -643,13 +645,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 b8daa1326..9de9d3fe4 100644 --- a/main/playsave.c +++ b/main/playsave.c @@ -113,7 +113,8 @@ int new_player_config() PlayerCfg.JoystickSensitivityY = 8; PlayerCfg.MouseSensitivityX = 8; PlayerCfg.MouseSensitivityY = 8; - PlayerCfg.JoystickDeadzone = 0; + PlayerCfg.MouseFilter = 0; + PlayerCfg.JoystickDeadzone = 0; PlayerCfg.CockpitMode = CM_FULL_COCKPIT; PlayerCfg.Cockpit3DView[0]=CV_NONE; PlayerCfg.Cockpit3DView[1]=CV_NONE; @@ -193,6 +194,8 @@ int read_player_d2x(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,'='); @@ -304,6 +307,7 @@ int write_player_d2x(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,"[joystick]\n"); PHYSFSX_printf(fout,"sensitivityx=%d\n",PlayerCfg.JoystickSensitivityX); diff --git a/main/playsave.h b/main/playsave.h index ca77229ef..85401c851 100644 --- a/main/playsave.h +++ b/main/playsave.h @@ -48,6 +48,7 @@ typedef struct player_config hli HighestLevels[MAX_MISSIONS]; ubyte MouseSensitivityX; ubyte MouseSensitivityY; + int MouseFilter; ubyte JoystickSensitivityX; ubyte JoystickSensitivityY; int JoystickDeadzone;