From: Mario Date: Thu, 27 Nov 2014 02:37:42 +0000 (+1100) Subject: Merge remote-tracking branch 'origin/master' into Mario/weapons_new X-Git-Tag: xonotic-v0.8.0~122^2~49 X-Git-Url: http://git.xonotic.org/?a=commitdiff_plain;h=d2cd0d526937f5c2f892ca588690f76eb64f870f;hp=582f02684bc1392c1830e9680b63f31771db4436;p=xonotic%2Fxonotic-data.pk3dir.git Merge remote-tracking branch 'origin/master' into Mario/weapons_new --- diff --git a/effects-high.cfg b/effects-high.cfg index 456061536..a514ce5cb 100644 --- a/effects-high.cfg +++ b/effects-high.cfg @@ -1,10 +1,11 @@ cl_decals 1 cl_decals_models 0 cl_decals_fadetime 4 -cl_particles_quality 1 +cl_particles 1 +cl_particles_quality 1.0 cl_damageeffect 1 cl_spawn_point_particles 1 -cl_playerdetailreduction 4 +cl_playerdetailreduction 4.0 gl_flashblend 0 gl_picmip -1 mod_q3bsp_nolightmaps 0 @@ -15,7 +16,7 @@ hud_postprocessing_maxbluralpha 0.5 hud_powerup 0 r_depthfirst 2 r_drawdecals_drawdistance 500 -r_drawparticles_drawdistance 2000 +r_drawparticles_drawdistance 1500 r_glsl_deluxemapping 1 r_glsl_offsetmapping 0 r_glsl_offsetmapping_reliefmapping 0 diff --git a/effects-low.cfg b/effects-low.cfg index d98ba526d..b7e9a98a3 100644 --- a/effects-low.cfg +++ b/effects-low.cfg @@ -1,6 +1,7 @@ cl_decals 1 cl_decals_models 0 cl_decals_fadetime 2 +cl_particles 1 cl_particles_quality 0.4 cl_damageeffect 0 cl_spawn_point_particles 0 diff --git a/effects-med.cfg b/effects-med.cfg index 58191f266..66eed5aa5 100644 --- a/effects-med.cfg +++ b/effects-med.cfg @@ -1,7 +1,8 @@ cl_decals 1 cl_decals_models 0 cl_decals_fadetime 2 -cl_particles_quality 1 +cl_particles 1 +cl_particles_quality 0.8 cl_damageeffect 0 cl_spawn_point_particles 0 cl_playerdetailreduction 4 @@ -15,7 +16,7 @@ hud_postprocessing_maxbluralpha 0 hud_powerup 0 r_depthfirst 0 r_drawdecals_drawdistance 300 -r_drawparticles_drawdistance 1000 +r_drawparticles_drawdistance 750 r_glsl_deluxemapping 0 r_glsl_offsetmapping 0 r_glsl_offsetmapping_reliefmapping 0 diff --git a/effects-normal.cfg b/effects-normal.cfg index dd8cce9a7..63dcd134a 100644 --- a/effects-normal.cfg +++ b/effects-normal.cfg @@ -1,7 +1,8 @@ cl_decals 1 cl_decals_models 0 cl_decals_fadetime 2 -cl_particles_quality 1 +cl_particles 1 +cl_particles_quality 1.0 cl_damageeffect 1 cl_spawn_point_particles 1 cl_playerdetailreduction 4 diff --git a/effects-omg.cfg b/effects-omg.cfg index 7c39fbbef..9018ee2c9 100644 --- a/effects-omg.cfg +++ b/effects-omg.cfg @@ -1,6 +1,7 @@ cl_decals 0 cl_decals_models 0 cl_decals_fadetime 2 +cl_particles 1 cl_particles_quality 0.4 cl_damageeffect 0 cl_spawn_point_particles 0 diff --git a/effects-ultimate.cfg b/effects-ultimate.cfg index 6897ccc16..0cf3a899c 100644 --- a/effects-ultimate.cfg +++ b/effects-ultimate.cfg @@ -1,7 +1,8 @@ cl_decals 1 cl_decals_models 1 cl_decals_fadetime 10 -cl_particles_quality 1 +cl_particles 1 +cl_particles_quality 1.0 cl_damageeffect 2 cl_spawn_point_particles 1 cl_playerdetailreduction 0 @@ -15,7 +16,7 @@ hud_postprocessing_maxbluralpha 0.5 hud_powerup 0.5 r_depthfirst 2 r_drawdecals_drawdistance 500 -r_drawparticles_drawdistance 2000 +r_drawparticles_drawdistance 3000 r_glsl_deluxemapping 1 r_glsl_offsetmapping 1 r_glsl_offsetmapping_reliefmapping 1 diff --git a/effects-ultra.cfg b/effects-ultra.cfg index d530f03b8..5909f3b83 100644 --- a/effects-ultra.cfg +++ b/effects-ultra.cfg @@ -1,10 +1,11 @@ cl_decals 1 cl_decals_models 0 cl_decals_fadetime 10 -cl_particles_quality 1 -cl_damageeffect 1 +cl_particles 1 +cl_particles_quality 1.0 +cl_damageeffect 2 cl_spawn_point_particles 1 -cl_playerdetailreduction 2 +cl_playerdetailreduction 0 gl_flashblend 0 gl_picmip -1 mod_q3bsp_nolightmaps 0 diff --git a/models/weapons/g_arc_simple.iqm b/models/weapons/g_arc_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_arc_simple.iqm differ diff --git a/models/weapons/g_arc_simple.iqm_0.skin b/models/weapons/g_arc_simple.iqm_0.skin new file mode 100644 index 000000000..df43c619f --- /dev/null +++ b/models/weapons/g_arc_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_arc_simple \ No newline at end of file diff --git a/models/weapons/g_arc_simple.tga b/models/weapons/g_arc_simple.tga new file mode 100644 index 000000000..2e9400803 Binary files /dev/null and b/models/weapons/g_arc_simple.tga differ diff --git a/models/weapons/g_campingrifle_simple.iqm b/models/weapons/g_campingrifle_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_campingrifle_simple.iqm differ diff --git a/models/weapons/g_campingrifle_simple.iqm_0.skin b/models/weapons/g_campingrifle_simple.iqm_0.skin new file mode 100644 index 000000000..6b2726f49 --- /dev/null +++ b/models/weapons/g_campingrifle_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_campingrifle_simple \ No newline at end of file diff --git a/models/weapons/g_campingrifle_simple.tga b/models/weapons/g_campingrifle_simple.tga new file mode 100644 index 000000000..2a9c44969 Binary files /dev/null and b/models/weapons/g_campingrifle_simple.tga differ diff --git a/models/weapons/g_crylink_simple.tga b/models/weapons/g_crylink_simple.tga index f4054b7be..0bbdbc7bf 100644 Binary files a/models/weapons/g_crylink_simple.tga and b/models/weapons/g_crylink_simple.tga differ diff --git a/models/weapons/g_electro_simple.tga b/models/weapons/g_electro_simple.tga index b523c722e..02c67de75 100644 Binary files a/models/weapons/g_electro_simple.tga and b/models/weapons/g_electro_simple.tga differ diff --git a/models/weapons/g_fireball_simple.iqm b/models/weapons/g_fireball_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_fireball_simple.iqm differ diff --git a/models/weapons/g_fireball_simple.iqm_0.skin b/models/weapons/g_fireball_simple.iqm_0.skin new file mode 100644 index 000000000..cceb6a697 --- /dev/null +++ b/models/weapons/g_fireball_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_fireball_simple \ No newline at end of file diff --git a/models/weapons/g_fireball_simple.tga b/models/weapons/g_fireball_simple.tga new file mode 100644 index 000000000..2632b7640 Binary files /dev/null and b/models/weapons/g_fireball_simple.tga differ diff --git a/models/weapons/g_gl_simple.tga b/models/weapons/g_gl_simple.tga index e138aa42e..114c6f25f 100644 Binary files a/models/weapons/g_gl_simple.tga and b/models/weapons/g_gl_simple.tga differ diff --git a/models/weapons/g_hagar_simple.tga b/models/weapons/g_hagar_simple.tga index 4c82e4bee..fb99dea73 100644 Binary files a/models/weapons/g_hagar_simple.tga and b/models/weapons/g_hagar_simple.tga differ diff --git a/models/weapons/g_hlac_simple.iqm b/models/weapons/g_hlac_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_hlac_simple.iqm differ diff --git a/models/weapons/g_hlac_simple.iqm_0.skin b/models/weapons/g_hlac_simple.iqm_0.skin new file mode 100644 index 000000000..020dcc12a --- /dev/null +++ b/models/weapons/g_hlac_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_hlac_simple \ No newline at end of file diff --git a/models/weapons/g_hlac_simple.tga b/models/weapons/g_hlac_simple.tga new file mode 100644 index 000000000..6d2302c21 Binary files /dev/null and b/models/weapons/g_hlac_simple.tga differ diff --git a/models/weapons/g_hookgun_simple.iqm b/models/weapons/g_hookgun_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_hookgun_simple.iqm differ diff --git a/models/weapons/g_hookgun_simple.iqm_0.skin b/models/weapons/g_hookgun_simple.iqm_0.skin new file mode 100644 index 000000000..2c8bd5fff --- /dev/null +++ b/models/weapons/g_hookgun_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_hookgun_simple \ No newline at end of file diff --git a/models/weapons/g_hookgun_simple.tga b/models/weapons/g_hookgun_simple.tga new file mode 100644 index 000000000..be44b817f Binary files /dev/null and b/models/weapons/g_hookgun_simple.tga differ diff --git a/models/weapons/g_laser_simple.iqm b/models/weapons/g_laser_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_laser_simple.iqm differ diff --git a/models/weapons/g_laser_simple.iqm_0.skin b/models/weapons/g_laser_simple.iqm_0.skin new file mode 100644 index 000000000..02e24bc1e --- /dev/null +++ b/models/weapons/g_laser_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_laser_simple \ No newline at end of file diff --git a/models/weapons/g_laser_simple.tga b/models/weapons/g_laser_simple.tga new file mode 100644 index 000000000..66223a342 Binary files /dev/null and b/models/weapons/g_laser_simple.tga differ diff --git a/models/weapons/g_minelayer_simple.iqm b/models/weapons/g_minelayer_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_minelayer_simple.iqm differ diff --git a/models/weapons/g_minelayer_simple.iqm_0.skin b/models/weapons/g_minelayer_simple.iqm_0.skin new file mode 100644 index 000000000..f9d4b61a7 --- /dev/null +++ b/models/weapons/g_minelayer_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_minelayer_simple \ No newline at end of file diff --git a/models/weapons/g_minelayer_simple.tga b/models/weapons/g_minelayer_simple.tga new file mode 100644 index 000000000..dfba264e4 Binary files /dev/null and b/models/weapons/g_minelayer_simple.tga differ diff --git a/models/weapons/g_minstanex_simple.iqm b/models/weapons/g_minstanex_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_minstanex_simple.iqm differ diff --git a/models/weapons/g_minstanex_simple.iqm_0.skin b/models/weapons/g_minstanex_simple.iqm_0.skin new file mode 100644 index 000000000..3a255b4aa --- /dev/null +++ b/models/weapons/g_minstanex_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_minstanex_simple \ No newline at end of file diff --git a/models/weapons/g_minstanex_simple.tga b/models/weapons/g_minstanex_simple.tga new file mode 100644 index 000000000..68bf31157 Binary files /dev/null and b/models/weapons/g_minstanex_simple.tga differ diff --git a/models/weapons/g_nex_simple.tga b/models/weapons/g_nex_simple.tga index 27c984f8a..a254e962d 100644 Binary files a/models/weapons/g_nex_simple.tga and b/models/weapons/g_nex_simple.tga differ diff --git a/models/weapons/g_porto_simple.iqm b/models/weapons/g_porto_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_porto_simple.iqm differ diff --git a/models/weapons/g_porto_simple.iqm_0.skin b/models/weapons/g_porto_simple.iqm_0.skin new file mode 100644 index 000000000..944e14a95 --- /dev/null +++ b/models/weapons/g_porto_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_porto_simple \ No newline at end of file diff --git a/models/weapons/g_porto_simple.tga b/models/weapons/g_porto_simple.tga new file mode 100644 index 000000000..aa6f6cd9b Binary files /dev/null and b/models/weapons/g_porto_simple.tga differ diff --git a/models/weapons/g_rl_simple.tga b/models/weapons/g_rl_simple.tga index d65fa8788..2ac19c8f5 100644 Binary files a/models/weapons/g_rl_simple.tga and b/models/weapons/g_rl_simple.tga differ diff --git a/models/weapons/g_seeker_simple.iqm b/models/weapons/g_seeker_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_seeker_simple.iqm differ diff --git a/models/weapons/g_seeker_simple.iqm_0.skin b/models/weapons/g_seeker_simple.iqm_0.skin new file mode 100644 index 000000000..5123515ae --- /dev/null +++ b/models/weapons/g_seeker_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_seeker_simple \ No newline at end of file diff --git a/models/weapons/g_seeker_simple.tga b/models/weapons/g_seeker_simple.tga new file mode 100644 index 000000000..322ee53fe Binary files /dev/null and b/models/weapons/g_seeker_simple.tga differ diff --git a/models/weapons/g_shotgun_simple.tga b/models/weapons/g_shotgun_simple.tga index 37da2f862..3c120c89a 100644 Binary files a/models/weapons/g_shotgun_simple.tga and b/models/weapons/g_shotgun_simple.tga differ diff --git a/models/weapons/g_tuba_simple.iqm b/models/weapons/g_tuba_simple.iqm new file mode 100644 index 000000000..a5cc3e602 Binary files /dev/null and b/models/weapons/g_tuba_simple.iqm differ diff --git a/models/weapons/g_tuba_simple.iqm_0.skin b/models/weapons/g_tuba_simple.iqm_0.skin new file mode 100644 index 000000000..3fd8bd8de --- /dev/null +++ b/models/weapons/g_tuba_simple.iqm_0.skin @@ -0,0 +1 @@ +Plane,g_tuba_simple \ No newline at end of file diff --git a/models/weapons/g_tuba_simple.tga b/models/weapons/g_tuba_simple.tga new file mode 100644 index 000000000..8af65e06f Binary files /dev/null and b/models/weapons/g_tuba_simple.tga differ diff --git a/models/weapons/g_uzi_simple.tga b/models/weapons/g_uzi_simple.tga index d9b5df404..55d68cd93 100644 Binary files a/models/weapons/g_uzi_simple.tga and b/models/weapons/g_uzi_simple.tga differ diff --git a/models/weapons/make-sprites.sh b/models/weapons/make-sprites.sh new file mode 100755 index 000000000..50f3fc672 --- /dev/null +++ b/models/weapons/make-sprites.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +baseline=20 + +sprite() +{ + name=$1 + text=$(echo $2) # Handle newlines + color=$3 + + echo $name + + # Text + exec {FD}< <(convert \ + -size 185x120 \ + -background transparent \ + -fill "#$color" \ + -font BigNoodleTitling \ + -interline-spacing -15 \ + -gravity south \ + label:"$text" \ + -trim \ + png:-) + itext=$FD + + # Rectangles + + # Thick + xa1=34 + xa2=$((xa1+185-1)) + ya1=174 + ya2=$((ya1+37-1)) + + # Thin + xb1=34 + xb2=$((xb1+185-1)) + yb1=224 + yb2=$((yb1+15-1)) + + exec {FD}< <(convert \ + -size 256x256 \ + -background transparent \ + -fill "#$color" \ + xc:none \ + -draw "rectangle $xa1,$ya1 $xa2,$ya2" \ + -draw "rectangle $xb1,$yb1 $xb2,$yb2" \ + png:-) + irects=$FD + + # Join + + composite \ + -gravity south \ + -geometry -2+$((82+$baseline)) \ + -compress RLE \ + png:fd:$itext png:fd:$irects g_${name}_simple.tga +} + +# grep '* color' ../../qcsrc/common/weapons/w_*.qc | awk '{ print $1 " \t" $4 " " $5 " " $6 }' +# def h(r,g,b): return '#{:02x}{:02x}{:02x}'.format(int(round(r*255)),int(round(g*255)),int(round(b*255))) +sprite arc "Arc" ffffff # White +sprite laser "Blaster" ff8080 # Vivid Tangerine +sprite crylink "Crylink" ff80ff # Blush Pink +sprite rl "Devastator" ffff00 # Yellow +sprite electro "Electro" 0080ff # Azure Radiance +sprite fireball "Fireball" ff8000 # Flush Orange +sprite hagar "Hagar" ffff80 # Dolly +sprite hlac "HLAC" 00ff00 # Green +sprite hookgun "Grappling\nHook" 008000 # Japanese Laurel +sprite uzi "Machine\nGun" ffff00 # Yellow +sprite minelayer "Mine\nLayer" bfff00 # Lime +sprite gl "Mortar" ff0000 # Red +sprite porto "Port-O-Launch" 808080 # Gray +sprite campingrifle "Rifle" 80ff00 # Chartreuse +sprite seeker "T.A.G.\nSeeker" 80ff00 # Chartreuse +#sprite shockwave "Shockwave" 804000 # Cinnamon +sprite shotgun "Shotgun" 804000 # Cinnamon +sprite tuba "Tuba" 00ff00 # Green +sprite minstanex "Vaporizer" 80ffff # Anakiwa +sprite nex "Vortex" 80ffff # Anakiwa diff --git a/qcsrc/menu/classes.c b/qcsrc/menu/classes.c index ee1ce5d31..46d0c0269 100644 --- a/qcsrc/menu/classes.c +++ b/qcsrc/menu/classes.c @@ -113,3 +113,4 @@ #include "xonotic/dialog_hudpanel_centerprint.c" #include "xonotic/dialog_hudpanel_buffs.c" #include "xonotic/slider_picmip.c" +#include "xonotic/slider_particles.c" diff --git a/qcsrc/menu/xonotic/dialog_settings_effects.c b/qcsrc/menu/xonotic/dialog_settings_effects.c index e3b562ee3..c56d972d9 100644 --- a/qcsrc/menu/xonotic/dialog_settings_effects.c +++ b/qcsrc/menu/xonotic/dialog_settings_effects.c @@ -47,8 +47,7 @@ void XonoticEffectsSettingsTab_fill(entity me) if(cvar("developer")) me.TD(me, 1, 5 / n, e = makeXonoticCommandButton(ZCTX(_("PRE^Ultimate")), '0.5 0 0', "exec effects-ultimate.cfg", 0)); - me.TR(me); - me.TR(me); + me.gotoRC(me, 1.25, 0); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Geometry detail:"))); me.TD(me, 1, 2, e = makeXonoticTextSlider("r_subdivisions_tolerance")); e.addValue(e, ZCTX(_("DET^Lowest")), "16"); @@ -60,7 +59,13 @@ void XonoticEffectsSettingsTab_fill(entity me) e.configureXonoticTextSliderValues(e); me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Player detail:"))); - me.TD(me, 1, 2, e = makeXonoticSlider(4, 0, -0.1, "cl_playerdetailreduction")); + me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_playerdetailreduction")); + e.addValue(e, ZCTX(_("PDET^Low")), "4"); + e.addValue(e, ZCTX(_("PDET^Medium")), "3"); + e.addValue(e, ZCTX(_("PDET^Normal")), "2"); + e.addValue(e, ZCTX(_("PDET^Good")), "1"); + e.addValue(e, ZCTX(_("PDET^Best")), "0"); + e.configureXonoticTextSliderValues(e); me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Texture resolution:"))); setDependent(e, "r_showsurfaces", 0, 0); @@ -126,23 +131,23 @@ void XonoticEffectsSettingsTab_fill(entity me) setDependentAND(e, "vid_gl20", 1, 1, "r_water", 1, 1); me.TR(me); me.TR(me); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Particles quality:"))); - me.TD(me, 1, 2, e = makeXonoticSlider(0.2, 1.0, 0.1, "cl_particles_quality")); - me.TR(me); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Particles distance:"))); - me.TD(me, 1, 2, e = makeXonoticSlider(500, 2000, 100, "r_drawparticles_drawdistance")); + me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_decals", _("Decals"))); + me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "cl_decals_models", _("Decals on models"))); + setDependent(e, "cl_decals", 1, 1); me.TR(me); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Damage effects:"))); - me.TD(me, 1, 2, e = makeXonoticTextSlider("cl_damageeffect")); - e.addValue(e, ZCTX(_("DMGPRTCLS^Disabled")), "0"); - e.addValue(e, ZCTX(_("DMGPRTCLS^Skeletal")), "1"); - e.addValue(e, ZCTX(_("DMGPRTCLS^All")), "2"); - e.configureXonoticTextSliderValues(e); + me.TDempty(me, 0.2); + me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Distance:"))); + setDependent(e, "cl_decals", 1, 1); + me.TD(me, 1, 2, e = makeXonoticSlider(200, 500, 20, "r_drawdecals_drawdistance")); + setDependent(e, "cl_decals", 1, 1); me.TR(me); - me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_spawn_point_particles", _("Particle effects for spawnpoints"))); - makeMulti(e, "cl_spawn_event_particles"); + me.TDempty(me, 0.2); + me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Time:"))); + setDependent(e, "cl_decals", 1, 1); + me.TD(me, 1, 2, e = makeXonoticSlider(1, 20, 1, "cl_decals_fadetime")); + setDependent(e, "cl_decals", 1, 1); - me.gotoRC(me, 2, 3.2); me.setFirstColumn(me, me.currentColumn); + me.gotoRC(me, 1.25, 3.2); me.setFirstColumn(me, me.currentColumn); me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "r_coronas", "0", _("No dynamic lighting"))); me.TR(me); me.TD(me, 1, 3, e = makeXonoticRadioButton(1, "gl_flashblend", string_null, _("Fake corona lighting"))); @@ -180,21 +185,28 @@ void XonoticEffectsSettingsTab_fill(entity me) me.TD(me, 1, 2, s); me.TR(me); me.TR(me); - me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "cl_decals", _("Decals"))); - me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "cl_decals_models", _("Decals on models"))); - setDependent(e, "cl_decals", 1, 1); + 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"))); + makeMulti(e, "cl_spawn_event_particles"); + setDependent(e, "cl_particles", 1, 1); me.TR(me); + me.TDempty(me, 0.2); + me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Quality:"))); + setDependent(e, "cl_particles", 1, 1); + me.TD(me, 1, 2, e = makeXonoticParticlesSlider()); + setDependent(e, "cl_particles", 1, 1); + me.TR(me); me.TDempty(me, 0.2); me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Distance:"))); setDependent(e, "cl_decals", 1, 1); me.TD(me, 1, 2, e = makeXonoticSlider(200, 500, 20, "r_drawdecals_drawdistance")); setDependent(e, "cl_decals", 1, 1); - me.TR(me); + me.TR(me); me.TDempty(me, 0.2); - me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Time:"))); - setDependent(e, "cl_decals", 1, 1); - me.TD(me, 1, 2, e = makeXonoticSlider(1, 20, 1, "cl_decals_fadetime")); - setDependent(e, "cl_decals", 1, 1); + me.TD(me, 1, 0.8, e = makeXonoticTextLabel(0, _("Time:"))); + setDependent(e, "cl_decals", 1, 1); + me.TD(me, 1, 2, e = makeXonoticSlider(1, 20, 1, "cl_decals_fadetime")); + setDependent(e, "cl_decals", 1, 1); me.gotoRC(me, me.rows - 1, 0); me.TD(me, 1, me.columns, makeXonoticCommandButton(_("Apply immediately"), '0 0 0', "vid_restart", COMMANDBUTTON_APPLY)); diff --git a/qcsrc/menu/xonotic/slider_particles.c b/qcsrc/menu/xonotic/slider_particles.c new file mode 100644 index 000000000..db29f556d --- /dev/null +++ b/qcsrc/menu/xonotic/slider_particles.c @@ -0,0 +1,48 @@ +#ifdef INTERFACE +CLASS(XonoticParticlesSlider) EXTENDS(XonoticTextSlider) + METHOD(XonoticParticlesSlider, configureXonoticParticlesSlider, void(entity)) + METHOD(XonoticParticlesSlider, loadCvars, void(entity)) + METHOD(XonoticParticlesSlider, saveCvars, void(entity)) +ENDCLASS(XonoticParticlesSlider) +entity makeXonoticParticlesSlider(); +#endif + +#ifdef IMPLEMENTATION +entity makeXonoticParticlesSlider() +{ + entity me; + me = spawnXonoticParticlesSlider(); + me.configureXonoticParticlesSlider(me); + return me; +} +void XonoticParticlesSlider_configureXonoticParticlesSlider(entity me) +{ + me.configureXonoticTextSlider(me, "cl_particles_quality"); + if(cvar("developer")) { me.addValue(me, ZCTX(_("PART^OMG")), "0.4 250 0"); } + me.addValue(me, ZCTX(_("PART^Low")), "0.4 500 0"); + me.addValue(me, ZCTX(_("PART^Medium")), "0.8 750 0"); + me.addValue(me, ZCTX(_("PART^Normal")), "1.0 1000 1"); + me.addValue(me, ZCTX(_("PART^High")), "1.0 1500 1"); + me.addValue(me, ZCTX(_("PART^Ultra")), "1.0 2000 2"); + if(cvar("developer")) { me.addValue(me, ZCTX(_("PART^Ultimate")), "1.0 3000 2"); } + me.configureXonoticTextSliderValues(me); +} +void XonoticParticlesSlider_loadCvars(entity me) +{ + me.setValueFromIdentifier(me, sprintf("%s %s %s", + cvar_string("cl_particles_quality"), + cvar_string("r_drawparticles_drawdistance"), + cvar_string("cl_damageeffect") + )); +} +void XonoticParticlesSlider_saveCvars(entity me) +{ + if(me.value >= 0 || me.value < me.nValues) + { + tokenize_console(me.getIdentifier(me)); + cvar_set("cl_particles_quality", argv(0)); + cvar_set("r_drawparticles_drawdistance", argv(1)); + cvar_set("cl_damageeffect", argv(2)); + } +} +#endif diff --git a/scripts/simpleitems.shader b/scripts/simpleitems.shader index 69376e860..92e9e5aff 100644 --- a/scripts/simpleitems.shader +++ b/scripts/simpleitems.shader @@ -53,6 +53,19 @@ a_shells_simple // shells ////////// WEAPONS ////////// +g_arc_simple // arc +{ + deformVertexes autosprite + cull none + nopicmip + + { + map models/weapons/g_arc_simple + blendfunc blend + + } +} + g_crylink_simple // crylink { deformVertexes autosprite @@ -79,7 +92,7 @@ g_electro_simple // electro } } -g_nex_simple // nex +g_nex_simple // vortex { deformVertexes autosprite cull none @@ -118,7 +131,7 @@ g_gl_simple // mortar } } -g_rl_simple // rocket launcher +g_rl_simple // devastator { deformVertexes autosprite cull none @@ -157,19 +170,6 @@ g_uzi_simple // machine gun } } -g_uzi_simple // machine gun -{ - deformVertexes autosprite - cull none - nopicmip - - { - map models/weapons/g_uzi_simple - blendfunc blend - - } -} - g_campingrifle_simple // sniper rifle { deformVertexes autosprite @@ -222,7 +222,7 @@ g_hookgun_simple // hook gun } } -g_laser_simple // laser +g_laser_simple // blaster { deformVertexes autosprite cull none @@ -248,7 +248,7 @@ g_minelayer_simple // minelayer } } -g_minstanex_simple // minstanex +g_minstanex_simple // vaporizer { deformVertexes autosprite cull none @@ -475,4 +475,4 @@ g_fuelregen_simple // fuel regen powerup blendfunc blend } -} \ No newline at end of file +}