]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into TimePath/experiments/csqc_prediction
authorMario <zacjardine@y7mail.com>
Tue, 16 Dec 2014 08:52:31 +0000 (19:52 +1100)
committerMario <zacjardine@y7mail.com>
Tue, 16 Dec 2014 08:52:31 +0000 (19:52 +1100)
43 files changed:
balance-xpm.cfg
binds-default.cfg [new file with mode: 0644]
binds-empty-special.cfg [new file with mode: 0644]
binds-empty.cfg [new file with mode: 0644]
defaultXonotic.cfg
effects-med.cfg
effects-normal.cfg
gfx/menu/luminos/skinvalues.txt
gfx/menu/wickedx/skinvalues.txt
gfx/menu/xaw/skinvalues.txt
qcsrc/Makefile
qcsrc/client/View.qc
qcsrc/client/hud.qc
qcsrc/client/weapons/projectile.qc
qcsrc/common/notifications.qh
qcsrc/common/playerstats.qc
qcsrc/menu/classes.c
qcsrc/menu/item/image.c
qcsrc/menu/item/listbox.c
qcsrc/menu/item/slider.c
qcsrc/menu/skin-customizables.inc
qcsrc/menu/xonotic/dialog_multiplayer_create.c
qcsrc/menu/xonotic/dialog_multiplayer_profile.c
qcsrc/menu/xonotic/dialog_settings_effects.c
qcsrc/menu/xonotic/dialog_settings_game_hud.c
qcsrc/menu/xonotic/dialog_settings_game_messages.c
qcsrc/menu/xonotic/dialog_settings_game_model.c
qcsrc/menu/xonotic/dialog_settings_game_weapons.c
qcsrc/menu/xonotic/dialog_settings_input.c
qcsrc/menu/xonotic/dialog_settings_misc.c
qcsrc/menu/xonotic/dialog_settings_misc_reset.c [new file with mode: 0644]
qcsrc/menu/xonotic/dialog_settings_user.c
qcsrc/menu/xonotic/gametypelist.c
qcsrc/menu/xonotic/keybinder.c
qcsrc/menu/xonotic/mainwindow.c
qcsrc/menu/xonotic/screenshotlist.c
qcsrc/menu/xonotic/statslist.c
qcsrc/menu/xonotic/textlabel.c
qcsrc/server/miscfunctions.qc
qcsrc/server/mutators/mutator_instagib.qc
qcsrc/server/t_items.qc
qcsrc/server/weapons/accuracy.qc
qcsrc/server/weapons/tracing.qc

index d12637da71f3478ccc92321c66f616f00310dc2e..c254bcdf8d5118efd4b5f1aec0d687c609c63388 100644 (file)
@@ -188,7 +188,7 @@ set g_maxpushtime 8.0 "timeout for kill credit when your damage knocks someone i
 // }}}
 
 // {{{ powerups
-set g_balance_powerup_invincible_takedamage 0.33 // only 1/3th damage is taken
+set g_balance_powerup_invincible_takedamage 0.33 // only 1/3rd damage is taken
 set g_balance_powerup_invincible_time 30
 set g_balance_powerup_strength_damage 3
 set g_balance_powerup_strength_force 3
