Merge branch 'master' into terencehill/misc_bugfixes
authorterencehill <piuntn@gmail.com>
Sun, 4 Jul 2010 23:08:29 +0000 (01:08 +0200)
committerterencehill <piuntn@gmail.com>
Sun, 4 Jul 2010 23:08:29 +0000 (01:08 +0200)
37 files changed:
defaultXonotic.cfg
gfx/reticle_nex.tga [new file with mode: 0644]
gfx/reticle_normal.tga [new file with mode: 0644]
hook-firing_swap.cfg [new file with mode: 0644]
keybinds.txt
models/player/erebus_lod1.iqm [new file with mode: 0644]
models/player/erebus_lod1.iqm.framegroups [new file with mode: 0644]
models/player/erebus_lod2.iqm [new file with mode: 0644]
models/player/erebus_lod2.iqm.framegroups [new file with mode: 0644]
models/player/ignis_lod1.iqm [new file with mode: 0644]
models/player/ignis_lod1.iqm.framegroups [new file with mode: 0644]
models/player/ignis_lod2.iqm [new file with mode: 0644]
models/player/ignis_lod2.iqm.framegroups [new file with mode: 0644]
models/player/ignishalfmasked_lod1.iqm.framegroups [new file with mode: 0644]
models/player/ignishalfmasked_lod2.iqm.framegroups [new file with mode: 0644]
models/player/ignismasked_lod1.iqm [new file with mode: 0644]
models/player/ignismasked_lod1.iqm.framegroups [new file with mode: 0644]
models/player/ignismasked_lod2.iqm [new file with mode: 0644]
models/player/ignismasked_lod2.iqm.framegroups [new file with mode: 0644]
models/player/pyria_lod1.iqm [deleted file]
models/player/pyria_lod2.iqm [deleted file]
models/player/seraphina_lod1.iqm [new file with mode: 0644]
models/player/seraphina_lod1.iqm.framegroups [new file with mode: 0644]
models/player/seraphina_lod2.iqm [new file with mode: 0644]
models/player/seraphina_lod2.iqm.framegroups [new file with mode: 0644]
models/player/seraphinamasked_lod1.iqm [new file with mode: 0644]
models/player/seraphinamasked_lod1.iqm.framegroups [new file with mode: 0644]
models/player/seraphinamasked_lod2.iqm [new file with mode: 0644]
models/player/seraphinamasked_lod2.iqm.framegroups [new file with mode: 0644]
models/weapons/h_campingrifle.iqm
models/weapons/h_electro.iqm
qcsrc/client/Main.qc
qcsrc/client/View.qc
qcsrc/common/items.qc
qcsrc/server/clientcommands.qc
qcsrc/server/g_world.qc
qcsrc/server/miscfunctions.qc

index f5e2b3e..b42917b 100644 (file)
@@ -206,6 +206,9 @@ seta crosshair_fireball_color_green 1.0     "crosshair color green component to disp
 seta crosshair_fireball_color_blue 0.2 "crosshair color blue component to display when wielding the fireball"
 seta crosshair_fireball_color_alpha 1  "crosshair alpha value to display when wielding the fireball"
 seta crosshair_fireball_size 1 "crosshair size when wielding the fireball"
+seta cl_reticle_stretch 0 "whether to stretch reticles so they fit the screen (brakes image proportions)"
+seta cl_reticle_item_nex 1 "draw aiming recticle for the nex weapon's zoom, 0 disables and values between 0 and 1 change alpha"
+seta cl_reticle_item_normal 1 "draw recticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha"
 fov 90
 seta cl_velocityzoom 0 "velocity based zooming of fov, negative values zoom out"
 seta cl_velocityzoomtime 0.3   "time value for averaging speed values"
@@ -501,7 +504,6 @@ set g_laserguided_missile 0 "if set to 1 the rockets of the rocket launcher can
 set g_midair 0 "if set to 1 you can only apply damage to your opponent while he is airborne"
 set g_midair_shieldtime 0.3 "number of seconds you are still invincible since you lost contact to the ground"
 set g_spawnsound 1 "set to 0 if you don't want to hear the spawn sound when a player spawns"
