OpenMoHAA 0.82.0
Loading...
Searching...
No Matches
specialfx.h
1/*
2===========================================================================
3Copyright (C) 2024 the OpenMoHAA team
4
5This file is part of OpenMoHAA source code.
6
7OpenMoHAA source code is free software; you can redistribute it
8and/or modify it under the terms of the GNU General Public License as
9published by the Free Software Foundation; either version 2 of the License,
10or (at your option) any later version.
11
12OpenMoHAA source code is distributed in the hope that it will be
13useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with OpenMoHAA source code; if not, write to the Free Software
19Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20===========================================================================
21*/
22
23// specialfx.h: special effects
24//
25
26#pragma once
27
28#include "g_local.h"
29#include "scriptslave.h"
30
31class Fulcrum : public ScriptSlave
32 {
33 private:
34 float resetspeed;
35 float dampening;
36 float limit;
37 float speed;
38 qboolean touched;
39 Vector startangles;
40 str movesound;
41
42 public:
43 CLASS_PROTOTYPE( Fulcrum );
44 Fulcrum();
45
46 void Setup( Event *ev );
47 void SetSpeed( Event *ev );
48 void SetResetSpeed( Event *ev );
49 void SetDampening( Event *ev );
50 void SetLimit( Event *ev );
51 void SetMoveSound( Event *ev );
52 void Reset( Event *ev );
53 void Touched( Event *ev );
54 void Adjust( Event *ev );
55 void Archive( Archiver &arc ) override;
56 };
57
58inline void Fulcrum::Archive
59 (
60 Archiver &arc
61 )
62 {
63 ScriptSlave::Archive( arc );
64
65 arc.ArchiveFloat( &resetspeed );
66 arc.ArchiveFloat( &dampening );
67 arc.ArchiveFloat( &limit );
68 arc.ArchiveFloat( &speed );
69 arc.ArchiveBoolean( &touched );
70 arc.ArchiveVector( &startangles );
71 arc.ArchiveString( &movesound );
72 }
73
74
75class RunThrough : public Entity
76 {
77 private:
78 Vector offset;
79 float speed;
80 float chance;
81 float delay;
82 float lasttriggertime;
83 float lip;
84 str spawnmodel;
85
86 void SetSpeed( Event *ev );
87 void SetChance( Event *ev );
88 void SetDelay( Event *ev );
89 void SetLip( Event *ev );
90 void SetSpawnModel( Event *ev );
91 void SetOffset( Event *ev );
92 void Touched( Event *ev );
93 public:
94 CLASS_PROTOTYPE( RunThrough );
95 RunThrough();
96
97 void Archive( Archiver &arc ) override;
98 };
99
100inline void RunThrough::Archive
101 (
102 Archiver &arc
103 )
104 {
105 Entity::Archive( arc );
106
107 arc.ArchiveVector( &offset );
108 arc.ArchiveFloat( &speed );
109 arc.ArchiveFloat( &chance );
110 arc.ArchiveFloat( &delay );
111 arc.ArchiveFloat( &lasttriggertime );
112 arc.ArchiveFloat( &lip );
113 arc.ArchiveString( &spawnmodel );
114 }
115
116class SinkObject : public ScriptSlave
117 {
118 private:
119 float resetspeed;
120 float resetdelay;
121 float dampening;
122 float limit;
123 float speed;
124 float delay;
125 float time_touched;
126 float time_reset;
127 str sinksound;
128 str resetsound;
129 qboolean touched;
130 qboolean active;
131 Vector startpos;
132
133 public:
134 CLASS_PROTOTYPE( SinkObject );
135 SinkObject();
136
137 void Setup( Event *ev );
138 void SetSpeed( Event *ev );
139 void SetDelay( Event *ev );
140 void SetResetSpeed( Event *ev );
141 void SetResetDelay( Event *ev );
142 void SetDampening( Event *ev );
143 void SetLimit( Event *ev );
144 void Reset( Event *ev );
145 void Touched( Event *ev );
146 void Adjust( Event *ev );
147 void Fall( Event *ev );
148 void SetResetSound( Event *ev );
149 void SetSinkSound( Event *ev );
150 void MakeActive( Event *ev );
151 void MakeNonActive( Event *ev );
152 void Archive( Archiver &arc ) override;
153 };
154
155inline void SinkObject::Archive
156 (
157 Archiver &arc
158 )
159 {
160 ScriptSlave::Archive( arc );
161
162 arc.ArchiveFloat( &resetspeed );
163 arc.ArchiveFloat( &resetdelay );
164 arc.ArchiveFloat( &dampening );
165 arc.ArchiveFloat( &limit );
166 arc.ArchiveFloat( &speed );
167 arc.ArchiveFloat( &delay );
168 arc.ArchiveFloat( &time_touched );
169 arc.ArchiveFloat( &time_reset );
170 arc.ArchiveString( &sinksound );
171 arc.ArchiveString( &resetsound );
172 arc.ArchiveBoolean( &touched );
173 arc.ArchiveBoolean( &active );
174 arc.ArchiveVector( &startpos );
175 }
Definition archive.h:86
Definition listener.h:246
Definition vector.h:61
Definition str.h:77