diff --git a/binds-default.cfg b/binds-default.cfg
new file mode 100644 (file)
index 0000000..f48842f
--- /dev/null
@@ -0,0 +1,155 @@
+// alias for switching the teamselect menu
+bind f5 menu_showteamselect
+
+bind f6 team_auto
+
+bind f7 menu_showsandboxtools
+
+// movement
+bind w +forward
+bind a +moveleft
+bind s +back
+bind d +moveright
+bind UPARROW +forward
+bind LEFTARROW +moveleft
+bind DOWNARROW +back
+bind RIGHTARROW +moveright
+bind SHIFT +crouch
+bind ENTER +jump
+bind SPACE +jump
+
+// weapons
+bind 0 weapon_group_0
+bind 1 weapon_group_1
+bind 2 weapon_group_2
+bind 3 weapon_group_3
+bind 4 weapon_group_4
+bind 5 weapon_group_5
+bind 6 weapon_group_6
+bind 7 weapon_group_7
+bind 8 weapon_group_8
+bind 9 weapon_group_9
+bind q weaplast
+bind MOUSE1 +fire
+bind MOUSE2 +fire2
+bind MOUSE3 togglezoom
+bind MOUSE4 weaplast
+bind MOUSE5 +hook
+bind MWHEELUP weapnext
+bind MWHEELDOWN weapprev
+bind r reload
+bind BACKSPACE dropweapon
+bind g dropweapon
+bind f +use
+bind v +button8 // drag object
+
+// misc
+bind e +hook
+bind ` toggleconsole
+bind ~ toggleconsole
+bind TAB +showscores
+bind ESCAPE togglemenu
+bind t messagemode
+bind y messagemode2
+bind z messagemode2
+bind u "+con_chat_maximize"
+bind m +hud_panel_radar_maximized
+bind i +show_info
+bind PAUSE pause
+bind F10 menu_showquitdialog
+bind F11 disconnect
+bind F12 screenshot
+bind F4 ready
+bind ALT +showaccuracy
+
+// Gamepad defaults. Tested with Logitech Rumblepad 2, I hope similar ones works as well.
+bind JOY1 "+crouch"
+bind JOY2 "+jump"
+bind JOY3 "weapprev"
+bind JOY4 "weapnext"
+bind JOY5 "+fire2"
+bind JOY6 "+fire"
+bind JOY7 "+zoom"
+bind JOY8 "dropweapon"
+bind JOY9 "menu_showteamselect"
+bind JOY10 "+show_info"
+bind JOY11 "+showscores"
+bind JOY12 "+con_chat_maximize"
+seta joyadvanced "1"
+seta joyadvaxisr "2"
+seta joyadvaxisx "3"
+seta joyadvaxisy "1"
+seta joyadvaxisz "4"
+seta joysidesensitivity "1.0"
+seta joypitchsensitivity "0.9"
+seta joyyawsensitivity "-1.8"
+// SDL only
+seta joy_deadzoneforward "0.05"
+seta joy_deadzonepitch "0.05"
+seta joy_deadzoneside "0.05"
+seta joy_deadzoneup "0.05"
+seta joy_deadzoneyaw "0.05"
+seta joy_sensitivitypitch "0.9"
+seta joy_sensitivityyaw "-1.8"
+
+// team say
+bind kp_ins messagemode
+bind kp_del messagemode2
+bind kp_end "+userbind 1"
+bind kp_downarrow "+userbind 2"
+bind kp_pgdn "+userbind 3"
+bind kp_leftarrow "+userbind 4"
+bind kp_5 "+userbind 6"
+bind kp_rightarrow "+userbind 7"
+bind kp_home "+userbind 9"
+bind kp_uparrow "+userbind 10"
+bind kp_pgup "+userbind 11"
+bind kp_multiply "+userbind 12"
+bind kp_slash "+userbind 13"
+bind kp_enter "+userbind 16"
+bind kp_plus "+userbind 17"
+bind kp_minus "+userbind 18"
+
+bind F1 vyes
+bind F2 vno
+
+//used for spectate/observer mode
+bind F3 spec
+
+// usercommands. These can be edited and bound by the menu.
+seta "userbind1_press" "say_team quad soon";  seta "userbind1_release" "";  seta "userbind1_description" "team: quad soon"
+seta "userbind2_press" "say_team free item %x^7 (l:%y^7); g_waypointsprite_team_here_p";  seta "userbind2_release" "";  seta "userbind2_description" "team: free item, icon"
+seta "userbind3_press" "say_team took item (l:%l^7); g_waypointsprite_team_here";  seta "userbind3_release" "";  seta "userbind3_description" "team: took item, icon"
+seta "userbind4_press" "say_team negative";  seta "userbind4_release" "";  seta "userbind4_description" "team: negative"
+seta "userbind5_press" "say_team positive";  seta "userbind5_release" "";  seta "userbind5_description" "team: positive"
+seta "userbind6_press" "say_team need help (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_helpme; cmd voice needhelp";  seta "userbind6_release" "";  seta "userbind6_description" "team: need help, icon"
+seta "userbind7_press" "say_team enemy seen (l:%y^7); g_waypointsprite_team_danger_p; cmd voice incoming";  seta "userbind7_release" "";  seta "userbind7_description" "team: enemy seen, icon"
+seta "userbind8_press" "say_team flag seen (l:%y^7); g_waypointsprite_team_here_p; cmd voice seenflag";  seta "userbind8_release" "";  seta "userbind8_description" "team: flag seen, icon"
+seta "userbind9_press" "say_team defending (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_here";  seta "userbind9_release" "";  seta "userbind9_description" "team: defending, icon"
+seta "userbind10_press" "say_team roaming (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_here";  seta "userbind10_release" "";  seta "userbind10_description" "team: roaming, icon"
+seta "userbind11_press" "say_team attacking (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_here";  seta "userbind11_release" "";  seta "userbind11_description" "team: attacking, icon"
+seta "userbind12_press" "say_team killed flagcarrier (l:%y^7); g_waypointsprite_team_here_p"; seta "userbind12_release" ""; seta "userbind12_description" "team: killed flag, icon"
+seta "userbind13_press" "say_team dropped flag (l:%d^7); g_waypointsprite_team_here_d"; seta "userbind13_release" ""; seta "userbind13_description" "team: dropped flag, icon"
+seta "userbind14_press" "say_team dropped gun %w^7 (l:%l^7); g_waypointsprite_team_here; wait; dropweapon"; seta "userbind14_release" ""; seta "userbind14_description" "team: drop gun, icon"
+// TODO change this to "use" once we can
+seta "userbind15_press" "say_team dropped flag/key %w^7 (l:%l^7); g_waypointsprite_team_here; wait; +use"; seta "userbind15_release" "-use"; seta "userbind15_description" "team: drop flag/key, icon"
+seta "userbind16_press" "say :-) / nice one"; seta "userbind16_release" ""; seta "userbind16_description" "chat: nice one"
+seta "userbind17_press" "say good game"; seta "userbind17_release" ""; seta "userbind17_description" "chat: good game"
+seta "userbind18_press" "say hi / good luck and have fun"; seta "userbind18_release" ""; seta "userbind18_description" "chat: hi / good luck"
+seta "userbind19_press" "+showscores; +con_chat_maximize"; seta "userbind19_release" "-showscores; -con_chat_maximize"; seta "userbind19_description" "scoreboard / chat history"
+seta "userbind20_press" "toggle cl_capturevideo"; seta "userbind20_release" ""; seta "userbind20_description" "toggle recording .avi"
+seta "userbind21_press" "toggle vid_fullscreen; vid_restart"; seta "userbind21_release" ""; seta "userbind21_description" "toggle fullscreen"
+seta "userbind22_press" ""; seta "userbind22_release" ""; seta "userbind22_description" ""
+seta "userbind23_press" ""; seta "userbind23_release" ""; seta "userbind23_description" ""
+seta "userbind24_press" ""; seta "userbind24_release" ""; seta "userbind24_description" ""
+seta "userbind25_press" ""; seta "userbind25_release" ""; seta "userbind25_description" ""
+seta "userbind26_press" ""; seta "userbind26_release" ""; seta "userbind26_description" ""
+seta "userbind27_press" ""; seta "userbind27_release" ""; seta "userbind27_description" ""
+seta "userbind28_press" ""; seta "userbind28_release" ""; seta "userbind28_description" ""
+seta "userbind29_press" ""; seta "userbind29_release" ""; seta "userbind29_description" ""
+seta "userbind30_press" ""; seta "userbind30_release" ""; seta "userbind30_description" ""
+seta "userbind31_press" ""; seta "userbind31_release" ""; seta "userbind31_description" ""
+seta "userbind32_press" ""; seta "userbind32_release" ""; seta "userbind32_description" ""
+alias _userbind_call "${$1}"
+alias +userbind "_userbind_call userbind${1}_press"
+alias -userbind "_userbind_call userbind${1}_release"
\ No newline at end of file
diff --git a/binds-empty-special.cfg b/binds-empty-special.cfg
new file mode 100644 (file)
index 0000000..31a33d7
--- /dev/null
@@ -0,0 +1,161 @@
+bind AUX1 ""
+bind AUX2 ""
+bind AUX3 ""
+bind AUX4 ""
+bind AUX5 ""
+bind AUX6 ""
+bind AUX7 ""
+bind AUX8 ""
+bind AUX9 ""
+bind AUX10 ""
+bind AUX11 ""
+bind AUX12 ""
+bind AUX13 ""
+bind AUX14 ""
+bind AUX15 ""
+bind AUX16 ""
+bind AUX17 ""
+bind AUX18 ""
+bind AUX19 ""
+bind AUX20 ""
+bind AUX21 ""
+bind AUX22 ""
+bind AUX23 ""
+bind AUX24 ""
+bind AUX25 ""
+bind AUX26 ""
+bind AUX27 ""
+bind AUX28 ""
+bind AUX29 ""
+bind AUX30 ""
+bind AUX31 ""
+bind AUX32 ""
+
+bind MIDINOTE0 ""
+bind MIDINOTE1 ""
+bind MIDINOTE2 ""
+bind MIDINOTE3 ""
+bind MIDINOTE4 ""
+bind MIDINOTE5 ""
+bind MIDINOTE6 ""
+bind MIDINOTE7 ""
+bind MIDINOTE8 ""
+bind MIDINOTE9 ""
+bind MIDINOTE10 ""
+bind MIDINOTE11 ""
+bind MIDINOTE12 ""
+bind MIDINOTE13 ""
+bind MIDINOTE14 ""
+bind MIDINOTE15 ""
+bind MIDINOTE16 ""
+bind MIDINOTE17 ""
+bind MIDINOTE18 ""
+bind MIDINOTE19 ""
+bind MIDINOTE20 ""
+bind MIDINOTE21 ""
+bind MIDINOTE22 ""
+bind MIDINOTE23 ""
+bind MIDINOTE24 ""
+bind MIDINOTE25 ""
+bind MIDINOTE26 ""
+bind MIDINOTE27 ""
+bind MIDINOTE28 ""
+bind MIDINOTE29 ""
+bind MIDINOTE30 ""
+bind MIDINOTE31 ""
+bind MIDINOTE32 ""
+bind MIDINOTE33 ""
+bind MIDINOTE34 ""
+bind MIDINOTE35 ""
+bind MIDINOTE36 ""
+bind MIDINOTE37 ""
+bind MIDINOTE38 ""
+bind MIDINOTE39 ""
+bind MIDINOTE40 ""
+bind MIDINOTE41 ""
+bind MIDINOTE42 ""
+bind MIDINOTE43 ""
+bind MIDINOTE44 ""
+bind MIDINOTE45 ""
+bind MIDINOTE46 ""
+bind MIDINOTE47 ""
+bind MIDINOTE48 ""
+bind MIDINOTE49 ""
+bind MIDINOTE50 ""
+bind MIDINOTE51 ""
+bind MIDINOTE52 ""
+bind MIDINOTE53 ""
+bind MIDINOTE54 ""
+bind MIDINOTE55 ""
+bind MIDINOTE56 ""
+bind MIDINOTE57 ""
+bind MIDINOTE58 ""
+bind MIDINOTE59 ""
+bind MIDINOTE60 ""
+bind MIDINOTE61 ""
+bind MIDINOTE62 ""
+bind MIDINOTE63 ""
+bind MIDINOTE64 ""
+bind MIDINOTE65 ""
+bind MIDINOTE66 ""
+bind MIDINOTE67 ""
+bind MIDINOTE68 ""
+bind MIDINOTE69 ""
+bind MIDINOTE70 ""
+bind MIDINOTE71 ""
+bind MIDINOTE72 ""
+bind MIDINOTE73 ""
+bind MIDINOTE74 ""
+bind MIDINOTE75 ""
+bind MIDINOTE76 ""
+bind MIDINOTE77 ""
+bind MIDINOTE78 ""
+bind MIDINOTE79 ""
+bind MIDINOTE80 ""
+bind MIDINOTE81 ""
+bind MIDINOTE82 ""
+bind MIDINOTE83 ""
+bind MIDINOTE84 ""
+bind MIDINOTE85 ""
+bind MIDINOTE86 ""
+bind MIDINOTE87 ""
+bind MIDINOTE88 ""
+bind MIDINOTE89 ""
+bind MIDINOTE90 ""
+bind MIDINOTE91 ""
+bind MIDINOTE92 ""
+bind MIDINOTE93 ""
+bind MIDINOTE94 ""
+bind MIDINOTE95 ""
+bind MIDINOTE96 ""
+bind MIDINOTE97 ""
+bind MIDINOTE98 ""
+bind MIDINOTE99 ""
+bind MIDINOTE100 ""
+bind MIDINOTE101 ""
+bind MIDINOTE102 ""
+bind MIDINOTE103 ""
+bind MIDINOTE104 ""
+bind MIDINOTE105 ""
+bind MIDINOTE106 ""
+bind MIDINOTE107 ""
+bind MIDINOTE108 ""
+bind MIDINOTE109 ""
+bind MIDINOTE110 ""
+bind MIDINOTE111 ""
+bind MIDINOTE112 ""
+bind MIDINOTE113 ""
+bind MIDINOTE114 ""
+bind MIDINOTE115 ""
+bind MIDINOTE116 ""
+bind MIDINOTE117 ""
+bind MIDINOTE118 ""
+bind MIDINOTE119 ""
+bind MIDINOTE120 ""
+bind MIDINOTE121 ""
+bind MIDINOTE122 ""
+bind MIDINOTE123 ""
+bind MIDINOTE124 ""
+bind MIDINOTE125 ""
+bind MIDINOTE126 ""
+bind MIDINOTE127 ""
\ No newline at end of file
diff --git a/binds-empty.cfg b/binds-empty.cfg
new file mode 100644 (file)
index 0000000..51112bf
--- /dev/null
@@ -0,0 +1,144 @@
+bind TAB ""
+bind ENTER ""
+bind ESCAPE ""
+bind SPACE ""
+
+bind BACKSPACE ""
+bind UPARROW ""
+bind DOWNARROW ""
+bind LEFTARROW ""
+bind RIGHTARROW ""
+
+bind ALT ""
+bind CTRL ""
+bind SHIFT ""
+
+bind F1 ""
+bind F2 ""
+bind F3 ""
+bind F4 ""
+bind F5 ""
+bind F6 ""
+bind F7 ""
+bind F8 ""
+bind F9 ""
+bind F10 ""
+bind F11 ""
+bind F12 ""
+
+bind INS ""
+bind DEL ""
+bind PGDN ""
+bind PGUP ""
+bind HOME ""
+bind END ""
+
+bind PAUSE ""
+
+bind NUMLOCK ""
+bind CAPSLOCK ""
+bind SCROLLOCK ""
+
+bind KP_INS ""
+bind KP_0 ""
+bind KP_END ""
+bind KP_1 ""
+bind KP_DOWNARROW ""
+bind KP_2 ""
+bind KP_PGDN ""
+bind KP_3 ""
+bind KP_LEFTARROW ""
+bind KP_4 ""
+bind KP_5 ""
+bind KP_RIGHTARROW ""
+bind KP_6 ""
+bind KP_HOME ""
+bind KP_7 ""
+bind KP_UPARROW ""
+bind KP_8 ""
+bind KP_PGUP ""
+bind KP_9 ""
+bind KP_DEL ""
+bind KP_PERIOD ""
+bind KP_SLASH ""
+bind KP_DIVIDE ""
+bind KP_MULTIPLY ""
+bind KP_MINUS ""
+bind KP_PLUS ""
+bind KP_ENTER ""
+bind KP_EQUALS ""
+
+bind PRINTSCREEN ""
+
+bind SEMICOLON ""
+bind TILDE ""
+bind BACKQUOTE ""
+bind QUOTE ""
+bind APOSTROPHE ""
+bind BACKSLASH ""
+
+bind MOUSE1 ""
+bind MOUSE2 ""
+bind MOUSE3 ""
+bind MWHEELUP ""
+bind MWHEELDOWN ""
+bind MOUSE4 ""
+bind MOUSE5 ""
+bind MOUSE6 ""
+bind MOUSE7 ""
+bind MOUSE8 ""
+bind MOUSE9 ""
+bind MOUSE10 ""
+bind MOUSE11 ""
+bind MOUSE12 ""
+bind MOUSE13 ""
+bind MOUSE14 ""
+bind MOUSE15 ""
+bind MOUSE16 ""
+
+bind JOY1 ""
+bind JOY2 ""
+bind JOY3 ""
+bind JOY4 ""
+bind JOY5 ""
+bind JOY6 ""
+bind JOY7 ""
+bind JOY8 ""
+bind JOY9 ""
+bind JOY10 ""
+bind JOY11 ""
+bind JOY12 ""
+bind JOY13 ""
+bind JOY14 ""
+bind JOY15 ""
+bind JOY16 ""
+
+bind JOY_UP ""
+bind JOY_DOWN ""
+bind JOY_LEFT ""
+bind JOY_RIGHT ""
+
+bind X360_DPAD_UP ""
+bind X360_DPAD_DOWN ""
+bind X360_DPAD_LEFT ""
+bind X360_DPAD_RIGHT ""
+bind X360_START ""
+bind X360_BACK ""
+bind X360_LEFT_THUMB ""
+bind X360_RIGHT_THUMB ""
+bind X360_LEFT_SHOULDER ""
+bind X360_RIGHT_SHOULDER ""
+bind X360_A ""
+bind X360_B ""
+bind X360_X ""
+bind X360_Y ""
+bind X360_LEFT_TRIGGER ""
+bind X360_RIGHT_TRIGGER ""
+bind X360_LEFT_THUMB_UP ""
+bind X360_LEFT_THUMB_DOWN ""
+bind X360_LEFT_THUMB_LEFT ""
+bind X360_LEFT_THUMB_RIGHT ""
+bind X360_RIGHT_THUMB_UP ""
+bind X360_RIGHT_THUMB_DOWN ""
+bind X360_RIGHT_THUMB_LEFT ""
+bind X360_RIGHT_THUMB_RIGHT ""
\ No newline at end of file
index d274628322e79adab38f8d976334c00f69f1636e..2939ddf98df7f07340feac19c4d481ed1c320e9a 100644 (file)
@@ -44,8 +44,6 @@ alias dropweapon "impulse 17"
 alias +show_info +button7
 alias -show_info -button7
 
-bind f6 team_auto
-
 // merge lightmaps up to 2048x2048 textures
 mod_q3bsp_lightmapmergepower 4
 
@@ -227,7 +225,7 @@ seta cl_hitsound_min_pitch 0.75 "minimum pitch of hit sound"
 seta cl_hitsound_max_pitch 1.5 "maximum pitch of hit sound"
 seta cl_hitsound_nom_damage 25 "damage amount at which hitsound bases pitch off"
 
-seta cl_eventchase_death 1 "camera goes into 3rd person mode when the player is dead"
+seta cl_eventchase_death 1 "camera goes into 3rd person mode when the player is dead; set to 2 to active the effect only when the corpse doesn't move anymore"
 seta cl_eventchase_nexball 1 "camera goes into 3rd person mode when in nexball game-mode"
 seta cl_eventchase_distance 140 "final camera distance"
 seta cl_eventchase_speed 1.3 "how fast the camera slides back, 0 is instant"
@@ -458,8 +456,6 @@ seta menu_sandbox_edit_physics 1
 seta menu_sandbox_edit_force 1
 seta menu_sandbox_edit_material ""
 
-bind f7 menu_showsandboxtools
-
 seta menu_monsters_edit_spawn ""
 seta menu_monsters_edit_skin 0
 seta menu_monsters_edit_movetarget 1
@@ -628,19 +624,6 @@ alias togglezoom "${_togglezoom}zoom"
 
 alias reload "impulse 20"
 
-// movement
-bind w +forward
-bind a +moveleft
-bind s +back
-bind d +moveright
-bind UPARROW +forward
-bind LEFTARROW +moveleft
-bind DOWNARROW +back
-bind RIGHTARROW +moveright
-bind SHIFT +crouch
-bind ENTER +jump
-bind SPACE +jump
-
 // weapons
 alias weapon_group_1 "impulse 1"
 alias weapon_group_2 "impulse 2"
@@ -653,102 +636,6 @@ alias weapon_group_8 "impulse 8"
 alias weapon_group_9 "impulse 9"
 alias weapon_group_0 "impulse 14" // cycles the superweapons
 exec weapons.cfg
-bind 0 weapon_group_0
-bind 1 weapon_group_1
-bind 2 weapon_group_2
-bind 3 weapon_group_3
-bind 4 weapon_group_4
-bind 5 weapon_group_5
-bind 6 weapon_group_6
-bind 7 weapon_group_7
-bind 8 weapon_group_8
-bind 9 weapon_group_9
-bind q weaplast
-bind MOUSE1 +fire
-bind MOUSE2 +fire2
-bind MOUSE3 togglezoom
-bind MOUSE4 weaplast
-bind MOUSE5 +hook
-bind MWHEELUP weapnext
-bind MWHEELDOWN weapprev
-bind r reload
-bind BACKSPACE dropweapon
-bind g dropweapon
-bind f +use
-bind v +button8 // drag object
-
-// misc
-bind e +hook
-bind ` toggleconsole
-bind ~ toggleconsole
-bind TAB +showscores
-bind ESCAPE togglemenu
-bind t messagemode
-bind y messagemode2
-bind z messagemode2
-bind u "+con_chat_maximize"
-bind m +hud_panel_radar_maximized
-bind i +show_info
-bind PAUSE pause
-bind F10 menu_showquitdialog
-bind F11 disconnect
-bind F12 screenshot
-bind F4 ready
-bind ALT +showaccuracy
-
-// Gamepad defaults. Tested with Logitech Rumblepad 2, I hope similar ones works as well.
-bind JOY1 "+crouch"
-bind JOY2 "+jump"
-bind JOY3 "weapprev"
-bind JOY4 "weapnext"
-bind JOY5 "+fire2"
-bind JOY6 "+fire"
-bind JOY7 "+zoom"
-bind JOY8 "dropweapon"
-bind JOY9 "menu_showteamselect"
-bind JOY10 "+show_info"
-bind JOY11 "+showscores"
-bind JOY12 "+con_chat_maximize"
-seta joyadvanced "1"
-seta joyadvaxisr "2"
-seta joyadvaxisx "3"
-seta joyadvaxisy "1"
-seta joyadvaxisz "4"
-seta joysidesensitivity "1.0"
-seta joypitchsensitivity "0.9"
-seta joyyawsensitivity "-1.8"
-// SDL only
-seta joy_deadzoneforward "0.05"
-seta joy_deadzonepitch "0.05"
-seta joy_deadzoneside "0.05"
-seta joy_deadzoneup "0.05"
-seta joy_deadzoneyaw "0.05"
-seta joy_sensitivitypitch "0.9"
-seta joy_sensitivityyaw "-1.8"
-
-// team say
-bind kp_ins messagemode
-bind kp_del messagemode2
-bind kp_end "+userbind 1"
-bind kp_downarrow "+userbind 2"
-bind kp_pgdn "+userbind 3"
-bind kp_leftarrow "+userbind 4"
-bind kp_5 "+userbind 6"
-bind kp_rightarrow "+userbind 7"
-bind kp_home "+userbind 9"
-bind kp_uparrow "+userbind 10"
-bind kp_pgup "+userbind 11"
-bind kp_multiply "+userbind 12"
-bind kp_slash "+userbind 13"
-bind kp_enter "+userbind 16"
-bind kp_plus "+userbind 17"
-bind kp_minus "+userbind 18"
-
-bind F1 vyes
-bind F2 vno
-
-//used for spectate/observer mode
-bind F3 spec
 
 // score log
 set sv_logscores_console 0     "print scores to server console"
