chore: initial commit

This commit is contained in:
fallenoak 2023-01-02 13:17:18 -06:00
commit 70b00c5c38
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
965 changed files with 264882 additions and 0 deletions

122
src/ui/CScriptRegion.cpp Normal file
View file

@ -0,0 +1,122 @@
#include "ui/CScriptRegion.hpp"
#include "ui/CScriptObject.hpp"
#include "ui/CScriptRegionScript.hpp"
#include "ui/CSimpleTop.hpp"
#include "util/Lua.hpp"
#include <common/XML.hpp>
int32_t CScriptRegion::s_objectType;
const char* CScriptRegion::s_objectTypeName = "Region";
int32_t CScriptRegion::GetObjectType() {
if (!CScriptRegion::s_objectType) {
CScriptRegion::s_objectType = ++FrameScript_Object::s_objectTypes;
}
return CScriptRegion::s_objectType;
}
void CScriptRegion::RegisterScriptMethods(lua_State* L) {
CScriptObject::RegisterScriptMethods(L);
FrameScript_Object::FillScriptMethodTable(L, ScriptRegionMethods, NUM_SCRIPT_REGION_SCRIPT_METHODS);
}
// TODO verify return type
CLayoutFrame* CScriptRegion::GetLayoutParent() {
if (!this->m_parent || this->m_parent->m_layoutScale == 0.0f) {
return CSimpleTop::s_instance;
} else {
return (CLayoutFrame*)this->m_parent;
}
}
CLayoutFrame* CScriptRegion::GetLayoutFrameByName(const char* name) {
char fullName[1024];
this->CreateName(name, fullName, 1024);
int32_t type = CScriptRegion::GetObjectType();
CScriptRegion* object = static_cast<CScriptRegion*>(this->GetScriptObjectByName(fullName, type));
return static_cast<CLayoutFrame*>(object);
}
const char* CScriptRegion::GetObjectTypeName() {
return CScriptRegion::s_objectTypeName;
}
// TODO verify return type
CScriptObject* CScriptRegion::GetScriptObjectParent() {
return (CScriptObject*)(this->m_parent);
}
bool CScriptRegion::IsA(int32_t type) {
return type == CScriptRegion::s_objectType
|| type == CScriptObject::s_objectType;
}
bool CScriptRegion::IsA(const char* typeName) {
return !SStrCmpI(typeName, CScriptRegion::s_objectTypeName, 0x7FFFFFFF)
|| !SStrCmpI(typeName, CScriptObject::s_objectTypeName, 0x7FFFFFFF);
}
bool CScriptRegion::IsDragging() {
// TODO
return false;
}
void CScriptRegion::LoadXML(XMLNode* node, CStatus* status) {
CLayoutFrame::LoadXML(node, status);
const char* parentKey = node->GetAttributeByName("parentKey");
if (parentKey && *parentKey) {
lua_State* L = FrameScript_GetContext();
CScriptObject* parent = this->GetScriptObjectParent();
if (parent) {
if (!parent->lua_registered) {
parent->RegisterScriptObject(0);
}
lua_rawgeti(L, LUA_REGISTRYINDEX, parent->lua_objectRef);
lua_pushstring(L, parentKey);
if (!this->lua_registered) {
this->RegisterScriptObject(0);
}
lua_rawgeti(L, LUA_REGISTRYINDEX, this->lua_objectRef);
lua_settable(L, -3);
lua_settop(L, -2);
}
}
this->LoadXML_Animations(node, status);
}
void CScriptRegion::LoadXML_Animations(XMLNode* node, CStatus* status) {
// TODO
}
void CScriptRegion::NotifyAnimBegin(CSimpleAnimGroup* animGroup) {
// TODO
}
void CScriptRegion::NotifyAnimEnd(CSimpleAnimGroup* animGroup) {
// TODO
}
void CScriptRegion::OnLayerUpdate(float elapsedSec) {
// TODO
}
bool CScriptRegion::ProtectedFunctionsAllowed() {
// TODO
return true;
}
void CScriptRegion::StopAnimating() {
// TODO
}