-set g_spawnpoints_autodrop 0 "if set to 1, automatically drop spawn point locations if they were placed too high"
 set g_spawnpoints_auto_move_out_of_solid 0 "if set to 1 you will see a warning if a spawn point was placed inside a solid"
 set g_forced_respawn 0 "if set to 1 and a player died, that player gets automatically respawned once <g_respawn_delay> seconds are over"
 set g_fullbrightplayers 0 "brightens up player models (note that the color, skin or model of the players does not change!)"
@@ -547,6 +549,7 @@ set sv_dodging_wall_distance_threshold 10 "the maximum distance from a wall that
 set sv_dodging_sound 1 "if 1 dodging makes a sound. if 0 dodging is silent"
 
 set leadlimit 0
+set leadlimit_and_fraglimit 0 "if set, leadlimit is ANDed with fraglimit (otherwise ORed)"
 
 // this means that timelimit can be overidden globally and fraglimit can be overidden for each game mode: DM/TDM, Domination, CTF, and Runematch.
 seta timelimit_override -1     "Time limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
@@ -910,8 +913,12 @@ alias sv_loadconfig "exec $serverconfig"
 alias sv_restart "say \"Server will restart at the end of the match, you will all be reconnected automatically. $* \"; quit_and_redirect self"
 
 // aliases:
-alias +attack2 +button3
-alias -attack2 -button3
+alias +fire +attack
+alias -fire -attack
+alias +fire2 +button3
+alias -fire2 -button3
+alias +attack2 +button3 // old alias from Nexuiz
+alias -attack2 -button3 // old alias name from Nexuiz
 alias +zoom +button4
 alias -zoom -button4
 alias +crouch +button5
@@ -954,8 +961,8 @@ bind 8 "impulse 8"
 bind 9 "impulse 9"
 bind 0 "impulse 14" // cycles the superweapons
 bind q weaplast
-bind MOUSE1 +attack
-bind MOUSE2 +attack2
+bind MOUSE1 +fire
+bind MOUSE2 +fire2
 bind MOUSE3 +zoom
 bind MOUSE4 weaplast
 bind MOUSE5 +hook
@@ -989,8 +996,8 @@ bind JOY1 "+crouch"
 bind JOY2 "+jump"
 bind JOY3 "weapprev"
 bind JOY4 "weapnext"
-bind JOY5 "+attack2"
-bind JOY6 "+attack"
+bind JOY5 "+fire2"
+bind JOY6 "+fire"
 bind JOY7 "+zoom"
 bind JOY8 "dropweapon"
 bind JOY9 "menu_showteamselect"
@@ -1690,6 +1697,7 @@ alias cl_hook_gamestart_rc
 alias cl_hook_gamestart_nexball
 alias cl_hook_gamestart_cts
 alias cl_hook_gameend
+alias cl_hook_activeweapon
 
 alias _sv_hook_gamestart "set _sv_hook_gametype $1; _sv_hook_gamestart_stage2"
 alias _sv_hook_gamestart_stage2 "sv_hook_gamestart_all; sv_hook_gamestart_${_sv_hook_gametype}"
