⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 script.h

📁 Blood 2全套源码
💻 H
字号:
#ifndef __SCRIPT_H__
#define __SCRIPT_H__

#include <stdio.h>
#include "basedefs_de.h"
#include "cpp_engineobjects_de.h"
#include "cpp_server_de.h"
#include "ScriptList.h"
#include "gib.h"
#include "AI_Shared.h"


#define MAX_DEFINES			50
#define MAXSCRIPTOBJ        30
#define MAX_MOVEOBJS        10

// Script Objects
typedef struct ObjectData_t
{    
	char		m_szObjectName[MAXDATA_LEN+1];
	char		m_szClassName[MAXDATA_LEN+1];
    HOBJECT     m_hObject;

// Movement Over Time
    DBOOL       m_bMovement;
	DVector		m_vInitPos;
	DRotation	m_rInitRot;
	DVector		m_vDestPos;
	DRotation	m_rDestRot;
    DFLOAT      m_fStartTime;
    DFLOAT      m_fCurrentTime;
    DFLOAT      m_fDuration;
} ObjectData;


// Sound object
typedef struct SoundData_t 
{
	char		m_szObjectName[MAXDATA_LEN+1];
    HSOUNDDE    m_hSound;
} SoundData;


// Defines
typedef struct DefineData_t 
{
	char		m_szDefineName[MAXDATA_LEN+1];
	char		m_szDefineValue[MAXDATA_LEN+1];
} DefineData;



class Script : public B2BaseClass
{
	public:

		Script();
		virtual ~Script();

	protected:

		DDWORD		EngineMessageFn(DDWORD messageID, void *pData, float lData);
		DDWORD		ObjectMessageFn(HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead);
		DBOOL		HandleTrigger(HOBJECT hSender, HMESSAGEREAD hRead);

	private:

		DBOOL		ReadProp(ObjectCreateStruct *pStruct);
		void		PostPropRead(ObjectCreateStruct *pStruct);
		DBOOL		InitialUpdate(DVector *pMovement);
		DBOOL		Update(DVector *pMovement);

		DBOOL		ProcessScript();
		DBOOL		CheckStartTime();
		DBOOL		LoadScript(int &nEOF);

		DBOOL		AddArgScript(char *temparg);

		DBOOL		StartScript();
		DBOOL		EndScript();
		DBOOL		SetCutScene();
		DBOOL		SubTitleDisplay();
		DBOOL		SubTitleFade();

		DBOOL		ObjectCreateAt();
		DBOOL		ObjectCreateNear();

		DBOOL		ObjectAssign();
		DBOOL		ObjectCreateModelAt();
		DBOOL		ObjectCreateModelNear();
		DBOOL		ObjectCreateFire();
		DBOOL		ObjectCreateExplosionAt();
		DBOOL		ObjectCreateExplosionNear();

		DBOOL		ObjectMove();
		DBOOL		ObjectTeleport();

		DBOOL		ObjectMoveObj();
		DBOOL		ObjectMoveOverTimeUpdate(ObjectData *pObj);

		DBOOL		ObjectFlags();
		DBOOL		ObjectFlagVisible();
		DBOOL		ObjectFlagSolid();
		DBOOL		ObjectFlagGravity();
		DBOOL		ObjectDims();
		DBOOL		ObjectGib();
		DBOOL		ObjectScale();
		DBOOL		ObjectDestroy();

		DBOOL		WaitDelay();
		DBOOL		CameraCreate();
		DBOOL		CameraDestroy();
		DBOOL		CameraSelect();
		DBOOL		CameraMoveObj();
		DBOOL		CameraTeleport();
		DBOOL		CameraTeleportObj();
		DBOOL		CameraRotate();
		DBOOL		CameraLinkSpot();
		DBOOL		CameraZoom();
		DBOOL		PlaySoundPos();
		DBOOL		PlaySoundObj();
		DBOOL		PlayAnimation();
		DBOOL		KillSound();
		DBOOL		SendAIScript();
		DBOOL		SendTrigger();
		DBOOL		SendTriggerNamed();

		int			StringToScriptCutCmdType(char* pCmdName, int &nArgs, int &nCheckObjID);

		ObjectData	ScriptObject[MAXSCRIPTOBJ];         // Script objects
		ObjectData	ScriptCamera[MAXSCRIPTOBJ];         // Script objects
		SoundData	ScriptSound[MAXSCRIPTOBJ];         // Script objects

		int			m_nObjectIndex;                     // Object buffer index
		int			m_nCameraIndex;                     // Object buffer index

		DFLOAT		m_fNextScriptTime;
		DFLOAT		m_fStartTime;
		int			m_nCurrLine;

		SCRIPTCMD	m_curScriptCmd;		                // The current script command
		CScriptList	m_scriptCmdList;	                // List of all script commands

		HSTRING		m_hstrScriptName;	                // ScriptName

		DBOOL		m_bScriptLoaded;
		DBOOL		m_bCheckOverTime;

		AI_Shared	AIShared;       // Shared functions

		DBOOL		m_bCheckStartTime;

		int			m_nDefineCnt;
		DefineData	sDefineObject[MAX_DEFINES];

		FILE		*infile;

		int			m_nMoveObject[MAX_MOVEOBJS];
		int			m_nMoveCamera[MAX_MOVEOBJS];

		DBOOL		m_bScriptStarted;
};


#endif // __SCRIPT_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -