mirror of
https://github.com/whoahq/whoa.git
synced 2026-03-18 05:31:07 +03:00
feat(object): add IncTypeID
This commit is contained in:
parent
2695b584fd
commit
68ab5ccced
63
src/object/client/Utils.cpp
Normal file
63
src/object/client/Utils.cpp
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#include "object/client/Utils.hpp"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accounting for the full hierarchy of the given object, return the next inherited type ID after
|
||||||
|
* the given current type ID. If there is no next inherited type, return NUM_CLIENT_OBJECT_TYPES
|
||||||
|
* to indicate the end of the hierarchy.
|
||||||
|
*/
|
||||||
|
OBJECT_TYPE_ID IncTypeID(CGObject_C* object, OBJECT_TYPE_ID curTypeID) {
|
||||||
|
switch (object->m_obj->m_type) {
|
||||||
|
// ID_OBJECT -> ID_ITEM -> ID_CONTAINER
|
||||||
|
case HIER_TYPE_ITEM:
|
||||||
|
case HIER_TYPE_CONTAINER:
|
||||||
|
if (curTypeID == ID_OBJECT) {
|
||||||
|
return ID_ITEM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (curTypeID == ID_ITEM) {
|
||||||
|
return ID_CONTAINER;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NUM_CLIENT_OBJECT_TYPES;
|
||||||
|
|
||||||
|
// ID_OBJECT -> ID_UNIT -> ID_PLAYER
|
||||||
|
case HIER_TYPE_UNIT:
|
||||||
|
case HIER_TYPE_PLAYER:
|
||||||
|
if (curTypeID == ID_OBJECT) {
|
||||||
|
return ID_UNIT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (curTypeID == ID_UNIT) {
|
||||||
|
return ID_PLAYER;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NUM_CLIENT_OBJECT_TYPES;
|
||||||
|
|
||||||
|
// ID_OBJECT -> ID_GAMEOBJECT
|
||||||
|
case HIER_TYPE_GAMEOBJECT:
|
||||||
|
if (curTypeID == ID_OBJECT) {
|
||||||
|
return ID_GAMEOBJECT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NUM_CLIENT_OBJECT_TYPES;
|
||||||
|
|
||||||
|
// ID_OBJECT -> ID_DYNAMICOBJECT
|
||||||
|
case HIER_TYPE_DYNAMICOBJECT:
|
||||||
|
if (curTypeID == ID_OBJECT) {
|
||||||
|
return ID_DYNAMICOBJECT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NUM_CLIENT_OBJECT_TYPES;
|
||||||
|
|
||||||
|
// ID_OBJECT -> ID_CORPSE
|
||||||
|
case HIER_TYPE_CORPSE:
|
||||||
|
if (curTypeID == ID_OBJECT) {
|
||||||
|
return ID_CORPSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NUM_CLIENT_OBJECT_TYPES;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return NUM_CLIENT_OBJECT_TYPES;
|
||||||
|
}
|
||||||
|
}
|
||||||
9
src/object/client/Utils.hpp
Normal file
9
src/object/client/Utils.hpp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#ifndef OBJECT_CLIENT_UTILS_HPP
|
||||||
|
#define OBJECT_CLIENT_UTILS_HPP
|
||||||
|
|
||||||
|
#include "object/client/CGObject_C.hpp"
|
||||||
|
#include "object/Types.hpp"
|
||||||
|
|
||||||
|
OBJECT_TYPE_ID IncTypeID(CGObject_C* object, OBJECT_TYPE_ID curTypeID);
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Reference in New Issue
Block a user