30#ifndef AGS_ENGINE_AC_DYNOBJ_MANAGER_H
31#define AGS_ENGINE_AC_DYNOBJ_MANAGER_H
33#include "ags/shared/core/types.h"
34#include "ags/engine/script/runtime_script_value.h"
35#include "ags/engine/ac/dynobj/cc_script_object.h"
50extern int32_t ccRegisterManagedObject(
void *
object, IScriptObject *, ScriptValueType obj_type = kScValScriptObject);
52extern int32_t ccRegisterUnserializedObject(
int index,
void *
object, IScriptObject *, ScriptValueType obj_type = kScValScriptObject);
54extern int ccUnRegisterManagedObject(
void *
object);
56extern void ccUnregisterAllObjects();
58extern void ccSerializeAllObjects(Shared::Stream *out);
60extern int ccUnserializeAllObjects(Shared::Stream *in, ICCObjectCollectionReader *callback);
62extern void ccAttemptDisposeObject(int32_t handle);
64extern int32_t ccGetObjectHandleFromAddress(
void *address);
65extern void *ccGetObjectAddressFromHandle(int32_t handle);
66extern ScriptValueType ccGetObjectAddressAndManagerFromHandle(int32_t handle,
void *&
object, IScriptObject *&manager);
68extern int ccAddObjectReference(int32_t handle);
69extern int ccReleaseObjectReference(int32_t handle);