UFO: Alien Invasion
Toggle main menu visibility
Loading...
Searching...
No Matches
e_event_doorclose.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_doorclose.h
"
28
29
static
void
LET_DoorSlidingClose
(
le_t
* le)
30
{
31
assert(le->
slidingSpeed
> 0);
32
LET_SlideDoor
(le, -le->
slidingSpeed
);
33
}
34
35
static
void
LET_DoorRotatingClose
(
le_t
* le)
36
{
37
assert(le->
rotationSpeed
> 0);
38
LET_RotateDoor
(le, -le->
rotationSpeed
);
39
}
40
47
void
CL_DoorClose
(
const
eventRegister_t
* self,
dbuffer
* msg)
48
{
49
/* get local entity */
50
int
number;
51
52
NET_ReadFormat
(msg, self->
formatString
, &number);
53
54
le_t
* le =
LE_Get
(number);
55
if
(!le)
56
LE_NotFoundError
(number);
57
58
if
(le->
type
==
ET_DOOR
) {
59
LE_SetThink
(le,
LET_DoorRotatingClose
);
60
le->
think
(le);
61
}
else
if
(le->
type
==
ET_DOOR_SLIDING
) {
62
LE_SetThink
(le,
LET_DoorSlidingClose
);
63
le->
think
(le);
64
}
else
{
65
Com_Error
(
ERR_DROP
,
"Invalid door entity found of type: %i"
, le->
type
);
66
}
67
}
LET_RotateDoor
void LET_RotateDoor(le_t *le, int speed)
Rotates a door in the given speed.
Definition
cl_localentity.cpp:1081
LE_SetThink
void LE_SetThink(le_t *le, localEntityThinkFunc_t think)
Definition
cl_localentity.cpp:310
LET_SlideDoor
void LET_SlideDoor(le_t *le, int speed)
Slides a door.
Definition
cl_localentity.cpp:1110
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_NotFoundError
#define LE_NotFoundError(entnum)
Definition
cl_localentity.h:322
dbuffer
Definition
dbuffer.h:20
client.h
Primary header for client.
Com_Error
void Com_Error(int code, const char *fmt,...)
Definition
common.cpp:459
ERR_DROP
#define ERR_DROP
Definition
common.h:211
CL_DoorClose
void CL_DoorClose(const eventRegister_t *self, dbuffer *msg)
Callback for EV_DOOR_CLOSE event - rotates the inline model and recalc routing.
Definition
e_event_doorclose.cpp:47
LET_DoorRotatingClose
static void LET_DoorRotatingClose(le_t *le)
Definition
e_event_doorclose.cpp:35
LET_DoorSlidingClose
static void LET_DoorSlidingClose(le_t *le)
Definition
e_event_doorclose.cpp:29
e_event_doorclose.h
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
ET_DOOR
@ ET_DOOR
Definition
q_shared.h:156
ET_DOOR_SLIDING
@ ET_DOOR_SLIDING
Definition
q_shared.h:157
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
le_t
a local entity
Definition
cl_localentity.h:65
le_t::slidingSpeed
int slidingSpeed
Definition
cl_localentity.h:136
le_t::think
localEntityThinkFunc_t think
Definition
cl_localentity.h:121
le_t::rotationSpeed
float rotationSpeed
Definition
cl_localentity.h:135
le_t::type
entity_type_t type
Definition
cl_localentity.h:67
src
client
battlescape
events
event
world
e_event_doorclose.cpp
Generated on __DATE__ __TIME__ for UFO: Alien Invasion by
1.17.0