me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Time limit:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider_T("timelimit_override",
_("Timelimit in minutes that when hit, will end the match")));
+ #define ADDVALUE_MINUTES(i) e.addValue(e, strzone(sprintf(_("%d minutes"), i)), #i)
e.addValue(e, ZCTX(_("TIMLIM^Default")), "-1");
- e.addValue(e, ZCTX(_("TIMLIM^1 minute")), "1");
- e.addValue(e, ZCTX(_("TIMLIM^2 minutes")), "2");
- e.addValue(e, ZCTX(_("TIMLIM^3 minutes")), "3");
- e.addValue(e, ZCTX(_("TIMLIM^4 minutes")), "4");
- e.addValue(e, ZCTX(_("TIMLIM^5 minutes")), "5");
- e.addValue(e, ZCTX(_("TIMLIM^6 minutes")), "6");
- e.addValue(e, ZCTX(_("TIMLIM^7 minutes")), "7");
- e.addValue(e, ZCTX(_("TIMLIM^8 minutes")), "8");
- e.addValue(e, ZCTX(_("TIMLIM^9 minutes")), "9");
- e.addValue(e, ZCTX(_("TIMLIM^10 minutes")), "10");
- e.addValue(e, ZCTX(_("TIMLIM^15 minutes")), "15");
- e.addValue(e, ZCTX(_("TIMLIM^20 minutes")), "20");
- e.addValue(e, ZCTX(_("TIMLIM^25 minutes")), "25");
- e.addValue(e, ZCTX(_("TIMLIM^30 minutes")), "30");
- e.addValue(e, ZCTX(_("TIMLIM^40 minutes")), "40");
- e.addValue(e, ZCTX(_("TIMLIM^50 minutes")), "50");
- e.addValue(e, ZCTX(_("TIMLIM^60 minutes")), "60");
+ e.addValue(e, _("1 minute"), "1");
+ ADDVALUE_MINUTES(2);
+ ADDVALUE_MINUTES(3);
+ ADDVALUE_MINUTES(4);
+ ADDVALUE_MINUTES(5);
+ ADDVALUE_MINUTES(6);
+ ADDVALUE_MINUTES(7);
+ ADDVALUE_MINUTES(8);
+ ADDVALUE_MINUTES(9);
+ ADDVALUE_MINUTES(10);
+ ADDVALUE_MINUTES(15);
+ ADDVALUE_MINUTES(20);
+ ADDVALUE_MINUTES(25);
+ ADDVALUE_MINUTES(30);
+ ADDVALUE_MINUTES(40);
+ ADDVALUE_MINUTES(50);
+ ADDVALUE_MINUTES(60);
e.addValue(e, ZCTX(_("TIMLIM^Infinite")), "0");
e.configureXonoticTextSliderValues(e);
+ #undef ADDVALUE_MINUTES
me.TR(me);
me.TD(me, 1, 1, me.labelFraglimit = makeXonoticTextLabel(0, _("Frag limit:")));
me.TD(me, 1, 2, e = me.sliderFraglimit = makeXonoticTextSlider("fraglimit_override"));
// string filter label and box
me.TD(me, 1, 0.35, e = makeXonoticTextLabel(1, _("Filter:")));
me.mapListBox.stringFilterBox = makeXonoticInputBox_T(0, string_null,
- _("Click here or Ctrl-F to provide a keyword to narrow down the maplist above. Ctrl-Delete to clear; Enter when done."));
+ _("Click here or Ctrl-F to provide a keyword to narrow down the map list. Ctrl-Delete to clear; Enter when done."));
me.TD(me, 1, me.columns - me.firstColumn - 0.35, e = me.mapListBox.stringFilterBox);
e.onChange = MapList_StringFilterBox_Change;
e.keyDown = MapList_StringFilterBox_keyDown;
// the selection buttons
me.TDempty(me, 0.2);
me.TD(me, 1, 1.3, e = makeXonoticButton_T(_("Add shown"), '0 0 0',
- _("Add the maps shown in Maplist above to your selection")));
+ _("Add the maps shown in the list to your selection")));
e.onClick = MapList_Add_Shown;
e.onClickEntity = me.mapListBox;
me.TD(me, 1, 1.3, e = makeXonoticButton_T(_("Remove shown"), '0 0 0',
- _("Remove the maps shown in Maplist above from your selection")));
+ _("Remove the maps shown in the list from your selection")));
e.onClick = MapList_Remove_Shown;
e.onClickEntity = me.mapListBox;
me.gotoRC(me, me.rows - 2.5, me.firstColumn);
setDependent(e, "g_nix", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 1.8, e = makeXonoticRadioButton(1, "g_balance_blaster_weaponstart", "0", _("No start weapons")));
+ me.TD(me, 1, 1.8, e = makeXonoticRadioButton_T(1, "g_balance_blaster_weaponstart", "0", _("No start weapons"), "-"));
e.cvarOffValue = "-1";
makeMulti(e, "g_balance_shotgun_weaponstart g_balance_machinegun_weaponstart g_balance_devastator_weaponstart g_balance_minelayer_weaponstart g_balance_electro_weaponstart g_balance_crylink_weaponstart g_balance_hagar_weaponstart g_balance_porto_weaponstart g_balance_vaporizer_weaponstart g_balance_hook_weaponstart g_balance_rifle_weaponstart g_balance_fireball_weaponstart g_balance_seeker_weaponstart g_balance_tuba_weaponstart g_balance_arc_weaponstart g_balance_vortex_weaponstart g_balance_mortar_weaponstart");
mc = makeXonoticTabController(me.rows - 2);
me.gotoRC(me, 0.5, 0);
- me.TD(me, 1, 1, e = mc.makeTabButton_T(mc, _("Demos"), makeXonoticDemoBrowserTab(),
- _("Browse and view demos")));
+ me.TD(me, 1, 1, e = mc.makeTabButton(mc, _("Demos"), makeXonoticDemoBrowserTab()));
me.TD(me, 1, 1, e = mc.makeTabButton(mc, _("Screenshots"), makeXonoticScreenshotBrowserTab()));
me.TD(me, 1, 1, e = mc.makeTabButton(mc, _("Music Player"), makeXonoticMusicPlayerTab()));
entity mc;
mc = makeXonoticTabController(me.rows - 2.5);
me.TR(me);
- me.TD(me, 1, 2, mc.makeTabButton_T(mc, _("Video"), makeXonoticVideoSettingsTab(), _("Video settings")));
- me.TD(me, 1, 2, mc.makeTabButton_T(mc, _("Effects"), makeXonoticEffectsSettingsTab(), _("Effects settings")));
- me.TD(me, 1, 2, mc.makeTabButton_T(mc, _("Audio"), makeXonoticAudioSettingsTab(), _("Audio settings")));
+ me.TD(me, 1, 2, mc.makeTabButton(mc, _("Video"), makeXonoticVideoSettingsTab()));
+ me.TD(me, 1, 2, mc.makeTabButton(mc, _("Effects"), makeXonoticEffectsSettingsTab()));
+ me.TD(me, 1, 2, mc.makeTabButton(mc, _("Audio"), makeXonoticAudioSettingsTab()));
me.TR(me);
me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Game"), NEW(XonoticGameSettingsTab)));
- me.TD(me, 1, 1.5, mc.makeTabButton_T(mc, _("Input"), makeXonoticInputSettingsTab(), _("Input settings")));
+ me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Input"), makeXonoticInputSettingsTab()));
me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("User"), makeXonoticUserSettingsTab()));
- me.TD(me, 1, 1.5, mc.makeTabButton_T(mc, _("Misc"), makeXonoticMiscSettingsTab(), _("Misc settings")));
+ me.TD(me, 1, 1.5, mc.makeTabButton(mc, _("Misc"), makeXonoticMiscSettingsTab()));
me.gotoRC(me, 2.5, 0);
me.TD(me, me.rows - 2.5, me.columns, mc);
}
me.TR(me);
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_particles", _("Particles")));
- me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "cl_spawn_point_particles", _("Spawnpoint effects")));
+ me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "cl_spawn_point_particles", _("Spawnpoint effects"),
+ _("Particles effects at all spawn points and whenever a player spawns")));
makeMulti(e, "cl_spawn_event_particles");
setDependent(e, "cl_particles", 1, 1);
me.TR(me);
me.TR(me);
me.TR(me);
me.TDempty(me, 0.1);
- me.TD(me, 1, 2.9, e = makeXonoticCheckBox(0, "crosshair_ring", _("Use rings to indicate weapon status")));
+ me.TD(me, 1, 2.9, e = makeXonoticCheckBox_T(0, "crosshair_ring", _("Use rings to indicate weapon status"), "-"));
makeMulti(e, "crosshair_ring_reload");
setDependent(e, "crosshair_enabled", 1, 2);
//me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Edge offset:")));
setDependent(e, "cl_hidewaypoints", 0, 0);
- me.TD(me, 1, 2, e = makeXonoticSlider(0, 0.3, 0.01, "g_waypointsprite_edgeoffset_bottom"));
+ me.TD(me, 1, 2, e = makeXonoticSlider_T(0, 0.3, 0.01, "g_waypointsprite_edgeoffset_bottom", "-"));
makeMulti(e, "g_waypointsprite_edgeoffset_top g_waypointsprite_edgeoffset_left g_waypointsprite_edgeoffset_right");
setDependent(e, "cl_hidewaypoints", 0, 0);
me.TR(me);
me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Frag Information")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "notification_show_sprees", _("Display information about killing sprees")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "notification_show_sprees", _("Display information about killing sprees"), "-"));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "notification_show_sprees_info_specialonly", _("Only display sprees if they are achievements")));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "notification_show_sprees_info_specialonly", _("Only display sprees if they are achievements"), "-"));
makeMulti(e, "notification_show_sprees_center_specialonly");
setDependent(e, "notification_show_sprees", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "notification_show_sprees_center", _("Show spree information in centerprints")));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "notification_show_sprees_center", _("Show spree information in centerprints"), "-"));
setDependent(e, "notification_show_sprees", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(3, 0, "notification_show_sprees_info", _("Show spree information in death messages")));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx_T(3, 0, "notification_show_sprees_info", _("Show spree information in death messages"), "-"));
setDependent(e, "notification_show_sprees", 1, 1);
#if 0
me.TR(me);
me.TDempty(me, 0.1);
me.TD(me, 1, 0.9, e = makeXonoticTextLabel(0, _("Sprees in info messages:")));
setDependent(e, "notification_show_sprees", 1, 1);
- me.TD(me, 1, 2, e = makeXonoticTextSlider("notification_show_sprees_info"));
+ me.TD(me, 1, 2, e = makeXonoticTextSlider_T("notification_show_sprees_info", "-"));
e.addValue(e, ZCTX(_("SPREES^Disabled")), "0");
e.addValue(e, _("Target"), "1");
e.addValue(e, _("Attacker"), "2");
#endif
me.TR(me);
me.TDempty(me, 0.4);
- me.TD(me, 1, 2.6, e = makeXonoticCheckBox(0, "notification_show_sprees_info_newline", _("Print on a seperate line")));
+ me.TD(me, 1, 2.6, e = makeXonoticCheckBox_T(0, "notification_show_sprees_info_newline", _("Print on a seperate line"), "-"));
setDependent(e, "notification_show_sprees", 1, 1);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "notification_CHOICE_FRAG", _("Add extra frag information to centerprint when available")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(2, 1, "notification_CHOICE_FRAG", _("Add extra frag information to centerprint when available"), "-"));
makeMulti(e, "notification_CHOICE_FRAGGED notification_CHOICE_TYPEFRAG notification_CHOICE_TYPEFRAGGED");
e.sendCvars = true;
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "notification_show_location", _("Add frag location to death messages when available")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "notification_show_location", _("Add frag location to death messages when available"), "-"));
me.gotoRC(me, 9, 0); me.setFirstColumn(me, me.currentColumn);
me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Gamemode Settings")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "notification_CHOICE_CTF_CAPTURE_TIME_RED", _("Display capture times in Capture The Flag")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(2, 1, "notification_CHOICE_CTF_CAPTURE_TIME_RED", _("Display capture times in Capture The Flag"), "-"));
makeMulti(e, "notification_CHOICE_CTF_CAPTURE_TIME_BLUE notification_CHOICE_CTF_CAPTURE_BROKEN_RED notification_CHOICE_CTF_CAPTURE_BROKEN_BLUE notification_CHOICE_CTF_CAPTURE_UNBROKEN_RED notification_CHOICE_CTF_CAPTURE_UNBROKEN_BLUE ");
e.sendCvars = true;
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "notification_CHOICE_CTF_PICKUP_ENEMY", _("Display name of flag stealer in Capture The Flag")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(2, 1, "notification_CHOICE_CTF_PICKUP_ENEMY", _("Display name of flag stealer in Capture The Flag"), "-"));
makeMulti(e, "notification_CHOICE_CTF_PICKUP_TEAM");
e.sendCvars = true;
me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Other")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(4, 1, "con_notify", _("Display console messages in the top left corner")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(4, 1, "con_notify", _("Display console messages in the top left corner"), "-"));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "notification_allow_chatboxprint", _("Display all info messages in the chatbox")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(2, 1, "notification_allow_chatboxprint", _("Display all info messages in the chatbox"), "-"));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "notification_INFO_QUIT_DISCONNECT", _("Display player statuses in the chatbox")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(2, 1, "notification_INFO_QUIT_DISCONNECT", _("Display player statuses in the chatbox"), "-"));
makeMulti(e, "notification_INFO_QUIT_KICK_IDLING notification_INFO_JOIN_CONNECT_TEAM_BLUE notification_INFO_JOIN_CONNECT_TEAM_PINK notification_INFO_JOIN_CONNECT_TEAM_RED notification_INFO_JOIN_CONNECT_TEAM_YELLOW");
me.TR(me);
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "notification_CENTER_POWERUP_INVISIBILITY", _("Powerup notifications")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "notification_CENTER_POWERUP_INVISIBILITY", _("Powerup notifications"), "-"));
makeMulti(e, "notification_CENTER_POWERUP_SHIELD notification_CENTER_POWERUP_SPEED notification_CENTER_POWERUP_STRENGTH notification_CENTER_POWERDOWN_INVISIBILITY notification_CENTER_POWERDOWN_SHIELD notification_CENTER_POWERDOWN_SPEED notification_CENTER_POWERDOWN_STRENGTH notification_CENTER_SUPERWEAPON_BROKEN notification_CENTER_SUPERWEAPON_LOST notification_CENTER_SUPERWEAPON_PICKUP notification_INFO_POWERUP_INVISIBILITY notification_INFO_POWERUP_SHIELD notification_INFO_POWERUP_SPEED notification_INFO_POWERUP_STRENGTH");
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "notification_CENTER_ITEM_WEAPON_DONTHAVE", _("Weapon centerprint notifications")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "notification_CENTER_ITEM_WEAPON_DONTHAVE", _("Weapon centerprint notifications"), "-"));
makeMulti(e, "notification_CENTER_ITEM_WEAPON_DROP notification_CENTER_ITEM_WEAPON_GOT notification_CENTER_ITEM_WEAPON_NOAMMO notification_CENTER_ITEM_WEAPON_PRIMORSEC notification_CENTER_ITEM_WEAPON_UNAVAILABLE");
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "notification_INFO_ITEM_WEAPON_DONTHAVE", _("Weapon info message notifications")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "notification_INFO_ITEM_WEAPON_DONTHAVE", _("Weapon info message notifications"), "-"));
makeMulti(e, "notification_INFO_ITEM_WEAPON_DROP notification_INFO_ITEM_WEAPON_GOT notification_INFO_ITEM_WEAPON_NOAMMO notification_INFO_ITEM_WEAPON_PRIMORSEC notification_INFO_ITEM_WEAPON_UNAVAILABLE");
me.gotoRC(me, 9, 3.2); me.setFirstColumn(me, me.currentColumn);
#if 0
// there's just not enough room for this, and it's not important enough to justify...
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 0, "notification_ANNCE_NUM_RESPAWN_1", _("Respawn countdown sounds")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(2, 0, "notification_ANNCE_NUM_RESPAWN_1", _("Respawn countdown sounds"), "-"));
makeMulti(e, "notification_ANNCE_NUM_RESPAWN_2 notification_ANNCE_NUM_RESPAWN_3 notification_ANNCE_NUM_RESPAWN_4 notification_ANNCE_NUM_RESPAWN_5 notification_ANNCE_NUM_RESPAWN_6 notification_ANNCE_NUM_RESPAWN_7 notification_ANNCE_NUM_RESPAWN_8 notification_ANNCE_NUM_RESPAWN_9 notification_ANNCE_NUM_RESPAWN_10");
#endif
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(1, 0, "notification_ANNCE_KILLSTREAK_03", _("Killstreak sounds")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(1, 0, "notification_ANNCE_KILLSTREAK_03", _("Killstreak sounds"), "-"));
makeMulti(e, "notification_ANNCE_KILLSTREAK_05 notification_ANNCE_KILLSTREAK_10 notification_ANNCE_KILLSTREAK_15 notification_ANNCE_KILLSTREAK_20 notification_ANNCE_KILLSTREAK_25 notification_ANNCE_KILLSTREAK_30");
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(1, 0, "notification_ANNCE_ACHIEVEMENT_AIRSHOT", _("Achievement sounds")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBoxEx_T(1, 0, "notification_ANNCE_ACHIEVEMENT_AIRSHOT", _("Achievement sounds"), "-"));
makeMulti(e, "notification_ANNCE_ACHIEVEMENT_AMAZING notification_ANNCE_ACHIEVEMENT_AWESOME notification_ANNCE_ACHIEVEMENT_BOTLIKE notification_ANNCE_ACHIEVEMENT_ELECTROBITCH notification_ANNCE_ACHIEVEMENT_IMPRESSIVE notification_ANNCE_ACHIEVEMENT_YODA");
}
#endif
me.TD(me, 1, 2, e = makeXonoticSlider(0, 2, 0.2, "cl_deathglow"));
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Gibs:")));
- me.TD(me, 1, 2, e = makeXonoticTextSlider_T("cl_nogibs",
- _("Reduce the amount of gibs or remove them completely (default: lots)")));
+ me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_nogibs"));
e.addValue(e, ZCTX(_("GIBS^None")), "1");
e.addValue(e, ZCTX(_("GIBS^Few")), "0.75");
e.addValue(e, ZCTX(_("GIBS^Many")), "0.5");
setDependent(e, "chase_active", -1, 0);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx(0.01, 0, "cl_bob", _("View bobbing while walking around")));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBoxEx_T(0.01, 0, "cl_bob", _("View bobbing while walking around"), "-"));
makeMulti(e, "cl_bob2");
setDependent(e, "chase_active", -1, 0);
me.TR(me);
me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Field of view:")));
me.TD(me, 1, 2, e = makeXonoticSlider_T(60, 130, 5, "fov",
- _("Field of vision in degrees from 60 to 130, default is 90")));
+ _("Field of vision in degrees (default: 100)")));
me.TR(me);
me.TR(me);
//me.TDempty(me, 0.2);
me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_reticle", _("Display reticle 2D overlay while zooming")));
me.TR(me);
//me.TDempty(me, 0.2);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_unpress_zoom_on_death", _("Release zoom when you die or respawn")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "cl_unpress_zoom_on_death", _("Release zoom when you die or respawn"), "-"));
makeMulti(e, "cl_unpress_zoom_on_spawn");
me.TR(me);
//me.TDempty(me, 0.2);
me.TR(me);
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "cl_followmodel", _("Gun model swaying")));
+ me.TD(me, 1, 2.8, e = makeXonoticCheckBox_T(0, "cl_followmodel", _("Gun model swaying"), "-"));
makeMulti(e, "cl_leanmodel");
setDependent(e, "r_drawviewmodel", 1, 1);
me.TR(me);
me.TD(me, 1, 3, e = makeXonoticCheckBox_T(1.022, "m_pitch", _("Invert aiming"),
_("Invert mouse movement on the Y-axis")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "menu_mouse_absolute", _("Use system mouse positioning")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "menu_mouse_absolute", _("Use system mouse positioning"), "-"));
makeMulti(e, "hud_cursormode");
e.onClick = CheckBox_Click_Redisplay;
e.onClickEntity = e;
#endif
#ifdef IMPLEMENTATION
+#define ADDVALUE_FPS(i) e.addValue(e, strzone(sprintf(_("%d fps"), i)), #i)
entity makeXonoticMiscSettingsTab()
{
entity me;
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Bandwidth:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider_T("_cl_rate",
- _("Specify your network speed with this slider")));
+ _("Specify your network speed")));
e.addValue(e, _("56k"), "4000");
e.addValue(e, _("ISDN"), "7000");
e.addValue(e, _("Slow ADSL"), "15000");
me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "shownetgraph", _("Show netgraph"),
_("Show a graph of packet sizes and other information")));
me.TR(me);
- me.TD(me, 1, 3, e = makeXonoticCheckBox_T(0, "cl_movement", _("Client-side movement prediction"),
- _("Enable clientside movement prediction")));
+ me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_movement", _("Client-side movement prediction")));
me.TR(me);
me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_movement_errorcompensation", _("Movement error compensation")));
setDependent(e, "cl_movement", 1, 1);
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Maximum:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_maxfps"));
- e.addValue(e, ZCTX(_("MAXFPS^5 fps")), "5");
- e.addValue(e, ZCTX(_("MAXFPS^10 fps")), "10");
- e.addValue(e, ZCTX(_("MAXFPS^20 fps")), "20");
- e.addValue(e, ZCTX(_("MAXFPS^30 fps")), "30");
- e.addValue(e, ZCTX(_("MAXFPS^40 fps")), "40");
- e.addValue(e, ZCTX(_("MAXFPS^50 fps")), "50");
- e.addValue(e, ZCTX(_("MAXFPS^60 fps")), "60");
- e.addValue(e, ZCTX(_("MAXFPS^70 fps")), "70");
- e.addValue(e, ZCTX(_("MAXFPS^100 fps")), "100");
- e.addValue(e, ZCTX(_("MAXFPS^125 fps")), "125");
- e.addValue(e, ZCTX(_("MAXFPS^200 fps")), "200");
+ ADDVALUE_FPS(5);
+ ADDVALUE_FPS(10);
+ ADDVALUE_FPS(20);
+ ADDVALUE_FPS(30);
+ ADDVALUE_FPS(40);
+ ADDVALUE_FPS(50);
+ ADDVALUE_FPS(60);
+ ADDVALUE_FPS(70);
+ ADDVALUE_FPS(100);
+ ADDVALUE_FPS(125);
+ ADDVALUE_FPS(200);
e.addValue(e, ZCTX(_("MAXFPS^Unlimited")), "0");
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Target:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_minfps"));
e.addValue(e, ZCTX(_("TRGT^Disabled")), "0");
- e.addValue(e, ZCTX(_("TRGT^30 fps")), "30");
- e.addValue(e, ZCTX(_("TRGT^40 fps")), "40");
- e.addValue(e, ZCTX(_("TRGT^50 fps")), "50");
- e.addValue(e, ZCTX(_("TRGT^60 fps")), "60");
- e.addValue(e, ZCTX(_("TRGT^100 fps")), "100");
- e.addValue(e, ZCTX(_("TRGT^125 fps")), "125");
- e.addValue(e, ZCTX(_("TRGT^200 fps")), "200");
+ ADDVALUE_FPS(30);
+ ADDVALUE_FPS(40);
+ ADDVALUE_FPS(50);
+ ADDVALUE_FPS(60);
+ ADDVALUE_FPS(100);
+ ADDVALUE_FPS(125);
+ ADDVALUE_FPS(200);
e.configureXonoticTextSliderValues(e);
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Idle limit:")));
me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_maxidlefps"));
- e.addValue(e, ZCTX(_("IDLFPS^10 fps")), "10");
- e.addValue(e, ZCTX(_("IDLFPS^20 fps")), "20");
- e.addValue(e, ZCTX(_("IDLFPS^30 fps")), "30");
- e.addValue(e, ZCTX(_("IDLFPS^60 fps")), "60");
+ ADDVALUE_FPS(10);
+ ADDVALUE_FPS(20);
+ ADDVALUE_FPS(30);
+ ADDVALUE_FPS(60);
e.addValue(e, ZCTX(_("IDLFPS^Unlimited")), "0");
e.configureXonoticTextSliderValues(e);
me.TR(me);
e.onClick = DialogOpenButton_Click;
e.onClickEntity = main.resetDialog;
}
+#undef ADDVALUE_FPS
#endif
e.addValue(e, _("32bit"), "32");
e.configureXonoticTextSliderValues(e);
me.TR(me);
- me.TD(me, 1, 1, e = makeXonoticCheckBox_T(0, "vid_fullscreen", _("Full screen"),
- _("Enable fullscreen mode (default: enabled)")));
+ me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "vid_fullscreen", _("Full screen")));
me.TD(me, 1, 2, e = makeXonoticCheckBox_T(0, "vid_vsync", _("Vertical Synchronization"),
_("Enable vertical synchronization to prevent tearing, will cap your fps to the screen refresh rate (default: disabled)")));
me.TD(me, 1, 3, e = makeXonoticTextLabel(0, _("Vertex Buffer Objects (VBOs)")));
me.TR(me);
me.TDempty(me, 0.2);
- me.TD(me, 1, 0.9, e = makeXonoticRadioButton_T(1, "gl_vbo", "0", ZCTX(_("VBO^Off")),
- _("Make use of Vertex Buffer Objects to store static geometry in video memory for faster rendering (default: Vertex and Triangles)")));
+ me.TD(me, 1, 0.9, e = makeXonoticRadioButton(1, "gl_vbo", "0", ZCTX(_("VBO^Off"))));
me.TD(me, 1, 1.9, e = makeXonoticRadioButton_T(1, "gl_vbo", "3", _("Vertices, some Tris (compatible)"),
_("Make use of Vertex Buffer Objects to store static geometry in video memory for faster rendering (default: Vertex and Triangles)")));
me.TR(me);