diff --git a/gfx/reticle_nex.tga b/gfx/reticle_nex.tga
new file mode 100644 (file)
index 0000000..3e0c142
Binary files /dev/null and b/gfx/reticle_nex.tga differ
diff --git a/gfx/reticle_normal.tga b/gfx/reticle_normal.tga
new file mode 100644 (file)
index 0000000..8b82ea8
Binary files /dev/null and b/gfx/reticle_normal.tga differ
diff --git a/hook-firing_swap.cfg b/hook-firing_swap.cfg
new file mode 100644 (file)
index 0000000..e556db7
--- /dev/null
@@ -0,0 +1,57 @@
+// This script allows swapping the primary and secondary fire buttons for any weapon
+//
+// To install, add
+//   exec hook-firing_swap.cfg
+// to your autoexec.cfg
+
+// NOTE: if combined with other scripts that also hook cl_hook_activeweapon, do
+//   alias cl_hook_activeweapon "firing_swap $1; commands of other scripts..."
+// after exec'ing them all from your autoexec.cfg
+
+// Set the cvars for each gun
+seta cl_swapattacks_tuba 0
+seta cl_swapattacks_laser 0
+seta cl_swapattacks_shotgun 0
+seta cl_swapattacks_uzi 0
+seta cl_swapattacks_campingrifle 0
+seta cl_swapattacks_grenadelauncher 0
+seta cl_swapattacks_electro 0
+seta cl_swapattacks_hlac 0
+seta cl_swapattacks_crylink 0
+seta cl_swapattacks_minstanex 0
+seta cl_swapattacks_nex 0
+seta cl_swapattacks_hagar 0
+seta cl_swapattacks_seeker 0
+seta cl_swapattacks_fireball 0
+seta cl_swapattacks_rocketlauncher 0
+seta cl_swapattacks_hook 0
+seta cl_swapattacks_porto 0
+
+// This part of the code is necessary to keep us firing when we switch weapons while holding a fire button pressed
+// Also updates the keys before firing, so we don't have to switch to another weapon and back to apply the changes
+set fire_last 0
+set fire2_last 0
+alias +fire "firing_swap_apply $firing_lastweapon; set fire_last 1; +checkattack"
+alias -fire "set fire_last 0; -checkattack"
+alias +fire2 "firing_swap_apply $firing_lastweapon; set fire2_last 1; +checkattack2"
+alias -fire2 "set fire2_last 0; -checkattack2"
+alias firing_switch_attack_0 ""
+alias firing_switch_attack2_0 ""
+alias firing_switch_attack_1 "+fire"
+alias firing_switch_attack2_1 "+fire2"
+alias firing_switch "-fire; -fire2; firing_switch_attack_$fire_last; firing_switch_attack2_$fire2_last;"
+
+// Now apply changes to the key binds and get the weapon we are using
+alias firing_decision_0 "alias +checkattack +attack; alias -checkattack -attack; alias +checkattack2 +attack2; alias -checkattack2 -attack2"
+alias firing_decision_1 "alias +checkattack +attack2; alias -checkattack -attack2; alias +checkattack2 +attack; alias -checkattack2 -attack"
+alias firing_swap_apply "firing_decision_${$1}"
+alias firing_swap "firing_swap_apply cl_swapattacks_$1; set firing_lastweapon cl_swapattacks_$1; firing_switch"
+
+// Not correct, but prevents firing from braking after executing the script until switching weapons
+alias +fire +attack
+alias -fire -attack
+alias +fire2 +attack2
+alias -fire2 -attack2
+
+// install
+alias cl_hook_activeweapon "firing_swap $1"
index 1aee5d8..028547a 100644 (file)
@@ -8,8 +8,8 @@
 "+hook"                                 "off-hand hook / jet pack"
 ""                                      ""
 ""                                      "Attacking"
-"+attack"                               "primary fire"
-"+attack2"                              "secondary fire"
+"+fire"                                 "primary fire"
+"+fire2"                                "secondary fire"
 ""                                      ""
 ""                                      "Weapon switching"
 "weapprev"                              "previous"
