Merge branch 'master' into mirceakitsune/sandbox
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sat, 5 Nov 2011 22:26:41 +0000 (00:26 +0200)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Sat, 5 Nov 2011 22:26:41 +0000 (00:26 +0200)
1  2 
defaultXonotic.cfg
qcsrc/server/autocvars.qh
qcsrc/server/miscfunctions.qc

diff --combined defaultXonotic.cfg
@@@ -544,36 -544,6 +544,36 @@@ set g_player_alpha 
  set g_player_brightness 0     "set to 2 for brighter players"
  seta g_balance_cloaked_alpha 0.25
  
 +set g_sandbox 0 "allow players to spawn and edit objects around the map"
 +set g_sandbox_info 1 "print object information to the server. 1 prints info about spawned / removed objects, 2 also prints info about edited objects"
 +set g_sandbox_storage_name default "name of the selected storage to use"
 +set g_sandbox_storage_autosave 5 "storage is automatically saved every specified number of seconds"
 +set g_sandbox_storage_autoload 1 "if a storage file exists for the given map, automatically load it at startup"
 +set g_sandbox_editor_maxobjects 1000 "maximum number of objects that may exist at a time"
 +set g_sandbox_editor_free 1 "0 = players can only copy or edit their own objects, 1 = players can copy but not edit other objects, 2 = players can copy and edit all object"
 +set g_sandbox_editor_distance_spawn 200 "distance at which objects spawn in front of the player"
 +set g_sandbox_editor_distance_edit 350 "distance at which players can edit or remove objects they are looking at"
 +set g_sandbox_object_scale_min 0.1 "minimum scale that objects can be set to"
 +set g_sandbox_object_scale_max 2 "maximum scale that objects can be set to"
 +set g_sandbox_object_material_velocity_min 100 "velocity objects must have while colliding for material effects to be applied"
 +set g_sandbox_object_material_velocity_factor 0.002 "velocity range which decides the intensity of material effects"
 +set cl_sandbox_clipboard ""
 +
 +seta menu_sandbox_spawn_model ""
 +seta menu_sandbox_attach_bone ""
 +seta menu_sandbox_edit_skin 0
 +seta menu_sandbox_edit_alpha 1
 +seta menu_sandbox_edit_color_main "1 1 1"
 +seta menu_sandbox_edit_color_glow "1 1 1"
 +seta menu_sandbox_edit_frame 0
 +seta menu_sandbox_edit_scale 1
 +seta menu_sandbox_edit_physics 1
 +seta menu_sandbox_edit_force 1
 +seta menu_sandbox_edit_material ""
 +
 +alias menu_showsandboxtools "menu_cmd directmenu SandboxTools"
 +bind f7 menu_showsandboxtools
 +
  set g_playerclip_collisions 1 "0 = disable collision testing against playerclips, might be useful on some defrag maps"
  set g_botclip_collisions 1 "0 = disable collision testing against botclips, might be useful on some defrag maps"
  
@@@ -987,10 -957,11 +987,11 @@@ cl_sound_ric3 weapons/ric3.wa
  cl_sound_r_exp3 ""
  sv_sound_land ""
  sv_sound_watersplash ""
- seta cl_sound_maptime_warning "1" "play announcer sound telling you the remaining maptime - 0: do not play at all, 1: play at one minute, 2: play at five minutes, 3: play both"
- seta cl_notify_carried_items "3" "notify you of carried items when you obtain them (e.g. flags in CTF) - 0: disabled, 1: notify of taken items, 2: notify of picking up dropped items, 3: notify of both"
  
  seta cl_announcer default "name of the announcer you wish to use from data/sound/announcer"
+ seta cl_announcer_antispam 2 "number of seconds before an announcement of the same sound can be played again"
+ seta cl_announcer_maptime 3 "play announcer sound telling you the remaining maptime - 0: do not play at all, 1: play at one minute, 2: play at five minutes, 3: play both"
+ seta cl_notify_carried_items "3" "notify you of carried items when you obtain them (e.g. flags in CTF) - 0: disabled, 1: notify of taken items, 2: notify of picking up dropped items, 3: notify of both"
  
  // startmap_dm is used when running with the -listen or -dedicated commandline options
  set serverconfig server.cfg
@@@ -1026,8 -997,6 +1027,8 @@@ alias togglezoom "${_togglezoom}zoom
  
  alias reload "impulse 20"
  
 +alias sandbox "cmd g_sandbox $*"
 +
  // movement
  bind w +forward
  bind a +moveleft
@@@ -1074,7 -1043,6 +1075,7 @@@ bind r reloa
  bind BACKSPACE dropweapon
  bind g dropweapon
  bind f +use
 +bind v +button8 // drag object
  
  // misc
  bind e +hook
@@@ -1921,6 -1889,7 +1922,7 @@@ set _campaign_name "
  
  // debug
  set _independent_players 0 "DO NOT TOUCH"
+ set _notarget 0 "NO, REALLY, DON'T"
  
  // define some engine cvars that we need even on dedicated server
  set r_showbboxes 0
