mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-02 00:32: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
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CGObject_C::Disable() {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
int32_t CGObject_C::IsInReenable() {
|
int32_t CGObject_C::IsInReenable() {
|
||||||
return this->m_inReenable;
|
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_postInited : 1;
|
||||||
uint32_t m_flag19 : 1;
|
uint32_t m_flag19 : 1;
|
||||||
uint32_t m_disablePending : 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
|
// Public member functions
|
||||||
CGObject_C() = default;
|
CGObject_C() = default;
|
||||||
|
|||||||
@ -56,6 +56,23 @@ CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenable) {
|
|||||||
return nullptr;
|
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) {
|
void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate) {
|
||||||
switch (object->m_typeID) {
|
switch (object->m_typeID) {
|
||||||
case ID_ITEM: {
|
case ID_ITEM: {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#ifndef OBJECT_CLIENT_UTIL_HPP
|
#ifndef OBJECT_CLIENT_UTIL_HPP
|
||||||
#define OBJECT_CLIENT_UTIL_HPP
|
#define OBJECT_CLIENT_UTIL_HPP
|
||||||
|
|
||||||
|
#include "object/Types.hpp"
|
||||||
#include "util/GUID.hpp"
|
#include "util/GUID.hpp"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
@ -11,6 +12,8 @@ CGObject_C* FindActiveObject(WOWGUID guid);
|
|||||||
|
|
||||||
CGObject_C* GetUpdateObject(WOWGUID guid, int32_t* reenable);
|
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);
|
void InitObject(CGObject_C* object, uint32_t time, CClientObjCreate& objCreate);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user