UFO: Alien Invasion
Toggle main menu visibility
Loading...
Searching...
No Matches
e_event_particleappear.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 "
../../../cl_particle.h
"
28
#include "
e_event_particleappear.h
"
29
30
int
CL_ParticleAppearTime
(
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
50
void
CL_ParticleAppear
(
const
eventRegister_t
* self,
dbuffer
* msg)
51
{
52
char
particle[
MAX_VAR
];
53
int
entnum, levelflags;
54
vec3_t
origin
;
55
56
/* read data */
57
NET_ReadFormat
(msg, self->
formatString
, &entnum, &levelflags,
origin
, particle,
sizeof
(particle));
58
59
le_t
* le =
LE_Get
(entnum);
60
if
(!le)
61
LE_NotFoundError
(entnum);
62
63
/* particles don't have a model to add to the scene - we mark them as invisible and
64
* only render the particle */
65
LE_SetInvisible
(le);
66
le->
levelflags
= levelflags;
67
le->
particleID
=
Mem_PoolStrDup
(particle,
cl_genericPool
, 0);
68
le->
ptl
=
CL_ParticleSpawn
(le->
particleID
, le->
levelflags
,
origin
);
69
if
(!le->
ptl
)
70
Com_Printf
(
"Could not spawn particle: '%s'\n"
, le->
particleID
);
71
}
cl
clientBattleScape_t cl
Definition
cl_battlescape.cpp:29
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
LE_NotFoundError
#define LE_NotFoundError(entnum)
Definition
cl_localentity.h:322
cl_genericPool
memPool_t * cl_genericPool
Definition
cl_main.cpp:86
CL_ParticleSpawn
ptl_t * CL_ParticleSpawn(const char *name, int levelFlags, const vec3_t s, const vec3_t v, const vec3_t a)
Spawn a new particle to the map.
Definition
cl_particle.cpp:705
cl_particle.h
dbuffer
Definition
dbuffer.h:20
client.h
Primary header for client.
Com_Printf
void Com_Printf(const char *const fmt,...)
Definition
common.cpp:428
CL_ParticleAppearTime
int CL_ParticleAppearTime(const struct eventRegister_s *self, dbuffer *msg, eventTiming_t *eventTiming)
Definition
e_event_particleappear.cpp:30
CL_ParticleAppear
void CL_ParticleAppear(const eventRegister_t *self, dbuffer *msg)
Let a particle appear for the client.
Definition
e_event_particleappear.cpp:50
e_event_particleappear.h
origin
voidpf uLong int origin
Definition
ioapi.h:45
Mem_PoolStrDup
#define Mem_PoolStrDup(in, pool, tagNum)
Definition
mem.h:50
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
MAX_VAR
#define MAX_VAR
Definition
shared.h:36
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::ptl
ptl_t * ptl
Definition
cl_localentity.h:152
le_t::particleID
const char * particleID
Definition
cl_localentity.h:150
le_t::levelflags
int levelflags
Definition
cl_localentity.h:151
vec3_t
vec_t vec3_t[3]
Definition
ufotypes.h:39
src
client
battlescape
events
event
world
e_event_particleappear.cpp
Generated on __DATE__ __TIME__ for UFO: Alien Invasion by
1.17.0