Compare commits

..

No commits in common. "eed536042d0f15a5cf4affe09f21209d7d0c7133" and "6c5c560dc785153a550d535da3e9fcbae576617b" have entirely different histories.

9 changed files with 24 additions and 1665 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6,11 +6,9 @@
struct lua_State; struct lua_State;
#define NUM_SCRIPT_FUNCTIONS_GAME 310
#define NUM_SCRIPT_FUNCTIONS_CAMERA 22 #define NUM_SCRIPT_FUNCTIONS_CAMERA 22
namespace GameScript { namespace GameScript {
extern FrameScript_Method s_ScriptFunctions_Game[NUM_SCRIPT_FUNCTIONS_GAME];
extern FrameScript_Method s_ScriptFunctions_Camera[NUM_SCRIPT_FUNCTIONS_CAMERA]; extern FrameScript_Method s_ScriptFunctions_Camera[NUM_SCRIPT_FUNCTIONS_CAMERA];
} }

View File

@ -156,12 +156,7 @@ void FrameScript_CreateEvents(const char* names[], uint32_t count) {
} }
void FrameScript_Destroy() { void FrameScript_Destroy() {
lua_close(FrameScript::s_context); // TODO
FrameScript::s_context = nullptr;
luaM_freePool(FrameScript::s_mempool);
FrameScript::s_mempool = nullptr;
FrameScript::s_scriptEventsHash.Clear();
FrameScript::s_scriptEvents.Clear();
} }
void FrameScript_Execute(const char* source, const char* filename, const char* a3) { void FrameScript_Execute(const char* source, const char* filename, const char* a3) {

View File

@ -272,10 +272,9 @@ int32_t FrameXML_CreateFrames(const char* tocPath, const char* a2, MD5_CTX* md5,
tocData = tocData + 3; tocData = tocData + 3;
} }
CStatus frameStatus; CStatus v21;
char tocLine[1024]; char tocLine[1024];
char tocEntryPath[260]; char tocEntryPath[260];
int32_t v25 = 0;
do { do {
SStrTokenize(&tocData, tocLine, 1024, "\r\n", 0); SStrTokenize(&tocData, tocLine, 1024, "\r\n", 0);
@ -308,7 +307,7 @@ int32_t FrameXML_CreateFrames(const char* tocPath, const char* a2, MD5_CTX* md5,
*v12 = 0; *v12 = 0;
FrameXML_ProcessFile(tocEntryPath, a2, md5, &frameStatus); FrameXML_ProcessFile(tocEntryPath, a2, md5, &v21);
// TODO // TODO
// if (s_progressCallback && s_progressFiles < s_progressTotal) { // if (s_progressCallback && s_progressFiles < s_progressTotal) {
@ -325,11 +324,13 @@ int32_t FrameXML_CreateFrames(const char* tocPath, const char* a2, MD5_CTX* md5,
SFile::Unload(tocBuffer); SFile::Unload(tocBuffer);
if (FrameXML::s_debugLevel > 0 || v25 > 0) { // TODO
frameStatus.Prepend(STATUS_INFO, "** Loading table of contents %s", v5); // if (s_debugLevel > 0 || v25 > 0) {
} // v21.Prepend(STATUS_INFO, "** Loading table of contents %s", v5);
// }
status->Add(frameStatus); // TODO
// status->Add(v21);
return 1; return 1;
} }
@ -416,7 +417,7 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
return 0; return 0;
} }
CStatus fileStatus; CStatus unkStatus;
XMLNode* node = XMLTree_GetRoot(tree)->m_child; XMLNode* node = XMLTree_GetRoot(tree)->m_child;
@ -427,8 +428,6 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
// Should come from some kind of Lua headers // Should come from some kind of Lua headers
const char* lua_tainted = nullptr; const char* lua_tainted = nullptr;
int32_t v34 = 0;
while (node) { while (node) {
// <Include> // <Include>
if (!SStrCmpI(node->GetName(), "Include", 0x7FFFFFFFu)) { if (!SStrCmpI(node->GetName(), "Include", 0x7FFFFFFFu)) {
@ -449,9 +448,9 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
SStrCopy(v27, v14, 260); SStrCopy(v27, v14, 260);
} }
FrameXML_ProcessFile(v27, a2, md5, &fileStatus); FrameXML_ProcessFile(v27, a2, md5, &unkStatus);
} else { } else {
fileStatus.Add(STATUS_ERROR, "Element 'Include' without file attribute"); unkStatus.Add(STATUS_ERROR, "Element 'Include' without file attribute");
} }
// <Script> // <Script>
} else if (!SStrCmpI(node->GetName(), "Script", 0x7FFFFFFFu)) { } else if (!SStrCmpI(node->GetName(), "Script", 0x7FFFFFFFu)) {
@ -474,7 +473,7 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
SStrCopy(v27, v16, 260); SStrCopy(v27, v16, 260);
} }
FrameScript_ExecuteFile(v27, a2, md5, &fileStatus); FrameScript_ExecuteFile(v27, a2, md5, &unkStatus);
} }
char* v19 = node->m_body; char* v19 = node->m_body;
@ -491,22 +490,22 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
CSimpleFont* font = CSimpleFont::GetFont(fontName, 1); CSimpleFont* font = CSimpleFont::GetFont(fontName, 1);
font->LoadXML(node, status); font->LoadXML(node, status);
} else { } else {
fileStatus.Add(STATUS_WARNING, "Unnamed font node at top level"); unkStatus.Add(STATUS_WARNING, "Unnamed font node at top level");
} }
// Everything else (frame nodes) // Everything else (frame nodes)
} else { } else {
const char* v22 = node->GetAttributeByName("virtual"); const char* v22 = node->GetAttributeByName("virtual");
if (!v22 || SStrCmpI(v22, "true", 0x7FFFFFFFu)) { if (!v22 || SStrCmpI(v22, "true", 0x7FFFFFFFu)) {
FrameXML_CreateFrame(node, nullptr, &fileStatus); FrameXML_CreateFrame(node, nullptr, &unkStatus);
CLayoutFrame::ResizePending(); CLayoutFrame::ResizePending();
} else { } else {
const char* v23 = node->GetAttributeByName("name"); const char* v23 = node->GetAttributeByName("name");
if (v23 && *v23) { if (v23 && *v23) {
FrameXML_StoreHashNode(node, v23, lua_tainted, &fileStatus); FrameXML_StoreHashNode(node, v23, lua_tainted, &unkStatus);
} else { } else {
fileStatus.Add(STATUS_WARNING, "Unnamed virtual node at top level"); unkStatus.Add(STATUS_WARNING, "Unnamed virtual node at top level");
} }
} }
} }
@ -516,11 +515,13 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
XMLTree_Free(tree); XMLTree_Free(tree);
if (FrameXML::s_debugLevel > 0 || v34 > 0) { // TODO
fileStatus.Prepend(STATUS_INFO, "++ Loading file %s", v5); // if (s_debugLevel > 0 || v34 > 0) {
} // unkStatus.Prepend(STATUS_INFO, "++ Loading file %s", v5);
// }
status->Add(fileStatus); // TODO
// status->Unk8(unkStatus);
return 1; return 1;
} }
@ -612,11 +613,3 @@ int32_t FrameXML_GuessNumFiles(const char* data) {
} }
return result; return result;
} }
int32_t FrameXML_GetDebugLevel() {
return FrameXML::s_debugLevel;
}
void FrameXML_SetDebugLevel(int32_t level) {
FrameXML::s_debugLevel = level;
}

