port: ScriptLib Resource.cpp verbatim 40250; PythonUtils mapped (already verbatim)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 16:10:32 +09:00
co-authored by Claude Opus 5.5
parent f9cd63713f
commit 58a3d01027
6 changed files with 275 additions and 40 deletions
+96 -21
View File
@@ -1,31 +1,106 @@
// 40250 ScriptLib/Resource.cpp, verbatim.
#include "ScriptLib/StdAfx.h"
#include "ScriptLib/Resource.h"
#include "EterLib/GrpImage.h"
#include "EterLib/GrpExpandedImageInstance.h"
#include "EterLib/GrpTextInstance.h"
#include "EterLib/GrpMarkInstance.h"
#include "EterLib/GrpSubImage.h"
#include "EterLib/GrpText.h"
#include "EterLib/AttributeData.h"
#include "EterGrnLib/Thing.h"
#include "EterGrnLib/ThingInstance.h"
#include "EffectLib/EffectMesh.h"
#include "EffectLib/EffectInstance.h"
#include "GameLib/WeaponTrace.h"
#include "GameLib/MapType.h"
#include "GameLib/GameType.h"
#include "GameLib/RaceData.h"
#include "GameLib/RaceMotionData.h"
#include "GameLib/ActorInstance.h"
#include "GameLib/Area.h"
#include "GameLib/ItemData.h"
#include "GameLib/FlyingData.h"
#include "GameLib/FlyTrace.h"
#include "GameLib/FlyingInstance.h"
#include "GameLib/FlyingData.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); }
CResource* NewEffectMesh(const char* name) { return new CEffectMesh(name); }
CResource* NewAttributeData(const char* name) { return new CAttributeData(name); }
#include "ScriptLib/Resource.h"
CResource * NewImage(const char* c_szFileName)
{
return new CGraphicImage(c_szFileName);
}
CPythonResource::CPythonResource() {
for (const char* ext : {"tga", "dds", "png", "jpg", "bmp"})
m_resManager.RegisterResourceNewFunctionPointer(ext, NewUIImage);
m_resManager.RegisterResourceNewFunctionPointer("sub", NewUISubImage);
m_resManager.RegisterResourceNewFunctionPointer("fnt", NewText);
m_resManager.RegisterResourceNewFunctionPointer("gr2", NewThing);
m_resManager.RegisterResourceNewFunctionPointer("mde", NewEffectMesh);
m_resManager.RegisterResourceNewFunctionPointer("mdatr", NewAttributeData);
CResource * NewSubImage(const char* c_szFileName)
{
return new CGraphicSubImage(c_szFileName);
}
CResource * NewText(const char* c_szFileName)
{
return new CGraphicText(c_szFileName);
}
CResource * NewThing(const char* c_szFileName)
{
return new CGraphicThing(c_szFileName);
}
CResource * NewEffectMesh(const char* c_szFileName)
{
return new CEffectMesh(c_szFileName);
}
CResource * NewAttributeData(const char* c_szFileName)
{
return new CAttributeData(c_szFileName);
}
void CPythonResource::DumpFileList(const char * c_szFileName)
{
m_resManager.DumpFileListToTextFile(c_szFileName);
}
void CPythonResource::Destroy()
{
CFlyingInstance::DestroySystem();
CActorInstance::DestroySystem();
CArea::DestroySystem();
CGraphicExpandedImageInstance::DestroySystem();
CGraphicImageInstance::DestroySystem();
CGraphicMarkInstance::DestroySystem();
CGraphicThingInstance::DestroySystem();
CGrannyModelInstance::DestroySystem();
CGraphicTextInstance::DestroySystem();
CEffectInstance::DestroySystem();
CWeaponTrace::DestroySystem();
CFlyTrace::DestroySystem();
m_resManager.DestroyDeletingList();
CFlyingData::DestroySystem();
CItemData::DestroySystem();
CEffectData::DestroySystem();
CEffectMesh::SEffectMeshData::DestroySystem();
CRaceData::DestroySystem();
NRaceData::DestroySystem();
CRaceMotionData::DestroySystem();
m_resManager.Destroy();
}
CPythonResource::CPythonResource()
{
m_resManager.RegisterResourceNewFunctionPointer("sub", NewSubImage);
m_resManager.RegisterResourceNewFunctionPointer("dds", NewImage);
m_resManager.RegisterResourceNewFunctionPointer("jpg", NewImage);
m_resManager.RegisterResourceNewFunctionPointer("tga", NewImage);
m_resManager.RegisterResourceNewFunctionPointer("bmp", NewImage);
m_resManager.RegisterResourceNewFunctionPointer("fnt", NewText);
m_resManager.RegisterResourceNewFunctionPointer("gr2", NewThing);
m_resManager.RegisterResourceNewFunctionPointer("mde", NewEffectMesh);
m_resManager.RegisterResourceNewFunctionPointer("mdatr", NewAttributeData);
}
CPythonResource::~CPythonResource()
{
}
CPythonResource::~CPythonResource() { m_resManager.DestroyDeletingList(); }
void CPythonResource::Destroy() { m_resManager.DestroyDeletingList(); m_resManager.Destroy(); }
void CPythonResource::DumpFileList(const char* name) { m_resManager.DumpFileListToTextFile(name); }