Merge branch 'fixes' into main/rendor-staging
[ryzomcore.git] / ryzom / common / src / game_share / item_family.h
blob200bcb710b8ccd6e0d324ad1789fafbb4747cbfd
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
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 Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef RY_ITEM_FAMILY_H
20 #define RY_ITEM_FAMILY_H
22 #include "nel/misc/types_nl.h"
24 namespace ITEMFAMILY
26 // Mode
27 enum EItemFamily
29 UNDEFINED = 0,
30 SERVICE,
31 ARMOR,
32 MELEE_WEAPON,
33 RANGE_WEAPON,
34 AMMO,
35 RAW_MATERIAL,
36 SHIELD,
37 CRAFTING_TOOL,
38 HARVEST_TOOL,
39 TAMING_TOOL,
40 TRAINING_TOOL,
41 AI,
42 BRICK,
43 FOOD,
44 JEWELRY,
45 CORPSE,
46 CARRION,
47 BAG,
48 STACK,
49 DEAD_SEED,
50 TELEPORT,
51 GUILD_FLAG,
52 LIVING_SEED,
53 LITTLE_SEED,
54 MEDIUM_SEED,
55 BIG_SEED,
56 VERY_BIG_SEED,
57 MISSION_ITEM,
58 CRYSTALLIZED_SPELL,
59 ITEM_SAP_RECHARGE,
60 PET_ANIMAL_TICKET,
61 GUILD_OPTION,
62 HANDLED_ITEM,
63 COSMETIC,
64 CONSUMABLE,
65 XP_CATALYSER,
66 SCROLL,
67 SCROLL_R2,
68 COMMAND_TICKET,
69 GENERIC_ITEM
73 /**
74 * get the right item family from the input string
75 * \param str the input string
76 * \return the EItemFamily associated to this string (UNDEFINED if the string cannot be interpreted)
78 EItemFamily stringToItemFamily( const std::string& str );
80 /**
81 * return the item family as a string
82 * \param itemFamily family to transform into a string
83 * \return the item family as a string
85 const std::string& toString( EItemFamily itemFamily );
87 /**
88 * returns true if items of this family are destroyed when they are completely worned out
90 bool destroyedWhenWorned(EItemFamily family);
92 /// return true if this family of item can be sold to a bot
93 bool isSellableByPlayer( EItemFamily fam );
94 /// return true if this family of item can be resold to players
95 bool isResellable( EItemFamily fam );
96 /// return true if this family of item can display a custom text
97 bool isTextCustomizable( EItemFamily fam );
98 /// return true if this family of item can use item (consume, execute, open, etc)
99 bool isUsable( EItemFamily fam );
100 /// is craftable
102 }; // ITEMFAMILY
104 #endif // RY_ITEM_FAMILY_H
105 /* End of item_family.h */