OROCHI
 
Loading...
Searching...
No Matches
GxScriptRuntime.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CORE_NAMESPACE_BEGIN()
13class GxResScript;
14
15//===========================================================================
17//===========================================================================
19{
20 //-----------------------------------------------------------
22 //-----------------------------------------------------------
24public:
27 {
28 //-----------------------------------------------------------
30 //-----------------------------------------------------------
32
34 GxVariable(void) : _propertyId(GxProperty::DEFAULT_ID) {}
35
37 //-----------------------------------------------------------
39 //-----------------------------------------------------------
41
44
46 };
47
49 struct GxCall
50 {
51 //-----------------------------------------------------------
53 //-----------------------------------------------------------
55
59
61 };
62
63private:
65 static const u32 CALL_STACK_MAX = 32;
67 static const u32 VALUES_MAX = 32;
68
69public:
70 GX_RTTI_CLASS(GxScriptRuntime, GxClassBase)
71 // ClassBase継承クラス用禁止宣言
73
74
75 //-----------------------------------------------------------
77 //-----------------------------------------------------------
79public:
81 GxScriptRuntime(void);
83 void initialize(const GxResScript& resScript);
85 void initializeArguments(GxScript* pScript, u32 argumentCount, GxFunction::GxValue* pValues);
86
88 //-----------------------------------------------------------
90 //-----------------------------------------------------------
92public:
94 void update(f32 deltaTime);
96 void push(GxScript::GxBlock* pBlock);
98 void setCallStackArgument(u32 callStackIndex, u32 argumentIndex, GxFunction::GxValue* pValues);
100 GxCall* pop(void);
101
103 //-----------------------------------------------------------
105 //-----------------------------------------------------------
107public:
109 constexpr void setSleepTime(f32 time) { _sleepTime = time; }
111 GX_FORCE_INLINE b32 isSleep(void) const { return _sleepTime > 0.0f; }
113 GxFunction::GxValue getValue(u32 propertyId) const;
115 void setValue(u32 propertyId, GxFunction::GxValue value);
117 constexpr void setScriptBreak(GxScript* pScript) { _pScriptBreak = pScript; }
119 constexpr GxScript* getScriptBreak(void) const { return _pScriptBreak; }
121 constexpr void setBlockBreak(GxScript::GxBlockCommand* pBlock) { _pBlockBreak = pBlock; }
123 constexpr GxScript::GxBlockCommand* getBlockBreak(void) const { return _pBlockBreak; }
125 GX_FORCE_INLINE b32 isBreak(void) const { return _pScriptBreak != nullptr; }
127 constexpr u32 getCallStackCount(void) const { return _callStackCount; }
128
130 //-----------------------------------------------------------
132 //-----------------------------------------------------------
134private:
135 GxVariable _dynamicValues[VALUES_MAX];
136 GxVariable _argumentValues[GxFunction::ARGUMENT_MAX];
137 f32 _sleepTime;
138 GxCall _callStack[CALL_STACK_MAX];
139 u32 _callStackCount;
140 GxScript* _pScriptBreak;
141 GxScript::GxBlockCommand* _pBlockBreak;
142
144};
145
146GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
オブジェクト基底クラス
Definition GxBase.h:88
static const u32 ARGUMENT_MAX
引数の最大数
Definition GxFunction.h:234
プロパティクラス
Definition GxProperty.h:48
スクリプトリソース
Definition GxResScript.h:19
命令ブロッククラス
Definition GxScript.h:399
標準ブロッククラス
Definition GxScript.h:231
スクリプトクラス
Definition GxScript.h:19
スクリプトランタイムクラス
Definition GxScriptRuntime.h:19
constexpr GxScript::GxBlockCommand * getBlockBreak(void) const
ブレーク中のブロックを取得
Definition GxScriptRuntime.h:123
constexpr void setBlockBreak(GxScript::GxBlockCommand *pBlock)
ブレーク中のブロックを設定
Definition GxScriptRuntime.h:121
constexpr void setSleepTime(f32 time)
スリープ時間を設定
Definition GxScriptRuntime.h:109
constexpr void setScriptBreak(GxScript *pScript)
ブレーク中のイベントスクリプトを設定
Definition GxScriptRuntime.h:117
GX_FORCE_INLINE b32 isSleep(void) const
スリープ判定
Definition GxScriptRuntime.h:111
constexpr u32 getCallStackCount(void) const
コールスタック数を取得
Definition GxScriptRuntime.h:127
GX_FORCE_INLINE b32 isBreak(void) const
ブレーク中判定
Definition GxScriptRuntime.h:125
constexpr GxScript * getScriptBreak(void) const
ブレーク中のイベントスクリプトを取得
Definition GxScriptRuntime.h:119
値の共用体
Definition GxFunction.h:81
関数呼び出し情報
Definition GxScriptRuntime.h:50
u32 _argumentIndex
引数のインデックス
Definition GxScriptRuntime.h:58
GxScript::GxBlock * _pBlock
関数ブロック
Definition GxScriptRuntime.h:56
変数情報
Definition GxScriptRuntime.h:27
u32 _propertyId
プロパティID
Definition GxScriptRuntime.h:43
GxVariable(void)
デフォルトコンストラクタ
Definition GxScriptRuntime.h:34
GxFunction::GxValue _value
Definition GxScriptRuntime.h:42
32bitブーリアン
Definition GxDefine.h:173