This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

61 lines
2.5 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef SCENEENTITY_H
#define SCENEENTITY_H
#ifdef _WIN32
#pragma once
#endif
// List of the last 5 lines of speech from NPCs for bug reports
#define SPEECH_LIST_MAX_SOUNDS 5
class AI_Response;
struct recentNPCSpeech_t {
float time;
char name[512];
char sceneName[128];
};
int GetRecentNPCSpeech(recentNPCSpeech_t speech[SPEECH_LIST_MAX_SOUNDS]);
float InstancedScriptedScene(CBaseFlex *pActor, const char *pszScene,
EHANDLE *phSceneEnt = NULL,
float flPostDelay = 0.0f,
bool bIsBackground = false,
AI_Response *response = NULL,
bool bMultiplayer = false,
IRecipientFilter *filter = NULL);
float InstancedAutoGeneratedSoundScene(CBaseFlex *pActor, char const *soundname,
EHANDLE *phSceneEnt = NULL);
void StopScriptedScene(CBaseFlex *pActor, EHANDLE hSceneEnt);
void RemoveActorFromScriptedScenes(CBaseFlex *pActor, bool instancedscenesonly,
bool nonidlescenesonly = false,
const char *pszThisSceneOnly = NULL);
void RemoveAllScenesInvolvingActor(CBaseFlex *pActor);
void PauseActorsScriptedScenes(CBaseFlex *pActor, bool instancedscenesonly);
void ResumeActorsScriptedScenes(CBaseFlex *pActor, bool instancedscenesonly);
void QueueActorsScriptedScenesToResume(CBaseFlex *pActor,
bool instancedscenesonly);
bool IsRunningScriptedScene(CBaseFlex *pActor,
bool bIgnoreInstancedScenes = true);
bool IsRunningScriptedSceneAndNotPaused(CBaseFlex *pActor,
bool bIgnoreInstancedScenes = true);
bool IsRunningScriptedSceneWithSpeech(CBaseFlex *pActor,
bool bIgnoreInstancedScenes = false);
bool IsRunningScriptedSceneWithSpeechAndNotPaused(
CBaseFlex *pActor, bool bIgnoreInstancedScenes = false);
float GetSceneDuration(char const *pszScene);
int GetSceneSpeechCount(char const *pszScene);
bool IsInInterruptableScenes(CBaseFlex *pActor);
void PrecacheInstancedScene(char const *pszScene);
char const *GetSceneFilename(CBaseEntity *ent);
void ReloadSceneFromDisk(CBaseEntity *ent);
#endif // SCENEENTITY_H