|
@@ -148,55 +148,45 @@ inline const char* EngineMarshallData( U32 value )
|
|
/// Marshal data from native into client form stored directly in
|
|
/// Marshal data from native into client form stored directly in
|
|
/// client function invocation vector.
|
|
/// client function invocation vector.
|
|
template< typename T >
|
|
template< typename T >
|
|
-inline void EngineMarshallData( const T& arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( const T& arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = castConsoleTypeToString( arg );
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ const char* str = castConsoleTypeToString(arg);;
|
|
|
|
+ argv[ argc++ ].setString(str, dStrlen(str));
|
|
}
|
|
}
|
|
-inline void EngineMarshallData( bool arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( bool arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- if( arg )
|
|
|
|
- argv[ argc ] = 1;
|
|
|
|
- else
|
|
|
|
- argv[ argc ] = 0;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setBool(arg);
|
|
}
|
|
}
|
|
-inline void EngineMarshallData( S32 arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( S32 arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = arg;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setInt(arg);
|
|
}
|
|
}
|
|
-inline void EngineMarshallData( U32 arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( U32 arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
EngineMarshallData( S32( arg ), argc, argv );
|
|
EngineMarshallData( S32( arg ), argc, argv );
|
|
}
|
|
}
|
|
-inline void EngineMarshallData( F32 arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( F32 arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = arg;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setFloat(arg);
|
|
}
|
|
}
|
|
-inline void EngineMarshallData( const char* arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( const char* arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = arg;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setString(arg, dStrlen(arg));
|
|
}
|
|
}
|
|
-inline void EngineMarshallData( char* arg, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( char* arg, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = arg;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setString(arg, dStrlen(arg));
|
|
}
|
|
}
|
|
|
|
|
|
template< typename T >
|
|
template< typename T >
|
|
-inline void EngineMarshallData( T* object, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( T* object, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = object ? object->getId() : 0;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setInt(object ? object->getId() : 0);
|
|
}
|
|
}
|
|
template< typename T >
|
|
template< typename T >
|
|
-inline void EngineMarshallData( const T* object, S32& argc, ConsoleValueRef *argv )
|
|
|
|
|
|
+inline void EngineMarshallData( const T* object, S32& argc, ConsoleValue *argv )
|
|
{
|
|
{
|
|
- argv[ argc ] = object ? object->getId() : 0;
|
|
|
|
- argc ++;
|
|
|
|
|
|
+ argv[ argc++ ].setInt(object ? object->getId() : 0);
|
|
}
|
|
}
|
|
|
|
|
|
/// Unmarshal data from client form to engine form.
|
|
/// Unmarshal data from client form to engine form.
|
|
@@ -216,9 +206,9 @@ struct EngineUnmarshallData
|
|
template<>
|
|
template<>
|
|
struct EngineUnmarshallData< S32 >
|
|
struct EngineUnmarshallData< S32 >
|
|
{
|
|
{
|
|
- S32 operator()( ConsoleValueRef &ref ) const
|
|
|
|
|
|
+ S32 operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return (S32)ref;
|
|
|
|
|
|
+ return (S32)ref.getInt();
|
|
}
|
|
}
|
|
|
|
|
|
S32 operator()( const char* str ) const
|
|
S32 operator()( const char* str ) const
|
|
@@ -229,9 +219,9 @@ struct EngineUnmarshallData< S32 >
|
|
template<>
|
|
template<>
|
|
struct EngineUnmarshallData< U32 >
|
|
struct EngineUnmarshallData< U32 >
|
|
{
|
|
{
|
|
- U32 operator()( ConsoleValueRef &ref ) const
|
|
|
|
|
|
+ U32 operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return (U32)((S32)ref);
|
|
|
|
|
|
+ return (U32)ref.getInt();
|
|
}
|
|
}
|
|
|
|
|
|
U32 operator()( const char* str ) const
|
|
U32 operator()( const char* str ) const
|
|
@@ -242,9 +232,9 @@ struct EngineUnmarshallData< U32 >
|
|
template<>
|
|
template<>
|
|
struct EngineUnmarshallData< F32 >
|
|
struct EngineUnmarshallData< F32 >
|
|
{
|
|
{
|
|
- F32 operator()( ConsoleValueRef &ref ) const
|
|
|
|
|
|
+ F32 operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return (F32)ref;
|
|
|
|
|
|
+ return (F32)ref.getFloat();
|
|
}
|
|
}
|
|
|
|
|
|
F32 operator()( const char* str ) const
|
|
F32 operator()( const char* str ) const
|
|
@@ -255,9 +245,9 @@ struct EngineUnmarshallData< F32 >
|
|
template<>
|
|
template<>
|
|
struct EngineUnmarshallData< U8 >
|
|
struct EngineUnmarshallData< U8 >
|
|
{
|
|
{
|
|
- U8 operator()( ConsoleValueRef &ref ) const
|
|
|
|
|
|
+ U8 operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return (U8)((S32)ref);
|
|
|
|
|
|
+ return (U8)((S32)ref.getInt());
|
|
}
|
|
}
|
|
|
|
|
|
U8 operator()( const char* str ) const
|
|
U8 operator()( const char* str ) const
|
|
@@ -268,9 +258,9 @@ struct EngineUnmarshallData< U8 >
|
|
template<>
|
|
template<>
|
|
struct EngineUnmarshallData< const char* >
|
|
struct EngineUnmarshallData< const char* >
|
|
{
|
|
{
|
|
- const char* operator()( ConsoleValueRef &ref ) const
|
|
|
|
|
|
+ const char* operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return ref.getStringValue();
|
|
|
|
|
|
+ return ref.getString();
|
|
}
|
|
}
|
|
|
|
|
|
const char* operator()( const char* str ) const
|
|
const char* operator()( const char* str ) const
|
|
@@ -281,9 +271,9 @@ struct EngineUnmarshallData< const char* >
|
|
template< typename T >
|
|
template< typename T >
|
|
struct EngineUnmarshallData< T* >
|
|
struct EngineUnmarshallData< T* >
|
|
{
|
|
{
|
|
- T* operator()( ConsoleValueRef &ref ) const
|
|
|
|
|
|
+ T* operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return dynamic_cast< T* >( Sim::findObject( ref.getStringValue() ) );
|
|
|
|
|
|
+ return dynamic_cast< T* >( Sim::findObject( ref ) );
|
|
}
|
|
}
|
|
|
|
|
|
T* operator()( const char* str ) const
|
|
T* operator()( const char* str ) const
|
|
@@ -294,17 +284,17 @@ struct EngineUnmarshallData< T* >
|
|
template<>
|
|
template<>
|
|
struct EngineUnmarshallData< void >
|
|
struct EngineUnmarshallData< void >
|
|
{
|
|
{
|
|
- void operator()( ConsoleValueRef& ) const {}
|
|
|
|
|
|
+ void operator()( ConsoleValue& ) const {}
|
|
void operator()( const char* ) const {}
|
|
void operator()( const char* ) const {}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
template<>
|
|
template<>
|
|
-struct EngineUnmarshallData< ConsoleValueRef >
|
|
|
|
|
|
+struct EngineUnmarshallData< ConsoleValue >
|
|
{
|
|
{
|
|
- ConsoleValueRef operator()( ConsoleValueRef ref ) const
|
|
|
|
|
|
+ ConsoleValue operator()( ConsoleValue &ref ) const
|
|
{
|
|
{
|
|
- return ref;
|
|
|
|
|
|
+ return std::move(ref);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -548,7 +538,7 @@ namespace engineAPI{
|
|
static const S32 NUM_ARGS = sizeof...(ArgTs) + startArgc;
|
|
static const S32 NUM_ARGS = sizeof...(ArgTs) + startArgc;
|
|
|
|
|
|
template<size_t index, size_t method_offset = 0, typename ...RealArgTs>
|
|
template<size_t index, size_t method_offset = 0, typename ...RealArgTs>
|
|
- static IthArgType<index> getRealArgValue(S32 argc, ConsoleValueRef *argv, const _EngineFunctionDefaultArguments< void(RealArgTs...) >& defaultArgs)
|
|
|
|
|
|
+ static IthArgType<index> getRealArgValue(S32 argc, ConsoleValue *argv, const _EngineFunctionDefaultArguments< void(RealArgTs...) >& defaultArgs)
|
|
{
|
|
{
|
|
if((startArgc + index) < argc)
|
|
if((startArgc + index) < argc)
|
|
{
|
|
{
|
|
@@ -559,12 +549,12 @@ namespace engineAPI{
|
|
}
|
|
}
|
|
|
|
|
|
template<size_t ...I>
|
|
template<size_t ...I>
|
|
- static R dispatchHelper(S32 argc, ConsoleValueRef *argv, FunctionType fn, const _EngineFunctionDefaultArguments< void(ArgTs...) >& defaultArgs, Seq<I...>){
|
|
|
|
|
|
+ static R dispatchHelper(S32 argc, ConsoleValue *argv, FunctionType fn, const _EngineFunctionDefaultArguments< void(ArgTs...) >& defaultArgs, Seq<I...>){
|
|
return fn(SelfType::getRealArgValue<I>(argc, argv, defaultArgs) ...);
|
|
return fn(SelfType::getRealArgValue<I>(argc, argv, defaultArgs) ...);
|
|
}
|
|
}
|
|
|
|
|
|
template<typename Frame, size_t ...I>
|
|
template<typename Frame, size_t ...I>
|
|
- static R dispatchHelper(S32 argc, ConsoleValueRef *argv, MethodType<Frame> fn, Frame* frame, const _EngineFunctionDefaultArguments< void( typename Frame::ObjectType*, ArgTs...) >& defaultArgs, Seq<I...>){
|
|
|
|
|
|
+ static R dispatchHelper(S32 argc, ConsoleValue *argv, MethodType<Frame> fn, Frame* frame, const _EngineFunctionDefaultArguments< void( typename Frame::ObjectType*, ArgTs...) >& defaultArgs, Seq<I...>){
|
|
return (frame->*fn)(SelfType::getRealArgValue<I,1>(argc, argv, defaultArgs) ...);
|
|
return (frame->*fn)(SelfType::getRealArgValue<I,1>(argc, argv, defaultArgs) ...);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -579,9 +569,9 @@ namespace engineAPI{
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
- template<> struct MarshallHelpers<ConsoleValueRef> {
|
|
|
|
- template<typename ...ArgTs> static void marshallEach(S32 &argc, ConsoleValueRef *argv, const ArgTs& ...args){}
|
|
|
|
- template<typename H, typename ...Tail> static void marshallEach(S32 &argc, ConsoleValueRef *argv, const H& head, const Tail& ...tail){
|
|
|
|
|
|
+ template<> struct MarshallHelpers<ConsoleValue> {
|
|
|
|
+ template<typename ...ArgTs> static void marshallEach(S32 &argc, ConsoleValue *argv, const ArgTs& ...args){}
|
|
|
|
+ template<typename H, typename ...Tail> static void marshallEach(S32 &argc, ConsoleValue *argv, const H& head, const Tail& ...tail){
|
|
EngineMarshallData(head, argc, argv);
|
|
EngineMarshallData(head, argc, argv);
|
|
marshallEach(argc, argv, tail...);
|
|
marshallEach(argc, argv, tail...);
|
|
}
|
|
}
|
|
@@ -604,12 +594,12 @@ public:
|
|
template<typename Frame> using MethodType = typename Helper::template MethodType<Frame>;
|
|
template<typename Frame> using MethodType = typename Helper::template MethodType<Frame>;
|
|
static const S32 NUM_ARGS = Helper::NUM_ARGS;
|
|
static const S32 NUM_ARGS = Helper::NUM_ARGS;
|
|
|
|
|
|
- static ReturnType thunk( S32 argc, ConsoleValueRef *argv, FunctionType fn, const _EngineFunctionDefaultArguments< void(ArgTs...) >& defaultArgs)
|
|
|
|
|
|
+ static ReturnType thunk( S32 argc, ConsoleValue *argv, FunctionType fn, const _EngineFunctionDefaultArguments< void(ArgTs...) >& defaultArgs)
|
|
{
|
|
{
|
|
return _EngineConsoleThunkReturnValue( Helper::dispatchHelper(argc, argv, fn, defaultArgs, SeqType()));
|
|
return _EngineConsoleThunkReturnValue( Helper::dispatchHelper(argc, argv, fn, defaultArgs, SeqType()));
|
|
}
|
|
}
|
|
template< typename Frame >
|
|
template< typename Frame >
|
|
- static ReturnType thunk( S32 argc, ConsoleValueRef *argv, MethodType<Frame> fn, Frame* frame, const _EngineFunctionDefaultArguments< void( typename Frame::ObjectType*, ArgTs...) >& defaultArgs)
|
|
|
|
|
|
+ static ReturnType thunk( S32 argc, ConsoleValue *argv, MethodType<Frame> fn, Frame* frame, const _EngineFunctionDefaultArguments< void( typename Frame::ObjectType*, ArgTs...) >& defaultArgs)
|
|
{
|
|
{
|
|
return _EngineConsoleThunkReturnValue( Helper::dispatchHelper(argc, argv, fn, frame, defaultArgs, SeqType()));
|
|
return _EngineConsoleThunkReturnValue( Helper::dispatchHelper(argc, argv, fn, frame, defaultArgs, SeqType()));
|
|
}
|
|
}
|
|
@@ -627,12 +617,12 @@ public:
|
|
template<typename Frame> using MethodType = typename Helper::template MethodType<Frame>;
|
|
template<typename Frame> using MethodType = typename Helper::template MethodType<Frame>;
|
|
static const S32 NUM_ARGS = Helper::NUM_ARGS;
|
|
static const S32 NUM_ARGS = Helper::NUM_ARGS;
|
|
|
|
|
|
- static void thunk( S32 argc, ConsoleValueRef *argv, FunctionType fn, const _EngineFunctionDefaultArguments< void(ArgTs...) >& defaultArgs)
|
|
|
|
|
|
+ static void thunk( S32 argc, ConsoleValue *argv, FunctionType fn, const _EngineFunctionDefaultArguments< void(ArgTs...) >& defaultArgs)
|
|
{
|
|
{
|
|
Helper::dispatchHelper(argc, argv, fn, defaultArgs, SeqType());
|
|
Helper::dispatchHelper(argc, argv, fn, defaultArgs, SeqType());
|
|
}
|
|
}
|
|
template< typename Frame >
|
|
template< typename Frame >
|
|
- static void thunk( S32 argc, ConsoleValueRef *argv, MethodType<Frame> fn, Frame* frame, const _EngineFunctionDefaultArguments< void( typename Frame::ObjectType*, ArgTs...) >& defaultArgs)
|
|
|
|
|
|
+ static void thunk( S32 argc, ConsoleValue *argv, MethodType<Frame> fn, Frame* frame, const _EngineFunctionDefaultArguments< void( typename Frame::ObjectType*, ArgTs...) >& defaultArgs)
|
|
{
|
|
{
|
|
Helper::dispatchHelper(argc, argv, fn, frame, defaultArgs, SeqType());
|
|
Helper::dispatchHelper(argc, argv, fn, frame, defaultArgs, SeqType());
|
|
}
|
|
}
|
|
@@ -705,7 +695,7 @@ public:
|
|
( void* ) &fn ## name, \
|
|
( void* ) &fn ## name, \
|
|
0 \
|
|
0 \
|
|
); \
|
|
); \
|
|
- static _EngineConsoleThunkType< returnType >::ReturnType _ ## name ## caster( SimObject*, S32 argc, ConsoleValueRef *argv ) \
|
|
|
|
|
|
+ static _EngineConsoleThunkType< returnType >::ReturnType _ ## name ## caster( SimObject*, S32 argc, ConsoleValue *argv ) \
|
|
{ \
|
|
{ \
|
|
return _EngineConsoleThunkType< returnType >::ReturnType( _EngineConsoleThunk< 1, returnType args >::thunk( \
|
|
return _EngineConsoleThunkType< returnType >::ReturnType( _EngineConsoleThunk< 1, returnType args >::thunk( \
|
|
argc, argv, &_fn ## name ## impl, _fn ## name ## DefaultArgs \
|
|
argc, argv, &_fn ## name ## impl, _fn ## name ## DefaultArgs \
|
|
@@ -785,7 +775,7 @@ public:
|
|
( void* ) &fn ## className ## _ ## name, \
|
|
( void* ) &fn ## className ## _ ## name, \
|
|
0 \
|
|
0 \
|
|
); \
|
|
); \
|
|
- static _EngineConsoleThunkType< returnType >::ReturnType _ ## className ## name ## caster( SimObject* object, S32 argc, ConsoleValueRef *argv ) \
|
|
|
|
|
|
+ static _EngineConsoleThunkType< returnType >::ReturnType _ ## className ## name ## caster( SimObject* object, S32 argc, ConsoleValue *argv ) \
|
|
{ \
|
|
{ \
|
|
_ ## className ## name ## frame frame; \
|
|
_ ## className ## name ## frame frame; \
|
|
frame.object = static_cast< className* >( object ); \
|
|
frame.object = static_cast< className* >( object ); \
|
|
@@ -842,7 +832,7 @@ public:
|
|
( void* ) &fn ## className ## _ ## name, \
|
|
( void* ) &fn ## className ## _ ## name, \
|
|
0 \
|
|
0 \
|
|
); \
|
|
); \
|
|
- static _EngineConsoleThunkType< returnType >::ReturnType _ ## className ## name ## caster( SimObject*, S32 argc, ConsoleValueRef *argv )\
|
|
|
|
|
|
+ static _EngineConsoleThunkType< returnType >::ReturnType _ ## className ## name ## caster( SimObject*, S32 argc, ConsoleValue *argv )\
|
|
{ \
|
|
{ \
|
|
return _EngineConsoleThunkType< returnType >::ReturnType( _EngineConsoleThunk< 1, returnType args >::thunk( \
|
|
return _EngineConsoleThunkType< returnType >::ReturnType( _EngineConsoleThunk< 1, returnType args >::thunk( \
|
|
argc, argv, &_fn ## className ## name ## impl, _fn ## className ## name ## DefaultArgs \
|
|
argc, argv, &_fn ## className ## name ## impl, _fn ## className ## name ## DefaultArgs \
|
|
@@ -859,7 +849,7 @@ public:
|
|
static inline returnType _fn ## className ## name ## impl args
|
|
static inline returnType _fn ## className ## name ## impl args
|
|
|
|
|
|
# define DefineEngineStringlyVariadicFunction(name,returnType,minArgs,maxArgs,usage) \
|
|
# define DefineEngineStringlyVariadicFunction(name,returnType,minArgs,maxArgs,usage) \
|
|
- static inline returnType _fn ## name ## impl (SimObject *, S32 argc, ConsoleValueRef *argv); \
|
|
|
|
|
|
+ static inline returnType _fn ## name ## impl (SimObject *, S32 argc, ConsoleValue *argv); \
|
|
TORQUE_API EngineTypeTraits< returnType >::ReturnValueType fn ## name \
|
|
TORQUE_API EngineTypeTraits< returnType >::ReturnValueType fn ## name \
|
|
(Vector<const char*>* vec) \
|
|
(Vector<const char*>* vec) \
|
|
{ \
|
|
{ \
|
|
@@ -882,14 +872,14 @@ public:
|
|
0 \
|
|
0 \
|
|
); \
|
|
); \
|
|
ConsoleConstructor cc_##name##_obj(NULL,#name,_fn ## name ## impl,usage,minArgs,maxArgs); \
|
|
ConsoleConstructor cc_##name##_obj(NULL,#name,_fn ## name ## impl,usage,minArgs,maxArgs); \
|
|
- returnType _fn ## name ## impl(SimObject *, S32 argc, ConsoleValueRef *argv)
|
|
|
|
|
|
+ returnType _fn ## name ## impl(SimObject *, S32 argc, ConsoleValue *argv)
|
|
|
|
|
|
# define DefineEngineStringlyVariadicMethod(className, name,returnType,minArgs,maxArgs,usage) \
|
|
# define DefineEngineStringlyVariadicMethod(className, name,returnType,minArgs,maxArgs,usage) \
|
|
struct _ ## className ## name ## frame \
|
|
struct _ ## className ## name ## frame \
|
|
{ \
|
|
{ \
|
|
typedef className ObjectType; \
|
|
typedef className ObjectType; \
|
|
className* object; \
|
|
className* object; \
|
|
- inline returnType _exec (S32 argc, ConsoleValueRef* argv) const; \
|
|
|
|
|
|
+ inline returnType _exec (S32 argc, ConsoleValue* argv) const; \
|
|
}; \
|
|
}; \
|
|
TORQUE_API EngineTypeTraits< returnType >::ReturnValueType fn ## className ## _ ## name \
|
|
TORQUE_API EngineTypeTraits< returnType >::ReturnValueType fn ## className ## _ ## name \
|
|
(className* object, Vector<const char*>* vec) \
|
|
(className* object, Vector<const char*>* vec) \
|
|
@@ -915,14 +905,14 @@ public:
|
|
( void* ) &fn ## className ## _ ## name, \
|
|
( void* ) &fn ## className ## _ ## name, \
|
|
0 \
|
|
0 \
|
|
); \
|
|
); \
|
|
- returnType cm_##className##_##name##_caster(SimObject* object, S32 argc, ConsoleValueRef* argv) { \
|
|
|
|
|
|
+ returnType cm_##className##_##name##_caster(SimObject* object, S32 argc, ConsoleValue* argv) { \
|
|
AssertFatal( dynamic_cast<className*>( object ), "Object passed to " #name " is not a " #className "!" ); \
|
|
AssertFatal( dynamic_cast<className*>( object ), "Object passed to " #name " is not a " #className "!" ); \
|
|
_ ## className ## name ## frame frame {}; \
|
|
_ ## className ## name ## frame frame {}; \
|
|
frame.object = static_cast< className* >( object ); \
|
|
frame.object = static_cast< className* >( object ); \
|
|
conmethod_return_##returnType ) frame._exec(argc,argv); \
|
|
conmethod_return_##returnType ) frame._exec(argc,argv); \
|
|
}; \
|
|
}; \
|
|
ConsoleConstructor cc_##className##_##name##_obj(#className,#name,cm_##className##_##name##_caster,usage,minArgs,maxArgs); \
|
|
ConsoleConstructor cc_##className##_##name##_obj(#className,#name,cm_##className##_##name##_caster,usage,minArgs,maxArgs); \
|
|
- inline returnType _ ## className ## name ## frame::_exec(S32 argc, ConsoleValueRef *argv) const
|
|
|
|
|
|
+ inline returnType _ ## className ## name ## frame::_exec(S32 argc, ConsoleValue *argv) const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1167,10 +1157,10 @@ public:
|
|
S32 mInitialArgc;
|
|
S32 mInitialArgc;
|
|
S32 mArgc;
|
|
S32 mArgc;
|
|
StringTableEntry mCallbackName;
|
|
StringTableEntry mCallbackName;
|
|
- ConsoleValueRef mArgv[ MAX_ARGUMENTS + 2 ];
|
|
|
|
|
|
+ ConsoleValue mArgv[ MAX_ARGUMENTS + 2 ];
|
|
|
|
|
|
- ConsoleValueRef _exec();
|
|
|
|
- ConsoleValueRef _execLater(SimConsoleThreadExecEvent *evt);
|
|
|
|
|
|
+ ConsoleValue _exec();
|
|
|
|
+ ConsoleValue _execLater(SimConsoleThreadExecEvent *evt);
|
|
|
|
|
|
_BaseEngineConsoleCallbackHelper(): mThis(NULL), mInitialArgc(0), mArgc(0), mCallbackName(StringTable->EmptyString()){;}
|
|
_BaseEngineConsoleCallbackHelper(): mThis(NULL), mInitialArgc(0), mArgc(0), mCallbackName(StringTable->EmptyString()){;}
|
|
};
|
|
};
|
|
@@ -1181,7 +1171,7 @@ public:
|
|
struct _EngineConsoleCallbackHelper : public _BaseEngineConsoleCallbackHelper
|
|
struct _EngineConsoleCallbackHelper : public _BaseEngineConsoleCallbackHelper
|
|
{
|
|
{
|
|
private:
|
|
private:
|
|
- using Helper = engineAPI::detail::MarshallHelpers<ConsoleValueRef>;
|
|
|
|
|
|
+ using Helper = engineAPI::detail::MarshallHelpers<ConsoleValue>;
|
|
public:
|
|
public:
|
|
|
|
|
|
_EngineConsoleCallbackHelper( StringTableEntry callbackName, SimObject* pThis )
|
|
_EngineConsoleCallbackHelper( StringTableEntry callbackName, SimObject* pThis )
|
|
@@ -1244,7 +1234,7 @@ public:
|
|
{
|
|
{
|
|
ConsoleStackFrameSaver sav; sav.save();
|
|
ConsoleStackFrameSaver sav; sav.save();
|
|
CSTK.reserveValues(mArgc+sizeof...(ArgTs), mArgv);
|
|
CSTK.reserveValues(mArgc+sizeof...(ArgTs), mArgv);
|
|
- mArgv[ 0 ].value->setStackStringValue(simCB);
|
|
|
|
|
|
+ mArgv[ 0 ].setString(simCB, dStrlen(simCB));
|
|
|
|
|
|
Helper::marshallEach(mArgc, mArgv, args...);
|
|
Helper::marshallEach(mArgc, mArgv, args...);
|
|
|
|
|
|
@@ -1255,7 +1245,7 @@ public:
|
|
SimConsoleThreadExecCallback cb;
|
|
SimConsoleThreadExecCallback cb;
|
|
SimConsoleThreadExecEvent *evt = new SimConsoleThreadExecEvent(mArgc+sizeof...(ArgTs), NULL, true, &cb);
|
|
SimConsoleThreadExecEvent *evt = new SimConsoleThreadExecEvent(mArgc+sizeof...(ArgTs), NULL, true, &cb);
|
|
evt->populateArgs(mArgv);
|
|
evt->populateArgs(mArgv);
|
|
- mArgv[ 0 ].value->setStackStringValue(simCB);
|
|
|
|
|
|
+ mArgv[ 0 ].setString(simCB, dStrlen(simCB));
|
|
|
|
|
|
Helper::marshallEach(mArgc, mArgv, args...);
|
|
Helper::marshallEach(mArgc, mArgv, args...);
|
|
|
|
|
|
@@ -1270,7 +1260,7 @@ public:
|
|
template<> struct _EngineConsoleExecCallbackHelper<const char*> : public _BaseEngineConsoleCallbackHelper
|
|
template<> struct _EngineConsoleExecCallbackHelper<const char*> : public _BaseEngineConsoleCallbackHelper
|
|
{
|
|
{
|
|
private:
|
|
private:
|
|
- using Helper = engineAPI::detail::MarshallHelpers<ConsoleValueRef>;
|
|
|
|
|
|
+ using Helper = engineAPI::detail::MarshallHelpers<ConsoleValue>;
|
|
public:
|
|
public:
|
|
_EngineConsoleExecCallbackHelper( const char *callbackName )
|
|
_EngineConsoleExecCallbackHelper( const char *callbackName )
|
|
{
|
|
{
|
|
@@ -1285,10 +1275,9 @@ public:
|
|
if (Con::isMainThread())
|
|
if (Con::isMainThread())
|
|
{
|
|
{
|
|
ConsoleStackFrameSaver sav; sav.save();
|
|
ConsoleStackFrameSaver sav; sav.save();
|
|
- CSTK.reserveValues(mArgc+sizeof...(ArgTs), mArgv);
|
|
|
|
- mArgv[ 0 ].value->setStackStringValue(mCallbackName);
|
|
|
|
|
|
+ mArgv[ 0 ].setStringTableEntry(mCallbackName);
|
|
|
|
|
|
- Helper::marshallEach(mArgc, mArgv, args...);
|
|
|
|
|
|
+ Helper::marshallEach(mArgc, mArgv, args...);
|
|
|
|
|
|
return R( EngineUnmarshallData< R >()( _exec() ) );
|
|
return R( EngineUnmarshallData< R >()( _exec() ) );
|
|
}
|
|
}
|
|
@@ -1297,7 +1286,7 @@ public:
|
|
SimConsoleThreadExecCallback cb;
|
|
SimConsoleThreadExecCallback cb;
|
|
SimConsoleThreadExecEvent *evt = new SimConsoleThreadExecEvent(mArgc+sizeof...(ArgTs), NULL, false, &cb);
|
|
SimConsoleThreadExecEvent *evt = new SimConsoleThreadExecEvent(mArgc+sizeof...(ArgTs), NULL, false, &cb);
|
|
evt->populateArgs(mArgv);
|
|
evt->populateArgs(mArgv);
|
|
- mArgv[ 0 ].value->setStackStringValue(mCallbackName);
|
|
|
|
|
|
+ mArgv[ 0 ].setStringTableEntry(mCallbackName);
|
|
|
|
|
|
Helper::marshallEach(mArgc, mArgv, args...);
|
|
Helper::marshallEach(mArgc, mArgv, args...);
|
|
|
|
|