107class Level :
public Listener
116 str m_precachescript;
137 float svsStartFloatTime;
146 int m_iCuriousVoiceTime;
147 int m_iAttackEntryAnimTime;
150 qboolean playerfrozen;
153 float intermissiontime;
154 INTTYPE_e intermissiontype;
155 int exitintermission;
165 float earthquake_magnitude;
173 qboolean mbNoDropHealth;
174 qboolean mbNoDropWeapons;
178 qboolean mission_failed;
179 qboolean died_already;
189 str current_soundtrack;
190 str saved_soundtrack;
196 float m_fade_time_start;
197 fadetype_t m_fade_type;
198 fadestyle_t m_fade_style;
201 float m_letterbox_fraction;
202 float m_letterbox_time;
203 float m_letterbox_time_start;
204 letterboxdir_t m_letterbox_dir;
224 VoteOptions m_voteOptions;
227 Vector m_intermission_origin;
228 Vector m_intermission_angle;
231 int frame_skel_index;
232 int skel_index[MAX_GENTITIES];
235 qboolean m_LoopProtection;
239 class Sentient *m_HeadSentient[MAX_HEAD_SENTIENTS];
242 earthquake_t earthquakes[MAX_EARTHQUAKES];
246 Vector m_vObjectiveLocation;
247 Vector m_vAlliedObjectiveLocation;
248 Vector m_vAxisObjectiveLocation;
252 bool m_bForceTeamObjectiveLocation;
262 float m_fLandmarkYDistMax;
263 float m_fLandmarkYDistMin;
264 float m_fLandmarkXDistMin;
265 float m_fLandmarkXDistMax;
268 int m_iLandmarksCount;
283 CLASS_PROTOTYPE(Level);
289 void CleanUp(qboolean samemap = qfalse, qboolean resetConfigStrings = qfalse);
291 gentity_t *AllocEdict(
Entity *ent);
292 void FreeEdict(gentity_t *ent);
293 void InitEdict(gentity_t *ent);
294 void LoadAllScripts(
const char *name,
const char *extension);
296 void SetMap(
const char *themapname);
299 void SpawnEntities(
char *entities,
int _svsTime_);
302 void ComputeDMWaypoints();
303 void AddLandmarkOrigin(
const Vector& origin);
304 void AddLandmarkName(
const str& name,
const Vector& origin);
305 void FreeLandmarks();
306 str GetDynamicDMLocations(
const Vector& origin);
307 str GetDMLocation(
const Vector& origin);
309 void PreSpawnSentient(Event *ev);
310 void ServerSpawned();
311 qboolean inhibitEntity(
int spawnflags);
313 void setSkill(
int value);
314 void setTime(
int _svsTime_);
315 void setFrametime(
int frameTime);
317 void AddAutomaticCamera(
Camera *cam);
319 void GetTime(Event *ev);
320 void GetTotalSecrets(Event *ev);
321 void GetFoundSecrets(Event *ev);
325 void InitVoteOptions();
326 void SendVoteOptionsFile(gentity_t *ent);
327 bool GetVoteOptionMain(
int index, str *outOptionCommand, voteoptiontype_t *outOptionType);
328 bool GetVoteOptionSub(
int index,
int listIndex, str *outCommand);
329 bool GetVoteOptionMainName(
int index, str *outVoteName);
330 bool GetVoteOptionSubName(
int index,
int listIndex, str *outName);
335 void GetAlarm(Event *ev);
336 void SetAlarm(Event *ev);
337 void SetNoDropHealth(Event *ev);
338 void SetNoDropWeapons(Event *ev);
339 void GetLoopProtection(Event *ev);
340 void SetLoopProtection(Event *ev);
341 void GetPapersLevel(Event *ev);
342 void SetPapersLevel(Event *ev);
343 void EventGetRoundStarted(Event *ev);
344 void EventGetDMRespawning(Event *ev);
345 void EventSetDMRespawning(Event *ev);
346 void EventGetDMRoundLimit(Event *ev);
347 void EventSetDMRoundLimit(Event *ev);
348 void EventGetClockSide(Event *ev);
349 void EventSetClockSide(Event *ev);
350 void EventGetBombPlantTeam(Event *ev);
351 void EventSetBombPlantTeam(Event *ev);
352 void EventGetTargetsToDestroy(Event *ev);
353 void EventSetTargetsToDestroy(Event *ev);
354 void EventGetTargetsDestroyed(Event *ev);
355 void EventSetTargetsDestroyed(Event *ev);
356 void EventGetBombsPlanted(Event *ev);
357 void EventSetBombsPlanted(Event *ev);
358 void EventGetRoundBased(Event *ev);
359 void EventGetObjectiveBased(Event *ev);
360 void EventRainDensitySet(Event *ev);
361 void EventRainDensityGet(Event *ev);
362 void EventRainSpeedSet(Event *ev);
363 void EventRainSpeedGet(Event *ev);
364 void EventRainSpeedVarySet(Event *ev);
365 void EventRainSpeedVaryGet(Event *ev);
366 void EventRainSlantSet(Event *ev);
367 void EventRainSlantGet(Event *ev);
368 void EventRainLengthSet(Event *ev);
369 void EventRainLengthGet(Event *ev);
370 void EventRainMin_DistSet(Event *ev);
371 void EventRainMin_DistGet(Event *ev);
372 void EventRainWidthSet(Event *ev);
373 void EventRainWidthGet(Event *ev);
374 void EventRainShaderSet(Event *ev);
375 void EventRainShaderGet(Event *ev);
376 void EventRainNumShadersSet(Event *ev);
377 void EventRainNumShadersGet(Event *ev);
380 void EventAddBadPlace(Event *ev);
381 void EventRemoveBadPlace(Event *ev);
382 void EventIgnoreClock(Event *ev);
383 void UpdateBadPlaces();
384 int GetNearestBadPlace(
const Vector& org,
float radius,
int team)
const;
386 str GetRandomHeadModel(
const char *model);
387 str GetRandomHeadSkin(
const char *model);
390 bool PreSpawned(
void);
393 void AddEarthquake(earthquake_t *);
394 void DoEarthquakes(
void);
396 void OpenActorStats();
397 void WriteActorStats(
Actor *actor);
401 void SetForceTeamObjectiveLocation(Event *ev);
402 void GetForceTeamObjectiveLocation(Event *ev);
403 const VoteOptions& GetVoteOptions()
const;
404 void EnterIntermission();
408 void Archive(
Archiver& arc)
override;