53class TurretGun :
public Weapon
64 float m_fMaxIdlePitch;
68 float m_fIdlePitchSpeed;
70 float m_fAIPitchSpeed;
72 float m_fPitchDownCap;
74 float m_fMaxYawOffset;
75 float m_fUserDistance;
76 float m_fMinBurstTime;
77 float m_fMaxBurstTime;
78 float m_fMinBurstDelay;
79 float m_fMaxBurstDelay;
80 float m_fFireToggleTime;
83 CameraPtr m_pUserCamera;
85 float m_fCurrViewJitter;
86 Vector m_vAIBulletSpread[MAX_FIREMODES];
88 SentientPtr m_pAIEnemy;
98 float m_fAIConvergeTime;
99 int m_iAISuppressTime;
100 int m_iAISuppressWaitTime;
101 int m_iAILastTrackTime;
102 int m_iAIStartSuppressTime;
103 vec3_t m_vDesiredTargetAngles;
104 float m_fAIDesiredTargetSpeed;
105 vec3_t m_vAIDesiredTargetPosition;
106 vec3_t m_vAITargetPosition;
107 vec3_t m_vAICurrentTargetPosition;
108 vec3_t m_vAITargetSpeed;
109 int m_iAINextSuppressTime;
110 float m_fAISuppressWidth;
111 float m_fAISuppressHeight;
113 float m_fMaxUseAngle;
117 void P_SetTargetAngles(
Vector &vTargAngles);
118 virtual void P_ThinkActive();
121 CLASS_PROTOTYPE(TurretGun);
124 virtual ~TurretGun();
128 void AI_SetTargetAngles(vec3_t vTargAngles,
float speed);
129 void AI_SetDesiredTargetAngles(
const vec3_t angles,
float speed);
130 void AI_DoTargetNone();
131 void AI_MoveToDefaultPosition();
132 void AI_DoTargetAutoDefault();
133 void AI_StartDefault();
134 void AI_StartSuppress();
135 void AI_StartSuppressWait();
136 void AI_StartTrack();
137 void AI_DoTargetAutoTrack();
138 void AI_DoSuppressionAiming();
139 void AI_DoTargetAutoSuppress();
140 void AI_DoTargetAutoSuppressWait();
141 void AI_DoTargetAuto();
144 void AI_ThinkActive();
147 void Think()
override;
149 void PlaceTurret(
Event *ev);
151 virtual void P_UserAim(usercmd_t *ucmd);
152 qboolean UserAim(usercmd_t *ucmd);
153 virtual void TurretBeginUsed(Sentient *pEnt);
154 virtual void P_TurretBeginUsed(Player *pEnt);
155 virtual void AI_TurretBeginUsed(Sentient *pEnt);
156 virtual void TurretEndUsed();
157 virtual void P_TurretEndUsed();
158 virtual void AI_TurretEndUsed();
159 void RemoveUserCamera();
160 virtual void TurretUsed(Sentient *pEnt);
161 virtual void P_TurretUsed(Player *player);
163 void TurretUsed(
Event *ev);
164 void P_SetPlayerUsable(
Event *ev);
165 void EventSetUsable(
Event *ev);
166 void P_SetViewOffset(
Event *ev);
167 void EventMaxIdlePitch(
Event *ev);
168 void EventMaxIdleYaw(
Event *ev);
169 void SetIdleCheckOffset(
Event *ev);
171 void CalcFiringViewJitter();
172 void P_ApplyFiringViewJitter(
Vector& vAng);
173 void AI_TurnSpeed(
float speed);
174 void AI_PitchSpeed(
float speed);
175 void PitchCaps(
float upcap,
float downcap);
176 void MaxYawOffset(
float max);
177 void YawCenter(
float center);
178 void P_UserDistance(
float dist);
179 void AI_BurstFireSettings(
float min_bursttime,
float max_bursttime,
float min_burstdelay,
float max_burstdelay);
180 void AI_EventSetAimTarget(
Event *ev);
181 void AI_EventSetAimOffset(
Event *ev);
182 void AI_EventClearAimTarget(
Event *ev);
183 void AI_EventStartFiring(
Event *ev);
184 void AI_EventStopFiring(
Event *ev);
185 void AI_EventTurnSpeed(
Event *ev);
186 void AI_EventPitchSpeed(
Event *ev);
187 void EventPitchCaps(
Event *ev);
188 void EventMaxYawOffset(
Event *ev);
189 void EventYawCenter(
Event *ev);
190 void P_EventUserDistance(
Event *ev);
191 void P_EventViewJitter(
Event *ev);
192 void P_EventDoJitter(
Event *ev);
193 void AI_EventBurstFireSettings(
Event *ev);
194 void P_EventSetThread(
Event *ev);
195 void P_SetMaxUseAngle(
Event *ev);
196 void P_SetStartYaw(
Event *ev);
197 void P_SetViewangles(
Event *ev);
198 void P_SetViewAnglesForTurret(
Event *ev);
199 void P_GetViewangles(
Event *ev);
200 void P_CreateViewModel();
201 void P_DeleteViewModel();
203 qboolean AI_SetWeaponAnim(
const char *anim,
Event *ev = NULL);
204 qboolean P_SetWeaponAnim(
const char *anim,
Event *ev = NULL);
205 qboolean SetWeaponAnim(
const char *anim,
Event *ev = NULL)
override;
206 void AI_StopWeaponAnim();
207 void P_StopWeaponAnim();
208 void StopWeaponAnim()
override;
210 bool AI_CanTarget(
const vec3_t org);
211 virtual float FireDelay(firemode_t mode)
override;
212 virtual void SetFireDelay(
Event *ev)
override;
213 void ShowInfo(
float fDot,
float fDist)
override;
217 void AI_EventSetTargetType(
Event *ev);
218 void AI_EventGetTargetType(
Event *ev);
219 void AI_EventSetConvergeTime(
Event *ev);
220 void AI_EventSetSuppressTime(
Event *ev);
221 void AI_EventSetSuppressWaitTime(
Event *ev);
222 void AI_EventSetSuppressWidth(
Event *ev);
223 void AI_EventSetSuppressHeight(
Event *ev);
224 void AI_EventSetBulletSpread(
Event *ev);
225 void GetMuzzlePosition(
226 vec3_t position, vec3_t vBarrelPos = NULL, vec3_t forward = NULL, vec3_t right = NULL, vec3_t up = NULL
229 void setAngles(
Vector ang)
override;
232 const Vector& GetUserViewAngles()
const;
233 void SetUserViewAngles(
const Vector& vAngles);
235 void Archive(
Archiver& arc)
override;