Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
406 lines
8.6 KiB
C++
406 lines
8.6 KiB
C++
#pragma once
|
|
|
|
#include "Proxies.hpp"
|
|
#include "TextureProxy.hpp"
|
|
|
|
namespace Proxies {
|
|
|
|
class SceneProxy;
|
|
class StateLibrary;
|
|
|
|
//
|
|
//#########################################################################
|
|
//####################### StateProxy #############################
|
|
//#########################################################################
|
|
//
|
|
class _declspec(novtable) StateProxy:
|
|
public GenericProxy
|
|
{
|
|
public:
|
|
static void
|
|
InitializeClass();
|
|
static void
|
|
TerminateClass();
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Constructors
|
|
//
|
|
protected:
|
|
StateProxy(
|
|
ClassData *class_data,
|
|
StateLibrary *library
|
|
);
|
|
~StateProxy();
|
|
|
|
public:
|
|
//
|
|
// Copies the elements of the given material into this material
|
|
//
|
|
virtual void
|
|
Copy(
|
|
CopyProcess *copy,
|
|
StateProxy *state
|
|
);
|
|
//
|
|
// gives informations about this state
|
|
//
|
|
virtual void
|
|
GetInfo(
|
|
GetInfoProcess *process
|
|
);
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Class Data Support
|
|
//
|
|
public:
|
|
static ClassData
|
|
*DefaultData;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Testing
|
|
//
|
|
public:
|
|
void
|
|
TestInstance() const;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Material management functions
|
|
//
|
|
public:
|
|
StateLibrary*
|
|
GetStateLibrary()
|
|
{Check_Object(this); return libraryProxy;}
|
|
|
|
virtual bool
|
|
IsEqualTo(StateProxy *material);
|
|
|
|
protected:
|
|
StateLibrary
|
|
*libraryProxy;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// State functions
|
|
//
|
|
public:
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Render state
|
|
//
|
|
enum AlphaMode {
|
|
OneZeroMode = 0,
|
|
OneOneMode,
|
|
AlphaOneMode,
|
|
OneAlphaMode,
|
|
AlphaInvAlphaMode,
|
|
OneInvAlphaMode,
|
|
KeyedAlphaMode
|
|
};
|
|
|
|
virtual bool
|
|
GetAlpha(AlphaMode*) = 0;
|
|
virtual void
|
|
SetAlpha(AlphaMode) = 0;
|
|
virtual bool
|
|
GetAlphaChildPermission() = 0;
|
|
virtual void
|
|
SetAlphaChildPermission(bool override) = 0;
|
|
|
|
enum FilterMode {
|
|
NoFilterMode = 0,
|
|
BiLinearFilterMode,
|
|
TriLinearFilterMode
|
|
};
|
|
|
|
virtual bool
|
|
GetFilter(FilterMode*) = 0;
|
|
virtual void
|
|
SetFilter(FilterMode) = 0;
|
|
virtual bool
|
|
GetFilterChildPermission() = 0;
|
|
virtual void
|
|
SetFilterChildPermission(bool override) = 0;
|
|
|
|
enum FogMode {
|
|
DisableFogMode = 0,
|
|
GeneralFogMode,
|
|
LightFogMode,
|
|
CustomFogMode
|
|
};
|
|
|
|
virtual bool
|
|
GetFog(FogMode*) = 0;
|
|
virtual void
|
|
SetFog(FogMode) = 0;
|
|
virtual bool
|
|
GetFogChildPermission() = 0;
|
|
virtual void
|
|
SetFogChildPermission(bool override) = 0;
|
|
|
|
|
|
virtual bool
|
|
GetDither(bool*) = 0;
|
|
virtual void
|
|
SetDither(bool) = 0;
|
|
virtual bool
|
|
GetDitherChildPermission() = 0;
|
|
virtual void
|
|
SetDitherChildPermission(bool override) = 0;
|
|
|
|
virtual bool
|
|
GetSpecular(bool*) = 0;
|
|
virtual void
|
|
SetSpecular(bool) = 0;
|
|
virtual bool
|
|
GetSpecularChildPermission() = 0;
|
|
virtual void
|
|
SetSpecularChildPermission(bool override) = 0;
|
|
|
|
virtual bool
|
|
GetTextureCorrection(bool*) = 0;
|
|
virtual void
|
|
SetTextureCorrection(bool) = 0;
|
|
virtual bool
|
|
GetTextureCorrectionChildPermission() = 0;
|
|
virtual void
|
|
SetTextureCorrectionChildPermission(bool override) = 0;
|
|
|
|
enum TextureWrapMode {
|
|
TextureWrap = 0,
|
|
TextureClamp
|
|
};
|
|
|
|
virtual bool
|
|
GetTextureWrap(TextureWrapMode*) = 0;
|
|
virtual void
|
|
SetTextureWrap(TextureWrapMode) = 0;
|
|
virtual bool
|
|
GetTextureWrapChildPermission() = 0;
|
|
virtual void
|
|
SetTextureWrapChildPermission(bool override) = 0;
|
|
|
|
enum WireFrameMode {
|
|
WireFrameOffMode = 0,
|
|
WireFrameOnlyMode,
|
|
WireFrameAddMode
|
|
};
|
|
|
|
virtual bool
|
|
GetWireFrame(WireFrameMode*) = 0;
|
|
virtual void
|
|
SetWireFrame(WireFrameMode) = 0;
|
|
virtual bool
|
|
GetWireFrameChildPermission() = 0;
|
|
virtual void
|
|
SetWireFrameChildPermission(bool override) = 0;
|
|
|
|
virtual bool
|
|
GetZBufferCompare(bool*) = 0;
|
|
virtual void
|
|
SetZBufferCompare(bool) = 0;
|
|
virtual bool
|
|
GetZBufferCompareChildPermission() = 0;
|
|
virtual void
|
|
SetZBufferCompareChildPermission(bool override) = 0;
|
|
|
|
virtual bool
|
|
GetZBufferWrite(bool*) = 0;
|
|
virtual void
|
|
SetZBufferWrite(bool) = 0;
|
|
virtual bool
|
|
GetZBufferWriteChildPermission() = 0;
|
|
virtual void
|
|
SetZBufferWriteChildPermission(bool override) = 0;
|
|
|
|
virtual bool
|
|
GetFlatColoring(bool*) = 0;
|
|
virtual void
|
|
SetFlatColoring(bool) = 0;
|
|
virtual bool
|
|
GetFlatColoringChildPermission() = 0;
|
|
virtual void
|
|
SetFlatColoringChildPermission(bool override) = 0;
|
|
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Process state
|
|
//
|
|
virtual bool
|
|
GetMatTwoSided(bool *onOff) = 0;
|
|
virtual void
|
|
SetMatTwoSided(bool onOff) = 0;
|
|
virtual bool
|
|
GetMatTwoSidedChildPermission() = 0;
|
|
virtual void
|
|
SetMatTwoSidedChildPermission(bool override) = 0;
|
|
|
|
virtual bool
|
|
GetBackface(bool *onOff) = 0;
|
|
virtual void
|
|
SetBackface(bool onOff) = 0;
|
|
virtual bool
|
|
GetBackfaceChildPermission() = 0;
|
|
virtual void
|
|
SetBackfaceChildPermission(bool override) = 0;
|
|
|
|
enum {
|
|
DefaultPriority = 0,
|
|
DetailPrority,
|
|
AlphaPriority,
|
|
EffectPriority0=4,
|
|
EffectPriority1,
|
|
EffectPriority2,
|
|
EffectPriority3,
|
|
WeatherPriority,
|
|
CagePriority,
|
|
CageEffectsPriority,
|
|
FlarePriority,
|
|
HUDPriority0,
|
|
HUDPriority1,
|
|
HUDPriority2,
|
|
HUDPriority3,
|
|
PriorityCount
|
|
};
|
|
|
|
virtual bool
|
|
GetPriority(int*) = 0;
|
|
virtual void
|
|
SetPriority(int) = 0;
|
|
virtual bool
|
|
GetPriorityChildPermission() = 0;
|
|
virtual void
|
|
SetPriorityChildPermission(bool override) = 0;
|
|
|
|
enum LightingMode {
|
|
LightingOffMode = 0,
|
|
LightingLightMapMode=1,
|
|
LightingVertexMode=2,
|
|
LightingLookupMode=4,
|
|
LightingFaceMode=8
|
|
};
|
|
|
|
virtual bool
|
|
GetLighting(int*) = 0;
|
|
virtual void
|
|
SetLighting(int) = 0;
|
|
virtual bool
|
|
GetLightingChildPermission() = 0;
|
|
virtual void
|
|
SetLightingChildPermission(bool override) = 0;
|
|
|
|
//
|
|
// specular color functions
|
|
//
|
|
virtual bool
|
|
GetSpecularColor(Stuff::RGBColor *color) = 0;
|
|
virtual void
|
|
SetSpecularColor(const Stuff::RGBColor &color) = 0;
|
|
virtual Stuff::Scalar
|
|
GetSpecularShininess() = 0;
|
|
virtual void
|
|
SetSpecularShininess(Stuff::Scalar shininess) = 0;
|
|
|
|
|
|
//
|
|
// texture functions
|
|
//
|
|
virtual TextureProxy*
|
|
UseTextureProxy() = 0;
|
|
virtual TextureProxy*
|
|
SetToMatchTextureProxy(TextureProxy *texture) = 0;
|
|
};
|
|
|
|
//
|
|
//#########################################################################
|
|
//###################### StateLibrary ############################
|
|
//#########################################################################
|
|
//
|
|
class _declspec(novtable) StateLibrary:
|
|
public GenericProxy
|
|
{
|
|
public:
|
|
static void
|
|
InitializeClass();
|
|
static void
|
|
TerminateClass();
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Constructors
|
|
//
|
|
protected:
|
|
StateLibrary(
|
|
ClassData *class_data,
|
|
SceneProxy *scene
|
|
);
|
|
~StateLibrary();
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Class Data Support
|
|
//
|
|
public:
|
|
static ClassData
|
|
*DefaultData;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Testing
|
|
//
|
|
public:
|
|
void
|
|
TestInstance() const;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Material management functions
|
|
//
|
|
public:
|
|
SceneProxy*
|
|
GetSceneProxy()
|
|
{Check_Object(this); return sceneProxy;}
|
|
|
|
protected:
|
|
SceneProxy
|
|
*sceneProxy;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
// Material functions
|
|
//
|
|
public:
|
|
//
|
|
// name functions
|
|
//
|
|
bool
|
|
GetName(Stuff::MString *name)
|
|
{return false;}
|
|
void
|
|
SetName(const char* name)
|
|
{}
|
|
|
|
//
|
|
// state functions
|
|
//
|
|
virtual StateProxy*
|
|
UseMatchingStateProxy(
|
|
StateProxy *material,
|
|
TextureProxy *texture=NULL
|
|
) = 0;
|
|
|
|
TextureLibrary*
|
|
GetTextureLibrary()
|
|
{Check_Object(this); return textureLibrary;}
|
|
|
|
void
|
|
AttachStateProxy(StateProxy *proxy)
|
|
{
|
|
Check_Object(this);
|
|
AttachReference(); activeStateProxies.Add(proxy);
|
|
}
|
|
void
|
|
DetachStateProxy(StateProxy* proxy);
|
|
|
|
protected:
|
|
TextureLibrary*
|
|
textureLibrary;
|
|
Stuff::ChainOf<StateProxy*>
|
|
activeStateProxies;
|
|
};
|
|
|
|
}
|