convert line ends
[canaan.git] / prj / cam / src / dark / drkinvpr.cpp
blob53789bbfad87014e4577a285dd201f4f8bfdb29b
1 /*
2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
4 */
6 // $Header: r:/t2repos/thief2/src/dark/drkinvpr.cpp,v 1.6 2000/02/19 12:27:18 toml Exp $
7 #include <drkinvpr.h>
8 #include <sdestool.h>
9 #include <sdesbase.h>
10 #include <propfac_.h>
11 #include <propbase.h>
12 #include <gamestr.h>
13 #include <memall.h>
14 #include <dbmem.h> // must be last header!
17 // Inventory type sdesc
20 static char* inv_type_strings[] =
22 "Junk",
23 "Item",
24 "Weapon",
27 #define NUM_STRINGS (sizeof(inv_type_strings)/sizeof(inv_type_strings[0]))
29 static sFieldDesc invtype_fields[] =
31 { "", kFieldTypeEnum, sizeof(int), 0, kFieldFlagUnsigned, 0, NUM_STRINGS, NUM_STRINGS, inv_type_strings },
35 static sStructDesc invtype_sdesc = StructDescBuild(eInventoryType,kStructFlagNone,invtype_fields);
37 //////////////////////////////////////////////////////////////
38 // INVENTORY TYPE PROPERTY IMPLEMENTATION
41 class cInvTypeProp : public cGenericIntProperty
43 public:
44 cInvTypeProp(const sPropertyDesc* desc, IPropertyStore* store)
45 : cGenericIntProperty(desc,store)
49 STANDARD_DESCRIBE_TYPE(eInventoryType);
54 // Property Desc
57 static sPropertyDesc invtype_propdesc =
59 PROP_INVENTORY_TYPE_NAME,
60 0, // flags
61 NULL, // constraints
62 1, 0, // Version
63 { "Inventory", "Type" },
66 ////////////////////////////////////////
68 IIntProperty* CreateInvTypeProperty()
70 AutoAppIPtr_(StructDescTools,pTools);
71 pTools->Register(&invtype_sdesc);
73 cAutoIPtr<IPropertyStore> store (CreateGenericPropertyStore(kPropertyImplHash));
74 return new cInvTypeProp(&invtype_propdesc, store);
77 ////////////////////////////////////////////////////////////
78 // GAME NAME PROPERTY
81 static sPropertyDesc gamename_pdesc =
83 PROP_GAME_NAME_NAME,
84 0, // flags
85 NULL, // constraints
86 1, 0, // Version
87 { "Inventory", "Object Name" },
90 IStringProperty* CreateGameNameProperty()
92 IStringProperty* prop = CreateStringProperty(&gamename_pdesc,kPropertyImplSparseHash);
93 AutoAppIPtr(GameStrings);
94 pGameStrings->RegisterProp(GAME_NAME_TABLE,prop);
95 return prop;
98 ////////////////////////////////////////////////////////////
99 // DESCRIPTION PROPERTY
102 static sPropertyDesc description_pdesc =
104 PROP_DESCRIPTION_NAME,
105 0, // flags
106 NULL, // constraints
107 1, 0, // Version
108 { "Inventory", "Long Description" },
111 IStringProperty* CreateDescriptionProperty()
113 IStringProperty* prop = CreateStringProperty(&description_pdesc,kPropertyImplSparseHash);
114 AutoAppIPtr(GameStrings);
115 pGameStrings->RegisterProp(DESCRIPTION_TABLE,prop);
116 return prop;
120 ////////////////////////////////////////////////////////////
121 // STORE PROPERTY
124 static sPropertyDesc store_pdesc =
126 PROP_STORE_NAME,
127 kPropertyInstantiate|kPropertyNoInherit, // flags
128 NULL, // constraints
129 1, 0, // Version
130 { "Inventory", "Store" },
133 IBoolProperty* CreateStoreProperty()
135 return CreateBoolProperty(&store_pdesc,kPropertyImplLlist);
139 ////////////////////////////////////////////////////////////
140 // PRICE PROPERTY
143 static sPropertyDesc price_pdesc =
145 PROP_PRICE_NAME,
146 0, // flags
147 NULL, // constraints
148 1, 0, // Version
149 { "Inventory", "Purchase Price" },
152 IIntProperty* CreatePriceProperty()
154 return CreateIntProperty(&price_pdesc,kPropertyImplSparseHash);
157 ////////////////////////////////////////////////////////////
158 // CYCLE ORDER PROPERTY
161 static sPropertyDesc cycle_order_pdesc =
163 PROP_CYCLE_ORDER_NAME,
164 0, // flags
165 NULL, // constraints
166 1, 0, // Version
167 { "Inventory", "Cycle Order" },
170 IStringProperty* CreateCycleOrderProperty()
172 return CreateStringProperty(&cycle_order_pdesc,kPropertyImplSparseHash);
175 ////////////////////////////////////////////////////////////
176 // BEING TAKEN PROPERTY
179 static sPropertyDesc being_taken_pdesc =
181 PROP_BEING_TAKEN_NAME,
182 kPropertyNoEdit, // flags
183 NULL, // constraints
184 1, 0, // Version
185 { "Inventory", "Being Taken" },
188 IBoolProperty* CreateBeingTakenProperty()
190 return CreateBoolProperty(&being_taken_pdesc,kPropertyImplSparseHash);