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.
103 lines
2.7 KiB
C++
103 lines
2.7 KiB
C++
#include "MLRHeaders.hpp"
|
|
|
|
//#############################################################################
|
|
//########################### MLRAmbientLight ###########################
|
|
//#############################################################################
|
|
|
|
MLRAmbientLight::ClassData*
|
|
MLRAmbientLight::DefaultData = NULL;
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void
|
|
MLRAmbientLight::InitializeClass()
|
|
{
|
|
Verify(!DefaultData);
|
|
Verify(gos_GetCurrentHeap() == StaticHeap);
|
|
DefaultData =
|
|
new ClassData(
|
|
MLRAmbientLightClassID,
|
|
"MidLevelRenderer::MLRAmbientLight",
|
|
MLRLight::DefaultData
|
|
);
|
|
Register_Object(DefaultData);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void
|
|
MLRAmbientLight::TerminateClass()
|
|
{
|
|
Unregister_Object(DefaultData);
|
|
delete DefaultData;
|
|
DefaultData = NULL;
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
MLRAmbientLight::MLRAmbientLight() :
|
|
MLRLight(DefaultData)
|
|
{
|
|
Verify(gos_GetCurrentHeap() == LightsHeap);
|
|
lightMask = MLRState::FaceLightingMode|MLRState::VertexLightingMode;
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
MLRAmbientLight::MLRAmbientLight(
|
|
Stuff::MemoryStream *stream,
|
|
int version
|
|
) :
|
|
MLRLight(DefaultData, stream, version)
|
|
{
|
|
Check_Object(stream);
|
|
Verify(gos_GetCurrentHeap() == LightsHeap);
|
|
lightMask = MLRState::FaceLightingMode|MLRState::VertexLightingMode;
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
MLRAmbientLight::MLRAmbientLight(Stuff::Page *page) :
|
|
MLRLight(DefaultData, page)
|
|
{
|
|
Check_Object(page);
|
|
Verify(gos_GetCurrentHeap() == LightsHeap);
|
|
lightMask = MLRState::FaceLightingMode|MLRState::VertexLightingMode;
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
MLRAmbientLight::~MLRAmbientLight()
|
|
{
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void
|
|
MLRAmbientLight::TestInstance()
|
|
{
|
|
Verify(IsDerivedFrom(DefaultData));
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void
|
|
MLRAmbientLight::LightVertex(const MLRVertexData& vertexData)
|
|
{
|
|
Stuff::RGBAColor *t = const_cast<Stuff::RGBAColor*>(vertexData.color);
|
|
Check_Pointer(t);
|
|
t->red += (color.red*intensity);
|
|
t->green += (color.green*intensity);
|
|
t->blue += (color.blue*intensity);
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void
|
|
MLRAmbientLight::LightCenter(RGBAColor& rcol)
|
|
{
|
|
rcol.red += (color.red*intensity);
|
|
rcol.green += (color.green*intensity);
|
|
rcol.blue += (color.blue*intensity);
|
|
}
|