void CONFIG_WriteSetup( void ) { int32 dummy; if (!setupread) return; // if (scripthandle < 0) scripthandle = SCRIPT_Init(localsetupfilename); SCRIPT_PutNumber( scripthandle, "Screen Setup", "Shadows",ud.shadows,false,false); SCRIPT_PutString( scripthandle, "Screen Setup", "Password",ud.pwlockout); SCRIPT_PutNumber( scripthandle, "Screen Setup", "Detail",ud.detail,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "Tilt",ud.screen_tilting,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "Messages",ud.fta_on,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "Out",ud.lockout,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenWidth",ScreenWidth,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenHeight",ScreenHeight,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenMode",ScreenMode,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenBPP",ScreenBPP,false,false); SCRIPT_PutBoolean( scripthandle, "Screen Setup", "VerticalSync", (boolean)ud.vsync); SCRIPT_PutNumber( scripthandle, "Screen Setup", "MaxFPS", ud.fps_max, false, false); #ifdef RENDERTYPEWIN SCRIPT_PutNumber( scripthandle, "Screen Setup", "MaxRefreshFreq",maxrefreshfreq,false,false); #endif SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLTextureMode",gltexfiltermode,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLAnisotropy",glanisotropy,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLUseTextureCompr",glusetexcompr,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLUseCompressedTextureCache", glusetexcache,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenSize",ud.screen_size,false,false); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenGamma",ud.brightness,false,false); SCRIPT_Save (scripthandle, localsetupfilename); SCRIPT_Free (scripthandle); scripthandle = SCRIPT_Init(setupfilename); SCRIPT_PutNumber( scripthandle, "Sound Setup", "FXDevice", FXDevice, false, false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MusicDevice", MusicDevice, false, false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "FXVolume",FXVolume,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MusicVolume",MusicVolume,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "SoundToggle",SoundToggle,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "VoiceToggle",VoiceToggle,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "AmbienceToggle",AmbienceToggle,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MusicToggle",MusicToggle,false,false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "NumVoices", NumVoices, false, false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "NumChannels", NumChannels, false, false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "NumBits", NumBits, false, false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MixRate", MixRate, false, false); SCRIPT_PutNumber( scripthandle, "Sound Setup", "ReverseStereo",ReverseStereo,false,false); SCRIPT_PutNumber( scripthandle, "Setup", "ForceSetup",ForceSetup,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "Executions",ud.executions,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "RunMode",RunMode,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "Crosshairs",ud.crosshair,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "ShowLevelStats",ud.levelstats,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "StatusBarScale",ud.statusbarscale,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "ShowOpponentWeapons",ShowOpponentWeapons,false,false); SCRIPT_PutNumber( scripthandle, "Misc", "UsePrecache",useprecache,false,false); SCRIPT_PutNumber( scripthandle, "Controls","UseJoystick",UseJoystick,false,false); SCRIPT_PutNumber( scripthandle, "Controls","UseMouse",UseMouse,false,false); SCRIPT_PutNumber( scripthandle, "Controls","MouseAimingFlipped",ud.mouseflip,false,false); SCRIPT_PutNumber( scripthandle, "Controls","MouseAiming",ud.mouseaiming,false,false); //SCRIPT_PutNumber( scripthandle, "Controls","GameMouseAiming",(int32) ps[myconnectindex].aim_mode,false,false); SCRIPT_PutNumber( scripthandle, "Controls","AimingFlag",(long) myaimmode,false,false); SCRIPT_PutNumber( scripthandle, "Controls","RunKeyBehaviour",ud.runkey_mode,false,false); SCRIPT_PutNumber( scripthandle, "Controls","AutoAim",AutoAim,false,false); SCRIPT_PutNumber( scripthandle, "Controls","WeaponSwitchMode",ud.weaponswitch,false,false); // JBF 20031211 #if 0 for(dummy=0;dummy<NUMGAMEFUNCTIONS;dummy++) { SCRIPT_PutDoubleString( scripthandle, "KeyDefinitions", CONFIG_FunctionNumToName(dummy), KB_ScanCodeToString(KeyboardKeys[dummy][0]), KB_ScanCodeToString(KeyboardKeys[dummy][1])); } #else for(dummy=0;dummy<NUMGAMEFUNCTIONS;dummy++) { SCRIPT_PutDoubleString( scripthandle, "KeyDefinitions", CONFIG_FunctionNumToName(dummy), dnGetKeyName(dnGetFunctionBinding(dummy, 0)), dnGetKeyName(dnGetFunctionBinding(dummy, 1))); } #endif for(dummy=0;dummy<10;dummy++) { Bsprintf(buf,"WeaponChoice%ld",dummy); SCRIPT_PutNumber( scripthandle, "Misc",buf,ud.wchoice[myconnectindex][dummy],false,false); } for (dummy=0;dummy<MAXMOUSEBUTTONS;dummy++) { Bsprintf(buf,"MouseButton%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( MouseFunctions[dummy][0] )); if (dummy >= (MAXMOUSEBUTTONS-2)) continue; Bsprintf(buf,"MouseButtonClicked%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( MouseFunctions[dummy][1] )); } for (dummy=0;dummy<MAXMOUSEAXES;dummy++) { Bsprintf(buf,"MouseAnalogAxes%ld",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_AnalogNumToName( MouseAnalogueAxes[dummy] )); Bsprintf(buf,"MouseDigitalAxes%ld_0",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(MouseDigitalFunctions[dummy][0])); Bsprintf(buf,"MouseDigitalAxes%ld_1",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(MouseDigitalFunctions[dummy][1])); Bsprintf(buf,"MouseAnalogScale%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, MouseAnalogueScale[dummy], false, false); } #if 0 dummy = CONTROL_GetMouseSensitivity(); #else dummy = dnGetMouseSensitivity(); #endif SCRIPT_PutNumber( scripthandle, "Controls","MouseSensitivity",dummy,false,false); for (dummy=0;dummy<MAXJOYBUTTONS;dummy++) { Bsprintf(buf,"JoystickButton%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( JoystickFunctions[dummy][0] )); Bsprintf(buf,"JoystickButtonClicked%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( JoystickFunctions[dummy][1] )); } for (dummy=0;dummy<MAXJOYAXES;dummy++) { Bsprintf(buf,"JoystickAnalogAxes%ld",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_AnalogNumToName( JoystickAnalogueAxes[dummy] )); Bsprintf(buf,"JoystickDigitalAxes%ld_0",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(JoystickDigitalFunctions[dummy][0])); Bsprintf(buf,"JoystickDigitalAxes%ld_1",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(JoystickDigitalFunctions[dummy][1])); Bsprintf(buf,"JoystickAnalogScale%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, JoystickAnalogueScale[dummy], false, false); Bsprintf(buf,"JoystickAnalogDead%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, JoystickAnalogueDead[dummy], false, false); Bsprintf(buf,"JoystickAnalogSaturate%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, JoystickAnalogueSaturate[dummy], false, false); } SCRIPT_PutString( scripthandle, "Comm Setup","PlayerName",&myname[0]); SCRIPT_Save (scripthandle, setupfilename); SCRIPT_Free (scripthandle); }
void CONFIG_WriteSetup( void ) { int32 dummy; char buf[80]; if (scripthandle < 0) scripthandle = SCRIPT_Init(setupfilename); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenWidth", ScreenWidth,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenHeight",ScreenHeight,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenMode",ScreenMode,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Screen Setup", "ScreenBPP",ScreenBPP,FALSE,FALSE); #ifdef RENDERTYPEWIN SCRIPT_PutNumber( scripthandle, "Screen Setup", "MaxRefreshFreq",maxrefreshfreq,FALSE,FALSE); #endif SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLTextureMode",gltexfiltermode,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLAnisotropy",glanisotropy,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Screen Setup", "GLUseTextureCompr",glusetexcompr,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "FXDevice", FXDevice, FALSE, FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MusicDevice", MusicDevice, FALSE, FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "NumVoices", NumVoices, FALSE, FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "NumChannels", NumChannels, FALSE, FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "NumBits", NumBits, FALSE, FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MixRate", MixRate, FALSE, FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "FXVolume",gs.SoundVolume,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Sound Setup", "MusicVolume",gs.MusicVolume,FALSE,FALSE); dummy = gs.FlipStereo; SCRIPT_PutNumber( scripthandle, "Sound Setup", "ReverseStereo",dummy,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Setup", "ForceSetup",ForceSetup,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Controls","UseMouse",UseMouse,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Controls","UseJoystick",UseJoystick,FALSE,FALSE); SCRIPT_PutNumber( scripthandle, "Controls","MouseSensitivity",gs.MouseSpeed,FALSE,FALSE); WriteGameSetup(scripthandle); for (dummy=0;dummy<NUMGAMEFUNCTIONS;dummy++) { SCRIPT_PutDoubleString( scripthandle, "KeyDefinitions", CONFIG_FunctionNumToName(dummy), KB_ScanCodeToString(KeyboardKeys[dummy][0]), KB_ScanCodeToString(KeyboardKeys[dummy][1])); } for (dummy=0;dummy<MAXMOUSEBUTTONS;dummy++) { Bsprintf(buf,"MouseButton%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( MouseFunctions[dummy][0] )); if (dummy >= (MAXMOUSEBUTTONS-2)) continue; // scroll wheel Bsprintf(buf,"MouseButtonClicked%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( MouseFunctions[dummy][1] )); } for (dummy=0;dummy<MAXMOUSEAXES;dummy++) { Bsprintf(buf,"MouseAnalogAxes%ld",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_AnalogNumToName( MouseAnalogueAxes[dummy] )); Bsprintf(buf,"MouseDigitalAxes%ld_0",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(MouseDigitalFunctions[dummy][0])); Bsprintf(buf,"MouseDigitalAxes%ld_1",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(MouseDigitalFunctions[dummy][1])); Bsprintf(buf,"MouseAnalogScale%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, MouseAnalogueScale[dummy], FALSE, FALSE); } for (dummy=0;dummy<MAXJOYBUTTONS;dummy++) { Bsprintf(buf,"JoystickButton%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( JoystickFunctions[dummy][0] )); Bsprintf(buf,"JoystickButtonClicked%ld",dummy); SCRIPT_PutString( scripthandle,"Controls", buf, CONFIG_FunctionNumToName( JoystickFunctions[dummy][1] )); } for (dummy=0;dummy<MAXJOYAXES;dummy++) { Bsprintf(buf,"JoystickAnalogAxes%ld",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_AnalogNumToName( JoystickAnalogueAxes[dummy] )); Bsprintf(buf,"JoystickDigitalAxes%ld_0",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(JoystickDigitalFunctions[dummy][0])); Bsprintf(buf,"JoystickDigitalAxes%ld_1",dummy); SCRIPT_PutString(scripthandle, "Controls", buf, CONFIG_FunctionNumToName(JoystickDigitalFunctions[dummy][1])); Bsprintf(buf,"JoystickAnalogScale%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, JoystickAnalogueScale[dummy], FALSE, FALSE); Bsprintf(buf,"JoystickAnalogDead%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, JoystickAnalogueDead[dummy], FALSE, FALSE); Bsprintf(buf,"JoystickAnalogSaturate%ld",dummy); SCRIPT_PutNumber(scripthandle, "Controls", buf, JoystickAnalogueSaturate[dummy], FALSE, FALSE); } SCRIPT_Save (scripthandle, setupfilename); SCRIPT_Free (scripthandle); }
void CONSOLE_HandleInput() { char * lastKey; int tmp; if(g_CV_classic) { nConsole_Active = 0; return; } // See if we should toggle the console if(ACTION(gamefunc_Console)) { nConsole_Active = !nConsole_Active; CONTROL_ClearAction(gamefunc_Console); //KB_ClearKeyDown(sc_Tilde); if(nConsole_Active) { // If this is a singleplayer game, let's pause the game when the console is active if (numplayers == 1) { if (!ud.recstat) //check if we are not playing a Demo and console is active { ud.pause_on = 1; }else { ud.pause_on = 0; } } } else // Bug fix: make sure the frag bar displays after console // is hidden //if(!nConsole_Active) { if ( ud.multimode > 1 && ud.coop != 1 ) { displayfragbar(); } if(numplayers<2) ud.pause_on = 0; // FIX_00078: Out Of Synch error (multiplayer) when using console in pause mode } return; } // If the console is not active, there's no need to process input if(!nConsole_Active) { return; } switch(KB_GetLastScanCode()) { case sc_Space: { if(strlen(dirty_buffer) < MAX_CONSOLE_STRING_LENGTH-2) { strncat(dirty_buffer, " ", 1); console_num_spaces++; } } break; case sc_Delete: case sc_BackSpace: { tmp = strlen(dirty_buffer); if(tmp > 0) { if( dirty_buffer[tmp - 1] == ' ' ) { dirty_buffer[tmp - 1] = '\0'; console_num_spaces--; } else { dirty_buffer[tmp - 1] = '\0'; console_cursor_pos--; } } } break; //Ignore list case sc_LeftShift: case sc_RightShift: case sc_PrintScreen: case sc_Tab: case sc_NumLock: case sc_LeftAlt: case sc_LeftControl: case sc_CapsLock: case sc_Bad: case sc_LeftArrow: case sc_RightArrow: case sc_Insert: case sc_Home: //this should take us to the top of the list case sc_RightAlt: case sc_RightControl: case sc_Tilde: //ignore { }break; case sc_kpad_Enter: case sc_Enter: { //If console_buffer[0] strlen() != 0 //1. Push the dirty_buffer unto the console_buffer //2. parse the text CONSOLE_Printf("%s", dirty_buffer); console_cursor_pos = 0; console_num_spaces = 0; CONSOLE_InsertUsedCommand(dirty_buffer); CONSOLE_ParseCommand(dirty_buffer); memset(dirty_buffer, 0, MAX_CONSOLE_STRING_LENGTH); }break; case sc_UpArrow: { /* if(p_console_current_view->next != NULL) { p_console_current_view = p_console_current_view->next; } */ if(console_used_command_list_current == NULL) { if(NULL == console_used_command_list) { break; } console_used_command_list_current = console_used_command_list; sprintf(dirty_buffer, "%s", console_used_command_list_current->text); CONSOLE_RecalculateDirtyBuffer(); break; } if(console_used_command_list_current->next != NULL) { console_used_command_list_current = console_used_command_list_current->next; sprintf(dirty_buffer, "%s", console_used_command_list_current->text); CONSOLE_RecalculateDirtyBuffer(); }else if(console_used_command_list_current != NULL) { sprintf(dirty_buffer, "%s", console_used_command_list_current->text); CONSOLE_RecalculateDirtyBuffer(); } }break; case sc_PgUp: { int i; for(i = 0; i < MAX_CONSOLE_VIEWABLE; i++) { if(p_console_current_view->next != NULL) { p_console_current_view = p_console_current_view->next; } else { break; } } }break; case sc_DownArrow: { /* if(p_console_current_view->prev != NULL) { p_console_current_view = p_console_current_view->prev; } */ if(console_used_command_list_current != NULL) { if(console_used_command_list_current->prev != NULL) { console_used_command_list_current = console_used_command_list_current->prev; sprintf(dirty_buffer, "%s", console_used_command_list_current->text); CONSOLE_RecalculateDirtyBuffer(); } } }break; case sc_PgDn: { int i; for(i = 0; i < MAX_CONSOLE_VIEWABLE; i++) { if(p_console_current_view->prev != NULL) { p_console_current_view = p_console_current_view->prev; } else { break; } } }break; case sc_End: { p_console_current_view = console_buffer; }break; case sc_Escape: { nConsole_Active = 0; KB_ClearKeyDown(sc_Escape); // FIX_00057: Using ESC to get out of the console mode wouldn't take pause mode off if(numplayers<2) ud.pause_on = 0; // FIX_00078: Out Of Synch error (multiplayer) when using console in pause mode }break; default: { if(strlen(dirty_buffer) < MAX_CONSOLE_STRING_LENGTH-2) { lastKey = KB_ScanCodeToString(KB_GetLastScanCode()); if(lastKey) { strncat(dirty_buffer, lastKey, 1); console_cursor_pos++; //printf("Key %s : %s\n", lastKey, console_buffer[0]); } } } break; } KB_ClearLastScanCode(); }