diff --git a/models/player/erebus_lod1.iqm b/models/player/erebus_lod1.iqm
new file mode 100644 (file)
index 0000000..21cd3d4
Binary files /dev/null and b/models/player/erebus_lod1.iqm differ
diff --git a/models/player/erebus_lod1.iqm.framegroups b/models/player/erebus_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/erebus_lod2.iqm b/models/player/erebus_lod2.iqm
new file mode 100644 (file)
index 0000000..34e7e80
Binary files /dev/null and b/models/player/erebus_lod2.iqm differ
diff --git a/models/player/erebus_lod2.iqm.framegroups b/models/player/erebus_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/ignis_lod1.iqm b/models/player/ignis_lod1.iqm
new file mode 100644 (file)
index 0000000..38a6b3b
Binary files /dev/null and b/models/player/ignis_lod1.iqm differ
diff --git a/models/player/ignis_lod1.iqm.framegroups b/models/player/ignis_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/ignis_lod2.iqm b/models/player/ignis_lod2.iqm
new file mode 100644 (file)
index 0000000..ac9a406
Binary files /dev/null and b/models/player/ignis_lod2.iqm differ
diff --git a/models/player/ignis_lod2.iqm.framegroups b/models/player/ignis_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/ignishalfmasked_lod1.iqm.framegroups b/models/player/ignishalfmasked_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/ignishalfmasked_lod2.iqm.framegroups b/models/player/ignishalfmasked_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/ignismasked_lod1.iqm b/models/player/ignismasked_lod1.iqm
new file mode 100644 (file)
index 0000000..44633d5
Binary files /dev/null and b/models/player/ignismasked_lod1.iqm differ
diff --git a/models/player/ignismasked_lod1.iqm.framegroups b/models/player/ignismasked_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/ignismasked_lod2.iqm b/models/player/ignismasked_lod2.iqm
new file mode 100644 (file)
index 0000000..a913231
Binary files /dev/null and b/models/player/ignismasked_lod2.iqm differ
diff --git a/models/player/ignismasked_lod2.iqm.framegroups b/models/player/ignismasked_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/pyria_lod1.iqm b/models/player/pyria_lod1.iqm
deleted file mode 100644 (file)
index 5364a05..0000000
Binary files a/models/player/pyria_lod1.iqm and /dev/null differ
diff --git a/models/player/pyria_lod2.iqm b/models/player/pyria_lod2.iqm
deleted file mode 100644 (file)
index 3179c71..0000000
Binary files a/models/player/pyria_lod2.iqm and /dev/null differ
diff --git a/models/player/seraphina_lod1.iqm b/models/player/seraphina_lod1.iqm
new file mode 100644 (file)
index 0000000..d16f225
Binary files /dev/null and b/models/player/seraphina_lod1.iqm differ
diff --git a/models/player/seraphina_lod1.iqm.framegroups b/models/player/seraphina_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/seraphina_lod2.iqm b/models/player/seraphina_lod2.iqm
new file mode 100644 (file)
index 0000000..f6ca53a
Binary files /dev/null and b/models/player/seraphina_lod2.iqm differ
diff --git a/models/player/seraphina_lod2.iqm.framegroups b/models/player/seraphina_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/seraphinamasked_lod1.iqm b/models/player/seraphinamasked_lod1.iqm
new file mode 100644 (file)
index 0000000..5a99524
Binary files /dev/null and b/models/player/seraphinamasked_lod1.iqm differ
diff --git a/models/player/seraphinamasked_lod1.iqm.framegroups b/models/player/seraphinamasked_lod1.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
diff --git a/models/player/seraphinamasked_lod2.iqm b/models/player/seraphinamasked_lod2.iqm
new file mode 100644 (file)
index 0000000..927d56c
Binary files /dev/null and b/models/player/seraphinamasked_lod2.iqm differ
diff --git a/models/player/seraphinamasked_lod2.iqm.framegroups b/models/player/seraphinamasked_lod2.iqm.framegroups
new file mode 100644 (file)
index 0000000..71128c6
--- /dev/null
@@ -0,0 +1,23 @@
+0 36 15.000000 0 // dieone
+36 20 15.000000 0 // dietwo
+56 15 15.000000 1 // draw
+71 20 15.000000 1 // duck
+91 21 30.000000 1 // duckwalk
+112 16 15.000000 0 // duckjump
+128 15 5.000000 1 // duckidle
+143 41 5.000000 1 // idle
+184 21 25.000000 0 // jump
+205 15 15.000000 0 // painone
+220 17 15.000000 0 // paintwo
+237 3 15.000000 1 // shoot
+240 21 15.000000 1 // taunt
+261 21 35.000000 1 // run
+282 21 35.000000 1 // runbackwards
+303 21 35.000000 1 // strafeleft
+324 21 35.000000 1 // straferight
+345 2 15.000000 0 // deadone
+347 2 15.000000 0 // deadtwo
+349 21 35.000000 1 // forwardright
+370 21 35.000000 1 // forwardleft
+391 21 35.000000 1 // backright
+412 21 30.000000 1 // backleft
index 2d4e970..c7da48e 100644 (file)
Binary files a/models/weapons/h_campingrifle.iqm and b/models/weapons/h_campingrifle.iqm differ
index ef0c7e2..8ae8898 100644 (file)
Binary files a/models/weapons/h_electro.iqm and b/models/weapons/h_electro.iqm differ
index b34e843..1a6996c 100644 (file)
@@ -212,9 +212,9 @@ void CSQC_Shutdown(void)
        if not(isdemo())
        {
                if not(calledhooks & HOOK_START)
-                       localcmd("\n_cl_hook_gamestart nop;");
+                       localcmd("\n_cl_hook_gamestart nop\n");
                if not(calledhooks & HOOK_END)
-                       localcmd("\ncl_hook_gameend;");
+                       localcmd("\ncl_hook_gameend\n");
        }
 }
 
