#pragma once #include "../../DNACommon/DNACommon.hpp" #include "IScriptObject.hpp" #include "Parameters.hpp" namespace DataSpec::DNAMP1 { struct WorldTeleporter : IScriptObject { AT_DECL_EXPLICIT_DNA_YAML AT_DECL_DNAV String<-1> name; Value active; UniqueID32 mlvl; UniqueID32 mrea; AnimationParameters animationParameters; Value playerScale; UniqueID32 platformModel; Value platformScale; UniqueID32 backgroundModel; Value backgroundScale; Value upElevator; Value elevatorSound; // needs verifcation Value volume; Value panning; Value showText; UniqueID32 font; UniqueID32 strg; Value fadeWhite; Value charFadeInTime; Value charsPerSecond; Value showDelay; /* Trilogy additions (property count 26) */ String<-1> audioStream; Value unknown13; Value unknown14; Value unknown15; Value unknown16; void nameIDs(PAKRouter& pakRouter) const { if (platformModel.isValid()) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(platformModel); ent->name = name + "_model1"; } if (backgroundModel.isValid()) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(backgroundModel); ent->name = name + "_model2"; } if (strg.isValid()) { PAK::Entry* ent = (PAK::Entry*)pakRouter.lookupEntry(strg); ent->name = name + "_strg"; } } void gatherDependencies(std::vector& pathsOut, std::vector& lazyOut) const { g_curSpec->flattenDependencies(platformModel, pathsOut); g_curSpec->flattenDependencies(backgroundModel, pathsOut); g_curSpec->flattenDependencies(strg, pathsOut); } }; } // namespace DataSpec::DNAMP1