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.
102 lines
3.4 KiB
C++
102 lines
3.4 KiB
C++
//===========================================================================//
|
|
// File: D3DRMVideoViewPoint_Tool.cpp //
|
|
// Project: MUNGA Brick: Win95 Video Renderer //
|
|
// Contents: Windows95 Layer Video Renderer //
|
|
//---------------------------------------------------------------------------//
|
|
// Date Who Modification //
|
|
// -------- --- ---------------------------------------------------------- //
|
|
// 03/15/97 JTR Initial coding. //
|
|
//---------------------------------------------------------------------------//
|
|
// Copyright (C) 1997, Virtual World Entertainment, Inc. //
|
|
// All Rights reserved worldwide //
|
|
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
|
|
//===========================================================================//
|
|
|
|
#include "AdeptHeaders.hpp"
|
|
|
|
#include "CameraComponent.hpp"
|
|
#include <ElementRenderer\StateChange.hpp>
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
CameraComponent::ClassData*
|
|
CameraComponent::CreateFactoryRequest(FactoryRequestParameters *parameters)
|
|
{
|
|
Check_Object(parameters);
|
|
|
|
//
|
|
//-------------------------------------------------------------------------
|
|
// Allocate enough room for what we need to write out, then call our parent
|
|
//-------------------------------------------------------------------------
|
|
//
|
|
MemoryStream *component_stream = parameters->m_stream;
|
|
Check_Object(component_stream);
|
|
component_stream->AllocateBytes(sizeof(CameraComponent));
|
|
bool result = BaseClass::CreateFactoryRequest(parameters) != NULL;
|
|
|
|
//
|
|
//-----------------------
|
|
// Read the viewing state
|
|
//-----------------------
|
|
//
|
|
Page *page = parameters->m_page;
|
|
Check_Object(page);
|
|
MString prefix="Scene";
|
|
ElementRenderer::StateChange states(page, prefix);
|
|
ElementRenderer::WriteERFVersion(component_stream);
|
|
states.Save(component_stream);
|
|
|
|
//
|
|
//------------------------
|
|
// Read the viewing angles
|
|
//------------------------
|
|
//
|
|
Scalar horizontal_angle=Pi_Over_3;
|
|
page->GetEntry("HorizontalAngle", &horizontal_angle);
|
|
*component_stream << horizontal_angle;
|
|
|
|
Scalar x_position=1.0f;
|
|
page->GetEntry("ViewPortXPosition", &x_position);
|
|
Clamp(x_position, 0.0f, 1.0f);
|
|
*component_stream << x_position;
|
|
|
|
Scalar y_position=1.0f;
|
|
page->GetEntry("ViewPortYPosition", &y_position);
|
|
Clamp(y_position, 0.0f, 1.0f);
|
|
*component_stream << y_position;
|
|
|
|
Scalar width=1.0f;
|
|
page->GetEntry("ViewPortWidth", &width);
|
|
Clamp(width, 0.0f, x_position);
|
|
*component_stream << width;
|
|
|
|
Scalar height=1.0f;
|
|
page->GetEntry("ViewPortHeight", &height);
|
|
Clamp(height, 0.0f, y_position);
|
|
*component_stream << height;
|
|
|
|
bool is_main_camera = true;
|
|
page->GetEntry("IsMainSceneCamera", &is_main_camera);
|
|
*component_stream << is_main_camera;
|
|
|
|
bool draw_sky = true;
|
|
page->GetEntry("DrawSky", &draw_sky);
|
|
*component_stream << draw_sky;
|
|
|
|
Stuff::Scalar lod_offset = 0.0f;
|
|
page->GetEntry("LODOffset", &lod_offset);
|
|
if (lod_offset < 0.0f)
|
|
{
|
|
lod_offset = -(lod_offset * lod_offset);
|
|
}
|
|
else
|
|
{
|
|
lod_offset = lod_offset * lod_offset;
|
|
}
|
|
*component_stream << lod_offset;
|
|
|
|
|
|
Check_Object(DefaultData);
|
|
return (result) ? DefaultData : NULL;
|
|
}
|