mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-30 04:24:17 +00:00
50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
#include "Library/Obj/EffectObjFunction.h"
|
|
|
|
#include "Library/Base/StringUtil.h"
|
|
#include "Library/File/FileUtil.h"
|
|
#include "Library/LiveActor/ActorClippingFunction.h"
|
|
#include "Library/LiveActor/ActorInitFunction.h"
|
|
#include "Library/LiveActor/ActorInitUtil.h"
|
|
#include "Library/LiveActor/LiveActor.h"
|
|
#include "Library/Placement/PlacementFunction.h"
|
|
|
|
namespace al::EffectObjFunction {
|
|
void initActorEffectObj(LiveActor* actor, const ActorInitInfo& info) {
|
|
const char* modelName = nullptr;
|
|
|
|
if (!alPlacementFunction::tryGetModelName(&modelName, info))
|
|
getObjectName(&modelName, info);
|
|
|
|
initActorEffectObj(actor, info, modelName);
|
|
}
|
|
|
|
void initActorEffectObj(LiveActor* actor, const ActorInitInfo& info, const char* archiveName) {
|
|
if (isExistArchive(StringTmp<128>("ObjectData/%s", archiveName)))
|
|
initActorWithArchiveName(actor, info, archiveName, nullptr);
|
|
else
|
|
initActorEffectObjNoArchive(actor, info);
|
|
|
|
initActorEffectKeeper(actor, info, archiveName);
|
|
}
|
|
|
|
void initActorEffectObjNoArchive(LiveActor* actor, const ActorInitInfo& info) {
|
|
initActorSceneInfo(actor, info);
|
|
initActorPoseTQSV(actor);
|
|
initActorSRT(actor, info);
|
|
initActorClipping(actor, info);
|
|
initGroupClipping(actor, info);
|
|
setClippingInfo(actor, 1000.0f, nullptr);
|
|
initStageSwitch(actor, info);
|
|
initExecutorUpdate(actor, info, "エフェクトオブジェ");
|
|
|
|
if (isExistRail(info, "Rail"))
|
|
actor->initRailKeeper(info, "Rail");
|
|
}
|
|
|
|
void initActorEffectObjNoArchive(LiveActor* actor, const ActorInitInfo& info,
|
|
const char* effectKeeperName) {
|
|
initActorEffectObjNoArchive(actor, info);
|
|
initActorEffectKeeper(actor, info, effectKeeperName);
|
|
}
|
|
} // namespace al::EffectObjFunction
|