2016-03-26 00:51:59 +00:00
|
|
|
#include "ProjectResourceFactoryMP1.hpp"
|
|
|
|
#include "Runtime/IOStreams.hpp"
|
|
|
|
|
2016-09-10 04:50:00 +00:00
|
|
|
#include "Runtime/CGameHintInfo.hpp"
|
2016-03-26 00:51:59 +00:00
|
|
|
#include "Runtime/Particle/CParticleDataFactory.hpp"
|
|
|
|
#include "Runtime/Particle/CGenDescription.hpp"
|
|
|
|
#include "Runtime/Particle/CElectricDescription.hpp"
|
|
|
|
#include "Runtime/Particle/CSwooshDescription.hpp"
|
2017-02-13 21:29:00 +00:00
|
|
|
#include "Runtime/Particle/CParticleElectricDataFactory.hpp"
|
|
|
|
#include "Runtime/Particle/CParticleSwooshDataFactory.hpp"
|
|
|
|
#include "Runtime/Particle/CWeaponDescription.hpp"
|
|
|
|
#include "Runtime/Particle/CProjectileWeaponDataFactory.hpp"
|
|
|
|
#include "Runtime/Particle/CDecalDataFactory.hpp"
|
2016-03-26 00:51:59 +00:00
|
|
|
#include "Runtime/GuiSys/CGuiFrame.hpp"
|
|
|
|
#include "Runtime/GuiSys/CRasterFont.hpp"
|
2016-08-17 05:40:25 +00:00
|
|
|
#include "Runtime/GuiSys/CStringTable.hpp"
|
2016-03-26 00:51:59 +00:00
|
|
|
#include "Runtime/Graphics/CModel.hpp"
|
|
|
|
#include "Runtime/Graphics/CTexture.hpp"
|
2016-04-09 23:19:17 +00:00
|
|
|
#include "Runtime/Character/CCharLayoutInfo.hpp"
|
2016-04-12 22:28:08 +00:00
|
|
|
#include "Runtime/Character/CSkinRules.hpp"
|
2016-04-10 21:22:59 +00:00
|
|
|
#include "Runtime/Character/CAnimCharacterSet.hpp"
|
2016-04-12 06:15:32 +00:00
|
|
|
#include "Runtime/Character/CAllFormatsAnimSource.hpp"
|
|
|
|
#include "Runtime/Character/CAnimPOIData.hpp"
|
2016-04-20 21:44:18 +00:00
|
|
|
#include "Runtime/Collision/CCollidableOBBTreeGroup.hpp"
|
2017-02-13 21:29:00 +00:00
|
|
|
#include "Runtime/Collision/CCollisionResponseData.hpp"
|
2016-10-08 20:32:36 +00:00
|
|
|
#include "Runtime/CSaveWorld.hpp"
|
|
|
|
#include "Runtime/AutoMapper/CMapWorld.hpp"
|
2017-03-24 05:30:16 +00:00
|
|
|
#include "Runtime/AutoMapper/CMapArea.hpp"
|
|
|
|
#include "Runtime/AutoMapper/CMapUniverse.hpp"
|
2017-01-31 11:21:45 +00:00
|
|
|
#include "Runtime/CScannableObjectInfo.hpp"
|
2018-02-14 07:51:18 +00:00
|
|
|
#include "Runtime/World/CPathFindArea.hpp"
|
2016-07-24 22:51:15 +00:00
|
|
|
#include "Audio/CAudioGroupSet.hpp"
|
2017-01-20 03:53:32 +00:00
|
|
|
#include "Audio/CSfxManager.hpp"
|
2017-02-27 05:25:14 +00:00
|
|
|
#include "Audio/CMidiManager.hpp"
|
2016-04-12 11:37:07 +00:00
|
|
|
#include "Runtime/CDependencyGroup.hpp"
|
2016-03-26 00:51:59 +00:00
|
|
|
#include "DataSpec/DNACommon/TXTR.hpp"
|
2017-01-31 05:01:40 +00:00
|
|
|
#include "CSimplePool.hpp"
|
2017-10-26 05:37:46 +00:00
|
|
|
#include "MP1/MP1OriginalIDs.hpp"
|
2017-01-31 05:01:40 +00:00
|
|
|
#include "GameGlobalObjects.hpp"
|
2016-03-26 00:51:59 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace DataSpec {
|
2016-03-26 00:51:59 +00:00
|
|
|
extern hecl::Database::DataSpecEntry SpecEntMP1;
|
|
|
|
extern hecl::Database::DataSpecEntry SpecEntMP1PC;
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace DataSpec
|
2016-03-26 00:51:59 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace urde {
|
2016-03-26 00:51:59 +00:00
|
|
|
|
2016-03-27 20:43:04 +00:00
|
|
|
ProjectResourceFactoryMP1::ProjectResourceFactoryMP1(hecl::ClientProcess& clientProc)
|
2018-12-08 05:30:43 +00:00
|
|
|
: ProjectResourceFactoryBase(clientProc) {
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('TXTR'), FMemFactoryFunc(FTextureFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('PART'), FFactoryFunc(FParticleFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('FRME'), FFactoryFunc(RGuiFrameFactoryInGame));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('FONT'), FFactoryFunc(FRasterFontFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('CMDL'), FMemFactoryFunc(FModelFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('CINF'), FFactoryFunc(FCharLayoutInfo));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('CSKR'), FFactoryFunc(FSkinRulesFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('ANCS'), FFactoryFunc(FAnimCharacterSet));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('ANIM'), FFactoryFunc(AnimSourceFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('EVNT'), FFactoryFunc(AnimPOIDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('DCLN'), FFactoryFunc(FCollidableOBBTreeGroupFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('DGRP'), FFactoryFunc(FDependencyGroupFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('AGSC'), FMemFactoryFunc(FAudioGroupSetDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('CSNG'), FFactoryFunc(FMidiDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('ATBL'), FFactoryFunc(FAudioTranslationTableFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('STRG'), FFactoryFunc(FStringTableFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('HINT'), FFactoryFunc(FHintFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('SAVW'), FFactoryFunc(FSaveWorldFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('MAPW'), FFactoryFunc(FMapWorldFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('OIDS'), FFactoryFunc(FMP1OriginalIDsFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('SCAN'), FFactoryFunc(FScannableObjectInfoFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('CRSC'), FFactoryFunc(FCollisionResponseDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('SWHC'), FFactoryFunc(FParticleSwooshDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('ELSC'), FFactoryFunc(FParticleElectricDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('WPSC'), FFactoryFunc(FProjectileWeaponDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('DPSC'), FFactoryFunc(FDecalDataFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('MAPA'), FFactoryFunc(FMapAreaFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('MAPU'), FFactoryFunc(FMapUniverseFactory));
|
|
|
|
m_factoryMgr.AddFactory(FOURCC('PATH'), FMemFactoryFunc(FPathFindAreaFactory));
|
2016-03-26 00:51:59 +00:00
|
|
|
}
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
void ProjectResourceFactoryMP1::IndexMP1Resources(hecl::Database::Project& proj, CSimplePool& sp) {
|
|
|
|
BeginBackgroundIndex(proj, DataSpec::SpecEntMP1, DataSpec::SpecEntMP1PC);
|
|
|
|
m_origIds = sp.GetObj("MP1OriginalIDs");
|
2017-01-31 05:01:40 +00:00
|
|
|
}
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
void ProjectResourceFactoryMP1::Shutdown() {
|
|
|
|
m_origIds = TLockedToken<MP1OriginalIDs>();
|
|
|
|
ProjectResourceFactoryBase::Shutdown();
|
2017-01-31 05:01:40 +00:00
|
|
|
}
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
CAssetId ProjectResourceFactoryMP1::TranslateOriginalToNew(CAssetId id) const {
|
|
|
|
return m_origIds->TranslateOriginalToNew(id);
|
2017-01-31 05:01:40 +00:00
|
|
|
}
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
CAssetId ProjectResourceFactoryMP1::TranslateNewToOriginal(CAssetId id) const {
|
|
|
|
return m_origIds->TranslateNewToOriginal(id);
|
2016-03-26 00:51:59 +00:00
|
|
|
}
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace urde
|