Adding IsValid to vscript

This commit is contained in:
James Mitchell 2020-06-20 13:10:37 +10:00
parent 5b2547a6ff
commit e9cbcd173d

View File

@ -1067,6 +1067,14 @@ SQInteger tostring_stub(HSQUIRRELVM vm)
return 1; return 1;
} }
SQInteger IsValid_stub(HSQUIRRELVM vm)
{
ClassInstanceData* classInstanceData = nullptr;
sq_getinstanceup(vm, 1, (SQUserPointer*)&classInstanceData, 0);
sq_pushbool(vm, classInstanceData == nullptr);
return 1;
}
struct SquirrelSafeCheck struct SquirrelSafeCheck
{ {
SquirrelSafeCheck(HSQUIRRELVM vm, int outputCount = 0) : SquirrelSafeCheck(HSQUIRRELVM vm, int outputCount = 0) :
@ -1719,6 +1727,10 @@ bool SquirrelVM::RegisterClass(ScriptClassDesc_t* pClassDesc)
sq_newclosure(vm_, tostring_stub, 0); sq_newclosure(vm_, tostring_stub, 0);
sq_newslot(vm_, -3, SQFalse); sq_newslot(vm_, -3, SQFalse);
sq_pushstring(vm_, "IsValid", -1);
sq_newclosure(vm_, IsValid_stub, 0);
sq_newslot(vm_, -3, SQFalse);
for (int i = 0; i < pClassDesc->m_FunctionBindings.Count(); ++i) for (int i = 0; i < pClassDesc->m_FunctionBindings.Count(); ++i)
{ {