diff --git a/src/core/modules/entities/entities.h b/src/core/modules/entities/entities.h index 4aa1f09ece..4b1cb08b79 100755 --- a/src/core/modules/entities/entities.h +++ b/src/core/modules/entities/entities.h @@ -89,6 +89,22 @@ class _BaseEdictExt }; +#ifdef ENGINE_ORANGEBOX +//----------------------------------------------------------------------------- +// CBaseHandle extension class. +//----------------------------------------------------------------------------- +class CBaseHandleExt +{ +public: + static boost::shared_ptr __init__(unsigned long value) + { + CBaseHandle hBaseHandle = CBaseHandle::UnsafeFromIndex(value); + return boost::shared_ptr(new CBaseHandle(hBaseHandle)); + } +}; +#endif + + //----------------------------------------------------------------------------- // CTakeDamageInfo wrapper class. //----------------------------------------------------------------------------- diff --git a/src/core/modules/entities/entities_wrap.cpp b/src/core/modules/entities/entities_wrap.cpp index c6bc9dbb03..6d53a80c8f 100644 --- a/src/core/modules/entities/entities_wrap.cpp +++ b/src/core/modules/entities/entities_wrap.cpp @@ -94,10 +94,18 @@ DECLARE_SP_MODULE(_entities) //----------------------------------------------------------------------------- void export_base_entity_handle(scope _entities) { +#ifndef ENGINE_ORANGEBOX class_("BaseEntityHandle") .def(init()) .def(init()) .def(init()) +#else + class_>("BaseEntityHandle") + .def(init()) + .def(init()) + + .def("__init__", make_constructor(&CBaseHandleExt::__init__)) +#endif .def("init", &CBaseHandle::Init, diff --git a/src/core/utilities/conversions/basehandle_from.cpp b/src/core/utilities/conversions/basehandle_from.cpp index f101ba626b..0e3091d458 100644 --- a/src/core/utilities/conversions/basehandle_from.cpp +++ b/src/core/utilities/conversions/basehandle_from.cpp @@ -73,7 +73,11 @@ bool BaseHandleFromIndex( unsigned int iEntityIndex, CBaseHandle& output ) //----------------------------------------------------------------------------- bool BaseHandleFromIntHandle( unsigned int iEntityHandle, CBaseHandle& output ) { +#ifndef ENGINE_ORANGEBOX CBaseHandle hBaseHandle = CBaseHandle(iEntityHandle); +#else + CBaseHandle hBaseHandle = CBaseHandle::UnsafeFromIndex(iEntityHandle); +#endif unsigned int iIndex; if (!IndexFromBaseHandle(hBaseHandle, iIndex)) return false; diff --git a/src/core/utilities/conversions/index_from.cpp b/src/core/utilities/conversions/index_from.cpp index d13972b971..d06a256430 100644 --- a/src/core/utilities/conversions/index_from.cpp +++ b/src/core/utilities/conversions/index_from.cpp @@ -137,7 +137,11 @@ bool IndexFromIntHandle( unsigned int iEntityHandle, unsigned int& output ) if (iEntityHandle == (int) INVALID_EHANDLE_INDEX) return false; - CBaseHandle hBaseHandle(iEntityHandle); +#ifndef ENGINE_ORANGEBOX + CBaseHandle hBaseHandle = CBaseHandle(iEntityHandle); +#else + CBaseHandle hBaseHandle = CBaseHandle::UnsafeFromIndex(iEntityHandle); +#endif unsigned int iEntityIndex; if (!IndexFromBaseHandle(hBaseHandle, iEntityIndex)) return false;