29 lines
813 B
C++
29 lines
813 B
C++
#pragma once
|
|
#include "strictindex.h"
|
|
|
|
DEFINE_STRICT_INDEX_NUMBER(int16_t, objnum_t);
|
|
DEFINE_STRICT_INDEX_CONSTANT_TYPE(object_magic_constant_t, objnum_t, int16_t);
|
|
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(object_magic_constant_t, -2, object_guidebot_cannot_reach);
|
|
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(object_magic_constant_t, -1, object_none);
|
|
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(object_magic_constant_t, 0, object_first);
|
|
|
|
class object_signature_t
|
|
{
|
|
uint16_t signature;
|
|
public:
|
|
object_signature_t() = default;
|
|
constexpr explicit object_signature_t(uint16_t s) :
|
|
signature(s)
|
|
{
|
|
}
|
|
bool operator==(const object_signature_t &rhs) const
|
|
{
|
|
return signature == rhs.signature;
|
|
}
|
|
bool operator!=(const object_signature_t &rhs) const
|
|
{
|
|
return !(*this == rhs);
|
|
}
|
|
uint16_t get() const { return signature; }
|
|
};
|