mirror of https://github.com/AxioDL/metaforce.git
Fix MemoryRelay handling in DataSpec
This commit is contained in:
parent
e552030d40
commit
cdf9545de4
|
@ -124,8 +124,9 @@ bool MLVL::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
||||||
r.enumerate<atUint32>("memrelays", memRelays);
|
r.enumerate<atUint32>("memrelays", memRelays);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<MemRelayLink> memRelayLinks;
|
||||||
/* Bare minimum we'll need exactly the same number of links as relays */
|
/* Bare minimum we'll need exactly the same number of links as relays */
|
||||||
std::vector<MemRelayLink> memRelayLinks(memRelays.size());
|
memRelayLinks.reserve(memRelays.size());
|
||||||
|
|
||||||
hecl::DirectoryEnumerator dEnum(area.path.getAbsolutePath(), hecl::DirectoryEnumerator::Mode::DirsSorted);
|
hecl::DirectoryEnumerator dEnum(area.path.getAbsolutePath(), hecl::DirectoryEnumerator::Mode::DirsSorted);
|
||||||
bool areaInit = false;
|
bool areaInit = false;
|
||||||
|
@ -256,13 +257,8 @@ bool MLVL::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
||||||
/* We must have a new relay, let's track it */
|
/* We must have a new relay, let's track it */
|
||||||
memRelayLinks.push_back(linkOut);
|
memRelayLinks.push_back(linkOut);
|
||||||
memRelays.push_back(memRelay.id);
|
memRelays.push_back(memRelay.id);
|
||||||
} else /* Lets insert this in it's appropriate location, target order doesn't matter */
|
} else {
|
||||||
{
|
|
||||||
atUint32 idx = iter - memRelays.begin();
|
|
||||||
if (idx >= memRelayLinks.size())
|
|
||||||
memRelayLinks.push_back(linkOut);
|
memRelayLinks.push_back(linkOut);
|
||||||
else
|
|
||||||
memRelayLinks.insert(memRelayLinks.begin() + idx, linkOut);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -311,7 +307,8 @@ bool MLVL::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Append Memory Relays */
|
/* Append Memory Relays */
|
||||||
mlvl.memRelayLinks.insert(mlvl.memRelayLinks.end(), memRelayLinks.begin(), memRelayLinks.end());
|
if (!memRelayLinks.empty())
|
||||||
|
mlvl.memRelayLinks.insert(mlvl.memRelayLinks.end(), memRelayLinks.begin(), memRelayLinks.end());
|
||||||
|
|
||||||
/* Cull duplicate area paths and add typed hash to list */
|
/* Cull duplicate area paths and add typed hash to list */
|
||||||
auto& conn = btok.getBlenderConnection();
|
auto& conn = btok.getBlenderConnection();
|
||||||
|
|
|
@ -9,7 +9,7 @@ struct MemoryRelay : IScriptObject {
|
||||||
AT_DECL_DNA_YAML
|
AT_DECL_DNA_YAML
|
||||||
AT_DECL_DNAV
|
AT_DECL_DNAV
|
||||||
String<-1> name;
|
String<-1> name;
|
||||||
Value<bool> unknown;
|
|
||||||
Value<bool> active;
|
Value<bool> active;
|
||||||
|
Value<bool> skipSendActive;
|
||||||
};
|
};
|
||||||
} // namespace DataSpec::DNAMP1
|
} // namespace DataSpec::DNAMP1
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
|
|
||||||
namespace urde {
|
namespace urde {
|
||||||
|
|
||||||
CScriptMemoryRelay::CScriptMemoryRelay(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool b1,
|
CScriptMemoryRelay::CScriptMemoryRelay(TUniqueId uid, std::string_view name, const CEntityInfo& info, bool defaultActive,
|
||||||
bool skipSendActive, bool ignoreMessages)
|
bool skipSendActive, bool ignoreMessages)
|
||||||
: CEntity(uid, info, true, name)
|
: CEntity(uid, info, true, name)
|
||||||
, x34_24_(b1)
|
, x34_24_defaultActive(defaultActive)
|
||||||
, x34_25_skipSendActive(skipSendActive)
|
, x34_25_skipSendActive(skipSendActive)
|
||||||
, x34_26_ignoreMessages(ignoreMessages) {}
|
, x34_26_ignoreMessages(ignoreMessages) {}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ namespace urde {
|
||||||
class CScriptMemoryRelay : public CEntity {
|
class CScriptMemoryRelay : public CEntity {
|
||||||
union {
|
union {
|
||||||
struct {
|
struct {
|
||||||
bool x34_24_;
|
bool x34_24_defaultActive;
|
||||||
bool x34_25_skipSendActive;
|
bool x34_25_skipSendActive;
|
||||||
bool x34_26_ignoreMessages;
|
bool x34_26_ignoreMessages;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue