void ConfigMouse(void) { txt_window_t *window; window = TXT_NewWindow("Mouse configuration"); TXT_SetTableColumns(window, 2); TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction()); TXT_SetWindowHelpURL(window, WINDOW_HELP_URL); TXT_AddWidgets(window, TXT_NewCheckBox("Enable mouse", &usemouse), TXT_TABLE_OVERFLOW_RIGHT, TXT_NewInvertedCheckBox("Allow vertical mouse movement", &novert), TXT_TABLE_OVERFLOW_RIGHT, TXT_NewCheckBox("Grab mouse in windowed mode", &grabmouse), TXT_TABLE_OVERFLOW_RIGHT, TXT_NewCheckBox("Double click acts as \"use\"", &dclick_use), TXT_TABLE_OVERFLOW_RIGHT, TXT_NewSeparator("Mouse motion"), TXT_NewLabel("Speed"), TXT_NewSpinControl(&mouseSensitivity, 1, 256), TXT_NewLabel("Acceleration"), TXT_NewFloatSpinControl(&mouse_acceleration, 1.0, 5.0), TXT_NewLabel("Acceleration threshold"), TXT_NewSpinControl(&mouse_threshold, 0, 32), TXT_NewSeparator("Buttons"), NULL); AddMouseControl(window, "Fire/Attack", &mousebfire); AddMouseControl(window, "Move forward", &mousebforward); AddMouseControl(window, "Strafe on", &mousebstrafe); TXT_AddWidget(window, TXT_NewButton2("More controls...", ConfigExtraButtons, NULL)); }
void ConfigKeyboard(void) { txt_window_t *window; txt_table_t *movement_table; txt_table_t *action_table; txt_table_t *dialogs_table; txt_checkbox_t *run_control; always_run = joybspeed >= 20; window = TXT_NewWindow("Keyboard configuration"); TXT_AddWidgets(window, TXT_NewSeparator("Movement"), movement_table = TXT_NewTable(4), TXT_NewSeparator("Action"), action_table = TXT_NewTable(4), dialogs_table = TXT_NewTable(2), TXT_NewSeparator("Misc."), run_control = TXT_NewCheckBox("Always run", &always_run), TXT_NewInvertedCheckBox("Use native keyboard mapping", &vanilla_keyboard_mapping), NULL); TXT_SetColumnWidths(movement_table, 15, 8, 15, 8); TXT_SignalConnect(run_control, "changed", UpdateJoybSpeed, NULL); AddKeyControl(movement_table, "Move Forward", &key_up); AddKeyControl(movement_table, " Strafe Left", &key_strafeleft); AddKeyControl(movement_table, "Move Backward", &key_down); AddKeyControl(movement_table, " Strafe Right", &key_straferight); AddKeyControl(movement_table, "Turn Left", &key_left); AddKeyControl(movement_table, " Speed On", &key_speed); AddKeyControl(movement_table, "Turn Right", &key_right); AddKeyControl(movement_table, " Strafe On", &key_strafe); if (gamemission == hexen || gamemission == strife) { AddKeyControl(movement_table, "Jump", &key_jump); } TXT_SetColumnWidths(action_table, 15, 8, 15, 8); AddKeyControl(action_table, "Fire/Attack", &key_fire); AddKeyControl(action_table, " Use", &key_use); // Other key bindings are stored in separate sub-dialogs: TXT_SetColumnWidths(dialogs_table, 24, 24); TXT_AddWidgets(dialogs_table, TXT_NewButton2("More controls...", ConfigExtraKeys, NULL), TXT_NewButton2("Other keys...", OtherKeysDialog, NULL), NULL); TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction()); }
void ConfigJoystick(void) { txt_window_t *window; txt_table_t *button_table, *axis_table; txt_table_t *joystick_table; window = TXT_NewWindow("Gamepad/Joystick configuration"); TXT_AddWidgets(window, TXT_NewCheckBox("Enable gamepad/joystick", &usejoystick), joystick_table = TXT_NewTable(2), TXT_NewSeparator("Axes"), axis_table = TXT_NewTable(2), TXT_NewSeparator("Buttons"), button_table = TXT_NewTable(4), NULL); TXT_SetColumnWidths(axis_table, 20, 15); TXT_AddWidgets(axis_table, TXT_NewLabel("Forward/backward"), y_axis_widget = TXT_NewJoystickAxis(&joystick_y_axis, &joystick_y_invert, JOYSTICK_AXIS_VERTICAL), TXT_NewLabel("Turn left/right"), x_axis_widget = TXT_NewJoystickAxis(&joystick_x_axis, &joystick_x_invert, JOYSTICK_AXIS_HORIZONTAL), TXT_NewLabel("Strafe left/right"), TXT_NewJoystickAxis(&joystick_strafe_axis, &joystick_strafe_invert, JOYSTICK_AXIS_HORIZONTAL), NULL); TXT_SetColumnWidths(joystick_table, 20, 15); TXT_AddWidgets(joystick_table, TXT_NewLabel("Current controller"), joystick_button = TXT_NewButton("zzzz"), NULL); TXT_SetColumnWidths(button_table, 16, 12, 14, 11); AddJoystickControl(button_table, "Fire/Attack", &joybfire); AddJoystickControl(button_table, "Strafe Left", &joybstrafeleft); AddJoystickControl(button_table, "Use", &joybuse); AddJoystickControl(button_table, "Strafe Right", &joybstraferight); AddJoystickControl(button_table, "Previous weapon", &joybprevweapon); AddJoystickControl(button_table, "Strafe", &joybstrafe); AddJoystickControl(button_table, "Next weapon", &joybnextweapon); // High values of joybspeed are used to activate the "always run mode" // trick in Vanilla Doom. If this has been enabled, not only is the // joybspeed value meaningless, but the control itself is useless. if (joybspeed < 20) { AddJoystickControl(button_table, "Speed", &joybspeed); } if (gamemission == hexen || gamemission == strife) { AddJoystickControl(button_table, "Jump", &joybjump); } AddJoystickControl(button_table, "Activate menu", &joybmenu); TXT_SignalConnect(joystick_button, "pressed", CalibrateJoystick, NULL); TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction()); SetJoystickButtonLabel(); }
void ConfigJoystick(void) { txt_window_t *window; txt_table_t *button_table; txt_table_t *joystick_table; if (!joystick_initted) { joystick_initted = SDL_Init(SDL_INIT_JOYSTICK) >= 0; } window = TXT_NewWindow("Gamepad/Joystick configuration"); TXT_AddWidgets(window, TXT_NewCheckBox("Enable gamepad/joystick", &usejoystick), joystick_table = TXT_NewTable(2), TXT_NewSeparator("Buttons"), button_table = TXT_NewTable(2), NULL); TXT_SetColumnWidths(joystick_table, 20, 15); TXT_AddWidgets(joystick_table, TXT_NewLabel("Current controller"), joystick_button = TXT_NewButton("zzzz"), NULL); TXT_SetColumnWidths(button_table, 20, 15); AddJoystickControl(button_table, "Fire/Attack", &joybfire); AddJoystickControl(button_table, "Use", &joybuse); // High values of joybspeed are used to activate the "always run mode" // trick in Vanilla Doom. If this has been enabled, not only is the // joybspeed value meaningless, but the control itself is useless. if (joybspeed < 20) { AddJoystickControl(button_table, "Speed", &joybspeed); } AddJoystickControl(button_table, "Strafe", &joybstrafe); AddJoystickControl(button_table, "Strafe Left", &joybstrafeleft); AddJoystickControl(button_table, "Strafe Right", &joybstraferight); AddJoystickControl(button_table, "Previous weapon", &joybprevweapon); AddJoystickControl(button_table, "Next weapon", &joybnextweapon); if (gamemission == hexen || gamemission == strife) { AddJoystickControl(button_table, "Jump", &joybjump); } AddJoystickControl(button_table, "Activate menu", &joybmenu); TXT_SignalConnect(joystick_button, "pressed", CalibrateJoystick, NULL); TXT_SignalConnect(window, "closed", JoystickWindowClosed, NULL); TXT_SetWindowAction(window, TXT_HORIZ_CENTER, TestConfigAction()); SetJoystickButtonLabel(); }