port 2V2-d.2: Granny runtime on libgr2, main character model animates

Implement the Granny SDK 2.11 API the client uses on top of libgr2
(platform/EterGrnLib/GrannyRuntime.cpp, shim granny.h declared from the
SDK header): file sections, type-definition vertex conversion, material
textures by Usage, mesh/bone bindings, deformer, control clock/loop/ease
and weighted SRT sampling. Port EterGrnLib (LODController, Material, Mesh,
Model, ModelInstance*, Motion, Thing, ThingInstance, Util) plus EterLib
GrpObjectInstance/GrpCollisionObject/CollisionData verbatim and drop their
platform skeletons and pending stand-ins; register the gr2 resource
factory; vertex/index buffers are CPU-side until the 2V2-e render adapter.

app.UpdateGame/RenderGame now run 40250's bodies, reaching the
CPythonApplication members through their singletons (the platform has no
app object); CPythonGraphic joins GameSingletons in member order, and
GetMousePosition reads the host cursor.

port.login_flow asserts the main instance's PART_MAIN model has meshes,
its diffuse image loaded and the WAIT motion moves the bones between
frames; offline and live pass, port_gate macos PASS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-23 19:43:27 +09:00
co-authored by Claude Opus 5.5
parent 5266b00c6e
commit 668f48d6ec
74 changed files with 11404 additions and 2356 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ if(NOT TARGET mtpython)
list(FILTER MT_PLATFORM_SOURCES EXCLUDE REGEX "/ScriptLib/")
endif()
add_library(port_platform STATIC ${MT_PLATFORM_SOURCES})
target_link_libraries(port_platform PUBLIC port_logic PRIVATE mt3p::freetype)
target_link_libraries(port_platform PUBLIC port_logic PRIVATE mt3p::freetype xrender::libgr2)
foreach(src IN LISTS MT_PLATFORM_SOURCES)
mt_port_apply_defines(${src})
endforeach()
File diff suppressed because it is too large Load Diff
@@ -1,209 +0,0 @@
// Platform skeleton for EterGrnLib/LODController.h (40250 EterGrnLib/LODController.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/LODController.h"
#include "../PlatformStub.h"
auto CGrannyLODController::SetMinLODMode(bool) -> void
{
MT_PLATFORM_STUB();
}
CGrannyLODController::CGrannyLODController()
{
MT_PLATFORM_STUB();
}
CGrannyLODController::~CGrannyLODController()
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::Clear() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::CreateDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::AddModel(CGraphicThing *, int, CGrannyLODController *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::AttachModelInstance(CGrannyLODController *, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::DetachModelInstance(CGrannyLODController *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetLODLimits(float, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetLODLevel(BYTE) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetMaterialImagePointer(const char *, CGraphicImage *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetMaterialData(const char *, const SMaterialData &) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetSpecularInfo(const char *, BOOL, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::RenderWithOneTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::RenderWithTwoTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::BlendRenderWithOneTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::BlendRenderWithTwoTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::Update(float, float, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::UpdateLODLevel(float, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::UpdateTime(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::UpdateSkeleton(const D3DXMATRIX *, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::Deform(const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::DeformNoSkin(const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::DeformAll(const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::RenderToShadowMap() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::RenderShadow() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::ReloadTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::GetBoundBox(D3DXVECTOR3 *, D3DXVECTOR3 *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::Intersect(const D3DXMATRIX *, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyLODController::SetLocalTime(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::ResetLocalTime() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetMotionPointer(const CGrannyMotion *, float, int, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::ChangeMotionPointer(const CGrannyMotion *, int, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::SetMotionAtEnd() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::isModelInstance() -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CGrannyLODController::GetModelInstance() -> CGrannyModelInstance *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyModelInstance *>();
}
auto CGrannyLODController::SetCurrentModelInstance(CGrannyModelInstance *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::RefreshAttachedModelInstance() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyLODController::__ReserveSharedDeformableVertexBuffer(DWORD) -> void
{
MT_PLATFORM_STUB();
}
@@ -1,211 +0,0 @@
// Platform skeleton for EterGrnLib/Material.h (40250 EterGrnLib/Material.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/Material.h"
#include "../PlatformStub.h"
auto CGrannyMaterial::CreateSphereMap(UINT, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::DestroySphereMap() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::TranslateSpecularMatrix(float, float, float) -> void
{
MT_PLATFORM_STUB();
}
decltype(CGrannyMaterial::ms_matSpecular) CGrannyMaterial::ms_matSpecular{};
decltype(CGrannyMaterial::ms_v3SpecularTrans) CGrannyMaterial::ms_v3SpecularTrans{};
CGrannyMaterial::CGrannyMaterial()
{
MT_PLATFORM_STUB();
}
CGrannyMaterial::~CGrannyMaterial()
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::Copy(CGrannyMaterial &) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::IsEqual(granny_material *) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMaterial::IsIn(const char *, int *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMaterial::SetSpecularInfo(BOOL, float, BYTE) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::ApplyRenderState() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::RestoreRenderState() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::Initialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::CreateFromGrannyMaterialPointer(granny_material *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMaterial::SetImagePointer(int, CGraphicImage *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::GetType() const -> CGrannyMaterial::EType
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyMaterial::EType>();
}
auto CGrannyMaterial::GetImagePointer(int) const -> CGraphicImage *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGraphicImage *>();
}
auto CGrannyMaterial::GetDiffuseTexture() const -> const CGraphicTexture *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const CGraphicTexture *>();
}
auto CGrannyMaterial::GetOpacityTexture() const -> const CGraphicTexture *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const CGraphicTexture *>();
}
auto CGrannyMaterial::GetD3DTexture(int) const -> LPDIRECT3DTEXTURE8
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<LPDIRECT3DTEXTURE8>();
}
auto CGrannyMaterial::__GetImagePointer(const char *) -> CGraphicImage *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGraphicImage *>();
}
auto CGrannyMaterial::__IsSpecularEnable() const -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CGrannyMaterial::__GetSpecularPower() const -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGrannyMaterial::__ApplyDiffuseRenderState() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::__RestoreDiffuseRenderState() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::__ApplySpecularRenderState() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterial::__RestoreSpecularRenderState() -> void
{
MT_PLATFORM_STUB();
}
decltype(CGrannyMaterial::ms_akSphereMapInstance) CGrannyMaterial::ms_akSphereMapInstance{};
CGrannyMaterialPalette::CGrannyMaterialPalette()
{
MT_PLATFORM_STUB();
}
CGrannyMaterialPalette::~CGrannyMaterialPalette()
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterialPalette::Clear() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterialPalette::Copy(const CGrannyMaterialPalette &) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterialPalette::RegisterMaterial(granny_material *) -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
auto CGrannyMaterialPalette::SetMaterialImagePointer(const char *, CGraphicImage *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterialPalette::SetMaterialData(const char *, const SMaterialData &) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterialPalette::SetSpecularInfo(const char *, BOOL, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMaterialPalette::GetMaterialRef(DWORD) -> CGrannyMaterial &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyMaterial &>();
}
auto CGrannyMaterialPalette::GetMaterialCount() const -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
-133
View File
@@ -1,133 +0,0 @@
// Platform skeleton for EterGrnLib/Mesh.h (40250 EterGrnLib/Mesh.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/Mesh.h"
#include "../PlatformStub.h"
CGrannyMesh::CGrannyMesh()
{
MT_PLATFORM_STUB();
}
CGrannyMesh::~CGrannyMesh()
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::IsEmpty() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMesh::CreateFromGrannyMeshPointer(granny_skeleton *, granny_mesh *, int, int, CGrannyMaterialPalette &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMesh::LoadIndices(void *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::LoadPNTVertices(void *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::NEW_LoadVertices(void *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::SetPNT2Mesh() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::DeformPNTVertices(void *, D3DXMATRIX *, granny_mesh_binding *) const -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::CanDeformPNTVertices() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMesh::IsTwoSide() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMesh::GetVertexCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyMesh::GetDefaultBoneIndices() const -> int *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int *>();
}
auto CGrannyMesh::GetVertexBasePosition() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyMesh::GetIndexBasePosition() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyMesh::GetGrannyMeshPointer() const -> const granny_mesh *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const granny_mesh *>();
}
auto CGrannyMesh::GetTriGroupNodeList(CGrannyMaterial::EType) const -> const CGrannyMesh::TTriGroupNode *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const CGrannyMesh::TTriGroupNode *>();
}
auto CGrannyMesh::RebuildTriGroupNodeList() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::ReloadMaterials() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::Initialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMesh::LoadMaterials(CGrannyMaterialPalette &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMesh::LoadTriGroupNodeList(CGrannyMaterialPalette &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
-178
View File
@@ -1,178 +0,0 @@
// Platform skeleton for EterGrnLib/Model.h (40250 EterGrnLib/Model.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/Model.h"
#include "../PlatformStub.h"
CGrannyModel::CGrannyModel()
{
MT_PLATFORM_STUB();
}
CGrannyModel::~CGrannyModel()
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::IsEmpty() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::CreateFromGrannyModelPointer(granny_model *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::CreateDeviceObjects() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::GetRigidVertexCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyModel::GetDeformVertexCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyModel::GetVertexCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyModel::CanDeformPNTVertices() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::DeformPNTVertices(void *, D3DXMATRIX *, const std::vector<granny_mesh_binding *> &) const -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::GetIdxCount() -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyModel::GetMeshCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyModel::GetMeshPointer(int) -> CGrannyMesh *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyMesh *>();
}
auto CGrannyModel::GetGrannyModelPointer() -> granny_model *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<granny_model *>();
}
auto CGrannyModel::GetMeshPointer(int) const -> const CGrannyMesh *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const CGrannyMesh *>();
}
auto CGrannyModel::GetPNTD3DVertexBuffer() const -> LPDIRECT3DVERTEXBUFFER8
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<LPDIRECT3DVERTEXBUFFER8>();
}
auto CGrannyModel::GetD3DIndexBuffer() const -> LPDIRECT3DINDEXBUFFER8
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<LPDIRECT3DINDEXBUFFER8>();
}
auto CGrannyModel::GetMeshNodeList(CGrannyMesh::EType, CGrannyMaterial::EType) const -> const CGrannyModel::TMeshNode *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const CGrannyModel::TMeshNode *>();
}
auto CGrannyModel::LockVertices(void **, void **) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::UnlockVertices() const -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::GetMaterialPalette() const -> const CGrannyMaterialPalette &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const CGrannyMaterialPalette &>();
}
auto CGrannyModel::LoadMeshs() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::LoadPNTVertices() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::LoadIndices() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModel::Initialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::CheckMeshIndex(int) const -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CGrannyModel::AppendMeshNode(CGrannyMesh::EType, CGrannyMaterial::EType, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModel::__LoadVertices() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
@@ -1,379 +0,0 @@
// Platform skeleton for EterGrnLib/ModelInstance.h (40250 EterGrnLib/ModelInstance.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/ModelInstance.h"
#include "../PlatformStub.h"
auto CGrannyModelInstance::DestroySystem() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::New() -> CGrannyModelInstance *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyModelInstance *>();
}
auto CGrannyModelInstance::Delete(CGrannyModelInstance *) -> void
{
MT_PLATFORM_STUB();
}
decltype(CGrannyModelInstance::ms_kPool) CGrannyModelInstance::ms_kPool{};
CGrannyModelInstance::CGrannyModelInstance()
{
MT_PLATFORM_STUB();
}
CGrannyModelInstance::~CGrannyModelInstance()
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::IsEmpty() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::Clear() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::CreateDeviceObjects() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::Update(DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::UpdateLocalTime(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::UpdateTransform(D3DXMATRIX *, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::UpdateSkeleton(const D3DXMATRIX *, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::DeformNoSkin(const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::Deform(const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::RenderWithOneTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::RenderWithTwoTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::BlendRenderWithOneTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::BlendRenderWithTwoTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::RenderWithoutTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::GetModel() -> CGrannyModel *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyModel *>();
}
auto CGrannyModelInstance::SetMaterialImagePointer(const char *, CGraphicImage *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetMaterialData(const char *, const SMaterialData &) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetSpecularInfo(const char *, BOOL, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetMainModelPointer(CGrannyModel *, CGraphicVertexBuffer *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetLinkedModelPointer(CGrannyModel *, CGraphicVertexBuffer *, CGrannyModelInstance **) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetMotionPointer(const CGrannyMotion *, float, int, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::ChangeMotionPointer(const CGrannyMotion *, int, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetMotionAtEnd() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::IsMotionPlaying() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::CopyMotion(CGrannyModelInstance *, bool) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetLocalTime(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::ResetLocalTime() -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGrannyModelInstance::GetLocalTime() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGrannyModelInstance::GetNextTime() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGrannyModelInstance::GetDeformableVertexCount() -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
auto CGrannyModelInstance::GetVertexCount() -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
auto CGrannyModelInstance::GetBoneMatrixPointer(int) const -> const float *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const float *>();
}
auto CGrannyModelInstance::GetCompositeBoneMatrixPointer(int) const -> const float *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const float *>();
}
auto CGrannyModelInstance::GetMeshMatrixPointer(int, const D3DXMATRIX **) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::GetBoneIndexByName(const char *, int *) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::SetParentModelInstance(const CGrannyModelInstance *, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::SetParentModelInstance(const CGrannyModelInstance *, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::Intersect(const D3DXMATRIX *, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::MakeBoundBox(TBoundBox *, const float *, const float *, const float *, D3DXVECTOR3 *, D3DXVECTOR3 *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::GetBoundBox(D3DXVECTOR3 *, D3DXVECTOR3 *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::ReloadTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__Initialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__DestroyModelInstance() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__DestroyMeshMatrices() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__DestroyDynamicVertexBuffer() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__CreateModelInstance() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__CreateMeshMatrices() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__CreateDynamicVertexBuffer() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__DestroyWorldPose() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__CreateWorldPose(CGrannyModelInstance *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__CreateMeshBindingVector(CGrannyModelInstance *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::__DestroyMeshBindingVector() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__GetMeshBoneIndices(unsigned int) const -> int *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int *>();
}
auto CGrannyModelInstance::__IsDeformableVertexBuffer() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyModelInstance::__SetSharedDeformableVertexBuffer(CGraphicVertexBuffer *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::__GetDeformableD3DVertexBufferPtr() -> IDirect3DVertexBuffer8 *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<IDirect3DVertexBuffer8 *>();
}
auto CGrannyModelInstance::__GetDeformableVertexBufferRef() -> CGraphicVertexBuffer &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGraphicVertexBuffer &>();
}
auto CGrannyModelInstance::__GetWorldPosePtr() const -> granny_world_pose *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<granny_world_pose *>();
}
auto CGrannyModelInstance::UpdateWorldPose() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::UpdateWorldMatrices(const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::DeformPNTVertices(void *) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::RenderMeshNodeListWithOneTexture(CGrannyMesh::EType, CGrannyMaterial::EType) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::RenderMeshNodeListWithTwoTexture(CGrannyMesh::EType, CGrannyMaterial::EType) -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyModelInstance::RenderMeshNodeListWithoutTexture(CGrannyMesh::EType, CGrannyMaterial::EType) -> void
{
MT_PLATFORM_STUB();
}
@@ -1,61 +0,0 @@
// Platform skeleton for EterGrnLib/Motion.h (40250 EterGrnLib/Motion.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/Motion.h"
#include "../PlatformStub.h"
CGrannyMotion::CGrannyMotion()
{
MT_PLATFORM_STUB();
}
CGrannyMotion::~CGrannyMotion()
{
MT_PLATFORM_STUB();
}
auto CGrannyMotion::IsEmpty() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMotion::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMotion::BindGrannyAnimation(granny_animation *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGrannyMotion::GetGrannyAnimationPointer() const -> granny_animation *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<granny_animation *>();
}
auto CGrannyMotion::GetName() const -> const char *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const char *>();
}
auto CGrannyMotion::GetDuration() const -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGrannyMotion::GetTextTrack(const char *, int *, float *) const -> void
{
MT_PLATFORM_STUB();
}
auto CGrannyMotion::Initialize() -> void
{
MT_PLATFORM_STUB();
}
-109
View File
@@ -1,109 +0,0 @@
// Platform skeleton for EterGrnLib/Thing.h (40250 EterGrnLib/Thing.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/Thing.h"
#include "../PlatformStub.h"
auto CGraphicThing::Type() -> CGraphicThing::TType
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGraphicThing::TType>();
}
CGraphicThing::CGraphicThing(const char * c_szFileName) : CResource(c_szFileName) // initializers as in 40250
{
MT_PLATFORM_STUB();
}
CGraphicThing::~CGraphicThing()
{
MT_PLATFORM_STUB();
}
auto CGraphicThing::CreateDeviceObjects() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThing::CheckModelIndex(int) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::GetModelPointer(int) -> CGrannyModel *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyModel *>();
}
auto CGraphicThing::GetModelCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGraphicThing::CheckMotionIndex(int) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::GetMotionPointer(int) -> CGrannyMotion *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyMotion *>();
}
auto CGraphicThing::GetMotionCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGraphicThing::Initialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThing::LoadModels() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::LoadMotions() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::OnLoad(int, const void *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::OnClear() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThing::OnIsEmpty() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThing::OnIsType(TType) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
@@ -1,440 +0,0 @@
// Platform skeleton for EterGrnLib/ThingInstance.h (40250 EterGrnLib/ThingInstance.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/ThingInstance.h"
#include "../PlatformStub.h"
CGraphicThingInstance::CGraphicThingInstance()
{
MT_PLATFORM_STUB();
}
CGraphicThingInstance::~CGraphicThingInstance()
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::DeformNoSkin() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::UpdateLODLevel() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::UpdateTime() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::DeformAll() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::LessRenderOrder(CGraphicThingInstance *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::Picking(const D3DXVECTOR3 &, const D3DXVECTOR3 &, float &, float &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::OnInitialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::CreateDeviceObjects() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::ReserveModelInstance(int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::ReserveModelThing(int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::CheckModelInstanceIndex(int) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::CheckModelThingIndex(int) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::CheckMotionThingIndex(DWORD) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::GetMotionThingPointer(DWORD, CGraphicThing **) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::IsMotionThing() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::RegisterModelThing(int, CGraphicThing *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::RegisterLODThing(int, CGraphicThing *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::RegisterMotionThing(DWORD, CGraphicThing *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::SetModelInstance(int, int, int, int) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::SetEndStopMotion() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::SetMotionAtEnd() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::AttachModelInstance(int, const char *, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::AttachModelInstance(int, const char *, CGraphicThingInstance &, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::DetachModelInstance(int, CGraphicThingInstance &, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::FindBoneIndex(int, const char *, int *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::GetBonePosition(int, int, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::ResetLocalTime() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::InsertDelay(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::SetMaterialImagePointer(UINT, const char *, CGraphicImage *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::SetMaterialData(UINT, const char *, SMaterialData) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::SetSpecularInfo(UINT, const char *, BOOL, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::__SetLocalTime(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::GetLastLocalTime() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicThingInstance::GetLocalTime() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicThingInstance::GetSecondElapsed() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicThingInstance::GetAverageSecondElapsed() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicThingInstance::GetLODLevel(DWORD) -> BYTE
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BYTE>();
}
auto CGraphicThingInstance::GetHeight() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicThingInstance::RenderWithOneTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::RenderWithTwoTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::BlendRenderWithOneTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::BlendRenderWithTwoTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::GetLODControllerCount() const -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
auto CGraphicThingInstance::GetLODControllerPointer(DWORD) const -> CGrannyLODController *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyLODController *>();
}
auto CGraphicThingInstance::GetLODControllerPointer(DWORD) -> CGrannyLODController *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGrannyLODController *>();
}
auto CGraphicThingInstance::ReloadTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::GetBaseThingPtr() -> CGraphicThing *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGraphicThing *>();
}
auto CGraphicThingInstance::SetMotion(DWORD, float, int, float) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::ChangeMotion(DWORD, int, float) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::Intersect(float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::GetBoundBox(D3DXVECTOR3 *, D3DXVECTOR3 *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::GetBoundBox(DWORD, D3DXVECTOR3 *, D3DXVECTOR3 *) -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CGraphicThingInstance::GetBoneMatrix(DWORD, DWORD, D3DXMATRIX **) -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CGraphicThingInstance::GetCompositeBoneMatrix(DWORD, DWORD, D3DXMATRIX **) -> BOOL
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<BOOL>();
}
auto CGraphicThingInstance::UpdateTransform(D3DXMATRIX *, float, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::ProjectShadow(const CGraphicShadowTexture &) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::BuildBoundingSphere() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::BuildBoundingAABB() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::CalculateBBox() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::GetBoundingSphere(D3DXVECTOR3 &, float &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::GetBoundingAABB(D3DXVECTOR3 &, D3DXVECTOR3 &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::OnClear() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnDeform() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnUpdate() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnRender() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnBlendRender() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnRenderToShadowMap() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnRenderShadow() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnRenderPCBlocker() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnUpdateCollisionData(const CStaticCollisionDataVector *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnUpdateHeighInstance(CAttributeInstance *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::OnGetObjectHeight(float, float, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicThingInstance::CreateSystem(UINT) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::DestroySystem() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicThingInstance::New() -> CGraphicThingInstance *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CGraphicThingInstance *>();
}
auto CGraphicThingInstance::Delete(CGraphicThingInstance *) -> void
{
MT_PLATFORM_STUB();
}
decltype(CGraphicThingInstance::ms_kPool) CGraphicThingInstance::ms_kPool{};
auto CGraphicThingInstance::HaveBlendThing() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
@@ -1,12 +0,0 @@
// Platform skeleton for EterGrnLib/Util.h (40250 EterGrnLib/Util.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterGrnLib/StdAfx.h"
#include "EterGrnLib/Util.h"
#include "../PlatformStub.h"
auto GrannyMeshIsDeform(granny_mesh *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
@@ -0,0 +1,47 @@
#pragma once
// CPU-memory vertex/index buffers behind the D3D8 buffer handles. 40250 fills its buffers through
// Lock/Unlock (CGrannyModel::__LoadVertices, CGrannyModelInstance deform) and the renderer later reads
// them back, so the platform keeps the bytes in memory instead of creating device objects.
#include "EterLib/StdAfx.h"
#include <cstdint>
#include <vector>
struct MtCpuVertexBuffer : IDirect3DVertexBuffer8
{
std::vector<uint8_t> bytes;
DWORD fvf = 0;
};
struct MtCpuIndexBuffer : IDirect3DIndexBuffer8
{
std::vector<uint8_t> bytes;
D3DFORMAT format = D3DFMT_INDEX16;
};
// D3DXGetFVFVertexSize.
inline unsigned mt_fvf_vertex_size(DWORD fvf)
{
unsigned size = 0;
switch (fvf & D3DFVF_POSITION_MASK)
{
case D3DFVF_XYZ: size += 12; break;
case D3DFVF_XYZRHW: size += 16; break;
case D3DFVF_XYZB1: size += 16; break;
case D3DFVF_XYZB2: size += 20; break;
case D3DFVF_XYZB3: size += 24; break;
case D3DFVF_XYZB4: size += 28; break;
case D3DFVF_XYZB5: size += 32; break;
}
if (fvf & D3DFVF_NORMAL) size += 12;
if (fvf & D3DFVF_PSIZE) size += 4;
if (fvf & D3DFVF_DIFFUSE) size += 4;
if (fvf & D3DFVF_SPECULAR) size += 4;
const unsigned texCount = (fvf & D3DFVF_TEXCOUNT_MASK) >> D3DFVF_TEXCOUNT_SHIFT;
for (unsigned i = 0; i < texCount; ++i)
{
static const unsigned coordSize[4] = { 8, 12, 16, 4 };
size += coordSize[(fvf >> (16 + i * 2)) & 3];
}
return size;
}
@@ -1,70 +0,0 @@
// Platform skeleton for EterLib/GrpCollisionObject.h (40250 EterLib/GrpCollisionObject.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterLib/StdAfx.h"
#include "EterLib/GrpCollisionObject.h"
#include "../PlatformStub.h"
CGraphicCollisionObject::CGraphicCollisionObject()
{
MT_PLATFORM_STUB();
}
CGraphicCollisionObject::~CGraphicCollisionObject()
{
MT_PLATFORM_STUB();
}
auto CGraphicCollisionObject::IntersectTriangle(const D3DXVECTOR3 &, const D3DXVECTOR3 &, const D3DXVECTOR3 &, const D3DXVECTOR3 &, const D3DXVECTOR3 &, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectBoundBox(const D3DXMATRIX *, const TBoundBox &, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectCube(const D3DXMATRIX *, float, float, float, float, float, float, D3DXVECTOR3 &, D3DXVECTOR3 &, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectIndexedMesh(const D3DXMATRIX *, const void *, int, int, const void *, int, D3DXVECTOR3 &, D3DXVECTOR3 &, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectMesh(const D3DXMATRIX *, const void *, DWORD, DWORD, D3DXVECTOR3 &, D3DXVECTOR3 &, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectSphere(const D3DXVECTOR3 &, float, const D3DXVECTOR3 &, const D3DXVECTOR3 &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectCylinder(const D3DXVECTOR3 &, float, float, const D3DXVECTOR3 &, const D3DXVECTOR3 &) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectSphere(const D3DXVECTOR3 &, float) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicCollisionObject::IntersectCylinder(const D3DXVECTOR3 &, float, float) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
+115 -77
View File
@@ -1,88 +1,126 @@
// Platform skeleton for EterLib/GrpIndexBuffer.h (40250 EterLib/GrpIndexBuffer.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
// 40250 EterLib/GrpIndexBuffer.cpp over CPU memory (CpuBuffer.h).
#include "EterLib/StdAfx.h"
#include "EterLib/GrpIndexBuffer.h"
#include "EterLib/StateManager.h"
#include "../PlatformStub.h"
#include "CpuBuffer.h"
namespace {
BYTE* index_bytes(LPDIRECT3DINDEXBUFFER8 buffer)
{
return static_cast<MtCpuIndexBuffer*>(buffer)->bytes.data();
}
}
LPDIRECT3DINDEXBUFFER8 CGraphicIndexBuffer::GetD3DIndexBuffer() const
{
assert(m_lpd3dIdxBuf!=NULL);
return m_lpd3dIdxBuf;
}
void CGraphicIndexBuffer::SetIndices(int startIndex) const
{
STATEMANAGER.SetIndices(m_lpd3dIdxBuf, startIndex);
}
bool CGraphicIndexBuffer::Lock(void** pretIndices) const
{
assert(m_lpd3dIdxBuf!=NULL);
*pretIndices = index_bytes(m_lpd3dIdxBuf);
return true;
}
void CGraphicIndexBuffer::Unlock() const
{
assert(m_lpd3dIdxBuf!=NULL);
}
bool CGraphicIndexBuffer::Lock(void** pretIndices)
{
assert(m_lpd3dIdxBuf!=NULL);
*pretIndices = index_bytes(m_lpd3dIdxBuf);
return true;
}
void CGraphicIndexBuffer::Unlock()
{
assert(m_lpd3dIdxBuf!=NULL);
}
bool CGraphicIndexBuffer::Copy(int bufSize, const void* srcIndices)
{
assert(m_lpd3dIdxBuf!=NULL);
memcpy(index_bytes(m_lpd3dIdxBuf), srcIndices, bufSize);
return true;
}
bool CGraphicIndexBuffer::Create(int faceCount, TFace* faces)
{
int idxCount = faceCount * 3;
m_iidxCount = idxCount;
if (!Create(idxCount, D3DFMT_INDEX16))
return false;
WORD* dstIndices = reinterpret_cast<WORD*>(index_bytes(m_lpd3dIdxBuf));
for (int i = 0; i<faceCount; ++i, dstIndices+=3)
{
TFace * curFace=faces+i;
dstIndices[0]=curFace->indices[0];
dstIndices[1]=curFace->indices[1];
dstIndices[2]=curFace->indices[2];
}
return true;
}
bool CGraphicIndexBuffer::CreateDeviceObjects()
{
MtCpuIndexBuffer* buffer = new MtCpuIndexBuffer;
buffer->bytes.assign(m_dwBufferSize, 0);
buffer->format = m_d3dFmt;
m_lpd3dIdxBuf = buffer;
return true;
}
void CGraphicIndexBuffer::DestroyDeviceObjects()
{
delete static_cast<MtCpuIndexBuffer*>(m_lpd3dIdxBuf);
m_lpd3dIdxBuf = NULL;
}
bool CGraphicIndexBuffer::Create(int idxCount, D3DFORMAT d3dFmt)
{
Destroy();
m_iidxCount = idxCount;
m_dwBufferSize = sizeof(WORD) * idxCount;
m_d3dFmt = d3dFmt;
return CreateDeviceObjects();
}
void CGraphicIndexBuffer::Destroy()
{
DestroyDeviceObjects();
}
void CGraphicIndexBuffer::Initialize()
{
m_lpd3dIdxBuf=NULL;
m_iidxCount=0;
m_dwBufferSize=0;
}
CGraphicIndexBuffer::CGraphicIndexBuffer()
{
MT_PLATFORM_STUB();
Initialize();
}
CGraphicIndexBuffer::~CGraphicIndexBuffer()
{
MT_PLATFORM_STUB();
}
auto CGraphicIndexBuffer::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicIndexBuffer::Create(int, D3DFORMAT) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicIndexBuffer::Create(int, TFace *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicIndexBuffer::CreateDeviceObjects() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicIndexBuffer::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicIndexBuffer::Copy(int, const void *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicIndexBuffer::Lock(void **) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicIndexBuffer::Unlock() const -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicIndexBuffer::Lock(void **) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicIndexBuffer::Unlock() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicIndexBuffer::SetIndices(int) const -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicIndexBuffer::GetD3DIndexBuffer() const -> LPDIRECT3DINDEXBUFFER8
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<LPDIRECT3DINDEXBUFFER8>();
}
auto CGraphicIndexBuffer::Initialize() -> void
{
MT_PLATFORM_STUB();
Destroy();
}
@@ -1,270 +0,0 @@
// Platform skeleton for EterLib/GrpObjectInstance.h (40250 EterLib/GrpObjectInstance.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
#include "EterLib/StdAfx.h"
#include "EterLib/GrpObjectInstance.h"
#include "../PlatformStub.h"
CGraphicObjectInstance::CGraphicObjectInstance()
{
MT_PLATFORM_STUB();
}
CGraphicObjectInstance::~CGraphicObjectInstance()
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::GetPosition() const -> const D3DXVECTOR3 &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const D3DXVECTOR3 &>();
}
auto CGraphicObjectInstance::GetScale() const -> const D3DXVECTOR3 &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<const D3DXVECTOR3 &>();
}
auto CGraphicObjectInstance::GetRotation() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicObjectInstance::GetYaw() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicObjectInstance::GetPitch() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicObjectInstance::GetRoll() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CGraphicObjectInstance::SetPosition(float, float, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::SetPosition(const D3DXVECTOR3 &) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::SetScale(float, float, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::SetRotation(float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::SetRotation(float, float, float) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::SetRotationQuaternion(const D3DXQUATERNION &) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::SetRotationMatrix(const D3DXMATRIX &) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Clear() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Update() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Render() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicObjectInstance::BlendRender() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::RenderToShadowMap() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::RenderShadow() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::RenderPCBlocker() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Deform() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Transform() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Show() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::Hide() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::isShow() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicObjectInstance::isIntersect(const CRay &, float *, float *, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicObjectInstance::GetWTBBoxVertex(const unsigned char &) -> D3DXVECTOR4 &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<D3DXVECTOR4 &>();
}
auto CGraphicObjectInstance::GetTransform() -> D3DXMATRIX &
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<D3DXMATRIX &>();
}
auto CGraphicObjectInstance::SetPortal(DWORD, int) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::GetPortal(DWORD) -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGraphicObjectInstance::Initialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::OnInitialize() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::UpdateBoundingSphere() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::RegisterBoundingSphere() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::AddCollision(const CStaticCollisionData *, const D3DXMATRIX *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::ClearCollision() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::CollisionDynamicSphere(const CDynamicSphereInstance &) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicObjectInstance::MovementCollisionDynamicSphere(const CDynamicSphereInstance &) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicObjectInstance::GetCollisionMovementAdjust(const CDynamicSphereInstance &) const -> D3DXVECTOR3
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<D3DXVECTOR3>();
}
auto CGraphicObjectInstance::UpdateCollisionData(const CStaticCollisionDataVector *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::GetCollisionInstanceCount() -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
auto CGraphicObjectInstance::GetCollisionInstanceData(DWORD) -> CBaseCollisionInstance *
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<CBaseCollisionInstance *>();
}
auto CGraphicObjectInstance::SetHeightInstance(CAttributeInstance *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::ClearHeightInstance() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::UpdateHeightInstance(CAttributeInstance *) -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicObjectInstance::IsObjectHeight() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicObjectInstance::GetObjectHeight(float, float, float *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
+149 -103
View File
@@ -1,114 +1,160 @@
// Platform skeleton for EterLib/GrpVertexBuffer.h (40250 EterLib/GrpVertexBuffer.cpp), generated by platform_stub.py.
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
// 40250 EterLib/GrpVertexBuffer.cpp over CPU memory (CpuBuffer.h): the device buffer is a byte vector
// that Lock hands out directly, so Granny vertex loading and deform write real data.
#include "EterLib/StdAfx.h"
#include "EterLib/GrpVertexBuffer.h"
#include "EterLib/StateManager.h"
#include "../PlatformStub.h"
#include "CpuBuffer.h"
int CGraphicVertexBuffer::GetVertexStride() const
{
int retSize = mt_fvf_vertex_size(m_dwFVF);
return retSize;
}
DWORD CGraphicVertexBuffer::GetFlexibleVertexFormat() const
{
return m_dwFVF;
}
int CGraphicVertexBuffer::GetVertexCount() const
{
return m_vtxCount;
}
void CGraphicVertexBuffer::SetStream(int stride, int layer) const
{
STATEMANAGER.SetStreamSource(layer, m_lpd3dVB, stride);
}
bool CGraphicVertexBuffer::LockRange(unsigned count, void** pretVertices) const
{
if (!m_lpd3dVB)
return false;
*pretVertices = static_cast<MtCpuVertexBuffer*>(m_lpd3dVB)->bytes.data();
return true;
}
bool CGraphicVertexBuffer::Lock(void ** pretVertices) const
{
if (!m_lpd3dVB)
return false;
*pretVertices = static_cast<MtCpuVertexBuffer*>(m_lpd3dVB)->bytes.data();
return true;
}
bool CGraphicVertexBuffer::Unlock() const
{
if (!m_lpd3dVB)
return false;
return true;
}
// Returns true when a buffer exists, as 40250 does.
bool CGraphicVertexBuffer::IsEmpty() const
{
if (m_lpd3dVB)
return true;
else
return false;
}
bool CGraphicVertexBuffer::LockDynamic(void** pretVertices)
{
if (!m_lpd3dVB)
return false;
*pretVertices = static_cast<MtCpuVertexBuffer*>(m_lpd3dVB)->bytes.data();
return true;
}
bool CGraphicVertexBuffer::Lock(void ** pretVertices)
{
if (!m_lpd3dVB)
return false;
*pretVertices = static_cast<MtCpuVertexBuffer*>(m_lpd3dVB)->bytes.data();
return true;
}
bool CGraphicVertexBuffer::Unlock()
{
if (!m_lpd3dVB)
return false;
return true;
}
bool CGraphicVertexBuffer::Copy(int bufSize, const void* srcVertices)
{
void * dstVertices;
if (!Lock(&dstVertices))
return false;
memcpy(dstVertices, srcVertices, bufSize);
Unlock();
return true;
}
bool CGraphicVertexBuffer::CreateDeviceObjects()
{
assert(m_lpd3dVB == NULL);
MtCpuVertexBuffer* buffer = new MtCpuVertexBuffer;
buffer->bytes.assign(m_dwBufferSize, 0);
buffer->fvf = m_dwFVF;
m_lpd3dVB = buffer;
return true;
}
void CGraphicVertexBuffer::DestroyDeviceObjects()
{
delete static_cast<MtCpuVertexBuffer*>(m_lpd3dVB);
m_lpd3dVB = NULL;
}
bool CGraphicVertexBuffer::Create(int vtxCount, DWORD fvf, DWORD usage, D3DPOOL d3dPool)
{
assert(vtxCount > 0);
Destroy();
m_vtxCount = vtxCount;
m_dwBufferSize = mt_fvf_vertex_size(fvf) * m_vtxCount;
m_d3dPool = d3dPool;
m_dwUsage = usage;
m_dwFVF = fvf;
if (usage == D3DUSAGE_WRITEONLY || usage == D3DUSAGE_DYNAMIC)
m_dwLockFlag = 0;
else
m_dwLockFlag = D3DLOCK_READONLY;
return CreateDeviceObjects();
}
void CGraphicVertexBuffer::Destroy()
{
DestroyDeviceObjects();
}
void CGraphicVertexBuffer::Initialize()
{
m_lpd3dVB = NULL;
m_vtxCount = 0;
m_dwBufferSize = 0;
m_dwFVF = 0;
}
CGraphicVertexBuffer::CGraphicVertexBuffer()
{
MT_PLATFORM_STUB();
Initialize();
}
CGraphicVertexBuffer::~CGraphicVertexBuffer()
{
MT_PLATFORM_STUB();
}
auto CGraphicVertexBuffer::Destroy() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicVertexBuffer::Create(int, DWORD, DWORD, D3DPOOL) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::CreateDeviceObjects() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::DestroyDeviceObjects() -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicVertexBuffer::Copy(int, const void *) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::LockRange(unsigned int, void **) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::Lock(void **) const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::Unlock() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::LockDynamic(void **) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::Lock(void **) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::Unlock() -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::SetStream(int, int) const -> void
{
MT_PLATFORM_STUB();
}
auto CGraphicVertexBuffer::GetVertexCount() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGraphicVertexBuffer::GetVertexStride() const -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CGraphicVertexBuffer::GetFlexibleVertexFormat() const -> DWORD
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<DWORD>();
}
auto CGraphicVertexBuffer::IsEmpty() const -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CGraphicVertexBuffer::Initialize() -> void
{
MT_PLATFORM_STUB();
Destroy();
}
@@ -0,0 +1,4 @@
#pragma once
// The cursor in client coordinates, as the host (Godot) last pushed it. 40250 CMSWindow::GetMousePosition
// asks Win32 (GetCursorPos + ScreenToClient); here the host is the only source of mouse input.
void MtHostSetCursor(int x, int y);
+13 -2
View File
@@ -4,6 +4,7 @@
#include "EterLib/MSWindow.h"
#include "../PlatformStub.h"
#include "HostCursor.h"
CMSWindow::CMSWindow()
{
@@ -78,9 +79,19 @@ auto CMSWindow::IsActive() -> bool
return mt_platform_stub_return<bool>();
}
auto CMSWindow::GetMousePosition(POINT *) -> void
namespace {
POINT g_host_cursor = {0, 0};
}
void MtHostSetCursor(int x, int y)
{
MT_PLATFORM_STUB();
g_host_cursor.x = x;
g_host_cursor.y = y;
}
auto CMSWindow::GetMousePosition(POINT * ppt) -> void
{
*ppt = g_host_cursor;
}
auto CMSWindow::GetClientRect(RECT *) -> void
@@ -12,6 +12,22 @@
#include "../PlatformStub.h"
#include "../EterLib/UIRenderCommands.h"
// 40250 PythonGraphic.cpp:611
CPythonGraphic::CPythonGraphic()
{
m_lightColor = GetColor(1.0f, 1.0f, 1.0f);
m_darkColor = GetColor(0.0f, 0.0f, 0.0f);
memset(&m_backupViewport, 0, sizeof(D3DVIEWPORT8));
m_fOrthoDepth = 1000.0f;
}
CPythonGraphic::~CPythonGraphic()
{
Tracef("Python Graphic Clear\n");
}
void CPythonGraphic::SetViewport(float x, float y, float width, float height) { UIRenderSetClip(x, y, width, height); }
void CPythonGraphic::RestoreViewport() { UIRenderRestoreClip(); }
void CPythonGraphic::SetOmniLight() { MT_PLATFORM_STUB(); }
@@ -7,6 +7,7 @@
#include "EterPythonLib/StdAfx.h"
#include "EterBase/Timer.h"
#include "EterLib/Util.h"
#include "../EterLib/HostCursor.h"
#include "UserInterface/PythonNetworkStream.h"
#include "UserInterface/AccountConnector.h"
#include "UserInterface/PythonPlayer.h"
@@ -103,6 +104,7 @@ struct GameSingletons
CItemManager kItemMgr;
CPythonCharacterManager kChrMgr;
CPythonGraphic pyGraphic; // owns CCullingManager (m_CullingManager)
CPythonItem pyItem;
CPythonShop pyShop;
CPythonExchange pyExchange;
@@ -220,11 +222,13 @@ void SetUISize(int width, int height)
void UIMouseMove(int x, int y)
{
MtHostSetCursor(x, y);
if (g_window_manager) g_window_manager->RunMouseMove(x, y);
}
void UIMouseButton(int button, bool pressed, int x, int y)
{
MtHostSetCursor(x, y);
if (!g_window_manager) return;
g_window_manager->RunMouseMove(x, y);
switch (button)
@@ -3,12 +3,14 @@
#include "EterLib/GrpImage.h"
#include "EterLib/GrpSubImage.h"
#include "EterLib/GrpText.h"
#include "EterGrnLib/Thing.h"
namespace {
CResource* NewUIImage(const char* name) { return new CGraphicImage(name); }
CResource* NewUISubImage(const char* name) { return new CGraphicSubImage(name); }
// 40250 UserInterface/PythonApplication.cpp NewText: a "<face>:<size>[i].fnt" name is a CGraphicText.
CResource* NewText(const char* name) { return new CGraphicText(name); }
CResource* NewThing(const char* name) { return new CGraphicThing(name); }
}
CPythonResource::CPythonResource() {
@@ -16,6 +18,7 @@ CPythonResource::CPythonResource() {
m_resManager.RegisterResourceNewFunctionPointer(ext, NewUIImage);
m_resManager.RegisterResourceNewFunctionPointer("sub", NewUISubImage);
m_resManager.RegisterResourceNewFunctionPointer("fnt", NewText);
m_resManager.RegisterResourceNewFunctionPointer("gr2", NewThing);
}
CPythonResource::~CPythonResource() { m_resManager.DestroyDeletingList(); }
void CPythonResource::Destroy() { m_resManager.DestroyDeletingList(); m_resManager.Destroy(); }
@@ -86,8 +86,107 @@ bool CPythonApplication::Create(PyObject*, const char*, int, int, int)
}
return true;
}
void CPythonApplication::UpdateGame() { MT_PLATFORM_STUB(); }
void CPythonApplication::RenderGame() { MT_PLATFORM_STUB(); }
// 40250 PythonApplication.cpp:105
void CPythonApplication::GetMousePosition(POINT* ppt)
{
CMSApplication::GetMousePosition(ppt);
}
// 40250 PythonApplication.cpp:168, the !PERF_CHECKER_RENDER_GAME branch (the profiling copy below it
// only adds timers). game.GameWindow.OnRender calls it every frame.
// PORT: the members are reached through their singletons (see the note at the top of the file).
void CPythonApplication::RenderGame()
{
float fAspect=UI::CWindowManager::Instance().GetAspect();
float fFarClip=CPythonBackground::Instance().GetFarClip();
CPythonGraphic::Instance().SetPerspective(30.0f, fAspect, 100.0, fFarClip);
CCullingManager::Instance().Process();
CPythonCharacterManager::Instance().Deform();
CEffectManager::Instance().Update();
CPythonBackground::Instance().RenderCharacterShadowToTexture();
CPythonGraphic::Instance().SetGameRenderState();
CPythonGraphic::Instance().PushState();
{
long lx, ly;
UI::CWindowManager::Instance().GetMousePosition(lx, ly);
CPythonGraphic::Instance().SetCursorPosition(lx, ly);
}
CPythonBackground::Instance().RenderSky();
CPythonBackground::Instance().RenderBeforeLensFlare();
CPythonBackground::Instance().RenderCloud();
CPythonBackground::Instance().BeginEnvironment();
CPythonBackground::Instance().Render();
CPythonBackground::Instance().SetCharacterDirLight();
CPythonCharacterManager::Instance().Render();
CPythonBackground::Instance().SetBackgroundDirLight();
CPythonBackground::Instance().RenderWater();
CPythonBackground::Instance().RenderSnow();
CPythonBackground::Instance().RenderEffect();
CPythonBackground::Instance().EndEnvironment();
CEffectManager::Instance().Render();
CPythonItem::Instance().Render();
CFlyingManager::Instance().Render();
CPythonBackground::Instance().BeginEnvironment();
CPythonBackground::Instance().RenderPCBlocker();
CPythonBackground::Instance().EndEnvironment();
CPythonBackground::Instance().RenderAfterLensFlare();
}
// 40250 PythonApplication.cpp:321 without the PERF_CHECKER_RENDER_GAME timers. game.GameWindow.OnUpdate
// calls it every frame. PORT: members through their singletons, as in RenderGame.
void CPythonApplication::UpdateGame()
{
POINT ptMouse;
GetMousePosition(&ptMouse);
CGraphicTextInstance::Hyperlink_UpdateMousePos(ptMouse.x, ptMouse.y);
//!@# Alt+Tab 중 SetTransfor 에서 튕김 현상 해결을 위해 - [levites]
//if (m_isActivateWnd)
{
CScreen s;
float fAspect = UI::CWindowManager::Instance().GetAspect();
float fFarClip = CPythonBackground::Instance().GetFarClip();
s.SetPerspective(30.0f,fAspect, 100.0f, fFarClip);
s.BuildViewFrustum();
}
TPixelPosition kPPosMainActor;
CPythonPlayer::Instance().NEW_GetMainActorPosition(&kPPosMainActor);
CPythonBackground::Instance().Update(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
CGameEventManager::Instance().SetCenterPosition(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
CGameEventManager::Instance().Update();
CPythonCharacterManager::Instance().Update();
CEffectManager::Instance().UpdateSound();
CFlyingManager::Instance().Update();
CPythonItem::Instance().Update(ptMouse);
CPythonPlayer::Instance().Update();
// NOTE : Update 에서 위치 값이 바뀌므로 다시 얻어 옵니다 - [levites]
// 이 부분 때문에 메인 케릭터의 Sound가 이전 위치에서 플레이 되는 현상이 있었음.
CPythonPlayer::Instance().NEW_GetMainActorPosition(&kPPosMainActor);
SetCenterPosition(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
}
// 40250 PythonApplication.cpp:399. Kept in order: timer, network (2V1), input polling (Godot pushes
// input instead), camera (2V3), resource GC, mouse/UI update, then the render block's interface pass.
@@ -166,7 +265,6 @@ void CMovieMan::PlayLogo(const char*) { MT_PLATFORM_STUB(); }
BOOL PERF_CHECKER_RENDER_GAME = FALSE;
BOOL SKILL_EFFECT_UPGRADE_ENABLE = FALSE;
D3DXCOLOR g_fSpecularColor;
double g_specularSpd = 0;
bool LoadLocaleData(const char*) { MT_PLATFORM_STUB(); return false; }
@@ -1,23 +0,0 @@
// Stand-in for the 40250 logic unit EterLib/CollisionData.cpp, not ported yet: the members the ported units
// reference, as platform_stub.py stubs. Delete this file in the commit that ports the unit into port/
// (docs/PORT-PLAN.md).
#include "EterLib/StdAfx.h"
#include "EterLib/CollisionData.h"
#include "../../PlatformStub.h"
auto CSphereCollisionInstance::GetAttribute() -> TSphereData &
{
MT_PLATFORM_STUB();
return m_attribute;
}
auto CSphereCollisionInstance::GetAttribute() const -> const TSphereData & { return m_attribute; }
auto CSphereCollisionInstance::Render(D3DFILLMODE) -> void { MT_PLATFORM_STUB(); }
auto CSphereCollisionInstance::OnDestroy() -> void { MT_PLATFORM_STUB(); }
auto CSphereCollisionInstance::OnMovementCollisionDynamicSphere(const CDynamicSphereInstance&) const -> bool
{ MT_PLATFORM_STUB(); return false; }
auto CSphereCollisionInstance::OnCollisionDynamicSphere(const CDynamicSphereInstance&) const -> bool
{ MT_PLATFORM_STUB(); return false; }
auto CSphereCollisionInstance::OnGetCollisionMovementAdjust(const CDynamicSphereInstance&) const -> D3DXVECTOR3
{ MT_PLATFORM_STUB(); return D3DXVECTOR3(0, 0, 0); }
@@ -68,3 +68,13 @@ auto CMapManager::isAttrOn(int, int, BYTE) -> bool
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CMapManager::BeginEnvironment() -> void
{
MT_PLATFORM_STUB();
}
auto CMapManager::EndEnvironment() -> void
{
MT_PLATFORM_STUB();
}
@@ -94,3 +94,69 @@ auto CPythonBackground::GetPickingPointWithRayOnlyTerrain(const CRay &, D3DXVECT
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CPythonBackground::GetFarClip() -> float
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<float>();
}
auto CPythonBackground::Render() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderAfterLensFlare() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderBeforeLensFlare() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderCharacterShadowToTexture() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderCloud() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderEffect() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderPCBlocker() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderSky() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderSnow() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::RenderWater() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::SetBackgroundDirLight() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonBackground::SetCharacterDirLight() -> void
{
MT_PLATFORM_STUB();
}
@@ -55,3 +55,13 @@ auto CPythonItem::SetOwnership(DWORD, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonItem::Render() -> void
{
MT_PLATFORM_STUB();
}
auto CPythonItem::Update(const POINT &) -> void
{
MT_PLATFORM_STUB();
}