2 ===========================================================================
5 Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
7 This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
9 Doom 3 Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
14 Doom 3 Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
22 In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
26 ===========================================================================
29 #ifndef __GAME_TARGET_H__
30 #define __GAME_TARGET_H__
34 ===============================================================================
38 ===============================================================================
41 class idTarget : public idEntity {
43 CLASS_PROTOTYPE( idTarget );
48 ===============================================================================
52 ===============================================================================
55 class idTarget_Remove : public idTarget {
57 CLASS_PROTOTYPE( idTarget_Remove );
60 void Event_Activate( idEntity *activator );
65 ===============================================================================
69 ===============================================================================
72 class idTarget_Show : public idTarget {
74 CLASS_PROTOTYPE( idTarget_Show );
77 void Event_Activate( idEntity *activator );
82 ===============================================================================
86 ===============================================================================
89 class idTarget_Damage : public idTarget {
91 CLASS_PROTOTYPE( idTarget_Damage );
94 void Event_Activate( idEntity *activator );
99 ===============================================================================
101 idTarget_SessionCommand
103 ===============================================================================
106 class idTarget_SessionCommand : public idTarget {
108 CLASS_PROTOTYPE( idTarget_SessionCommand );
111 void Event_Activate( idEntity *activator );
116 ===============================================================================
120 ===============================================================================
123 class idTarget_EndLevel : public idTarget {
125 CLASS_PROTOTYPE( idTarget_EndLevel );
128 void Event_Activate( idEntity *activator );
134 ===============================================================================
136 idTarget_WaitForButton
138 ===============================================================================
141 class idTarget_WaitForButton : public idTarget {
143 CLASS_PROTOTYPE( idTarget_WaitForButton );
148 void Event_Activate( idEntity *activator );
152 ===============================================================================
154 idTarget_SetGlobalShaderTime
156 ===============================================================================
159 class idTarget_SetGlobalShaderTime : public idTarget {
161 CLASS_PROTOTYPE( idTarget_SetGlobalShaderTime );
164 void Event_Activate( idEntity *activator );
169 ===============================================================================
171 idTarget_SetShaderParm
173 ===============================================================================
176 class idTarget_SetShaderParm : public idTarget {
178 CLASS_PROTOTYPE( idTarget_SetShaderParm );
181 void Event_Activate( idEntity *activator );
186 ===============================================================================
188 idTarget_SetShaderTime
190 ===============================================================================
193 class idTarget_SetShaderTime : public idTarget {
195 CLASS_PROTOTYPE( idTarget_SetShaderTime );
198 void Event_Activate( idEntity *activator );
202 ===============================================================================
206 ===============================================================================
209 class idTarget_FadeEntity : public idTarget {
211 CLASS_PROTOTYPE( idTarget_FadeEntity );
213 idTarget_FadeEntity( void );
215 void Save( idSaveGame *savefile ) const;
216 void Restore( idRestoreGame *savefile );
225 void Event_Activate( idEntity *activator );
229 ===============================================================================
233 ===============================================================================
236 class idTarget_LightFadeIn : public idTarget {
238 CLASS_PROTOTYPE( idTarget_LightFadeIn );
241 void Event_Activate( idEntity *activator );
245 ===============================================================================
247 idTarget_LightFadeOut
249 ===============================================================================
252 class idTarget_LightFadeOut : public idTarget {
254 CLASS_PROTOTYPE( idTarget_LightFadeOut );
257 void Event_Activate( idEntity *activator );
261 ===============================================================================
265 ===============================================================================
268 class idTarget_Give : public idTarget {
270 CLASS_PROTOTYPE( idTarget_Give );
275 void Event_Activate( idEntity *activator );
280 ===============================================================================
284 ===============================================================================
287 class idTarget_GiveEmail : public idTarget {
289 CLASS_PROTOTYPE( idTarget_GiveEmail );
294 void Event_Activate( idEntity *activator );
298 ===============================================================================
302 ===============================================================================
305 class idTarget_SetModel : public idTarget {
307 CLASS_PROTOTYPE( idTarget_SetModel );
312 void Event_Activate( idEntity *activator );
317 ===============================================================================
319 idTarget_SetInfluence
321 ===============================================================================
325 typedef struct SavedGui_s {
326 SavedGui_s() {memset(gui, 0, sizeof(idUserInterface*)*MAX_RENDERENTITY_GUI); };
327 idUserInterface* gui[MAX_RENDERENTITY_GUI];
331 class idTarget_SetInfluence : public idTarget {
333 CLASS_PROTOTYPE( idTarget_SetInfluence );
335 idTarget_SetInfluence( void );
337 void Save( idSaveGame *savefile ) const;
338 void Restore( idRestoreGame *savefile );
343 void Event_Activate( idEntity *activator );
344 void Event_RestoreInfluence();
345 void Event_GatherEntities();
346 void Event_Flash( float flash, int out );
347 void Event_ClearFlash( float flash );
350 idList<int> lightList;
352 idList<int> soundList;
353 idList<int> genericList;
359 idEntity * switchToCamera;
360 idInterpolate<float>fovSetting;
362 bool restoreOnTrigger;
365 idList<SavedGui_t> savedGuiList;
371 ===============================================================================
375 ===============================================================================
378 class idTarget_SetKeyVal : public idTarget {
380 CLASS_PROTOTYPE( idTarget_SetKeyVal );
383 void Event_Activate( idEntity *activator );
388 ===============================================================================
392 ===============================================================================
395 class idTarget_SetFov : public idTarget {
397 CLASS_PROTOTYPE( idTarget_SetFov );
399 void Save( idSaveGame *savefile ) const;
400 void Restore( idRestoreGame *savefile );
405 idInterpolate<int> fovSetting;
407 void Event_Activate( idEntity *activator );
412 ===============================================================================
414 idTarget_SetPrimaryObjective
416 ===============================================================================
419 class idTarget_SetPrimaryObjective : public idTarget {
421 CLASS_PROTOTYPE( idTarget_SetPrimaryObjective );
424 void Event_Activate( idEntity *activator );
428 ===============================================================================
432 ===============================================================================
435 class idTarget_LockDoor: public idTarget {
437 CLASS_PROTOTYPE( idTarget_LockDoor );
440 void Event_Activate( idEntity *activator );
444 ===============================================================================
446 idTarget_CallObjectFunction
448 ===============================================================================
451 class idTarget_CallObjectFunction : public idTarget {
453 CLASS_PROTOTYPE( idTarget_CallObjectFunction );
456 void Event_Activate( idEntity *activator );
461 ===============================================================================
465 ===============================================================================
468 class idTarget_EnableLevelWeapons : public idTarget {
470 CLASS_PROTOTYPE( idTarget_EnableLevelWeapons );
473 void Event_Activate( idEntity *activator );
478 ===============================================================================
482 ===============================================================================
485 class idTarget_Tip : public idTarget {
487 CLASS_PROTOTYPE( idTarget_Tip );
489 idTarget_Tip( void );
493 void Save( idSaveGame *savefile ) const;
494 void Restore( idRestoreGame *savefile );
499 void Event_Activate( idEntity *activator );
500 void Event_TipOff( void );
501 void Event_GetPlayerPos( void );
505 ===============================================================================
507 idTarget_GiveSecurity
509 ===============================================================================
511 class idTarget_GiveSecurity : public idTarget {
513 CLASS_PROTOTYPE( idTarget_GiveSecurity );
515 void Event_Activate( idEntity *activator );
520 ===============================================================================
522 idTarget_RemoveWeapons
524 ===============================================================================
526 class idTarget_RemoveWeapons : public idTarget {
528 CLASS_PROTOTYPE( idTarget_RemoveWeapons );
530 void Event_Activate( idEntity *activator );
535 ===============================================================================
537 idTarget_LevelTrigger
539 ===============================================================================
541 class idTarget_LevelTrigger : public idTarget {
543 CLASS_PROTOTYPE( idTarget_LevelTrigger );
545 void Event_Activate( idEntity *activator );
549 ===============================================================================
551 idTarget_EnableStamina
553 ===============================================================================
555 class idTarget_EnableStamina : public idTarget {
557 CLASS_PROTOTYPE( idTarget_EnableStamina );
559 void Event_Activate( idEntity *activator );
563 ===============================================================================
565 idTarget_FadeSoundClass
567 ===============================================================================
569 class idTarget_FadeSoundClass : public idTarget {
571 CLASS_PROTOTYPE( idTarget_FadeSoundClass );
573 void Event_Activate( idEntity *activator );
574 void Event_RestoreVolume();
578 #endif /* !__GAME_TARGET_H__ */