@@ -894,43 +781,7 @@ set g_banned_list_idmode "1"       "when set, the IP banning system always uses the ID
 
 r_labelsprites_scale 0.40625 // labels sprites get displayed at 0.5x from 640x480 to 1280x1024, and at 1x from 1600x1200 onwards
 
-// usercommands. These can be edited and bound by the menu.
-seta "userbind1_press" "say_team quad soon";  seta "userbind1_release" "";  seta "userbind1_description" "team: quad soon"
-seta "userbind2_press" "say_team free item %x^7 (l:%y^7); g_waypointsprite_team_here_p";  seta "userbind2_release" "";  seta "userbind2_description" "team: free item, icon"
-seta "userbind3_press" "say_team took item (l:%l^7); g_waypointsprite_team_here";  seta "userbind3_release" "";  seta "userbind3_description" "team: took item, icon"
-seta "userbind4_press" "say_team negative";  seta "userbind4_release" "";  seta "userbind4_description" "team: negative"
-seta "userbind5_press" "say_team positive";  seta "userbind5_release" "";  seta "userbind5_description" "team: positive"
-seta "userbind6_press" "say_team need help (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_helpme; cmd voice needhelp";  seta "userbind6_release" "";  seta "userbind6_description" "team: need help, icon"
-seta "userbind7_press" "say_team enemy seen (l:%y^7); g_waypointsprite_team_danger_p; cmd voice incoming";  seta "userbind7_release" "";  seta "userbind7_description" "team: enemy seen, icon"
-seta "userbind8_press" "say_team flag seen (l:%y^7); g_waypointsprite_team_here_p; cmd voice seenflag";  seta "userbind8_release" "";  seta "userbind8_description" "team: flag seen, icon"
-seta "userbind9_press" "say_team defending (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_here";  seta "userbind9_release" "";  seta "userbind9_description" "team: defending, icon"
-seta "userbind10_press" "say_team roaming (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_here";  seta "userbind10_release" "";  seta "userbind10_description" "team: roaming, icon"
-seta "userbind11_press" "say_team attacking (l:%l^7) (h:%h^7 a:%a^7 w:%w^7); g_waypointsprite_team_here";  seta "userbind11_release" "";  seta "userbind11_description" "team: attacking, icon"
-seta "userbind12_press" "say_team killed flagcarrier (l:%y^7); g_waypointsprite_team_here_p"; seta "userbind12_release" ""; seta "userbind12_description" "team: killed flag, icon"
-seta "userbind13_press" "say_team dropped flag (l:%d^7); g_waypointsprite_team_here_d"; seta "userbind13_release" ""; seta "userbind13_description" "team: dropped flag, icon"
-seta "userbind14_press" "say_team dropped gun %w^7 (l:%l^7); g_waypointsprite_team_here; wait; dropweapon"; seta "userbind14_release" ""; seta "userbind14_description" "team: drop gun, icon"
-// TODO change this to "use" once we can
-seta "userbind15_press" "say_team dropped flag/key %w^7 (l:%l^7); g_waypointsprite_team_here; wait; +use"; seta "userbind15_release" "-use"; seta "userbind15_description" "team: drop flag/key, icon"
-seta "userbind16_press" "say :-) / nice one"; seta "userbind16_release" ""; seta "userbind16_description" "chat: nice one"
-seta "userbind17_press" "say good game"; seta "userbind17_release" ""; seta "userbind17_description" "chat: good game"
-seta "userbind18_press" "say hi / good luck and have fun"; seta "userbind18_release" ""; seta "userbind18_description" "chat: hi / good luck"
-seta "userbind19_press" "+showscores; +con_chat_maximize"; seta "userbind19_release" "-showscores; -con_chat_maximize"; seta "userbind19_description" "scoreboard / chat history"
-seta "userbind20_press" "toggle cl_capturevideo"; seta "userbind20_release" ""; seta "userbind20_description" "toggle recording .avi"
-seta "userbind21_press" "toggle vid_fullscreen; vid_restart"; seta "userbind21_release" ""; seta "userbind21_description" "toggle fullscreen"
-seta "userbind22_press" ""; seta "userbind22_release" ""; seta "userbind22_description" ""
-seta "userbind23_press" ""; seta "userbind23_release" ""; seta "userbind23_description" ""
-seta "userbind24_press" ""; seta "userbind24_release" ""; seta "userbind24_description" ""
-seta "userbind25_press" ""; seta "userbind25_release" ""; seta "userbind25_description" ""
-seta "userbind26_press" ""; seta "userbind26_release" ""; seta "userbind26_description" ""
-seta "userbind27_press" ""; seta "userbind27_release" ""; seta "userbind27_description" ""
-seta "userbind28_press" ""; seta "userbind28_release" ""; seta "userbind28_description" ""
-seta "userbind29_press" ""; seta "userbind29_release" ""; seta "userbind29_description" ""
-seta "userbind30_press" ""; seta "userbind30_release" ""; seta "userbind30_description" ""
-seta "userbind31_press" ""; seta "userbind31_release" ""; seta "userbind31_description" ""
-seta "userbind32_press" ""; seta "userbind32_release" ""; seta "userbind32_description" ""
-alias _userbind_call "${$1}"
-alias +userbind "_userbind_call userbind${1}_press"
-alias -userbind "_userbind_call userbind${1}_release"
+exec binds-default.cfg
 
 // we must change its default from 1.0 to 1 to be consistent with menuqc
 set slowmo 1
