[6922] Whitespace and newline fixes
[getmangos.git] / src / game / ItemPrototype.h
blobe3dab0d57c8131c3756b51e444a536c69b1fe7f2
1 /*
2 * Copyright (C) 2005-2008 MaNGOS <http://getmangos.com/>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef _ITEMPROTOTYPE_H
20 #define _ITEMPROTOTYPE_H
22 #include "Common.h"
24 enum ItemModType
26 ITEM_MOD_MANA = 0,
27 ITEM_MOD_HEALTH = 1,
28 ITEM_MOD_AGILITY = 3,
29 ITEM_MOD_STRENGTH = 4,
30 ITEM_MOD_INTELLECT = 5,
31 ITEM_MOD_SPIRIT = 6,
32 ITEM_MOD_STAMINA = 7,
33 ITEM_MOD_DEFENSE_SKILL_RATING = 12,
34 ITEM_MOD_DODGE_RATING = 13,
35 ITEM_MOD_PARRY_RATING = 14,
36 ITEM_MOD_BLOCK_RATING = 15,
37 ITEM_MOD_HIT_MELEE_RATING = 16,
38 ITEM_MOD_HIT_RANGED_RATING = 17,
39 ITEM_MOD_HIT_SPELL_RATING = 18,
40 ITEM_MOD_CRIT_MELEE_RATING = 19,
41 ITEM_MOD_CRIT_RANGED_RATING = 20,
42 ITEM_MOD_CRIT_SPELL_RATING = 21,
43 ITEM_MOD_HIT_TAKEN_MELEE_RATING = 22,
44 ITEM_MOD_HIT_TAKEN_RANGED_RATING = 23,
45 ITEM_MOD_HIT_TAKEN_SPELL_RATING = 24,
46 ITEM_MOD_CRIT_TAKEN_MELEE_RATING = 25,
47 ITEM_MOD_CRIT_TAKEN_RANGED_RATING = 26,
48 ITEM_MOD_CRIT_TAKEN_SPELL_RATING = 27,
49 ITEM_MOD_HASTE_MELEE_RATING = 28,
50 ITEM_MOD_HASTE_RANGED_RATING = 29,
51 ITEM_MOD_HASTE_SPELL_RATING = 30,
52 ITEM_MOD_HIT_RATING = 31,
53 ITEM_MOD_CRIT_RATING = 32,
54 ITEM_MOD_HIT_TAKEN_RATING = 33,
55 ITEM_MOD_CRIT_TAKEN_RATING = 34,
56 ITEM_MOD_RESILIENCE_RATING = 35,
57 ITEM_MOD_HASTE_RATING = 36,
58 ITEM_MOD_EXPERTISE_RATING = 37
61 #define MAX_ITEM_MOD 38
63 enum ItemSpelltriggerType
65 ITEM_SPELLTRIGGER_ON_USE = 0, // use after equip cooldown
66 ITEM_SPELLTRIGGER_ON_EQUIP = 1,
67 ITEM_SPELLTRIGGER_CHANCE_ON_HIT = 2,
68 ITEM_SPELLTRIGGER_SOULSTONE = 4,
69 ITEM_SPELLTRIGGER_ON_NO_DELAY_USE = 5, // no equip cooldown
70 ITEM_SPELLTRIGGER_LEARN_SPELL_ID = 6 // used in item_template.spell_2 with spell_id with SPELL_GENERIC_LEARN in spell_1
73 #define MAX_ITEM_SPELLTRIGGER 7
75 enum ItemBondingType
77 NO_BIND = 0,
78 BIND_WHEN_PICKED_UP = 1,
79 BIND_WHEN_EQUIPED = 2,
80 BIND_WHEN_USE = 3,
81 BIND_QUEST_ITEM = 4,
82 BIND_QUEST_ITEM1 = 5 // not used in game
85 #define MAX_BIND_TYPE 6
87 // masks for ITEM_FIELD_FLAGS field
88 enum ITEM_FLAGS
90 ITEM_FLAGS_BINDED = 0x00000001,
91 ITEM_FLAGS_CONJURED = 0x00000002,
92 ITEM_FLAGS_OPENABLE = 0x00000004,
93 ITEM_FLAGS_WRAPPED = 0x00000008,
94 ITEM_FLAGS_WRAPPER = 0x00000200, // used or not used wrapper
95 ITEM_FLAGS_PARTY_LOOT = 0x00000800, // determines if item is party loot or not
96 ITEM_FLAGS_CHARTER = 0x00002000, // arena/guild charter
97 ITEM_FLAGS_UNIQUE_EQUIPPED = 0x00080000,
98 ITEM_FLAGS_USEABLE_IN_ARENA = 0x00200000,
99 ITEM_FLAGS_THROWABLE = 0x00400000, // not used in game for check trow possibility, only for item in game tooltip
100 ITEM_FLAGS_SPECIALUSE = 0x00800000, // last used flag in 2.3.0
101 ITEM_FLAGS_BOA = 0x08000000, // bind on account
102 ITEM_FLAGS_MILLABLE = 0x20000000
105 enum BAG_FAMILY_MASK
107 BAG_FAMILY_MASK_ARROWS = 0x00000001,
108 BAG_FAMILY_MASK_BULLETS = 0x00000002,
109 BAG_FAMILY_MASK_SOUL_SHARDS = 0x00000004,
110 BAG_FAMILY_MASK_LEATHERWORKING_SUPP = 0x00000008,
111 BAG_FAMILY_MASK_INSCRIPTION_SUPP = 0x00000010,
112 BAG_FAMILY_MASK_HERBS = 0x00000020,
113 BAG_FAMILY_MASK_ENCHANTING_SUPP = 0x00000040,
114 BAG_FAMILY_MASK_ENGINEERING_SUPP = 0x00000080,
115 BAG_FAMILY_MASK_KEYS = 0x00000100,
116 BAG_FAMILY_MASK_GEMS = 0x00000200,
117 BAG_FAMILY_MASK_MINING_SUPP = 0x00000400,
118 BAG_FAMILY_MASK_SOULBOUND_EQUIPMENT = 0x00000800,
119 BAG_FAMILY_MASK_VANITY_PETS = 0x00001000,
120 BAG_FAMILY_MASK_CURRENCY_TOKENS = 0x00002000,
121 BAG_FAMILY_MASK_QUEST_ITEMS = 0x00004000
124 enum SocketColor
126 SOCKET_COLOR_META = 1,
127 SOCKET_COLOR_RED = 2,
128 SOCKET_COLOR_YELLOW = 4,
129 SOCKET_COLOR_BLUE = 8
132 #define SOCKET_COLOR_ALL (SOCKET_COLOR_META | SOCKET_COLOR_RED | SOCKET_COLOR_YELLOW | SOCKET_COLOR_BLUE)
134 enum InventoryType
136 INVTYPE_NON_EQUIP = 0,
137 INVTYPE_HEAD = 1,
138 INVTYPE_NECK = 2,
139 INVTYPE_SHOULDERS = 3,
140 INVTYPE_BODY = 4,
141 INVTYPE_CHEST = 5,
142 INVTYPE_WAIST = 6,
143 INVTYPE_LEGS = 7,
144 INVTYPE_FEET = 8,
145 INVTYPE_WRISTS = 9,
146 INVTYPE_HANDS = 10,
147 INVTYPE_FINGER = 11,
148 INVTYPE_TRINKET = 12,
149 INVTYPE_WEAPON = 13,
150 INVTYPE_SHIELD = 14,
151 INVTYPE_RANGED = 15,
152 INVTYPE_CLOAK = 16,
153 INVTYPE_2HWEAPON = 17,
154 INVTYPE_BAG = 18,
155 INVTYPE_TABARD = 19,
156 INVTYPE_ROBE = 20,
157 INVTYPE_WEAPONMAINHAND = 21,
158 INVTYPE_WEAPONOFFHAND = 22,
159 INVTYPE_HOLDABLE = 23,
160 INVTYPE_AMMO = 24,
161 INVTYPE_THROWN = 25,
162 INVTYPE_RANGEDRIGHT = 26,
163 INVTYPE_QUIVER = 27,
164 INVTYPE_RELIC = 28
167 #define MAX_INVTYPE 29
169 enum ItemClass
171 ITEM_CLASS_CONSUMABLE = 0,
172 ITEM_CLASS_CONTAINER = 1,
173 ITEM_CLASS_WEAPON = 2,
174 ITEM_CLASS_GEM = 3,
175 ITEM_CLASS_ARMOR = 4,
176 ITEM_CLASS_REAGENT = 5,
177 ITEM_CLASS_PROJECTILE = 6,
178 ITEM_CLASS_TRADE_GOODS = 7,
179 ITEM_CLASS_GENERIC = 8,
180 ITEM_CLASS_RECIPE = 9,
181 ITEM_CLASS_MONEY = 10,
182 ITEM_CLASS_QUIVER = 11,
183 ITEM_CLASS_QUEST = 12,
184 ITEM_CLASS_KEY = 13,
185 ITEM_CLASS_PERMANENT = 14,
186 ITEM_CLASS_JUNK = 15
189 #define MAX_ITEM_CLASS 16
191 enum ItemSubclassConsumable
193 ITEM_SUBCLASS_CONSUMABLE = 0,
194 ITEM_SUBCLASS_POTION = 1,
195 ITEM_SUBCLASS_ELIXIR = 2,
196 ITEM_SUBCLASS_FLASK = 3,
197 ITEM_SUBCLASS_SCROLL = 4,
198 ITEM_SUBCLASS_FOOD = 5,
199 ITEM_SUBCLASS_ITEM_ENHANCEMENT = 6,
200 ITEM_SUBCLASS_BANDAGE = 7,
201 ITEM_SUBCLASS_CONSUMABLE_OTHER = 8
204 #define MAX_ITEM_SUBCLASS_CONSUMABLE 9
206 enum ItemSubclassContainer
208 ITEM_SUBCLASS_CONTAINER = 0,
209 ITEM_SUBCLASS_SOUL_CONTAINER = 1,
210 ITEM_SUBCLASS_HERB_CONTAINER = 2,
211 ITEM_SUBCLASS_ENCHANTING_CONTAINER = 3,
212 ITEM_SUBCLASS_ENGINEERING_CONTAINER = 4,
213 ITEM_SUBCLASS_GEM_CONTAINER = 5,
214 ITEM_SUBCLASS_MINING_CONTAINER = 6,
215 ITEM_SUBCLASS_LEATHERWORKING_CONTAINER = 7
218 #define MAX_ITEM_SUBCLASS_CONTAINER 8
220 enum ItemSubclassWeapon
222 ITEM_SUBCLASS_WEAPON_AXE = 0,
223 ITEM_SUBCLASS_WEAPON_AXE2 = 1,
224 ITEM_SUBCLASS_WEAPON_BOW = 2,
225 ITEM_SUBCLASS_WEAPON_GUN = 3,
226 ITEM_SUBCLASS_WEAPON_MACE = 4,
227 ITEM_SUBCLASS_WEAPON_MACE2 = 5,
228 ITEM_SUBCLASS_WEAPON_POLEARM = 6,
229 ITEM_SUBCLASS_WEAPON_SWORD = 7,
230 ITEM_SUBCLASS_WEAPON_SWORD2 = 8,
231 ITEM_SUBCLASS_WEAPON_obsolete = 9,
232 ITEM_SUBCLASS_WEAPON_STAFF = 10,
233 ITEM_SUBCLASS_WEAPON_EXOTIC = 11,
234 ITEM_SUBCLASS_WEAPON_EXOTIC2 = 12,
235 ITEM_SUBCLASS_WEAPON_FIST = 13,
236 ITEM_SUBCLASS_WEAPON_MISC = 14,
237 ITEM_SUBCLASS_WEAPON_DAGGER = 15,
238 ITEM_SUBCLASS_WEAPON_THROWN = 16,
239 ITEM_SUBCLASS_WEAPON_SPEAR = 17,
240 ITEM_SUBCLASS_WEAPON_CROSSBOW = 18,
241 ITEM_SUBCLASS_WEAPON_WAND = 19,
242 ITEM_SUBCLASS_WEAPON_FISHING_POLE = 20
245 #define MAX_ITEM_SUBCLASS_WEAPON 21
247 enum ItemSubclassGem
249 ITEM_SUBCLASS_GEM_RED = 0,
250 ITEM_SUBCLASS_GEM_BLUE = 1,
251 ITEM_SUBCLASS_GEM_YELLOW = 2,
252 ITEM_SUBCLASS_GEM_PURPLE = 3,
253 ITEM_SUBCLASS_GEM_GREEN = 4,
254 ITEM_SUBCLASS_GEM_ORANGE = 5,
255 ITEM_SUBCLASS_GEM_META = 6,
256 ITEM_SUBCLASS_GEM_SIMPLE = 7,
257 ITEM_SUBCLASS_GEM_PRISMATIC = 8
260 #define MAX_ITEM_SUBCLASS_GEM 9
262 enum ItemSubclassArmor
264 ITEM_SUBCLASS_ARMOR_MISC = 0,
265 ITEM_SUBCLASS_ARMOR_CLOTH = 1,
266 ITEM_SUBCLASS_ARMOR_LEATHER = 2,
267 ITEM_SUBCLASS_ARMOR_MAIL = 3,
268 ITEM_SUBCLASS_ARMOR_PLATE = 4,
269 ITEM_SUBCLASS_ARMOR_BUCKLER = 5,
270 ITEM_SUBCLASS_ARMOR_SHIELD = 6,
271 ITEM_SUBCLASS_ARMOR_LIBRAM = 7,
272 ITEM_SUBCLASS_ARMOR_IDOL = 8,
273 ITEM_SUBCLASS_ARMOR_TOTEM = 9
276 #define MAX_ITEM_SUBCLASS_ARMOR 10
278 enum ItemSubclassReagent
280 ITEM_SUBCLASS_REAGENT = 0
283 #define MAX_ITEM_SUBCLASS_REAGENT 1
285 enum ItemSubclassProjectile
287 ITEM_SUBCLASS_WAND = 0, // ABS
288 ITEM_SUBCLASS_BOLT = 1, // ABS
289 ITEM_SUBCLASS_ARROW = 2,
290 ITEM_SUBCLASS_BULLET = 3,
291 ITEM_SUBCLASS_THROWN = 4 // ABS
294 #define MAX_ITEM_SUBCLASS_PROJECTILE 5
296 enum ItemSubclassTradeGoods
298 ITEM_SUBCLASS_TRADE_GOODS = 0,
299 ITEM_SUBCLASS_PARTS = 1,
300 ITEM_SUBCLASS_EXPLOSIVES = 2,
301 ITEM_SUBCLASS_DEVICES = 3,
302 ITEM_SUBCLASS_JEWELCRAFTING = 4,
303 ITEM_SUBCLASS_CLOTH = 5,
304 ITEM_SUBCLASS_LEATHER = 6,
305 ITEM_SUBCLASS_METAL_STONE = 7,
306 ITEM_SUBCLASS_MEAT = 8,
307 ITEM_SUBCLASS_HERB = 9,
308 ITEM_SUBCLASS_ELEMENTAL = 10,
309 ITEM_SUBCLASS_TRADE_GOODS_OTHER = 11,
310 ITEM_SUBCLASS_ENCHANTING = 12,
311 ITEM_SUBCLASS_MATERIAL = 13 // Added in 2.4.2
314 #define MAX_ITEM_SUBCLASS_TRADE_GOODS 14
316 enum ItemSubclassGeneric
318 ITEM_SUBCLASS_GENERIC = 0
321 #define MAX_ITEM_SUBCLASS_GENERIC 1
323 enum ItemSubclassRecipe
325 ITEM_SUBCLASS_BOOK = 0,
326 ITEM_SUBCLASS_LEATHERWORKING_PATTERN = 1,
327 ITEM_SUBCLASS_TAILORING_PATTERN = 2,
328 ITEM_SUBCLASS_ENGINEERING_SCHEMATIC = 3,
329 ITEM_SUBCLASS_BLACKSMITHING = 4,
330 ITEM_SUBCLASS_COOKING_RECIPE = 5,
331 ITEM_SUBCLASS_ALCHEMY_RECIPE = 6,
332 ITEM_SUBCLASS_FIRST_AID_MANUAL = 7,
333 ITEM_SUBCLASS_ENCHANTING_FORMULA = 8,
334 ITEM_SUBCLASS_FISHING_MANUAL = 9,
335 ITEM_SUBCLASS_JEWELCRAFTING_RECIPE = 10
338 #define MAX_ITEM_SUBCLASS_RECIPE 11
340 enum ItemSubclassMoney
342 ITEM_SUBCLASS_MONEY = 0
345 #define MAX_ITEM_SUBCLASS_MONEY 1
347 enum ItemSubclassQuiver
349 ITEM_SUBCLASS_QUIVER0 = 0, // ABS
350 ITEM_SUBCLASS_QUIVER1 = 1, // ABS
351 ITEM_SUBCLASS_QUIVER = 2,
352 ITEM_SUBCLASS_AMMO_POUCH = 3
355 #define MAX_ITEM_SUBCLASS_QUIVER 4
357 enum ItemSubclassQuest
359 ITEM_SUBCLASS_QUEST = 0
362 #define MAX_ITEM_SUBCLASS_QUEST 1
364 enum ItemSubclassKey
366 ITEM_SUBCLASS_KEY = 0,
367 ITEM_SUBCLASS_LOCKPICK = 1
370 #define MAX_ITEM_SUBCLASS_KEY 2
372 enum ItemSubclassPermanent
374 ITEM_SUBCLASS_PERMANENT = 0
377 #define MAX_ITEM_SUBCLASS_PERMANENT 1
379 enum ItemSubclassJunk
381 ITEM_SUBCLASS_JUNK = 0,
382 ITEM_SUBCLASS_JUNK_REAGENT = 1,
383 ITEM_SUBCLASS_JUNK_PET = 2,
384 ITEM_SUBCLASS_JUNK_HOLIDAY = 3,
385 ITEM_SUBCLASS_JUNK_OTHER = 4,
386 ITEM_SUBCLASS_JUNK_MOUNT = 5
389 #define MAX_ITEM_SUBCLASS_JUNK 6
391 enum ItemSubclassGlyph
393 ITEM_SUBCLASS_GLYPH_WARRIOR = 1,
394 ITEM_SUBCLASS_GLYPH_PALADIN = 2,
395 ITEM_SUBCLASS_GLYPH_HUNTER = 3,
396 ITEM_SUBCLASS_GLYPH_ROGUE = 4,
397 ITEM_SUBCLASS_GLYPH_PRIEST = 5,
398 ITEM_SUBCLASS_GLYPH_DEATH_KNIGHT = 6,
399 ITEM_SUBCLASS_GLYPH_SHAMAN = 7,
400 ITEM_SUBCLASS_GLYPH_MAGE = 8,
401 ITEM_SUBCLASS_GLYPH_WARLOCK = 9,
402 ITEM_SUBCLASS_GLYPH_DRUID = 11
405 #define MAX_ITEM_SUBCLASS_GLYPH 12
407 const uint32 MaxItemSubclassValues[MAX_ITEM_CLASS] =
409 MAX_ITEM_SUBCLASS_CONSUMABLE,
410 MAX_ITEM_SUBCLASS_CONTAINER,
411 MAX_ITEM_SUBCLASS_WEAPON,
412 MAX_ITEM_SUBCLASS_GEM,
413 MAX_ITEM_SUBCLASS_ARMOR,
414 MAX_ITEM_SUBCLASS_REAGENT,
415 MAX_ITEM_SUBCLASS_PROJECTILE,
416 MAX_ITEM_SUBCLASS_TRADE_GOODS,
417 MAX_ITEM_SUBCLASS_GENERIC,
418 MAX_ITEM_SUBCLASS_RECIPE,
419 MAX_ITEM_SUBCLASS_MONEY,
420 MAX_ITEM_SUBCLASS_QUIVER,
421 MAX_ITEM_SUBCLASS_QUEST,
422 MAX_ITEM_SUBCLASS_KEY,
423 MAX_ITEM_SUBCLASS_PERMANENT,
424 MAX_ITEM_SUBCLASS_JUNK
427 inline uint8 ItemSubClassToDurabilityMultiplierId(uint32 ItemClass, uint32 ItemSubClass)
429 switch(ItemClass)
431 case ITEM_CLASS_WEAPON: return ItemSubClass;
432 case ITEM_CLASS_ARMOR: return ItemSubClass + 21;
434 return 0;
437 // GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push,N), also any gcc version not support it at some platform
438 #if defined( __GNUC__ )
439 #pragma pack(1)
440 #else
441 #pragma pack(push,1)
442 #endif
444 struct _Damage
446 float DamageMin;
447 float DamageMax;
448 uint32 DamageType; // id from Resistances.dbc
451 struct _ItemStat
453 uint32 ItemStatType;
454 int32 ItemStatValue;
456 struct _Spell
458 uint32 SpellId; // id from Spell.dbc
459 uint32 SpellTrigger;
460 int32 SpellCharges;
461 float SpellPPMRate;
462 int32 SpellCooldown;
463 uint32 SpellCategory; // id from SpellCategory.dbc
464 int32 SpellCategoryCooldown;
467 struct _Socket
469 uint32 Color;
470 uint32 Content;
473 struct ItemPrototype
475 uint32 ItemId;
476 uint32 Class; // id from ItemClass.dbc
477 uint32 SubClass; // id from ItemSubClass.dbc
478 uint32 Unk0;
479 char* Name1;
480 uint32 DisplayInfoID; // id from ItemDisplayInfo.dbc
481 uint32 Quality;
482 uint32 Flags;
483 uint32 BuyCount;
484 uint32 BuyPrice;
485 uint32 SellPrice;
486 uint32 InventoryType;
487 uint32 AllowableClass;
488 uint32 AllowableRace;
489 uint32 ItemLevel;
490 uint32 RequiredLevel;
491 uint32 RequiredSkill; // id from SkillLine.dbc
492 uint32 RequiredSkillRank;
493 uint32 RequiredSpell; // id from Spell.dbc
494 uint32 RequiredHonorRank;
495 uint32 RequiredCityRank;
496 uint32 RequiredReputationFaction; // id from Faction.dbc
497 uint32 RequiredReputationRank;
498 uint32 MaxCount;
499 uint32 Stackable;
500 uint32 ContainerSlots;
501 _ItemStat ItemStat[10];
502 _Damage Damage[5];
503 uint32 Armor;
504 uint32 HolyRes;
505 uint32 FireRes;
506 uint32 NatureRes;
507 uint32 FrostRes;
508 uint32 ShadowRes;
509 uint32 ArcaneRes;
510 uint32 Delay;
511 uint32 AmmoType;
512 float RangedModRange;
513 _Spell Spells[5];
514 uint32 Bonding;
515 char* Description;
516 uint32 PageText;
517 uint32 LanguageID;
518 uint32 PageMaterial;
519 uint32 StartQuest; // id from QuestCache.wdb
520 uint32 LockID;
521 uint32 Material; // id from Material.dbc
522 uint32 Sheath;
523 uint32 RandomProperty; // id from ItemRandomProperties.dbc
524 uint32 RandomSuffix; // id from ItemRandomSuffix.dbc
525 uint32 Block;
526 uint32 ItemSet; // id from ItemSet.dbc
527 uint32 MaxDurability;
528 uint32 Area; // id from AreaTable.dbc
529 uint32 Map; // id from Map.dbc
530 uint32 BagFamily; // id from ItemBagFamily.dbc
531 uint32 TotemCategory; // id from TotemCategory.dbc
532 _Socket Socket[3];
533 uint32 socketBonus; // id from SpellItemEnchantment.dbc
534 uint32 GemProperties; // id from GemProperties.dbc
535 uint32 RequiredDisenchantSkill;
536 float ArmorDamageModifier;
537 uint32 ScriptId;
538 uint32 DisenchantID;
539 uint32 FoodType;
540 uint32 MinMoneyLoot;
541 uint32 MaxMoneyLoot;
542 int32 Duration; // negative = realtime, positive = ingame time
544 // helpers
545 bool CanChangeEquipStateInCombat() const
547 switch(InventoryType)
549 case INVTYPE_RELIC:
550 case INVTYPE_SHIELD:
551 case INVTYPE_HOLDABLE:
552 return true;
555 switch(Class)
557 case ITEM_CLASS_WEAPON:
558 case ITEM_CLASS_PROJECTILE:
559 return true;
562 return false;
566 struct ItemLocale
568 std::vector<std::string> Name;
569 std::vector<std::string> Description;
572 // GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform
573 #if defined( __GNUC__ )
574 #pragma pack()
575 #else
576 #pragma pack(pop)
577 #endif
578 #endif