mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-01 00:02:45 +03:00
feat(object): add HandleObjectOutOfRangePass1
This commit is contained in:
parent
f4ca99ac15
commit
13ec1d7eef
@ -22,6 +22,10 @@ void CGObject_C::AddWorldObject() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
void CGObject_C::Disable() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
int32_t CGObject_C::IsInReenable() {
|
||||
return this->m_inReenable;
|
||||
}
|
||||
|
||||
@ -19,6 +19,14 @@ class CGObject_C : public CGObject, public TSHashObject<CGObject_C, CHashKeyGUID
|
||||
uint32_t m_postInited : 1;
|
||||
uint32_t m_flag19 : 1;
|
||||
uint32_t m_disablePending : 1;
|
||||
// TODO
|
||||
|
||||
// Virtual public member functions
|
||||
// TODO
|
||||
virtual void Disable();
|
||||
// TODO
|
||||
virtual void HandleOutOfRange(OUT_OF_RANGE_TYPE type) {};
|
||||
// TODO
|
||||
|
||||
// Public member functions
|
||||
CGObject_C() = default;
|
||||
|
||||
@ -56,6 +56,23 @@ CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenable) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
int32_t HandleObjectOutOfRangePass1(CGObject_C* object, OUT_OF_RANGE_TYPE type) {
|
||||
// TODO arena unit out of range handling
|
||||
|
||||
object->HandleOutOfRange(type);
|
||||
|
||||
if (object->IsObjectLocked()) {
|
||||
object->SetDisablePending(true);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
object->SetDisablePending(false);
|
||||
object->Disable();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate) {
|
||||
switch (object->m_typeID) {
|
||||
case ID_ITEM: {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#ifndef OBJECT_CLIENT_UTIL_HPP
|
||||
#define OBJECT_CLIENT_UTIL_HPP
|
||||
|
||||
#include "object/Types.hpp"
|
||||
#include "util/GUID.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
@ -11,6 +12,8 @@ CGObject_C* FindActiveObject(WOWGUID guid);
|
||||
|
||||
CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenable);
|
||||
|
||||
int32_t HandleObjectOutOfRangePass1(CGObject_C* object, OUT_OF_RANGE_TYPE type);
|
||||
|
||||
void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate);
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
Reference in New Issue
Block a user