@@ -1176,8 +1027,6 @@ seta cl_clippedspectating 1 "movement collision for spectators so that you can't
 seta cl_autoscreenshot 1 "Take a screenshot upon the end of a match... 0 = Disable completely, 1 = Allow sv_autoscreenshot to take a screenshot when requested, 2 = Always take an autoscreenshot anyway."
 
 // must be at the bottom of this file:
-// alias for switching the teamselect menu
-bind f5 menu_showteamselect
 
 set g_bugrigs 0
 set g_bugrigs_planar_movement 1        "BROTRR bug emulation"
index 75f7250bd95b34d5fbf70aebba7ba81d7cc407c5..84df44948e2e4b602f96c4db88e07c60fefb1b3f 100644 (file)
@@ -6,7 +6,7 @@ cl_particles_quality 0.8
 cl_damageeffect 0
 cl_spawn_point_particles 0
 cl_playerdetailreduction 4
-cl_cubemaps_extra 1
+cl_cubemaps_extra 0
 gl_flashblend 0
 gl_picmip 0
 mod_q3bsp_nolightmaps 0
index b1a967509e7e0b41d0bfc699fcbad2e85bbbd982..27756437effdb9292acc2b070a844a6f6deea0f5 100644 (file)
@@ -6,7 +6,7 @@ cl_particles_quality 1.0
 cl_damageeffect 1
 cl_spawn_point_particles 1
 cl_playerdetailreduction 4
-cl_cubemaps_extra 1
+cl_cubemaps_extra 0
 gl_flashblend 0
 gl_picmip 0
 mod_q3bsp_nolightmaps 0
index d2be82d274327d05f83dddd0811193390ece61d1..dcab8a45e1fbda88a0f2267d41a1eee814d68356 100755 (executable)
@@ -47,6 +47,8 @@ ALPHA_DISABLED                  0.2
 ALPHA_BEHIND                    0.5
 ALPHA_TEXT                      0.7
 COLOR_TEXT                      '1 1 1'
+ALPHA_HEADER                    0.5
+COLOR_HEADER                    '1 1 1'
 
 // mouse
 //   uses "cursor" images
index 9ef8d2bcb7be6a15d9358ae5afad6c997282220d..94eb09aaa696ecee6c25977e156b591d3cc32260 100644 (file)
@@ -47,6 +47,8 @@ ALPHA_DISABLED                  0.2
 ALPHA_BEHIND                    0.5
 ALPHA_TEXT                      0.7
 COLOR_TEXT                      '1 1 1'
+ALPHA_HEADER                    0.5
+COLOR_HEADER                    '1 1 1'
 
 // mouse
 //   uses "cursor" images
index 8c4948f6373ab95ee4643b905727432d05c0ef1a..6cf666fce5c109cedd7c5759cd0a03915d5f7940 100644 (file)
@@ -64,6 +64,8 @@ ALPHA_DISABLED                  0.2
 ALPHA_BEHIND                    1
 ALPHA_TEXT                      0.7
 COLOR_TEXT                      '1 1 1'
+ALPHA_HEADER                    0.5
+COLOR_HEADER                    '1 1 1'
 
 // item: button
 //   uses "button" images
index edac7388c10b06cedfa04d9a13038fcb32a08d79..9fde71e103e2bdeb1030c1c06545d60ee9aac231 100644 (file)
@@ -35,7 +35,7 @@ $(QCCVERSIONFILE):
        $(RM) qccversion.*
        echo This file intentionally left blank. > $@
 
