diff --git a/Engine/source/console/engineAPI.h b/Engine/source/console/engineAPI.h index 7a3886580..4358844b4 100644 --- a/Engine/source/console/engineAPI.h +++ b/Engine/source/console/engineAPI.h @@ -542,7 +542,7 @@ struct _EngineTrampoline< R( A, B, C, D, E, F, G ) > } typename EngineTypeTraits< G >::ValueType g() const { - return EngineTypeTraits< F >::ArgumentToValue( + return EngineTypeTraits< G >::ArgumentToValue( *( reinterpret_cast< const typename EngineTypeTraits< G >::ArgumentValueType* > ( &data[ sizeof( typename EngineTypeTraits< A >::ArgumentValueType ) + sizeof( typename EngineTypeTraits< B >::ArgumentValueType ) + @@ -1057,7 +1057,7 @@ struct _EngineFunctionTrampoline< R( A, B, C, D, E, F, G, H ) > : public _Engine { static R jmp( R ( *fn )( A, B, C, D, E, F, G, H ), const typename _EngineFunctionTrampolineBase< R( A, B, C, D, E, F, G, H ) >::Args& args ) { - return R( fn( args.a, args.b, args.c, args.d, args.e, args.f, args.g, args.h ) ); + return R( fn( args.a(), args.b(), args.c(), args.d(), args.e(), args.f(), args.g(), args.h() ) ); } }; template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I > diff --git a/Engine/source/console/engineTypes.h b/Engine/source/console/engineTypes.h index 208a16322..88eff7b3a 100644 --- a/Engine/source/console/engineTypes.h +++ b/Engine/source/console/engineTypes.h @@ -333,7 +333,7 @@ struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K ) > : public _Engin template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K > struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ), ... ) > {}; template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L > -struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( J ), T( L ) ) > {}; +struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ), T( L ) ) > {}; template< typename R, typename A, typename B, typename C, typename D, typename E, typename F, typename G, typename H, typename I, typename J, typename K, typename L > struct _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L, ... ) > : public _EngineFunctionTypeTraits< T( R )( T( A ), T( B ), T( C ), T( D ), T( E ), T( F ), T( G ), T( H ), T( I ), T( J ), T( K ), T( L ), ... ) > {};