Client: Separate flashlight code from player.qc.
This commit is contained in:
parent
66e375f117
commit
d7293c8871
3 changed files with 45 additions and 23 deletions
43
src/client/flashlight.qc
Normal file
43
src/client/flashlight.qc
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016-2020 Marco Hladik <marco@icculus.org>
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
Player_Flashlight(base_player pl)
|
||||||
|
{
|
||||||
|
if (pl.gflags & GF_FLASHLIGHT) {
|
||||||
|
vector src;
|
||||||
|
vector ang;
|
||||||
|
|
||||||
|
if (pl.entnum != player_localentnum) {
|
||||||
|
src = pl.origin + pl.view_ofs;
|
||||||
|
ang = [pl.pitch, pl.angles[1], pl.angles[2]];
|
||||||
|
} else {
|
||||||
|
src = pSeat->m_vecPredictedOrigin + [0,0,-8];
|
||||||
|
ang = view_angles;
|
||||||
|
}
|
||||||
|
|
||||||
|
makevectors(ang);
|
||||||
|
traceline(src, src + (v_forward * 8096), MOVE_NORMAL, pl);
|
||||||
|
|
||||||
|
if (serverkeyfloat("*bspversion") == BSPVER_HL) {
|
||||||
|
dynamiclight_add(trace_endpos + (v_forward * -2), 128, [1,1,1]);
|
||||||
|
} else {
|
||||||
|
float p = dynamiclight_add(src, 512, [1,1,1], 0, "textures/flashlight");
|
||||||
|
dynamiclight_set(p, LFIELD_ANGLES, ang);
|
||||||
|
dynamiclight_set(p, LFIELD_FLAGS, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -166,29 +166,7 @@ void
|
||||||
Player_PreDraw(base_player pl, int thirdperson)
|
Player_PreDraw(base_player pl, int thirdperson)
|
||||||
{
|
{
|
||||||
/* Handle the flashlights... */
|
/* Handle the flashlights... */
|
||||||
if (pl.gflags & GF_FLASHLIGHT) {
|
Player_Flashlight(pl);
|
||||||
vector src;
|
|
||||||
vector ang;
|
|
||||||
|
|
||||||
if (pl.entnum != player_localentnum) {
|
|
||||||
src = pl.origin + pl.view_ofs;
|
|
||||||
ang = [pl.pitch, pl.angles[1], pl.angles[2]];
|
|
||||||
} else {
|
|
||||||
src = pSeat->m_vecPredictedOrigin + [0,0,-8];
|
|
||||||
ang = view_angles;
|
|
||||||
}
|
|
||||||
|
|
||||||
makevectors(ang);
|
|
||||||
traceline(src, src + (v_forward * 8096), MOVE_NORMAL, pl);
|
|
||||||
|
|
||||||
if (serverkeyfloat("*bspversion") == BSPVER_HL) {
|
|
||||||
dynamiclight_add(trace_endpos + (v_forward * -2), 128, [1,1,1]);
|
|
||||||
} else {
|
|
||||||
float p = dynamiclight_add(src, 512, [1,1,1], 0, "textures/flashlight");
|
|
||||||
dynamiclight_set(p, LFIELD_ANGLES, ang);
|
|
||||||
dynamiclight_set(p, LFIELD_FLAGS, 3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PMove_SetSize(pl);
|
PMove_SetSize(pl);
|
||||||
Animation_PlayerUpdate((player)pl);
|
Animation_PlayerUpdate((player)pl);
|
||||||
|
|
|
@ -21,6 +21,7 @@ defs.h
|
||||||
|
|
||||||
../../../base/src/client/draw.qc
|
../../../base/src/client/draw.qc
|
||||||
init.qc
|
init.qc
|
||||||
|
flashlight.qc
|
||||||
player.qc
|
player.qc
|
||||||
entities.qc
|
entities.qc
|
||||||
cmds.qc
|
cmds.qc
|
||||||
|
|
Loading…
Reference in a new issue