Files
Webcam/include/engine/script/script_variant.h
2026-06-22 11:49:35 +02:00

70 lines
1.3 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#ifndef __NSCRIPTVARIANT__
#define __NSCRIPTVARIANT__
#include "data/nvariant.h"
#include "script/script_vm.h"
namespace GS {
namespace Script {
class Object;
/// Script variant.
struct Variant
{
enum Type
{
Type_None = 0,
Type_Variant,
Type_ScriptObject,
Type_UserObject
};
Type type;
GS::Variant variant;
bool object_owner;
Object *object;
void *ptr;
uint typetag;
bool operator == (const Variant &) const;
bool operator != (const Variant &) const;
void Set();
void Set(bool v);
void Set(int v);
void Set(uint v);
void Set(float v);
void Set(const char *v);
void Set(const GS::Variant &v);
void Set(Object *object, bool object_owner = false);
void Set(const void *p, size_t size);
void Set(void *ptr, uint typetag);
Variant();
Variant(bool v);
Variant(int v);
Variant(uint v);
Variant(float v);
Variant(const char *v);
Variant(const GS::Variant &v);
Variant(Object *object, bool object_owner = false);
Variant(const void *p, size_t size);
Variant(void *ptr, uint typetag);
~Variant();
};
} // Script
} // GS
#endif // __NSCRIPTVARIANT__