| 1 | #include "Library/Obj/EffectObjFunction.h" |
| 2 | |
| 3 | #include "Library/Base/StringUtil.h" |
| 4 | #include "Library/File/FileUtil.h" |
| 5 | #include "Library/LiveActor/ActorClippingFunction.h" |
| 6 | #include "Library/LiveActor/ActorInitFunction.h" |
| 7 | #include "Library/LiveActor/ActorInitUtil.h" |
| 8 | #include "Library/LiveActor/LiveActor.h" |
| 9 | #include "Library/Placement/PlacementFunction.h" |
| 10 | |
| 11 | namespace al::EffectObjFunction { |
| 12 | void initActorEffectObj(LiveActor* actor, const ActorInitInfo& info) { |
| 13 | const char* modelName = nullptr; |
| 14 | |
| 15 | if (!alPlacementFunction::tryGetModelName(modelName: &modelName, initInfo: info)) |
| 16 | getObjectName(name: &modelName, initInfo: info); |
| 17 | |
| 18 | initActorEffectObj(actor, info, archiveName: modelName); |
| 19 | } |
| 20 | |
| 21 | void initActorEffectObj(LiveActor* actor, const ActorInitInfo& info, const char* archiveName) { |
| 22 | if (isExistArchive(fileName: StringTmp<128>("ObjectData/%s" , archiveName))) |
| 23 | initActorWithArchiveName(actor, initInfo: info, archiveName, suffix: nullptr); |
| 24 | else |
| 25 | initActorEffectObjNoArchive(actor, info); |
| 26 | |
| 27 | initActorEffectKeeper(actor, info, archiveName); |
| 28 | } |
| 29 | |
| 30 | void initActorEffectObjNoArchive(LiveActor* actor, const ActorInitInfo& info) { |
| 31 | initActorSceneInfo(actor, info); |
| 32 | initActorPoseTQSV(actor); |
| 33 | initActorSRT(actor, info); |
| 34 | initActorClipping(actor, initInfo: info); |
| 35 | initGroupClipping(actor, initInfo: info); |
| 36 | setClippingInfo(actor, 1000.0f, nullptr); |
| 37 | initStageSwitch(actor, info); |
| 38 | initExecutorUpdate(actor, info, "エフェクトオブジェ" ); |
| 39 | |
| 40 | if (isExistRail(initInfo: info, linkName: "Rail" )) |
| 41 | actor->initRailKeeper(info, linkName: "Rail" ); |
| 42 | } |
| 43 | |
| 44 | void initActorEffectObjNoArchive(LiveActor* actor, const ActorInitInfo& info, |
| 45 | const char* effectKeeperName) { |
| 46 | initActorEffectObjNoArchive(actor, info); |
| 47 | initActorEffectKeeper(actor, info, effectKeeperName); |
| 48 | } |
| 49 | } // namespace al::EffectObjFunction |
| 50 | |