-FILES_CSPROGS = $(shell find client common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm) $(wildcard server/w_*.qc)
+FILES_CSPROGS = $(shell find client common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm)
 ../csprogs.dat: $(FILES_CSPROGS) $(QCCVERSIONFILE)
        @echo make[1]: Entering directory \`$(PWD)/client\'
        cd client && $(QCC) $(QCCFLAGS)
@@ -43,12 +43,12 @@ FILES_CSPROGS = $(shell find client common warpzonelib csqcmodellib -type f -not
 server/precache-for-csqc.inc: $(FILES_CSPROGS)
        sh collect-precache.sh
 
-FILES_PROGS = $(shell find server common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm) $(wildcard server/w_*.qc)
+FILES_PROGS = $(shell find server common warpzonelib csqcmodellib -type f -not -name fteqcc.log -not -name qc.asm)
 ../progs.dat: $(FILES_PROGS) $(QCCVERSIONFILE) server/precache-for-csqc.inc
        @echo make[1]: Entering directory \`$(PWD)/server\'
        cd server && $(QCC) $(QCCFLAGS)
 
-FILES_MENU = $(shell find menu common warpzonelib -type f -not -name fteqcc.log -not -name qc.asm) $(wildcard server/w_*.qc)
+FILES_MENU = $(shell find menu common warpzonelib -type f -not -name fteqcc.log -not -name qc.asm)
 ../menu.dat: $(FILES_MENU) $(QCCVERSIONFILE)
        @echo make[1]: Entering directory \`$(PWD)/menu\'
        cd menu && $(QCC) $(QCCFLAGS)
index d9858750082935cac45b492613a79f8361382c6d..b78d960559f81bf961718557251dbcc1355bcfba 100644 (file)
@@ -394,6 +394,30 @@ float contentavgalpha, liquidalpha_prev;
 vector liquidcolor_prev;
 
 float eventchase_current_distance;
+float eventchase_running;
+float WantEventchase()
+{
+       if(autocvar_cl_orthoview)
+               return FALSE;
+       if(intermission)
+               return TRUE;
+       if(spectatee_status >= 0)
+       {
+               if(autocvar_cl_eventchase_nexball && gametype == MAPINFO_TYPE_NEXBALL && !(WepSet_GetFromStat() & WepSet_FromWeapon(WEP_PORTO)))
+                       return TRUE;
+               if(autocvar_cl_eventchase_death && (getstati(STAT_HEALTH) <= 0))
+               {
+                       if(autocvar_cl_eventchase_death == 2)
+                       {
+                               // don't stop eventchase once it's started (even if velocity changes afterwards)
+                               if(self.velocity == '0 0 0' || eventchase_running)
+                                       return TRUE;
+                       }
+                       else return TRUE;
+               }
+       }
+       return FALSE;
+}
 
 vector damage_blurpostprocess, content_blurpostprocess;
 
@@ -495,9 +519,10 @@ void CSQC_UpdateView(float w, float h)
        // event chase camera
        if(autocvar_chase_active <= 0) // greater than 0 means it's enabled manually, and this code is skipped
        {
-               WepSet weapons_stat = WepSet_GetFromStat();
-               if(((spectatee_status >= 0 && (autocvar_cl_eventchase_death && is_dead)) || intermission) && !autocvar_cl_orthoview || (autocvar_cl_eventchase_nexball && gametype == MAPINFO_TYPE_NEXBALL && !(weapons_stat & WepSet_FromWeapon(WEP_PORTO))))
+               if(WantEventchase())
                {
+                       eventchase_running = TRUE;
+
                        // make special vector since we can't use view_origin (It is one frame old as of this code, it gets set later with the results this code makes.)
                        vector current_view_origin = (csqcplayer ? csqcplayer.origin : pmove_org);
 
@@ -538,6 +563,7 @@ void CSQC_UpdateView(float w, float h)
                }
                else if(autocvar_chase_active < 0) // time to disable chase_active if it was set by this code
                {
+                       eventchase_running = FALSE;
                        cvar_set("chase_active", "0");
                        eventchase_current_distance = 0; // start from 0 next time
                }
index e78a69108e31e6803fa31905fffb809cf9a2cd7f..7359468e0969d236738b619a367e8fa8c8553d7f 100644 (file)
@@ -933,16 +933,16 @@ void DrawAmmoItem(vector myPos, vector mySize, .float ammotype, float currently_
        if(currently_selected)
                drawpic_aspect_skin(myPos, "ammo_current_bg", mySize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 
-    if(a > 0 && autocvar_hud_panel_ammo_progressbar)
-        HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, autocvar_hud_panel_ammo_progressbar_name, a/autocvar_hud_panel_ammo_maxammo, 0, 0, color, autocvar_hud_progressbar_alpha * panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
+       if(a > 0 && autocvar_hud_panel_ammo_progressbar)
+               HUD_Panel_DrawProgressBar(myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize_x, autocvar_hud_panel_ammo_progressbar_name, a/autocvar_hud_panel_ammo_maxammo, 0, 0, color, autocvar_hud_progressbar_alpha * panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
 
-    if(autocvar_hud_panel_ammo_text)
-    {
-        if(a > 0 || infinite_ammo)
-            drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
-        else // "ghost" ammo count
-            drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, '0 0 0', panel_fg_alpha * theAlpha * 0.5, DRAWFLAG_NORMAL);
-    }
+       if(autocvar_hud_panel_ammo_text)
+       {
+               if(a > 0 || infinite_ammo)
+                       drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, color, panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
+               else // "ghost" ammo count
+                       drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize_x + eY * mySize_y, '0 0 0', panel_fg_alpha * theAlpha * 0.5, DRAWFLAG_NORMAL);
+       }
        if(a > 0 || infinite_ammo)
                drawpic_aspect_skin(picpos, GetAmmoPicture(ammotype), '1 1 0' * mySize_y, '1 1 1', panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
        else // "ghost" ammo icon
@@ -1044,6 +1044,7 @@ void HUD_Ammo(void)
                                TRUE,
                                infinite_ammo
                        );
+               }
 
                ++row;
                if(row >= rows)
@@ -1051,7 +1052,6 @@ void HUD_Ammo(void)
                        row = 0;
                        column = column + 1;
                }
-               }
        }
        else
        {
index 54c51b3a01d22e7ada532048f77c72f96bb824db..fc769408bdf584d785a0fa0f5dd1cdb0d71ed45e 100644 (file)
@@ -45,7 +45,6 @@ void Projectile_DrawTrail(vector to)
        }
 }
 
-.float proj_time;
 void Projectile_Draw()
 {
        vector rot;
@@ -54,9 +53,6 @@ void Projectile_Draw()
        float drawn;
        float t;
        float a;
-       float dt = time - self.proj_time;
-
-       self.proj_time = time;
 
        f = self.move_flags;
 
@@ -143,7 +139,6 @@ void Projectile_Draw()
        if(Nade_IDFromProjectile(self.cnt) != 0)
                trailorigin += v_up * 4;
 
-       if(dt > 0)
        if(drawn)
                Projectile_DrawTrail(trailorigin);
        else
@@ -204,7 +199,6 @@ void Ent_Projectile()
        self.count = (f & 0x80);
        self.iflags = (self.iflags & IFLAG_INTERNALMASK) | IFLAG_AUTOANGLES | IFLAG_ANGLES | IFLAG_ORIGIN;
        self.solid = SOLID_TRIGGER;
-       self.proj_time = time;
        //self.effects = EF_NOMODELFLAGS;
 
        // this should make collisions with bmodels more exact, but it leads to
index d8988110061db98c86a6b23ae89f3581226635c5..35a2aebd814b198243939c603beca8707a8f7f2d 100644 (file)
@@ -501,7 +501,7 @@ void Send_Notification_WOCOVA(
     MSG_INFO_NOTIF(1, INFO_WATERMARK,                      1, 0, "s1", "",                          "",                     _("^F3SVQC Build information: ^F4%s"), "") \
     MSG_INFO_NOTIF(1, INFO_WEAPON_ACCORDEON_MURDER,              3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",  "weapontuba",             _("^BG%s%s^K1 died of ^BG%s^K1's great playing on the @!#%%'n Accordeon%s%s"), "") \
     MSG_INFO_NOTIF(1, INFO_WEAPON_ACCORDEON_SUICIDE,             2, 1, "s1 s2loc spree_lost", "s1",                 "weapontuba",             _("^BG%s^K1 hurt their own ears with the @!#%%'n Accordeon%s%s"), "") \
-    MSG_INFO_NOTIF(1, INFO_WEAPON_ARC_MURDER,                    3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",  "weaponhlac",             _("^BG%s%s^K1 was electrocuted by ^BG%s^K1's Arc%s%s"), "") \
+    MSG_INFO_NOTIF(1, INFO_WEAPON_ARC_MURDER,                    3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",  "weaponarc",              _("^BG%s%s^K1 was electrocuted by ^BG%s^K1's Arc%s%s"), "") \
     MSG_INFO_NOTIF(1, INFO_WEAPON_BLASTER_MURDER,                3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",  "weaponlaser",            _("^BG%s%s^K1 was shot to death by ^BG%s^K1's Blaster%s%s"), "") \
     MSG_INFO_NOTIF(1, INFO_WEAPON_BLASTER_SUICIDE,               2, 1, "s1 s2loc spree_lost", "s1",                 "weaponlaser",            _("^BG%s^K1 shot themself to hell with their Blaster%s%s"), "") \
     MSG_INFO_NOTIF(1, INFO_WEAPON_CRYLINK_MURDER,                3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1",  "weaponcrylink",          _("^BG%s%s^K1 felt the strong pull of ^BG%s^K1's Crylink%s%s"), "") \
index 742dd118525e959a3252575ce3278102e1597e4a..813f966be05a568155fe40e9af9ff1373089dcf3 100644 (file)
@@ -382,9 +382,9 @@ void PlayerStats_GameReport_Handler(entity fh, entity pass, float status)
                {
                        // url_fclose is processing, we got a response for writing the data
                        // this must come from HTTP
-                       print("Got response from player stats server:\n");
-                       while((s = url_fgets(fh))) { print("  ", s, "\n"); }
-                       print("End of response.\n");
+                       dprint("Got response from player stats server:\n");
+                       while((s = url_fgets(fh))) { dprint("  ", s, "\n"); }
+                       dprint("End of response.\n");
                        url_fclose(fh);
                        break;
                }
@@ -392,7 +392,7 @@ void PlayerStats_GameReport_Handler(entity fh, entity pass, float status)
                case URL_READY_CLOSED:
                {
                        // url_fclose has finished
-                       print("Player stats written\n");
+                       dprint("Player stats written\n");
                        PlayerStats_GameReport_DelayMapVote = FALSE;
                        if(PS_GR_OUT_DB >= 0)
                        {
@@ -434,7 +434,7 @@ void PlayerStats_PlayerBasic(entity joiningplayer, float newrequest)
 
                        // now request the information
                        uri = strcat(uri, "/player/", uri_escape(uri_escape(joiningplayer.crypto_idfp)), "/elo.txt");
-                       print("Retrieving playerstats from URL: ", uri, "\n");
+                       dprint("Retrieving playerstats from URL: ", uri, "\n");
                        url_single_fopen(
                                uri,
                                FILE_APPEND,
@@ -499,7 +499,7 @@ void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status)
        {
                case URL_READY_CANWRITE:
                {
-                       print("-- Sending data to player stats server\n");
+                       dprint("-- Sending data to player stats server\n");
                        /*url_fputs(fh, "V 1\n");
                        #ifdef WATERMARK
                        url_fputs(fh, sprintf("R %s\n", WATERMARK));
@@ -517,11 +517,11 @@ void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status)
                case URL_READY_CANREAD:
                {
                        string s = "";
-                       print("-- Got response from player stats server:\n");
+                       dprint("-- Got response from player stats server:\n");
                        //string gametype = string_null;
                        while((s = url_fgets(fh)))
                        {
-                               print("  ", s, "\n");
+                               dprint("  ", s, "\n");
                                /*
                                string key = "", value = "", data = "";
 
@@ -572,7 +572,7 @@ void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status)
                                continue;
                                */
                        }
-                       print("-- End of response.\n");
+                       dprint("-- End of response.\n");
                        url_fclose(fh);
                        break;
                }
@@ -625,7 +625,7 @@ void PlayerStats_PlayerDetail_AddItem(string event, string data)
 
        // now actually set the event data
        db_put(PS_D_IN_DB, sprintf("#%s", event), data);
-       print("Added item ", sprintf("#%s", event), "=", data, " to PS_D_IN_DB\n");
+       dprint("Added item ", sprintf("#%s", event), "=", data, " to PS_D_IN_DB\n");
 }
 
 void PlayerStats_PlayerDetail(void)
@@ -641,7 +641,7 @@ void PlayerStats_PlayerDetail(void)
                }
 
                //uri = strcat(uri, "/player/", uri_escape(crypto_getmyidfp(0)));
-               print("Retrieving playerstats from URL: ", autocvar_g_playerstats_playerdetail_uri, "\n");
+               dprint("Retrieving playerstats from URL: ", autocvar_g_playerstats_playerdetail_uri, "\n");
                url_single_fopen(
                        autocvar_g_playerstats_playerdetail_uri,
                        FILE_APPEND,
@@ -696,7 +696,7 @@ void PlayerStats_PlayerDetail_Handler(entity fh, entity unused, float status)
        {
                case URL_READY_CANWRITE:
                {
-                       print("PlayerStats_PlayerDetail_Handler(): Sending data to player stats server...\n");
+                       dprint("PlayerStats_PlayerDetail_Handler(): Sending data to player stats server...\n");
                        url_fputs(fh, "V 1\n");
                        #ifdef WATERMARK
                        url_fputs(fh, sprintf("R %s\n", WATERMARK));
@@ -769,7 +769,7 @@ void PlayerStats_PlayerDetail_Handler(entity fh, entity unused, float status)
                                        
                                        default:
                                        {
-                                               print(sprintf(
+                                               printf(
                                                        "PlayerStats_PlayerDetail_Handler(): ERROR: "
                                                        "Key went unhandled? Is our version outdated?\n"
                                                        "PlayerStats_PlayerDetail_Handler(): "
@@ -777,7 +777,7 @@ void PlayerStats_PlayerDetail_Handler(entity fh, entity unused, float status)
                                                        key,
                                                        event,
                                                        data
-                                               ));
+                                               );
                                                break;
                                        }
                                }
index 2cc5f7d81154bbe7ea9e7d803e1ec8f6700b7e8e..bc60898c88213dec842d73b2930dbca094ebb77f 100644 (file)
@@ -26,6 +26,7 @@
 #include "xonotic/bigbutton.c"
 #include "xonotic/commandbutton.c"
 #include "xonotic/bigcommandbutton.c"
+#include "xonotic/textlabel.c"
 #include "xonotic/dialog_firstrun.c"
 #include "xonotic/dialog_teamselect.c"
 #include "xonotic/dialog_sandboxtools.c"
@@ -41,7 +42,6 @@
 #include "xonotic/dialog_multiplayer.c"
 #include "xonotic/dialog_multiplayer_profile.c"
 #include "xonotic/tabcontroller.c"
-#include "xonotic/textlabel.c"
 #include "xonotic/slider.c"
 #include "xonotic/slider_resolution.c"
 #include "xonotic/checkbox.c"
 #include "xonotic/slider_picmip.c"
 #include "xonotic/slider_particles.c"
 #include "xonotic/slider_sbfadetime.c"
+#include "xonotic/dialog_settings_misc_reset.c"
index 1d5471e15c09d1ea2bb45980648f8477253e5d90..8d1a6de86af32f3f0e9889287df1c49b497b45b0 100644 (file)
@@ -69,7 +69,8 @@ void Image_updateAspect(entity me)
                vector sz = '0 0 0';
                if(me.forcedAspect < 0)
                {
-                       sz = draw_PictureSize(me.src);
+                       if (me.src != "")
+                               sz = draw_PictureSize(me.src);
                        if(sz_x <= 0 || sz_y <= 0)
                        {
                                // image is broken or doesn't exist, set the size for the placeholder image
index 0f9502d97f022bb7c434da93aa4c6cf219e25df3..d4eaab2a7b8277e51866df26756550f5c6378c8c 100644 (file)
@@ -309,7 +309,7 @@ void ListBox_updateControlTopBottom(entity me)
                me.controlBottom = min((me.scrollPos + 1) / me.getTotalHeight(me), 1);
 
                float minfactor;
-               minfactor = 1 * me.controlWidth / me.size_y * me.size_x;
+               minfactor = 2 * me.controlWidth / me.size_y * me.size_x;
                f = me.controlBottom - me.controlTop;
                if(f < minfactor) // FIXME good default?
                {
index b071a1af34109ebe4c6adb536abda42d82b859d8..c92db27e984f84be22a86ff2ae8049d190c3d478 100644 (file)
@@ -104,7 +104,7 @@ float Slider_keyDown(entity me, float key, float ascii, float shift)
        if(me.disabled)
                return 0;
        inRange = (almost_in_bounds(me.valueMin, me.value, me.valueMax));
-       if(key == K_LEFTARROW || key == K_KP_LEFTARROW || key == K_MWHEELUP)
+       if(key == K_LEFTARROW || key == K_KP_LEFTARROW || key == K_MWHEELDOWN)
        {
                if(inRange)
                        me.setValue(me, median(me.valueMin, me.value - me.valueKeyStep, me.valueMax));
@@ -112,7 +112,7 @@ float Slider_keyDown(entity me, float key, float ascii, float shift)
                        me.setValue(me, me.valueMax);
                return 1;
        }
-       if(key == K_RIGHTARROW || key == K_KP_RIGHTARROW || key == K_MWHEELDOWN)
+       if(key == K_RIGHTARROW || key == K_KP_RIGHTARROW || key == K_MWHEELUP)
        {
                if(inRange)
                        me.setValue(me, median(me.valueMin, me.value + me.valueKeyStep, me.valueMax));
@@ -120,7 +120,7 @@ float Slider_keyDown(entity me, float key, float ascii, float shift)
                        me.setValue(me, me.valueMin);
                return 1;
        }
-       if(key == K_PGUP || key == K_KP_PGUP)
+       if(key == K_PGDN || key == K_KP_PGDN)
        {
                if(inRange)
                        me.setValue(me, median(me.valueMin, me.value - me.valuePageStep, me.valueMax));
@@ -128,7 +128,7 @@ float Slider_keyDown(entity me, float key, float ascii, float shift)
                        me.setValue(me, me.valueMax);
                return 1;
        }
-       if(key == K_PGDN || key == K_KP_PGDN)
+       if(key == K_PGUP || key == K_KP_PGUP)
        {
                if(inRange)
                        me.setValue(me, median(me.valueMin, me.value + me.valuePageStep, me.valueMax));
index 8895c04bb49c5f431d4a5c5c6e0315d983673e92..1db6e6775d6533f35d9271dfdda1c34515b21ce4 100644 (file)
@@ -100,7 +100,9 @@ SKINBEGIN
        SKINFLOAT(ALPHA_BEHIND, 0.5);
        SKINFLOAT(ALPHA_TEXT, 0.7);
        SKINVECTOR(COLOR_TEXT, '1 1 1');
-       
+       SKINFLOAT(ALPHA_HEADER, 0.5);
+       SKINVECTOR(COLOR_HEADER, '1 1 1');
+
        // item: button
        SKINSTRING(GFX_BUTTON, "button");
        SKINSTRING(GFX_BUTTON_GRAY, "buttongray");
index 9da8419a3360da209018834844ddf76f4cf93424..8ae9107a9af0d53c4c02968e5fe599099890b281 100644 (file)
@@ -66,9 +66,7 @@ void XonoticServerCreateTab_fill(entity me)
        entity e, e0;
 
        me.gotoRC(me, 0.5, 0);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Gametype")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, makeXonoticHeaderLabel(_("Gametype")));
        me.TR(me);
                me.TD(me, 10.5, 3, e = makeXonoticGametypeList());
 
@@ -146,9 +144,7 @@ void XonoticServerCreateTab_fill(entity me)
 
        me.gotoRC(me, 0.5, 3.2); me.setFirstColumn(me, me.currentColumn);
                me.mapListBox = makeXonoticMapList();
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Maplist")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Maplist")));
                        makeCallback(e, me.mapListBox, me.mapListBox.refilterCallback);
        me.TR(me);
                me.TD(me, me.rows - 4, 3, me.mapListBox);
index 4d1aeb1d7c2856623012ee4f42d8ebdaadc52cc7..a316be73b2b1f307f9e070bbbfa54dc1cf260bed 100644 (file)
@@ -7,7 +7,7 @@ CLASS(XonoticProfileTab) EXTENDS(XonoticTab)
        ATTRIB(XonoticProfileTab, rows, float, 23)
        ATTRIB(XonoticProfileTab, columns, float, 6.1) // added extra .2 for center space
        ATTRIB(XonoticProfileTab, playerNameLabel, entity, NULL)
-       ATTRIB(XonoticProfileTab, playerNameLabelAlpha, float, 0)
+       ATTRIB(XonoticProfileTab, playerNameLabelAlpha, float, SKINALPHA_HEADER)
 ENDCLASS(XonoticProfileTab)
 entity makeXonoticProfileTab();
 #endif
@@ -37,9 +37,7 @@ void XonoticProfileTab_fill(entity me)
        //  NAME SECTION
        // ==============
        me.gotoRC(me, 0.5, 0);
-               me.TD(me, 1, 3, me.playerNameLabel = makeXonoticTextLabel(0.5, _("Name")));
-                       me.playerNameLabel.isBold = TRUE;
-                       me.playerNameLabelAlpha = 0.5;
+               me.TD(me, 1, 3, me.playerNameLabel = makeXonoticHeaderLabel(_("Name")));
 
        me.gotoRC(me, 1.5, 0);
                me.TD(me, 1, 3, label = makeXonoticTextLabel(0.5, string_null));
@@ -66,9 +64,8 @@ void XonoticProfileTab_fill(entity me)
        //me.gotoRC(me, 0.5, 3.1); me.setFirstColumn(me, me.currentColumn); // TOP RIGHT
        //me.gotoRC(me, 9, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM RIGHT
        me.gotoRC(me, 9, 0); me.setFirstColumn(me, me.currentColumn); // BOTTOM LEFT
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Model")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Model")));
+
        me.TR(me);
                //me.TDempty(me, 0); // MODEL LEFT, COLOR RIGHT
                me.TDempty(me, 1); // MODEL RIGHT, COLOR LEFT
@@ -84,9 +81,7 @@ void XonoticProfileTab_fill(entity me)
        //me.setFirstColumn(me, me.currentColumn + 2); // MODEL LEFT, COLOR RIGHT
        me.gotoRC(me, me.currentRow, 0); me.setFirstColumn(me, me.currentColumn); // MODEL RIGHT, COLOR LEFT
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0.5, _("Glowing color")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 1, e = makeXonoticHeaderLabel(_("Glowing color")));
                for(i = 0; i < 15; ++i)
                {
                        if(mod(i, 5) == 0)
@@ -95,9 +90,7 @@ void XonoticProfileTab_fill(entity me)
                }
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0.5, _("Detail color")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 1, e = makeXonoticHeaderLabel(_("Detail color")));
                for(i = 0; i < 15; ++i)
                {
                        if(mod(i, 5) == 0)
@@ -111,9 +104,8 @@ void XonoticProfileTab_fill(entity me)
        me.gotoRC(me, 0.5, 3.1); me.setFirstColumn(me, me.currentColumn); // TOP RIGHT
        //me.gotoRC(me, 9, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM RIGHT
        //me.gotoRC(me, 9, 0); me.setFirstColumn(me, me.currentColumn); // BOTTOM LEFT
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Statistics")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Statistics")));
+
        me.TR(me);
                me.TDempty(me, 0.25);
                me.TD(me, 1, 2.5, e = makeXonoticCheckBox(0, "cl_allow_uidtracking", _("Allow player statistics to track your client")));
@@ -134,9 +126,8 @@ void XonoticProfileTab_fill(entity me)
        me.gotoRC(me, 16, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM SECTION, TOP POS
        //me.gotoRC(me, 13.5, 3.1); me.setFirstColumn(me, me.currentColumn); // BOTTOM SECTION, TOP POS
        //me.gotoRC(me, 0.5, 3.1); me.setFirstColumn(me, me.currentColumn); // TOP SECTION, TOP POS
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Country")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Country")));
+
        me.TR(me);
                me.TDempty(me, 0.5);
                me.TD(me, 4.5, 2, e = makeXonoticLanguageList()); // todo: cl_country: create proper country list
@@ -156,9 +147,7 @@ void XonoticProfileTab_fill(entity me)
                        e.addValue(e, ZCTX(_("GENDER^Male")), "2");
                        e.configureXonoticTextSliderValues(e);
        #else
-                       me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Gender")));
-                               e.isBold = TRUE;
-                               e.alpha = 0.5;
+                       me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Gender")));
                me.TR(me);
                        #define GENDERWIDTH_OFFSET 0.25
                        #define GENDERWIDTH_LENGTH 2.5
index 949f0cce6c647b9b17fa8d0176827ee290cf9a12..f6b79eb8f340ec651ffb241b269c55cae4ae8968 100644 (file)
@@ -144,7 +144,7 @@ void XonoticEffectsSettingsTab_fill(entity me)
                me.TDempty(me, 0.2);
                me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Distance:")));
                        setDependent(e, "cl_particles", 1, 1);
-               me.TD(me, 1, 2, e = makeXonoticSlider(200, 500, 20, "r_particles_drawdistance"));
+               me.TD(me, 1, 2, e = makeXonoticSlider(200, 500, 20, "r_drawparticles_drawdistance"));
                        setDependent(e, "cl_particles", 1, 1);
                me.TR(me);
                me.TDempty(me, 0.2);
@@ -179,6 +179,8 @@ void XonoticEffectsSettingsTab_fill(entity me)
                me.TDempty(me, 0.2);
                me.TD(me, 1, 2.8, e = makeXonoticCheckBox(0, "r_coronas_occlusionquery", _("Fade corona according to visibility")));
                        setDependent(e, "r_coronas", 1, 1);
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_cubemaps_extra", _("Extra reflective effects")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "r_bloom", _("Bloom")));
                me.TD(me, 1, 2, e = makeXonoticCheckBoxEx(0.5, 0, "hud_postprocessing_maxbluralpha", _("Extra postprocessing effects")));
index 68ec7096dc714fb7cec4cd80009cb3f8411e5a1d..fc7e3a136abb12250ac5af16ca22e38d4b7187f9 100644 (file)
@@ -46,9 +46,7 @@ void XonoticGameHUDSettingsTab_fill(entity me)
 
        //me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Scoreboard")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Scoreboard")));
        //me.TR(me);
        //      me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Alpha:")));
        //      me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "scoreboard_alpha_bg"));
@@ -68,9 +66,7 @@ void XonoticGameHUDSettingsTab_fill(entity me)
 
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Waypoints")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Waypoints")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(1, "cl_hidewaypoints", _("Display waypoint markers for objectives on the map")));
        me.TR(me);
@@ -101,9 +97,7 @@ void XonoticGameHUDSettingsTab_fill(entity me)
 
        #if 0
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Damage")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Damage")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Overlay:")));
                me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.05, "hud_damage"));
@@ -121,9 +115,7 @@ void XonoticGameHUDSettingsTab_fill(entity me)
        #endif
 
        me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Player Names")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Player Names")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "hud_shownames", _("Show names above players")));
 
index c0dbb1f825de396839004e43a8cfca32c0e2a7e3..6f605ccbcb98cd370cf2ad11e9f90721182f63ba 100644 (file)
@@ -30,9 +30,7 @@ void XonoticGameMessageSettingsTab_fill(entity me)
        entity e;
 
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Frag Information")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               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.TR(me);
@@ -73,9 +71,7 @@ void XonoticGameMessageSettingsTab_fill(entity me)
                me.TD(me, 1, 3, e = makeXonoticCheckBox(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 = makeXonoticTextLabel(0.5, _("Gamemode Settings")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               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")));
                        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 ");
@@ -86,9 +82,7 @@ void XonoticGameMessageSettingsTab_fill(entity me)
                        e.sendCvars = TRUE;
 
        me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Other")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               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.TR(me);
@@ -108,9 +102,7 @@ void XonoticGameMessageSettingsTab_fill(entity me)
                        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);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Announcers")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Announcers")));
        #if 0
        // there's just not enough room for this, and it's not important enough to justify...
        me.TR(me);
index e7f68180b37566808f0bb88bbe54e5dad7b3161a..c2aedc1f7eaa99d764924864d018896df85fb58c 100644 (file)
@@ -34,13 +34,11 @@ void XonoticGameModelSettingsTab_fill(entity me)
        // later I would like quite a few more options in this tab.
 
        me.gotoRC(me, 0, 1); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Items")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Items")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_simple_items", _("Use simple 2D images instead of item models")));
        me.TR(me);
-               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Unvailable alpha:")));
+               me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Unavailable alpha:")));
                me.TD(me, 1, 2, e = makeXonoticSlider(0, 1, 0.1, "cl_ghost_items"));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Unavailable color:")));
@@ -55,9 +53,7 @@ void XonoticGameModelSettingsTab_fill(entity me)
 
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Players")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Players")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_forceplayermodels", _("Force player models to mine")));
        me.TR(me);
index a6b450d5aa9d726810185a3f38f243920d9b0284..bc7cc7d7ff554d2aa56893dc56e08e19f136a1b1 100644 (file)
@@ -31,9 +31,7 @@ void XonoticGameWeaponsSettingsTab_fill(entity me)
 
        me.TR(me);
                me.TDempty(me, 0.25);
-               me.TD(me, 1, 2.5, e = makeXonoticTextLabel(0.5, _("Weapon Priority List")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 2.5, e = makeXonoticHeaderLabel(_("Weapon Priority List")));
        me.TR(me);
                me.TDempty(me, 0.25);
                me.TD(me, 10, 2.5, e = me.weaponsList = makeXonoticWeaponsList());
index 7de3cfa9baff81ae1c9869171633566619683e2e..4287f1f82e37d52bb8be673378a3ac372e99f469 100644 (file)
@@ -27,15 +27,13 @@ void CheckBox_Click_Redisplay(entity me, entity checkbox)
 void XonoticInputSettingsTab_fill(entity me)
 {
        entity e;
-       entity kb;
+       entity kb = makeXonoticKeyBinder();
 
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Key Bindings")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Key Bindings")));
        me.TR(me);
-               me.TD(me, me.rows - 2.5, 3, kb = makeXonoticKeyBinder());
-       me.gotoRC(me, me.rows - 1.5, 0);
+               me.TD(me, me.rows - 4, 3, kb);
+       me.gotoRC(me, me.rows - 3, 0);
                me.TD(me, 1, 1, e = makeXonoticButton(_("Change key..."), '0 0 0'));
                        e.onClick = KeyBinder_Bind_Change;
                        e.onClickEntity = kb;
@@ -50,11 +48,13 @@ void XonoticInputSettingsTab_fill(entity me)
                        e.onClick = KeyBinder_Bind_Clear;
                        e.onClickEntity = kb;
                        kb.clearButton = e;
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticButton(_("Reset all"), '0 0 0'));
+                       e.onClick = KeyBinder_Bind_Reset_All;
+                       e.onClickEntity = kb;
 
        me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Mouse")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Mouse")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Sensitivity:")));
                me.TD(me, 1, 2, e = makeXonoticSlider(1, 32, 0.2, "sensitivity"));
@@ -82,9 +82,7 @@ void XonoticInputSettingsTab_fill(entity me)
 
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Other")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Other")));
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "con_closeontoggleconsole", _("Pressing \"enter console\" key also closes it")));
        me.TR(me);
index 91d25b026bca9f044fe1d93c2d554f756dabea7d..1deda87df078a26c24569b2bf1dd6cb54155b1b6 100644 (file)
@@ -23,9 +23,7 @@ void XonoticMiscSettingsTab_fill(entity me)
        //entity sk;
 
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Network")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Network")));
        me.TR(me);
                me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Client UDP port:")));
                me.TD(me, 1, 1.5, e = makeXonoticInputBox(0, "cl_port"));
@@ -71,9 +69,7 @@ void XonoticMiscSettingsTab_fill(entity me)
                        me.TD(me, 1, 3, e = makeXonoticCheckBoxEx(2, 1, "crypto_aeslevel", _("Use encryption (AES) when available"))); // TODO: move up
 
        me.gotoRC(me, 0, 3.2); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Framerate")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Framerate")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Maximum:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_maxfps"));
@@ -119,9 +115,7 @@ void XonoticMiscSettingsTab_fill(entity me)
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "showfps", _("Show frames per second")));
        me.TR(me);
        me.TR(me);
-               me.TD(me, 1, 3, e = makeXonoticTextLabel(0.5, _("Other")));
-               e.isBold = TRUE;
-               e.alpha = 0.5;
+               me.TD(me, 1, 3, e = makeXonoticHeaderLabel(_("Other")));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Menu tooltips:")));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("menu_tooltips"));
@@ -134,11 +128,16 @@ void XonoticMiscSettingsTab_fill(entity me)
                        makeMulti(e, "showdate");
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "developer", _("Enable developer mode")));
-       me.TR(me);
+
        me.TR(me);
                me.TDempty(me, 0.5);
                me.TD(me, 1, 2, e = makeXonoticButton(_("Advanced settings..."), '0 0 0'));
                        e.onClick = DialogOpenButton_Click;
                        e.onClickEntity = main.cvarsDialog;
+       me.TR(me);
+               me.TDempty(me, 0.5);
+               me.TD(me, 1, 2, e = makeXonoticButton(_("Factory reset"), '0 0 0'));
+                       e.onClick = DialogOpenButton_Click;
+                       e.onClickEntity = main.resetDialog;
 }
 #endif
diff --git a/qcsrc/menu/xonotic/dialog_settings_misc_reset.c b/qcsrc/menu/xonotic/dialog_settings_misc_reset.c
new file mode 100644 (file)
index 0000000..8f6da0a
--- /dev/null
@@ -0,0 +1,28 @@
+#ifdef INTERFACE
+CLASS(XonoticResetDialog) EXTENDS(XonoticDialog)
+       METHOD(XonoticResetDialog, fill, void(entity))
+       ATTRIB(XonoticResetDialog, title, string, _("Factory reset"))
+       ATTRIB(XonoticResetDialog, color, vector, SKINCOLOR_DIALOG_QUIT)
+       ATTRIB(XonoticResetDialog, intendedWidth, float, 0.5)
+       ATTRIB(XonoticResetDialog, rows, float, 4)
+       ATTRIB(XonoticResetDialog, columns, float, 2)
+       ATTRIB(XonoticResetDialog, name, string, "Factory reset")
+ENDCLASS(XonoticResetDialog)
+#endif
+
+#ifdef IMPLEMENTATION
+void XonoticResetDialog_fill(entity me)
+{
+       entity e;
+       me.TR(me);
+               me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("Are you sure you want to reset all settings?")));
+       me.TR(me);
+               me.TD(me, 1, 2, makeXonoticTextLabel(0.5, _("This will create a backup config in your data directory")));
+       me.TR(me);
+       me.TR(me);
+               me.TD(me, 1, 1, e = makeXonoticCommandButton(_("Yes"), '1 0 0', "saveconfig backup.cfg\n;\n exec defaultXonotic.cfg\n", 0));
+               me.TD(me, 1, 1, e = makeXonoticButton(_("No"), '0 1 0'));
+                       e.onClick = Dialog_Close;
+                       e.onClickEntity = me;
+}
+#endif
index 547ac52210c80c0b903089cc3c8bab4fa31ca0be..b3f888594eae083f767a4a36df28e50843bd0650 100644 (file)
@@ -25,9 +25,7 @@ void XonoticUserSettingsTab_fill(entity me)
 
        me.TR(me);
                me.TDempty(me, 0.25);
-               me.TD(me, 1, 2.5, e = makeXonoticTextLabel(0.5, _("Menu Skins")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 2.5, e = makeXonoticHeaderLabel(_("Menu Skins")));
        me.TR(me);
                me.TDempty(me, 0.25);
                me.TD(me, me.rows - 2.5, 2.5, sk = makeXonoticSkinList());
@@ -66,9 +64,7 @@ void XonoticUserSettingsTab_fill(entity me)
                        e.onClickEntity = sk;*/
 
        me.gotoRC(me, 0, 3.75); me.setFirstColumn(me, me.currentColumn);
-               me.TD(me, 1, 1.5, e = makeXonoticTextLabel(0.5, _("Text Language")));
-                       e.isBold = TRUE;
-                       e.alpha = 0.5;
+               me.TD(me, 1, 1.5, e = makeXonoticHeaderLabel(_("Text Language")));
        me.TR(me);
                me.TD(me, 8, 1.5, sk = makeXonoticLanguageList());
 
index ffb5ef027ce99d19b62c849cc83301bf4b11b6ac..c7f385761d804cac0f94177a4fc8625a37748e37 100644 (file)
@@ -90,7 +90,7 @@ void XonoticGametypeList_drawListBoxItem(entity me, float i, vector absSize, flo
        else
                s = _("free for all");
 
-       draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.5 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0);
+       draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 1.0 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0);
        //s = GameType_GetTeams(i);
        //draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 1.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0);
 }
index 57f501f5c145a050724cb570045aa4b332622a74..c312e382656105a4824bd3b6e3c3568df0ee36ae 100644 (file)
@@ -238,6 +238,13 @@ void KeyBinder_Bind_Clear(entity btn, entity me)
        localcmd("-zoom\n"); // to make sure we aren't in togglezoom'd state
        cvar_set("_hud_showbinds_reload", "1");
 }
+void KeyBinder_Bind_Reset_All(entity btn, entity me)
+{
+       localcmd("unbindall\n");
+       localcmd("exec binds-default.cfg\n");
+       localcmd("-zoom\n"); // to make sure we aren't in togglezoom'd state
+       cvar_set("_hud_showbinds_reload", "1");
+}
 void XonoticKeyBinder_clickListBoxItem(entity me, float i, vector where)
 {
        if(i == me.lastClickedKey)
index 6eba4f7a7a316a3f27fbf3ffe032e310f3daa915..6fa40bfac69cf687997ec45952d7b10eb7825d12 100644 (file)
@@ -19,6 +19,7 @@ CLASS(MainWindow) EXTENDS(ModalController)
        ATTRIB(MainWindow, dialogToShow, entity, NULL)
        ATTRIB(MainWindow, demostartconfirmDialog, entity, NULL)
        ATTRIB(MainWindow, demotimeconfirmDialog, entity, NULL)
+       ATTRIB(MainWindow, resetDialog, entity, NULL)
 ENDCLASS(MainWindow)
 #endif
 
@@ -142,6 +143,10 @@ void MainWindow_configureMainWindow(entity me)
        me.cvarsDialog = i = spawnXonoticCvarsDialog();
        i.configureDialog(i);
        me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+       
+       me.resetDialog = i = spawnXonoticResetDialog();
+       i.configureDialog(i);
+       me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
 
        me.languageWarningDialog = i = spawnXonoticLanguageWarningDialog();
        i.configureDialog(i);
index e073c7235d25a165abaa53569cb7d268026dccf4..dd8b61ed3f97fc942a456ef2799939c1f9e17f2a 100644 (file)
@@ -296,7 +296,7 @@ void XonoticScreenshotList_clickListBoxItem(entity me, float i, vector where)
 
 float XonoticScreenshotList_keyDown(entity me, float scan, float ascii, float shift)
 {
-       if(scan == K_ENTER || scan == K_KP_ENTER) {
+       if(scan == K_ENTER || scan == K_KP_ENTER || scan == K_MOUSE2 || scan == K_SPACE) {
                me.startScreenshot(me);
                return 1;
        }
index aefe59927c5afce48d5d199950765fbb4b8091b7..988244816c94534c554e221fd26773e3f9076b63 100644 (file)
@@ -76,7 +76,7 @@ string XonoticStatsList_convertDate(string input)
 
 void XonoticStatsList_getStats(entity me)
 {
-       print("XonoticStatsList_getStats() at time: ", ftos(time), "\n");
+       dprint("XonoticStatsList_getStats() at time: ", ftos(time), "\n");
        // delete the old buffer if it exists
        if(me.listStats >= 0)
                buf_del(me.listStats);
index 757e07ff1bc74e77408c5b22e364ea1727863275..c0e0806d83dc379e5276d48f2c30fc5a95ec3c0e 100644 (file)
@@ -17,6 +17,15 @@ entity makeXonoticTextLabel(float theAlign, string theText)
        me.configureXonoticTextLabel(me, theAlign, theText);
        return me;
 }
+entity makeXonoticHeaderLabel(string theText)
+{
+       entity me;
+       me = makeXonoticTextLabel(0.5, theText);
+       me.colorL = SKINCOLOR_HEADER;
+       me.alpha = SKINALPHA_HEADER;
+       me.isBold = TRUE;
+       return me;
+}
 void XonoticTextLabel_configureXonoticTextLabel(entity me, float theAlign, string theText)
 {
        me.configureLabel(me, theText, me.fontSize, theAlign);
index dcbe7f183cb035595fab380ae8c22229806609d5..71294f1942affd51f53f1c37183a580a63d8122f 100644 (file)
@@ -797,11 +797,11 @@ void readplayerstartcvars()
 
        if(start_items & IT_UNLIMITED_WEAPON_AMMO)
        {
-               start_ammo_rockets = 999;
                start_ammo_shells = 999;
+               start_ammo_nails = 999;
+               start_ammo_rockets = 999;
                start_ammo_cells = 999;
                start_ammo_plasma = 999;
-               start_ammo_nails = 999;
                start_ammo_fuel = 999;
        }
        else
@@ -820,6 +820,7 @@ void readplayerstartcvars()
                warmup_start_ammo_nails = start_ammo_nails;
                warmup_start_ammo_rockets = start_ammo_rockets;
                warmup_start_ammo_cells = start_ammo_cells;
+               warmup_start_ammo_plasma = start_ammo_plasma;
                warmup_start_ammo_fuel = start_ammo_fuel;
                warmup_start_health = start_health;
                warmup_start_armorvalue = start_armorvalue;
@@ -830,9 +831,10 @@ void readplayerstartcvars()
                if (!g_weaponarena && !g_ca)
                {
                        warmup_start_ammo_shells = cvar("g_warmup_start_ammo_shells");
-                       warmup_start_ammo_cells = cvar("g_warmup_start_ammo_cells");
                        warmup_start_ammo_nails = cvar("g_warmup_start_ammo_nails");
                        warmup_start_ammo_rockets = cvar("g_warmup_start_ammo_rockets");
+                       warmup_start_ammo_cells = cvar("g_warmup_start_ammo_cells");
+                       warmup_start_ammo_plasma = cvar("g_warmup_start_ammo_plasma");
                        warmup_start_ammo_fuel = cvar("g_warmup_start_ammo_fuel");
                        warmup_start_health = cvar("g_warmup_start_health");
                        warmup_start_armorvalue = cvar("g_warmup_start_armor");
@@ -878,16 +880,16 @@ void readplayerstartcvars()
 
        start_ammo_shells = max(0, start_ammo_shells);
        start_ammo_nails = max(0, start_ammo_nails);
+       start_ammo_rockets = max(0, start_ammo_rockets);
        start_ammo_cells = max(0, start_ammo_cells);
        start_ammo_plasma = max(0, start_ammo_plasma);
-       start_ammo_rockets = max(0, start_ammo_rockets);
        start_ammo_fuel = max(0, start_ammo_fuel);
 
        warmup_start_ammo_shells = max(0, warmup_start_ammo_shells);
        warmup_start_ammo_nails = max(0, warmup_start_ammo_nails);
+       warmup_start_ammo_rockets = max(0, warmup_start_ammo_rockets);
        warmup_start_ammo_cells = max(0, warmup_start_ammo_cells);
        warmup_start_ammo_plasma = max(0, warmup_start_ammo_plasma);
-       warmup_start_ammo_rockets = max(0, warmup_start_ammo_rockets);
        warmup_start_ammo_fuel = max(0, warmup_start_ammo_fuel);
 }
 
index 34208d314418b581c9019a6035eb06f8984302d7..cd0ebdd0f052f7bb6cbdeea5e277094d0e02a257 100644 (file)
@@ -289,12 +289,17 @@ MUTATOR_HOOKFUNCTION(instagib_PlayerDamage)
 
 MUTATOR_HOOKFUNCTION(instagib_SetStartItems)
 {
-       start_ammo_cells = cvar("g_instagib_ammo_start");
+       start_health       = warmup_start_health       = 100;
+       start_armorvalue   = warmup_start_armorvalue   = 0;
 
-       start_health = 100;
-       start_armorvalue = 0;
-       start_weapons = WEPSET_VAPORIZER;
-       warmup_start_weapons = WEPSET_VAPORIZER;
+       start_ammo_shells  = warmup_start_ammo_shells  = 0;
+       start_ammo_nails   = warmup_start_ammo_nails   = 0;
+       start_ammo_cells   = warmup_start_ammo_cells   = cvar("g_instagib_ammo_start");
+       start_ammo_plasma  = warmup_start_ammo_plasma  = 0;
+       start_ammo_rockets = warmup_start_ammo_rockets = 0;
+       start_ammo_fuel    = warmup_start_ammo_fuel    = 0;
+
+       start_weapons = warmup_start_weapons = WEPSET_VAPORIZER;
        start_items |= IT_UNLIMITED_SUPERWEAPONS;
 
        return FALSE;
index 2e537b4a3428877827eb62376e29d1bdcfb7d4ad..03081ff4b1526e5f3cc0a486aec68f50c874ee23 100644 (file)
@@ -855,7 +855,7 @@ float commodity_pickupevalfunc(entity player, entity item)
                else if(wi.items & IT_PLASMA)
                        need_plasma = TRUE;
                else if(wi.items & IT_FUEL)
-                       need_cells = TRUE;
+                       need_fuel = TRUE;
        }
 
        // TODO: figure out if the player even has the weapon this ammo is for?
index 09d42332ae51dbf408a4284fdbd7b947f0fb517b..8a7f4c5b061d76d93d29984777bc9f4881df60f3 100644 (file)
@@ -110,6 +110,7 @@ float accuracy_isgooddamage(entity attacker, entity targ)
 
        if(!warmup_stage)
        if(targ.deadflag == DEAD_NO)
+       if(!targ.frozen)
        if(mutator_check == MUT_ACCADD_INVALID || (mutator_check == MUT_ACCADD_VALID && IS_CLIENT(targ)))
        if(DIFF_TEAM(attacker, targ))
                return TRUE;
index 755ab59e593e4906319debced03fd205fb16ca8e..55e6d5415e154bf583c1f5892c485a336aea40b8 100644 (file)
@@ -290,7 +290,7 @@ void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, f
                f = ExponentialFalloff(mindist, maxdist, halflifedist, ent.railgundistance);
                ffs = ExponentialFalloff(mindist, maxdist, forcehalflifedist, ent.railgundistance);
 
-               if(accuracy_isgooddamage(self.realowner, ent))
+               if(accuracy_isgooddamage(self, ent))
                        totaldmg += bdamage * f;
 
                // apply the damage