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

📄 volumebrush.h

📁 Blood 2全套源码
💻 H
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : VolumeBrush.h
//
// PURPOSE : VolumeBrush definition
//
// CREATED : 1/29/98
//
// ----------------------------------------------------------------------- //

#ifndef __VOLUME_BRUSH_H__
#define __VOLUME_BRUSH_H__

#include "cpp_engineobjects_de.h"
#include "ContainerCodes.h"
//#include "DamageTypes.h"
#include "B2BaseClass.h"

class VolumeBrush : public B2BaseClass
{
	public :

		VolumeBrush();
		~VolumeBrush();

		DFLOAT	GetGravity()	const { return m_fGravity; }
		DFLOAT	GetViscosity()	const { return m_fViscosity; }
		ContainerCode GetCode()	const { return m_eContainerCode; }
		void GetSurfaceColor(DVector *color1, DVector *color2)
			{ VEC_COPY(*color1, m_vSurfaceColor1); VEC_COPY(*color2, m_vSurfaceColor2); }

		void UndoViscosityCalculation(ContainerPhysics* pCPStruct);
		DVector&	GetCurrent() { return m_vCurrent; }
		DBOOL		GetHidden() { return m_bHidden; }

	protected :

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

		virtual void UpdatePhysics(ContainerPhysics* pCPStruct);
		virtual void UpdateLiquidPhysics(ContainerPhysics* pCPStruct, DBOOL bCharacter=DFALSE);
		virtual void UpdateZeroGravity(ContainerPhysics* pCPStruct);

	private:

		void	Save(HMESSAGEWRITE hWrite, DDWORD dwSaveFlags);
		void	Load(HMESSAGEREAD hRead, DDWORD dwLoadFlags);
		void	CacheFiles();

	protected:

		DFLOAT			m_fViscosity;
		ContainerCode	m_eContainerCode;
		DVector			m_vCurrent;
		DFLOAT			m_fDamage;
		DBYTE			m_nDamageType;
		DFLOAT			m_fSurfaceHeight;
		DBOOL			m_bShowSurface;
		DVector			m_vSurfaceColor1;
		DVector			m_vSurfaceColor2;
		DFLOAT			m_fSurfaceAlpha;
		DVector			m_vLastPos;
		DBOOL			m_bHidden;
		DFLOAT			m_fGravity;
		DFLOAT			m_fLastDamageTime;

		DFLOAT			m_fXScaleMin;
		DFLOAT			m_fXScaleMax;
		DFLOAT			m_fYScaleMin;
		DFLOAT			m_fYScaleMax;
		DFLOAT			m_fXScaleDuration;
		DFLOAT			m_fYScaleDuration;
		DDWORD			m_dwNumSurfacePolies;
		HSTRING			m_hstrSurfaceSprite;

		DDWORD			m_dwFlags;
		DDWORD			m_dwSaveFlags;
		HOBJECT			m_hSurfaceObj;
		DBOOL			m_bLocked;			// Needs a key to activate
		DBOOL			m_bUnlockKeyRemove;	// Key gets removed from inventory when used
		HSTRING			m_hstrKeyName;		// name of key needed for activation

		// Fog stuff
		DBOOL			m_bFogEnable;
		DFLOAT			m_fFogFarZ;
		DFLOAT			m_fFogNearZ;
		DVector			m_vFogColor;
		HCLASS			m_hPlayerClass;

	private :

		void CreateSurface();
		void HandleTrigger(HOBJECT hSender, HSTRING hMsg);

		void ReadProp(ObjectCreateStruct *pStruct);
		void InitialUpdate(int nData);
		void Update();
};

#endif // __VOLUME_BRUSH_H__

⌨️ 快捷键说明

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