From c473b01f18d6f03b267f2b0943ed995ef75eff2b Mon Sep 17 00:00:00 2001 From: CookStar Date: Sun, 20 Sep 2026 10:28:44 +0900 Subject: [PATCH 1/2] Fix for OrangeBox changes in the hl2sdk. --- src/core/modules/entities/entities.h | 14 ++++++++++++++ src/core/modules/entities/entities_wrap.cpp | 8 ++++++++ src/core/utilities/conversions/basehandle_from.cpp | 4 ++++ src/core/utilities/conversions/index_from.cpp | 6 +++++- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/core/modules/entities/entities.h b/src/core/modules/entities/entities.h index 4aa1f09ece..513e235822 100755 --- a/src/core/modules/entities/entities.h +++ b/src/core/modules/entities/entities.h @@ -89,6 +89,20 @@ class _BaseEdictExt }; +//----------------------------------------------------------------------------- +// 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)); + } +}; + + //----------------------------------------------------------------------------- // 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; From 12006ac155b47a3d02e968ba14c86b938e9809aa Mon Sep 17 00:00:00 2001 From: CookStar Date: Sun, 20 Sep 2026 10:59:04 +0900 Subject: [PATCH 2/2] Adjusted to support other engines. --- src/core/modules/entities/entities.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/modules/entities/entities.h b/src/core/modules/entities/entities.h index 513e235822..4b1cb08b79 100755 --- a/src/core/modules/entities/entities.h +++ b/src/core/modules/entities/entities.h @@ -89,6 +89,7 @@ class _BaseEdictExt }; +#ifdef ENGINE_ORANGEBOX //----------------------------------------------------------------------------- // CBaseHandle extension class. //----------------------------------------------------------------------------- @@ -101,6 +102,7 @@ class CBaseHandleExt return boost::shared_ptr(new CBaseHandle(hBaseHandle)); } }; +#endif //-----------------------------------------------------------------------------