mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-01 00:02:45 +03:00
chore(ui): clean up node handling in FrameXML_ProcessFile
This commit is contained in:
parent
3a4ed7aafb
commit
1cd1b424e9
@ -427,10 +427,10 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
|
|||||||
|
|
||||||
while (node) {
|
while (node) {
|
||||||
// <Include>
|
// <Include>
|
||||||
if (!SStrCmpI(node->GetName(), "Include", 0x7FFFFFFFu)) {
|
if (!SStrCmpI(node->GetName(), "Include")) {
|
||||||
const char* v14 = node->GetAttributeByName("file");
|
auto fileAttr = node->GetAttributeByName("file");
|
||||||
|
|
||||||
if (v14) {
|
if (fileAttr) {
|
||||||
const char* v15 = SStrChrR(v5, 92);
|
const char* v15 = SStrChrR(v5, 92);
|
||||||
|
|
||||||
if (v15) {
|
if (v15) {
|
||||||
@ -439,21 +439,22 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
|
|||||||
if (v13 < 260 ) {
|
if (v13 < 260 ) {
|
||||||
SStrCopy(v27, v5, 260);
|
SStrCopy(v27, v5, 260);
|
||||||
v27[v13] = 0;
|
v27[v13] = 0;
|
||||||
SStrPack(v27, v14, 260);
|
SStrPack(v27, fileAttr, 260);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SStrCopy(v27, v14, 260);
|
SStrCopy(v27, fileAttr, 260);
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameXML_ProcessFile(v27, a2, md5, &unkStatus);
|
FrameXML_ProcessFile(v27, a2, md5, &unkStatus);
|
||||||
} else {
|
} else {
|
||||||
unkStatus.Add(STATUS_ERROR, "Element 'Include' without file attribute");
|
unkStatus.Add(STATUS_ERROR, "Element 'Include' without file attribute");
|
||||||
}
|
}
|
||||||
// <Script>
|
|
||||||
} else if (!SStrCmpI(node->GetName(), "Script", 0x7FFFFFFFu)) {
|
|
||||||
const char* v16 = node->GetAttributeByName("file");
|
|
||||||
|
|
||||||
if (v16) {
|
// <Script>
|
||||||
|
} else if (!SStrCmpI(node->GetName(), "Script")) {
|
||||||
|
auto fileAttr = node->GetAttributeByName("file");
|
||||||
|
|
||||||
|
if (fileAttr) {
|
||||||
const char* v17 = SStrChrR(v5, 92);
|
const char* v17 = SStrChrR(v5, 92);
|
||||||
|
|
||||||
if (v17) {
|
if (v17) {
|
||||||
@ -462,12 +463,12 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
|
|||||||
if (v18 < 260) {
|
if (v18 < 260) {
|
||||||
SStrCopy(v27, filePath, 260);
|
SStrCopy(v27, filePath, 260);
|
||||||
v27[v18] = 0;
|
v27[v18] = 0;
|
||||||
SStrPack(v27, v16, 260);
|
SStrPack(v27, fileAttr, 260);
|
||||||
}
|
}
|
||||||
|
|
||||||
v5 = filePath;
|
v5 = filePath;
|
||||||
} else {
|
} else {
|
||||||
SStrCopy(v27, v16, 260);
|
SStrCopy(v27, fileAttr, 260);
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameScript_ExecuteFile(v27, a2, md5, &unkStatus);
|
FrameScript_ExecuteFile(v27, a2, md5, &unkStatus);
|
||||||
@ -479,31 +480,33 @@ int32_t FrameXML_ProcessFile(const char* filePath, const char* a2, MD5_CTX* md5,
|
|||||||
SStrPrintf(v26, 271, "%s:<Scripts>", v5);
|
SStrPrintf(v26, 271, "%s:<Scripts>", v5);
|
||||||
FrameScript_Execute(v19, v26, lua_tainted);
|
FrameScript_Execute(v19, v26, lua_tainted);
|
||||||
}
|
}
|
||||||
// <Font>
|
|
||||||
} else if (!SStrCmpI(node->GetName(), "Font", 0x7FFFFFFFu)) {
|
|
||||||
const char* fontName = node->GetAttributeByName("name");
|
|
||||||
|
|
||||||
if (fontName && *fontName) {
|
// <Font>
|
||||||
CSimpleFont* font = CSimpleFont::GetFont(fontName, 1);
|
} else if (!SStrCmpI(node->GetName(), "Font")) {
|
||||||
|
auto nameAttr = node->GetAttributeByName("name");
|
||||||
|
|
||||||
|
if (nameAttr && *nameAttr) {
|
||||||
|
CSimpleFont* font = CSimpleFont::GetFont(nameAttr, 1);
|
||||||
font->LoadXML(node, status);
|
font->LoadXML(node, status);
|
||||||
} else {
|
} else {
|
||||||
unkStatus.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");
|
auto virtualAttr = node->GetAttributeByName("virtual");
|
||||||
|
|
||||||
if (!v22 || SStrCmpI(v22, "true", 0x7FFFFFFFu)) {
|
if (virtualAttr && !SStrCmpI(virtualAttr, "true")) {
|
||||||
FrameXML_CreateFrame(node, nullptr, &unkStatus);
|
auto nameAttr = node->GetAttributeByName("name");
|
||||||
CLayoutFrame::ResizePending();
|
|
||||||
} else {
|
|
||||||
const char* v23 = node->GetAttributeByName("name");
|
|
||||||
|
|
||||||
if (v23 && *v23) {
|
if (nameAttr && *nameAttr) {
|
||||||
FrameXML_StoreHashNode(node, v23, lua_tainted, &unkStatus);
|
FrameXML_StoreHashNode(node, nameAttr, lua_tainted, &unkStatus);
|
||||||
} else {
|
} else {
|
||||||
unkStatus.Add(STATUS_WARNING, "Unnamed virtual node at top level");
|
unkStatus.Add(STATUS_WARNING, "Unnamed virtual node at top level");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
FrameXML_CreateFrame(node, nullptr, &unkStatus);
|
||||||
|
CLayoutFrame::ResizePending();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user