@@ -964,7 +964,7 @@ void Gamemode_Init()
 
        if not(isdemo())
        {
-               localcmd("\n_cl_hook_gamestart ", GametypeNameFromType(gametype), ";");
+               localcmd("\n_cl_hook_gamestart ", GametypeNameFromType(gametype), "\n");
                calledhooks |= HOOK_START;
        }
 }
index 1056fd5..0ec4277 100644 (file)
@@ -341,6 +341,7 @@ void CSQC_Demo_Camera();
 float HUD_WouldDrawScoreboard ();
 float view_set;
 float camera_mode;
+float reticle_type;
 string NextFrameCommand;
 void CSQC_SPIDER_HUD();
 void CSQC_RAPTOR_HUD();
@@ -354,6 +355,8 @@ void CSQC_UpdateView(float w, float h)
        float f, i, j;
        vector v, vo;
 
+       vector reticle_pos, reticle_size;
+
        WaypointSprite_Load();
 
        if(spectatee_status)
@@ -432,7 +435,7 @@ void CSQC_UpdateView(float w, float h)
        if(intermission && !isdemo() && !(calledhooks & HOOK_END))
                if(calledhooks & HOOK_START)
                {
-                       localcmd("\ncl_hook_gameend;");
+                       localcmd("\ncl_hook_gameend\n");
                        calledhooks |= HOOK_END;
                }
 
@@ -474,6 +477,13 @@ void CSQC_UpdateView(float w, float h)
        if(last_weapon != activeweapon) {
                weapontime = time;
                last_weapon = activeweapon;
+
+               entity e;
+               e = get_weaponinfo(activeweapon);
+               if(e.netname != "")
+                       localcmd(strcat("\ncl_hook_activeweapon ", e.netname), "\n");
+               else
+                       localcmd("\ncl_hook_activeweapon none\n");
        }
 
        // ALWAYS Clear Current Scene First
@@ -549,6 +559,45 @@ void CSQC_UpdateView(float w, float h)
        // next R_RenderScene call
        drawstring('0 0 0', "", '1 1 0', '1 1 1', 0, 0);
 
+       // Draw the aiming reticle for weapons that use it
+       // reticle_type is changed to the item we are zooming / aiming with, to decide which reticle to use
+       // It must be a persisted float for fading out to work properly (you let go of the zoom button for
+       // the view to go back to normal, so reticle_type would become 0 as we fade out)
+       if(spectatee_status || getstati(STAT_HEALTH) <= 0)
+               reticle_type = 0; // prevent reticle from showing during the respawn zoom effect or for spectators
+       else if(button_zoom)
+               reticle_type = 1; // normal zoom
+       else if(activeweapon == WEP_NEX && button_attack2)
+               reticle_type = 2; // nex zoom
+
+       if(cvar("cl_reticle_stretch"))
+       {
+               reticle_size_x = vid_conwidth;
+               reticle_size_y = vid_conheight;
+               reticle_pos_x = 0;
+               reticle_pos_y = 0;
+       }
+       else
+       {
+               reticle_size_x = max(vid_conwidth, vid_conheight);
+               reticle_size_y = max(vid_conwidth, vid_conheight);
+               reticle_pos_x = (vid_conwidth - reticle_size_x) / 2;
+               reticle_pos_y = (vid_conheight - reticle_size_y) / 2;
+       }
+
+       if(cvar("cl_reticle_item_normal"))
+       {
+               precache_pic("gfx/reticle_normal");
+               if(reticle_type == 1 && current_zoomfraction)
+                       drawpic(reticle_pos, "gfx/reticle_normal", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_normal"), DRAWFLAG_NORMAL);
+       }
+       if(cvar("cl_reticle_item_nex"))
+       {
+               precache_pic("gfx/reticle_nex");
+               if(reticle_type == 2 && current_zoomfraction)
+                       drawpic(reticle_pos, "gfx/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_nex"), DRAWFLAG_NORMAL);
+       }
+
        // Draw the mouse cursor
        // NOTE: drawpic must happen after R_RenderScene for some reason
        //drawpic(getmousepos(), "gfx/cursor.tga", '11 14 0', '1 1 1', 1, 0);
