UFO: Alien Invasion
Toggle main menu visibility
Loading...
Searching...
No Matches
e_event_entappear.cpp
Go to the documentation of this file.
1
4
5
/*
6
Copyright (C) 2002-2025 UFO: Alien Invasion.
7
8
This program is free software; you can redistribute it and/or
9
modify it under the terms of the GNU General Public License
10
as published by the Free Software Foundation; either version 2
11
of the License, or (at your option) any later version.
12
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
17
See the GNU General Public License for more details.
18
19
You should have received a copy of the GNU General Public License
20
along with this program; if not, write to the Free Software
21
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23
*/
24
25
#include "
../../../../client.h
"
26
#include "
../../../cl_localentity.h
"
27
#include "
e_event_entappear.h
"
28
#include "
../../../../../common/grid.h
"
29
30
int
CL_EntAppearTime
(
const
struct
eventRegister_s* self,
dbuffer
* msg,
eventTiming_t
* eventTiming)
31
{
32
if
(eventTiming->
parsedShot
) {
33
if
(eventTiming->
parsedDeath
) {
/* drop items after death (caused by impact) */
34
return
eventTiming->
impactTime
+ 1400;
35
}
else
if
(eventTiming->
impactTime
>
cl
.time) {
/* item thrown on the ground */
36
return
eventTiming->
impactTime
+ 75;
37
}
38
}
39
40
return
eventTiming->
nextTime
;
41
}
42
49
void
CL_EntAppear
(
const
eventRegister_t
* self,
dbuffer
* msg)
50
{
51
int
entnum;
52
entity_type_t
type
;
53
pos3_t
pos;
54
55
NET_ReadFormat
(msg, self->
formatString
, &entnum, &
type
, &pos);
56
57
/* check if the ent is already visible */
58
le_t
* le =
LE_Get
(entnum);
59
if
(!le) {
60
le =
LE_Add
(entnum);
61
}
else
{
62
Com_DPrintf
(
DEBUG_CLIENT
,
"CL_EntAppear: Entity appearing already visible... overwriting the old one\n"
);
63
le->
inuse
=
true
;
64
}
65
66
le->
type
=
type
;
67
68
/* the default is invisible - another event will follow which spawns not
69
* only the le, but also the particle. The visibility is set there, too */
70
if
(le->
type
==
ET_PARTICLE
)
71
LE_SetInvisible
(le);
72
73
VectorCopy
(pos, le->
pos
);
74
Grid_PosToVec
(
cl
.mapData->routing, le->
fieldSize
, le->
pos
, le->
origin
);
75
}
cl
clientBattleScape_t cl
Definition
cl_battlescape.cpp:29
LE_Add
le_t * LE_Add(int entnum)
Add a new local entity to the scene.
Definition
cl_localentity.cpp:1209
LE_Get
le_t * LE_Get(int entnum)
Searches all local entities for the one with the searched entnum.
Definition
cl_localentity.cpp:1287
cl_localentity.h
LE_SetInvisible
#define LE_SetInvisible(le)
Definition
cl_localentity.h:268
dbuffer
Definition
dbuffer.h:20
client.h
Primary header for client.
Com_DPrintf
void Com_DPrintf(int level, const char *fmt,...)
A Com_Printf that only shows up if the "developer" cvar is set.
Definition
common.cpp:440
DEBUG_CLIENT
#define DEBUG_CLIENT
Definition
defines.h:59
CL_EntAppearTime
int CL_EntAppearTime(const struct eventRegister_s *self, dbuffer *msg, eventTiming_t *eventTiming)
Definition
e_event_entappear.cpp:30
CL_EntAppear
void CL_EntAppear(const eventRegister_t *self, dbuffer *msg)
Let an entity appear - like an item on the ground that just got visible.
Definition
e_event_entappear.cpp:49
e_event_entappear.h
Grid_PosToVec
void Grid_PosToVec(const Routing &routing, const actorSizeEnum_t actorSize, const pos3_t pos, vec3_t vec)
Converts a grid position to world coordinates.
Definition
grid.cpp:832
grid.h
Battlescape grid functions.
NET_ReadFormat
void NET_ReadFormat(dbuffer *buf, const char *format,...)
The user-friendly version of NET_ReadFormat that reads variable arguments from a buffer according to ...
Definition
netpack.cpp:533
entity_type_t
entity_type_t
Definition
q_shared.h:145
ET_PARTICLE
@ ET_PARTICLE
Definition
q_shared.h:164
type
QGL_EXTERN GLint GLenum type
Definition
r_gl.h:94
eventRegister_t
Struct that defines one particular event with all its callbacks and data.
Definition
e_main.h:42
eventRegister_t::formatString
const char * formatString
The format string that is used to write and parse this event.
Definition
e_main.h:54
eventTiming_t
CL_ParseEvent timers and vars.
Definition
e_main.h:30
eventTiming_t::nextTime
int nextTime
Definition
e_main.h:31
eventTiming_t::impactTime
int impactTime
Definition
e_main.h:33
eventTiming_t::parsedDeath
bool parsedDeath
Definition
e_main.h:35
eventTiming_t::parsedShot
bool parsedShot
Definition
e_main.h:36
le_t
a local entity
Definition
cl_localentity.h:65
le_t::origin
vec3_t origin
Definition
cl_localentity.h:70
le_t::fieldSize
actorSizeEnum_t fieldSize
Definition
cl_localentity.h:157
le_t::pos
pos3_t pos
Definition
cl_localentity.h:71
le_t::inuse
bool inuse
Definition
cl_localentity.h:66
le_t::type
entity_type_t type
Definition
cl_localentity.h:67
pos3_t
pos_t pos3_t[3]
Definition
ufotypes.h:58
VectorCopy
#define VectorCopy(src, dest)
Definition
vector.h:51
src
client
battlescape
events
event
world
e_event_entappear.cpp
Generated on __DATE__ __TIME__ for UFO: Alien Invasion by
1.17.0