Skip to content
Permalink
Browse files

Script API: Document ObjectRef handling in a comment

  • Loading branch information
sfan5 committed Feb 23, 2020
1 parent 2df226b commit 4da057cc49082192bbc45689d80dec3410e41f27
Showing with 14 additions and 0 deletions.
  1. +14 −0 src/script/cpp_api/s_base.cpp
@@ -333,6 +333,20 @@ void ScriptApiBase::setOriginFromTableRaw(int index, const char *fxn)
#endif
}

/*
* How ObjectRefs are handled in Lua:
* When an active object is created, an ObjectRef is created on the Lua side
* and stored in core.object_refs[id].
* Methods that require an ObjectRef to a certain object retrieve it from that
* table instead of creating their own.(*)
* When an active object is removed, the existing ObjectRef is invalidated
* using ::set_null() and removed from the core.object_refs table.
* (*) An exception to this are NULL ObjectRefs and anonymous ObjectRefs
* for objects without ID.
* It's unclear what the latter are needed for and their use is problematic
* since we lose control over the ref and the contained pointer.
*/

void ScriptApiBase::addObjectReference(ServerActiveObject *cobj)
{
SCRIPTAPI_PRECHECKHEADER

0 comments on commit 4da057c

Please sign in to comment.
You can’t perform that action at this time.