View File

@ -54,8 +54,4 @@ void FrameXML_StoreHashNode(XMLNode* node, const char* name, const char* a3, CSt
int32_t FrameXML_GuessNumFiles(const char* data); int32_t FrameXML_GuessNumFiles(const char* data);
int32_t FrameXML_GetDebugLevel();
void FrameXML_SetDebugLevel(int32_t level);
#endif #endif

View File

@ -30,25 +30,6 @@ void* luaM_initPool() {
return pools; return pools;
} }
void luaM_freePool(void* ptr) {
if (!ptr) {
return;
}
MemPool** pools = reinterpret_cast<MemPool**>(ptr);
for (uint32_t i = 0; i < 9; ++i) {
MemPool* pool = pools[i];
if (pool) {
// Is the sub_8556E0(pool) a desturctor?
pool->~MemPool();
SMemFree(pool, __FILE__, __LINE__, 0);
}
}
SMemFree(pools, __FILE__, __LINE__, 0);
}
void* luaM_reallocPool(void* ud, void* ptr, size_t osize, size_t nsize) { void* luaM_reallocPool(void* ud, void* ptr, size_t osize, size_t nsize) {
void* result; // eax void* result; // eax
signed int v5; // esi signed int v5; // esi

View File

@ -4,7 +4,6 @@
#include <cstdlib> #include <cstdlib>
void* luaM_initPool(); void* luaM_initPool();
void luaM_freePool(void* ptr);
void* luaM_reallocPool(void* ud, void* ptr, size_t osize, size_t nsize); void* luaM_reallocPool(void* ud, void* ptr, size_t osize, size_t nsize);
#endif #endif

View File

@ -24,16 +24,6 @@ void CStatus::Add(STATUS_TYPE severity, const char* format, ...) {
va_end(args); va_end(args);
} }
void CStatus::Prepend(STATUS_TYPE severity, const char* format, ...) {
// TODO
// Remove temporary console debug logging
va_list args;
va_start(args, format);
vprintf(format, args);
printf("\n");
va_end(args);
}
CStatus& GetGlobalStatusObj() { CStatus& GetGlobalStatusObj() {
return CStatus::s_errorList; return CStatus::s_errorList;
} }

View File

@ -27,7 +27,6 @@ class CStatus {
// Member functions // Member functions
void Add(const CStatus&); void Add(const CStatus&);
void Add(STATUS_TYPE, const char*, ...); void Add(STATUS_TYPE, const char*, ...);
void Prepend(STATUS_TYPE, const char*, ...);
public: public:
STORM_EXPLICIT_LIST(CStatus::STATUSENTRY, link) statusList; STORM_EXPLICIT_LIST(CStatus::STATUSENTRY, link) statusList;