1#include "Game/NameObj/NameObjFactory.hpp"
2#include "Game/Map/PlanetMapCreator.hpp"
3#include "Game/Util.hpp"
5CreationFuncPtr NameObjFactory::getCreator(
const char *pName) {
6 if (PlanetMapCreatorFunction::isRegisteredObj(pName)) {
7 return PlanetMapCreatorFunction::getPlanetMapCreator(pName);
10 const Name2CreateFunc* func = NameObjFactory::getName2CreateFunc(pName,
nullptr);
11 return !func ? nullptr : func->mCreationFunc;
14void NameObjFactory::requestMountObjectArchives(
const char *pName,
const JMapInfoIter &rIter) {
16 NameObjFactory::getMountObjectArchiveList(&archiveList, pName, rIter);
18 for (
int i = 0; i < archiveList.mCount; i++) {
19 MR::mountAsyncArchiveByObjectOrLayoutName(archiveList.getArchive(i),
nullptr);
23bool NameObjFactory::isReadResourceFromDVD(
const char *pName,
const JMapInfoIter &rIter) {
25 NameObjFactory::getMountObjectArchiveList(&archiveList, pName, rIter);
27 for (
int i = 0; i < archiveList.mCount; i++) {
28 if (!MR::isLoadedObjectOrLayoutArchive(archiveList.getArchive(i))) {
36bool NameObjFactory::isPlayerArchiveLoaderObj(
const char *pArchive) {
37 for (u32 i = 0; i < 0x8; i++) {
38 if (MR::isEqualStringCase(cPlayerArchiveLoaderObjTable[i], pArchive)) {
48 pTable = cCreateTable;
52 const Name2CreateFunc* last = &(cCreateTable[0x49F]);
54 for (
const Name2CreateFunc* i = pTable; i != last; i++) {
56 if (MR::isEqualStringCase(i->mName, pName)) {
66 if (PlanetMapCreatorFunction::isRegisteredObj(pName)) {
67 PlanetMapCreatorFunction::makeArchiveList(pArchiveList, rIter, pName);
70 const Name2CreateFunc* creationFunc = NameObjFactory::getName2CreateFunc(pName,
nullptr);
72 if (creationFunc && creationFunc->mArchiveName != 0) {
73 pArchiveList->addArchive(creationFunc->mArchiveName);
77 if (MR::isEqualString(curArchive->mObjectName, pName)) {
78 pArchiveList->addArchive(curArchive->mArchiveName);
83 if (MR::isEqualString(curFunc->mName, pName)) {
84 curFunc->mArchiveFunc(pArchiveList, rIter);
Stores archive names of NameObjs.