1 //----------------------------------------------------------------------------
2 //  EDGE Play Simulation Action routines
3 //----------------------------------------------------------------------------
4 //
5 //  Copyright (c) 1999-2009  The EDGE Team.
6 //
7 //  This program is free software; you can redistribute it and/or
8 //  modify it under the terms of the GNU General Public License
9 //  as published by the Free Software Foundation; either version 2
10 //  of the License, or (at your option) any later version.
11 //
12 //  This program is distributed in the hope that it will be useful,
13 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 //  GNU General Public License for more details.
16 //
17 //----------------------------------------------------------------------------
18 //
19 //  Based on the DOOM source code, released by Id Software under the
20 //  following copyright:
21 //
22 //    Copyright (C) 1993-1996 by id Software, Inc.
23 //
24 //----------------------------------------------------------------------------
25 
26 #ifndef __P_ACTION_H__
27 #define __P_ACTION_H__
28 
29 struct mobj_s;
30 
31 // Weapon Action Routine pointers
32 void A_Light0(struct mobj_s *mo);
33 void A_Light1(struct mobj_s *mo);
34 void A_Light2(struct mobj_s *mo);
35 
36 void A_WeaponReady(struct mobj_s *mo);
37 void A_WeaponEmpty(struct mobj_s *mo);
38 void A_WeaponShoot(struct mobj_s *mo);
39 void A_WeaponEject(struct mobj_s *mo);
40 void A_WeaponJump(struct mobj_s *mo);
41 void A_Lower(struct mobj_s *mo);
42 void A_Raise(struct mobj_s *mo);
43 void A_ReFire(struct mobj_s *mo);
44 void A_NoFire(struct mobj_s *mo);
45 void A_NoFireReturn(struct mobj_s *mo);
46 void A_CheckReload(struct mobj_s *mo);
47 void A_SFXWeapon1(struct mobj_s *mo);
48 void A_SFXWeapon2(struct mobj_s *mo);
49 void A_SFXWeapon3(struct mobj_s *mo);
50 void A_WeaponPlaySound(struct mobj_s *mo);
51 void A_WeaponKillSound(struct mobj_s *mo);
52 void A_WeaponTransSet(struct mobj_s *mo);
53 void A_WeaponTransFade(struct mobj_s *mo);
54 void A_WeaponEnableRadTrig(struct mobj_s *mo);
55 void A_WeaponDisableRadTrig(struct mobj_s *mo);
56 
57 void A_SetCrosshair(struct mobj_s *mo);
58 void A_TargetJump(struct mobj_s *mo);
59 void A_FriendJump(struct mobj_s *mo);
60 void A_GunFlash(struct mobj_s *mo);
61 void A_WeaponKick(struct mobj_s *mo);
62 void A_WeaponSetSkin(struct mobj_s *mo);
63 void A_WeaponUnzoom(struct mobj_s *mo);
64 
65 void A_WeaponShootSA(struct mobj_s *mo);
66 void A_ReFireSA(struct mobj_s *mo);
67 void A_NoFireSA(struct mobj_s *mo);
68 void A_NoFireReturnSA(struct mobj_s *mo);
69 void A_CheckReloadSA(struct mobj_s *mo);
70 void A_GunFlashSA(struct mobj_s *mo);
71 
72 // Needed for the bossbrain.
73 void P_ActBrainScream(struct mobj_s *mo);
74 void P_ActBrainDie(struct mobj_s *mo);
75 void P_ActBrainSpit(struct mobj_s *mo);
76 void P_ActCubeSpawn(struct mobj_s *mo);
77 void P_ActBrainMissileExplode(struct mobj_s *mo);
78 
79 // Visibility Actions
80 void P_ActTransSet(struct mobj_s *mo);
81 void P_ActTransFade(struct mobj_s *mo);
82 void P_ActTransMore(struct mobj_s *mo);
83 void P_ActTransLess(struct mobj_s *mo);
84 void P_ActTransAlternate(struct mobj_s *mo);
85 
86 // Sound Actions
87 void P_ActPlaySound(struct mobj_s *mo);
88 void P_ActKillSound(struct mobj_s *mo);
89 void P_ActMakeAmbientSound(struct mobj_s *mo);
90 void P_ActMakeAmbientSoundRandom(struct mobj_s *mo);
91 void P_ActMakeCloseAttemptSound(struct mobj_s *mo);
92 void P_ActMakeDyingSound(struct mobj_s *mo);
93 void P_ActMakeOverKillSound(struct mobj_s *mo);
94 void P_ActMakePainSound(struct mobj_s *mo);
95 void P_ActMakeRangeAttemptSound(struct mobj_s *mo);
96 void P_ActMakeActiveSound(struct mobj_s *mo);
97 void P_ActPlayerScream(struct mobj_s *mo);
98 
99 // Explosion Damage Actions
100 void P_ActDamageExplosion(struct mobj_s *mo);
101 void P_ActThrust(struct mobj_s *mo);
102 
103 // Stand-by / Looking Actions
104 void P_ActStandardLook(struct mobj_s *mo);
105 void P_ActPlayerSupportLook(struct mobj_s *mo);
106 
107 // Meander, aimless movement actions.
108 void P_ActStandardMeander(struct mobj_s *mo);
109 void P_ActPlayerSupportMeander(struct mobj_s *mo);
110 
111 // Chasing Actions
112 void P_ActResurrectChase(struct mobj_s *mo);
113 void P_ActStandardChase(struct mobj_s *mo);
114 void P_ActWalkSoundChase(struct mobj_s *mo);
115 
116 // Attacking Actions
117 void P_ActComboAttack(struct mobj_s *mo);
118 void P_ActMeleeAttack(struct mobj_s *mo);
119 void P_ActRangeAttack(struct mobj_s *mo);
120 void P_ActSpareAttack(struct mobj_s *mo);
121 void P_ActRefireCheck(struct mobj_s *mo);
122 void P_ActReloadCheck(struct mobj_s *mo);
123 void P_ActReloadReset(struct mobj_s *mo);
124 
125 // Miscellanous
126 void P_ActFaceTarget(struct mobj_s *mo);
127 void P_ActMakeIntoCorpse(struct mobj_s *mo);
128 void P_ActResetSpreadCount(struct mobj_s *mo);
129 void P_ActExplode(struct mobj_s *mo);
130 void P_ActActivateLineType(struct mobj_s *mo);
131 void P_ActEnableRadTrig(struct mobj_s *mo);
132 void P_ActDisableRadTrig(struct mobj_s *mo);
133 void P_ActTouchyRearm(struct mobj_s *mo);
134 void P_ActTouchyDisarm(struct mobj_s *mo);
135 void P_ActBounceRearm(struct mobj_s *mo);
136 void P_ActBounceDisarm(struct mobj_s *mo);
137 void P_ActPathCheck(struct mobj_s *mo);
138 void P_ActPathFollow(struct mobj_s *mo);
139 
140 void P_ActDropItem(struct mobj_s *mo);
141 void P_ActSpawn(struct mobj_s *mo);
142 void P_ActDLightSet(struct mobj_s *mo);
143 void P_ActDLightSet2(struct mobj_s *mo);
144 void P_ActDLightFade(struct mobj_s *mo);
145 void P_ActDLightRandom(struct mobj_s *mo);
146 void P_ActDLightColour(struct mobj_s *mo);
147 void P_ActSetSkin(struct mobj_s *mo);
148 void P_ActDie(struct mobj_s *mo);
149 void P_ActKeenDie(struct mobj_s *mo);
150 void P_ActCheckBlood(struct mobj_s *mo);
151 void P_ActJump(struct mobj_s *mo);
152 void P_ActBecome(struct mobj_s *mo);
153 void P_ActSetInvuln(struct mobj_s *mo);
154 void P_ActClearInvuln(struct mobj_s *mo);
155 
156 // Movement actions
157 void P_ActFaceDir(struct mobj_s *mo);
158 void P_ActTurnDir(struct mobj_s *mo);
159 void P_ActTurnRandom(struct mobj_s *mo);
160 void P_ActMlookFace(struct mobj_s *mo);
161 void P_ActMlookTurn(struct mobj_s *mo);
162 void P_ActMoveFwd(struct mobj_s *mo);
163 void P_ActMoveRight(struct mobj_s *mo);
164 void P_ActMoveUp(struct mobj_s *mo);
165 void P_ActStopMoving(struct mobj_s *mo);
166 void P_ActCheckMoving(struct mobj_s *mo);
167 void P_ActCheckActivity(struct mobj_s *mo);
168 
169 // Projectiles
170 void P_ActHomingProjectile(struct mobj_s *mo);
171 void P_ActLaunchOrderedSpread(struct mobj_s *mo);
172 void P_ActLaunchRandomSpread(struct mobj_s *mo);
173 void P_ActCreateSmokeTrail(struct mobj_s *mo);
174 void P_ActHomeToSpot(struct mobj_s *mo);
175 bool P_ActLookForTargets(struct mobj_s *mo);
176 
177 // Trackers
178 void P_ActEffectTracker(struct mobj_s *mo);
179 void P_ActTrackerActive(struct mobj_s *mo);
180 void P_ActTrackerFollow(struct mobj_s *mo);
181 void P_ActTrackerStart(struct mobj_s *mo);
182 
183 #endif /* __P_ACTION_H__ */
184 
185 //--- editor settings ---
186 // vi:ts=4:sw=4:noexpandtab
187