22 #ifndef ULTIMA8_GFX_SHAPEINFO_H 23 #define ULTIMA8_GFX_SHAPEINFO_H 25 #include "ultima/ultima8/world/weapon_info.h" 26 #include "ultima/ultima8/world/armour_info.h" 27 #include "ultima/ultima8/world/damage_info.h" 28 #include "ultima/ultima8/world/actors/monster_info.h" 50 SI_U8_EXPLODE = 0x2000,
51 SI_CRU_SELECTABLE = 0x2000,
52 SI_UNKNOWN46 = 0x4000,
53 SI_CRU_PRELOAD = 0x4000,
54 SI_UNKNOWN47 = 0x8000,
55 SI_CRU_SOUND = 0x8000,
56 SI_CRU_TARGETABLE = 0x10000,
58 SI_CRU_UNK66 = 0x40000,
59 SI_CRU_UNK67 = 0x80000
97 uint32 _animType, _animData, _animSpeed;
98 uint32 _weight, _volume;
105 inline bool is_fixed()
const {
106 return (_flags & SI_FIXED) != 0;
108 inline bool is_solid()
const {
109 return (_flags & SI_SOLID) != 0;
111 inline bool is_sea()
const {
112 return (_flags & SI_SEA) != 0;
114 inline bool is_land()
const {
115 return (_flags & SI_LAND) != 0;
117 inline bool is_occl()
const {
118 return (_flags & SI_OCCL) != 0;
120 inline bool is_bag()
const {
121 return (_flags & SI_BAG) != 0;
123 inline bool is_damaging()
const {
124 return (_flags & SI_DAMAGING) != 0;
126 inline bool is_noisy()
const {
127 return (_flags & SI_NOISY) != 0;
129 inline bool is_draw()
const {
130 return (_flags & SI_DRAW) != 0;
132 inline bool is_ignore()
const {
133 return (_flags & SI_IGNORE) != 0;
135 inline bool is_roof()
const {
136 return (_flags & SI_ROOF) != 0;
138 inline bool is_translucent()
const {
139 return (_flags & SI_TRANSL) != 0;
141 inline bool is_editor()
const {
142 return (_flags & SI_EDITOR) != 0;
144 inline bool is_u8_explode()
const {
145 return (_flags & SI_U8_EXPLODE) != 0;
147 inline bool is_targetable()
const {
148 return (_flags & (SI_OCCL | SI_CRU_TARGETABLE));
150 inline bool is_invitem()
const {
151 return (_family == SF_CRUINVITEM);
154 bool hasQuantity()
const {
155 return (_family == SF_QUANTITY || _family == SF_REAGENT);
158 bool takesDamage()
const {
159 return (_damageInfo && _damageInfo->takesDamage());
162 bool getTypeFlag(
int typeFlag)
const;
163 bool getTypeFlagU8(
int typeFlag)
const;
164 bool getTypeFlagCrusader(
int typeFlag)
const;
166 inline void getFootpadWorld(int32 &x, int32 &y, int32 &z, uint16 flipped)
const;
169 _flags(0), _x(0), _y(0), _z(0),
170 _family(0), _equipType(0), _animType(0), _animData(0),
171 _animSpeed(0), _weight(0), _volume(0),
172 _weaponInfo(
nullptr), _armourInfo(
nullptr),
173 _monsterInfo(
nullptr), _damageInfo(
nullptr) { }
177 delete[] _armourInfo;
184 inline void ShapeInfo::getFootpadWorld(int32 &x, int32 &y, int32 &z, uint16 flipped)
const {
Definition: armour_info.h:28
Definition: damage_info.h:35
Definition: detection.h:27
Definition: monster_info.h:30
Definition: shape_info.h:33
Definition: weapon_info.h:30