index 0f1237d..33b4837 100644 (file)
@@ -32,15 +32,16 @@ void register_weapons_done()
        dummy_weapon_info.classname = "weapon_info";
        dummy_weapon_info.weapon = 0; // you can recognize dummies by this
        dummy_weapon_info.weapons = 0; // you can recognize dummies by this too
-       dummy_weapon_info.netname = "@!#%'n Tuba";
+       dummy_weapon_info.netname = "";
+       dummy_weapon_info.message = "@!#%'n Tuba";
        dummy_weapon_info.items = 0;
        dummy_weapon_info.weapon_func = w_null;
        dummy_weapon_info.mdl = "";
        dummy_weapon_info.model = "";
        dummy_weapon_info.spawnflags = 0;
+       dummy_weapon_info.model2 = "";
        dummy_weapon_info.impulse = -1;
        dummy_weapon_info.bot_pickupbasevalue = 0;
-       dummy_weapon_info.model2 = "";
 
        float i;
        weaponorder_byid = "";
index ff5794d..1719064 100644 (file)
@@ -486,7 +486,7 @@ void ReadyRestart()
        if(g_arena | g_assault | gameover | intermission_running | race_completing)
                localcmd("restart\n");
        else
-               localcmd("\nsv_hook_gamerestart;");
+               localcmd("\nsv_hook_gamerestart\n");
 
        ReadyRestartForce();
 
index f873ea7..a516570 100644 (file)
@@ -699,7 +699,7 @@ void spawnfunc_worldspawn (void)
 
        CheatInit();
 
-       localcmd("\n_sv_hook_gamestart ", GetGametype(), ";");
+       localcmd("\n_sv_hook_gamestart ", GetGametype(), "\n");
 
        world_initialized = 1;
 }
@@ -1427,7 +1427,7 @@ void NextLevel()
        if(cvar("g_campaign"))
                CampaignPreIntermission();
 
-       localcmd("\nsv_hook_gameend;");
+       localcmd("\nsv_hook_gameend\n");
 }
 
 /*
@@ -1740,6 +1740,8 @@ void ShuffleMaplist()
 float leaderfrags;
 float WinningCondition_Scores(float limit, float leadlimit)
 {
+       float limitreached;
+
        // TODO make everything use THIS winning condition (except LMS)
        WinningConditionHelper();
 
@@ -1784,13 +1786,22 @@ float WinningCondition_Scores(float limit, float leadlimit)
                }
        }
 
+       limitreached = FALSE;
+       if(limit)
+               if(WinningConditionHelper_topscore >= limit)
+                       limitreached = TRUE;
+       if(leadlimit)
+       {
+               float leadlimitreached;
+               leadlimitreached = (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit);
+               if(cvar("leadlimit_and_fraglimit"))
+                       limitreached = (limitreached && leadlimitreached);
+               else
+                       limitreached = (limitreached || leadlimitreached);
+       }
+
        return GetWinningCode(
-               WinningConditionHelper_topscore &&
-               (
-                       (limit && (WinningConditionHelper_topscore >= limit))
-                       ||
-                       (leadlimit && (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit))
-               ),
+               WinningConditionHelper_topscore && limitreached,
                WinningConditionHelper_equality
        );
 }
index fa61ad8..aeee9ce 100644 (file)
@@ -229,12 +229,6 @@ void relocate_spawnpoint()
         }
     }
 
-    if (cvar("g_spawnpoints_autodrop"))
-    {
-        setsize(self, PL_MIN, PL_MAX);
-        droptofloor();
-    }
-
     self.use = spawnpoint_use;
     self.team_saved = self.team;
     if (!self.cnt)