@@@ -2080,6 -2049,9 +2082,9 @@@ set g_weapon_charge_colormod_blue_full 
  set g_playerstats_uri ""
  set g_playerstats_debug 0 "when 1, player stats are dumped to the console too"
  
+ // session locking
+ locksession 1
  // create this cvar in case the engine did not
  set snd_soundradius 1200
  set snd_softclip 1
@@@ -1,3 -1,4 +1,4 @@@
+ float autocvar__notarget;
  float autocvar__independent_players;
  float autocvar__campaign_index;
  string autocvar__campaign_name;
@@@ -701,6 -702,7 +702,7 @@@ float autocvar_g_balance_uzi_burst_spre
  float autocvar_g_balance_uzi_first;
  float autocvar_g_balance_uzi_first_ammo;
  float autocvar_g_balance_uzi_first_damage;
+ float autocvar_g_balance_uzi_first_headshotaddeddamage;
  float autocvar_g_balance_uzi_first_force;
  float autocvar_g_balance_uzi_first_refire;
  float autocvar_g_balance_uzi_first_spread;
@@@ -711,6 -713,7 +713,7 @@@ float autocvar_g_balance_uzi_spread_max
  float autocvar_g_balance_uzi_spread_min;
  float autocvar_g_balance_uzi_sustained_ammo;
  float autocvar_g_balance_uzi_sustained_damage;
+ float autocvar_g_balance_uzi_sustained_headshotaddeddamage;
  float autocvar_g_balance_uzi_sustained_force;
  float autocvar_g_balance_uzi_sustained_refire;
  float autocvar_g_balance_uzi_sustained_spread;
@@@ -1057,6 -1060,7 +1060,7 @@@ float autocvar_quit_when_empty
  float autocvar_r_showbboxes;
  float autocvar_rescan_pending;
  float autocvar_samelevel;
+ string autocvar_sessionid;
  #define autocvar_skill cvar("skill")
  float autocvar_skill_auto;
  #define autocvar_slowmo cvar("slowmo")
@@@ -1199,15 -1203,3 +1203,15 @@@ float autocvar_sv_gameplayfix_gravityun
  float autocvar_g_trueaim_minrange;
  float autocvar_g_debug_defaultsounds;
  float autocvar_g_loituma;
 +float autocvar_g_sandbox_info;
 +string autocvar_g_sandbox_storage_name;
 +float autocvar_g_sandbox_storage_autosave;
 +float autocvar_g_sandbox_storage_autoload;
 +float autocvar_g_sandbox_editor_maxobjects;
 +float autocvar_g_sandbox_editor_free;
 +float autocvar_g_sandbox_editor_distance_spawn;
 +float autocvar_g_sandbox_editor_distance_edit;
 +float autocvar_g_sandbox_object_scale_min;
 +float autocvar_g_sandbox_object_scale_max;
 +float autocvar_g_sandbox_object_material_velocity_min;
 +float autocvar_g_sandbox_object_material_velocity_factor;
@@@ -8,21 -8,6 +8,21 @@@ void crosshair_trace(entity pl
  {
        traceline_antilag(pl, pl.cursor_trace_start, pl.cursor_trace_start + normalize(pl.cursor_trace_endpos - pl.cursor_trace_start) * MAX_SHOT_DISTANCE, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl));
  }
 +void crosshair_trace_plusvisibletriggers(entity pl)
 +{
 +      entity first;
 +      entity e;
 +      first = findchainfloat(solid, SOLID_TRIGGER);
 +
 +      for (e = first; e; e = e.chain)
 +              if (e.model != "")
 +                      e.solid = SOLID_BSP;
 +
 +      crosshair_trace(pl);
 +
 +      for (e = first; e; e = e.chain)
 +              e.solid = SOLID_TRIGGER;
 +}
  void WarpZone_traceline_antilag (entity source, vector v1, vector v2, float nomonst, entity forent, float lag);
  void WarpZone_crosshair_trace(entity pl)
  {
@@@ -1101,8 -1086,6 +1101,8 @@@ void readlevelcvars(void
                MUTATOR_ADD(mutator_rocketflying);
        if(cvar("g_vampire"))
                MUTATOR_ADD(mutator_vampire);
 +      if(cvar("g_sandbox"))
 +              MUTATOR_ADD(sandbox);
  
        if(cvar("sv_allow_fullbright"))
                serverflags |= SERVERFLAG_ALLOW_FULLBRIGHT;
@@@ -2054,7 -2037,19 +2054,19 @@@ void print_to(entity e, string s
  
  string uid2name(string myuid) {
        string s;
-       s = db_get(ServerProgsDB, strcat("uid2name", myuid));
+       s = db_get(ServerProgsDB, strcat("/uid2name/", myuid));
+       // FIXME remove this later after 0.6 release
+       // convert old style broken records to correct style
+       if(s == "")
+       {
+               s = db_get(ServerProgsDB, strcat("uid2name", myuid));
+               if(s != "")
+               {
+                       db_put(ServerProgsDB, strcat("/uid2name/", myuid), s);
+                       db_put(ServerProgsDB, strcat("uid2name", myuid), "");
+               }
+       }
        
        if(s == "")
                s = "^1Unregistered Player";