2
3
4
5
6
7
8
9
10#ifndef EVMU_IBEHAVIOR_H
11#define EVMU_IBEHAVIOR_H
14#include <gimbal/meta/instances/gimbal_object.h>
17
18
19
20#define EVMU_IBEHAVIOR_TYPE (GBL_TYPEID
(EvmuIBehavior))
21#define EVMU_IBEHAVIOR(self) (GBL_CAST(EvmuIBehavior, self))
23#define EVMU_IBEHAVIOR_GET_CLASS(self) (GBL_CLASSOF(EvmuIBehavior, self))
26#define GBL_SELF_TYPE EvmuIBehavior
30GBL_FORWARD_DECLARE_STRUCT(EvmuEmulator);
33
34
35
36
37
38
39
40
41GBL_INTERFACE_DERIVE(EvmuIBehavior)
43 EVMU_RESULT (*pFnReset) (GBL_SELF);
45 EVMU_RESULT (*pFnUpdate) (GBL_SELF,
EvmuTicks ticks);
47 EVMU_RESULT (*pFnSaveState) (GBL_CSELF, FILE* pFile);
49 EVMU_RESULT (*pFnLoadState) (GBL_SELF, FILE* pFile);
53
54
55
56
57
58
59
60
61
68EVMU_EXPORT EVMU_RESULT EvmuIBehavior_reset (GBL_SELF) GBL_NOEXCEPT;
70EVMU_EXPORT EVMU_RESULT EvmuIBehavior_saveState (GBL_SELF, GblStringBuffer* pString) GBL_NOEXCEPT;
71EVMU_EXPORT EVMU_RESULT EvmuIBehavior_loadState (GBL_SELF,
const GblStringBuffer* pString) GBL_NOEXCEPT;
#define EVMU_EXPORT
Define used for adding attributes to export public symbols.
EvmuEmulator * EvmuIBehavior_emulator(const EvmuIBehavior *pSelf)
Returns the root EvmuBehavior object associated with the given behavior.
GblType EvmuIBehavior_type(void)
Returns the GblType UUID associated with EvmuIBehavior.
uint64_t EvmuTicks
Represents a delta time in milliseconds.
#define GBL_CLASS_CAST(cType, klass)
#define GBL_CLASSOF(cType, self)
#define GBL_CAST(cType, self)