18 #include "precompiled.h"
26 #define TOJSVAL_SETUP() \
27 JSObject* obj = JS_NewObject(scriptInterface.GetContext(), NULL, NULL, NULL); \
31 #define SET_MSG_PROPERTY(name) \
33 jsval prop = ScriptInterface::ToJSVal(scriptInterface.GetContext(), this->name); \
34 if (! JS_SetProperty(scriptInterface.GetContext(), obj, #name, &prop)) \
38 #define FROMJSVAL_SETUP() \
39 if (! JSVAL_IS_OBJECT(val)) \
41 JSObject* obj = JSVAL_TO_OBJECT(val); \
44 #define GET_MSG_PROPERTY(type, name) \
45 if (! JS_GetProperty(scriptInterface.GetContext(), obj, #name, &prop)) \
48 if (! ScriptInterface::FromJSVal(scriptInterface.GetContext(), prop, name)) \
64 return OBJECT_TO_JSVAL(obj);
74 #define MESSAGE_1(name, t0, a0) \
75 jsval CMessage##name::ToJSVal(ScriptInterface& scriptInterface) const \
78 SET_MSG_PROPERTY(a0); \
79 return OBJECT_TO_JSVAL(obj); \
81 CMessage* CMessage##name::FromJSVal(ScriptInterface& scriptInterface, jsval val) \
84 GET_MSG_PROPERTY(t0, a0); \
85 return new CMessage##name(a0); \
90 MESSAGE_1(Update_MotionUnit, fixed, turnLength)
91 MESSAGE_1(Update_Final, fixed, turnLength)
101 return OBJECT_TO_JSVAL(obj);
117 LOGWARNING(L
"CMessageRenderSubmit::ToJSVal not implemented");
123 LOGWARNING(L
"CMessageRenderSubmit::FromJSVal not implemented");
131 LOGWARNING(L
"CMessageProgressiveLoad::ToJSVal not implemented");
137 LOGWARNING(L
"CMessageProgressiveLoad::FromJSVal not implemented");
147 return OBJECT_TO_JSVAL(obj);
163 return OBJECT_TO_JSVAL(obj);
181 return OBJECT_TO_JSVAL(obj);
203 return OBJECT_TO_JSVAL(obj);
224 return OBJECT_TO_JSVAL(obj);
244 return OBJECT_TO_JSVAL(obj);
262 return OBJECT_TO_JSVAL(obj);
278 return OBJECT_TO_JSVAL(obj);
283 LOGWARNING(L
"CMessageRangeUpdate::FromJSVal not implemented");
291 LOGWARNING(L
"CMessagePathResult::ToJSVal not implemented");
297 LOGWARNING(L
"CMessagePathResult::FromJSVal not implemented");
308 return OBJECT_TO_JSVAL(obj);
327 return OBJECT_TO_JSVAL(obj);
344 return OBJECT_TO_JSVAL(obj);
358 #define MESSAGE(name) case MT_##name: return CMessage##name::FromJSVal(scriptingInterface, val);
359 #define INTERFACE(name)
360 #define COMPONENT(name)
CMessageTerritoriesChanged()
A simple fixed-point number class.
bool uninitialised() const
Returns whether the value is uninitialised.
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
#define UNUSED(param)
mark a function parameter as unused and avoid the corresponding compiler warning. ...
static CMessage * FromJSVal(ScriptInterface &, jsval val)
jsval ToJSValCached(ScriptInterface &) const
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &) const =0
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
std::vector< entity_id_t > removed
CMessageMotionChanged(bool starting, bool error)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
static CMessage * FromJSVal(ScriptInterface &, jsval val)
CMessageCreate(entity_id_t entity)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
float deltaSimTime
Elapsed simulation time since previous interpolate, in seconds.
CMessageOwnershipChanged(entity_id_t entity, player_id_t from, player_id_t to)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
int32_t player_id_t
valid player IDs are non-negative (see ICmpOwnership)
float deltaRealTime
Elapsed real time since previous interpolate, in seconds.
#define MESSAGE_1(name, t0, a0)
CMessageTerrainChanged(int32_t i0, int32_t j0, int32_t i1, int32_t j1)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
CMessageInterpolate(float deltaSimTime, float offset, float deltaRealTime)
#define GET_MSG_PROPERTY(type, name)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
CMessageVisionRangeChanged(entity_id_t entity, entity_pos_t oldRange, entity_pos_t newRange)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
float offset
Range [0, 1] (inclusive); fractional time of current frame between previous/next simulation turns...
CMessageDestroy(entity_id_t entity)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
CMessagePositionChanged(entity_id_t entity, bool inWorld, entity_pos_t x, entity_pos_t z, entity_angle_t a)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
CMessage * CMessageFromJSVal(int mtid, ScriptInterface &scriptingInterface, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
#define SET_MSG_PROPERTY(name)
CMessageTechnologyModification(std::wstring component, player_id_t player)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
jsval get() const
Returns the current value (or JSVAL_VOID if uninitialised).
static CMessage * FromJSVal(ScriptInterface &, jsval val)
Abstraction around a SpiderMonkey JSContext.
CScriptValRooted m_Cached
static CMessage * FromJSVal(ScriptInterface &, jsval val)
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
Prepare for rendering a new frame (set up model positions etc).
u32 entity_id_t
Entity ID type.
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
static CMessage * FromJSVal(ScriptInterface &, jsval val)
virtual jsval ToJSVal(ScriptInterface &scriptInterface) const
#define FROMJSVAL_SETUP()
JSContext * GetContext() const
std::vector< entity_id_t > added