Force Movtexs into compiled DynOS lvls

This commit is contained in:
MysterD 2022-04-05 08:15:08 -07:00
parent 8646b50ae5
commit d5770f1b55
2 changed files with 17 additions and 0 deletions

View file

@ -2005,6 +2005,14 @@ static bool DynOS_Lvl_GeneratePack_Internal(const SysPath &aPackFolder, Array<Pa
PrintNoNewLine("%s.lvl: Model identifier: %X - Processing... ", _LvlRootName.begin(), _GfxData->mModelIdentifier);
DynOS_Lvl_Parse(_GfxData, _LvlRoot, true);
// Force all of the movtexs into the compiled lvl
for (auto &_MovtexNode : _GfxData->mMovtexs) {
DynOS_Movtex_Parse(_GfxData, _MovtexNode, false);
}
for (auto &_MovtexQCNode : _GfxData->mMovtexQCs) {
DynOS_MovtexQC_Parse(_GfxData, _MovtexQCNode);
}
// Write if no error
if (_GfxData->mErrorCount == 0) {
DynOS_Lvl_WriteBinary(_LvlFilename, _GfxData);

View file

@ -132,6 +132,15 @@ static void ParseMovtexSymbol(GfxData* aGfxData, DataNode<Movtex>* aNode, Movtex
movtex_symbol_0(MOV_TEX_END);
movtex_symbol_0(MOV_TEX_ROT_END);
// Integers
s32 x;
if ((_Symbol[1] == 'x' && sscanf(_Symbol.begin(), "%x", &x) == 1) || (sscanf(_Symbol.begin(), "%d", &x) == 1)) {
Movtex _Mt[] = { (s16)x };
memcpy(aHead, _Mt, sizeof(_Mt));
aHead += (sizeof(_Mt) / sizeof(_Mt[0]));
return;
}
// Unknown
PrintError(" ERROR: Unknown movtex symbol: %s", _Symbol.begin());
}