2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/dark/drkinvpr.cpp,v 1.6 2000/02/19 12:27:18 toml Exp $
14 #include <dbmem.h> // must be last header!
17 // Inventory type sdesc
20 static char* inv_type_strings
[] =
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
44 cInvTypeProp(const sPropertyDesc
* desc
, IPropertyStore
* store
)
45 : cGenericIntProperty(desc
,store
)
49 STANDARD_DESCRIBE_TYPE(eInventoryType
);
57 static sPropertyDesc invtype_propdesc
=
59 PROP_INVENTORY_TYPE_NAME
,
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 ////////////////////////////////////////////////////////////
81 static sPropertyDesc gamename_pdesc
=
87 { "Inventory", "Object Name" },
90 IStringProperty
* CreateGameNameProperty()
92 IStringProperty
* prop
= CreateStringProperty(&gamename_pdesc
,kPropertyImplSparseHash
);
93 AutoAppIPtr(GameStrings
);
94 pGameStrings
->RegisterProp(GAME_NAME_TABLE
,prop
);
98 ////////////////////////////////////////////////////////////
99 // DESCRIPTION PROPERTY
102 static sPropertyDesc description_pdesc
=
104 PROP_DESCRIPTION_NAME
,
108 { "Inventory", "Long Description" },
111 IStringProperty
* CreateDescriptionProperty()
113 IStringProperty
* prop
= CreateStringProperty(&description_pdesc
,kPropertyImplSparseHash
);
114 AutoAppIPtr(GameStrings
);
115 pGameStrings
->RegisterProp(DESCRIPTION_TABLE
,prop
);
120 ////////////////////////////////////////////////////////////
124 static sPropertyDesc store_pdesc
=
127 kPropertyInstantiate
|kPropertyNoInherit
, // flags
130 { "Inventory", "Store" },
133 IBoolProperty
* CreateStoreProperty()
135 return CreateBoolProperty(&store_pdesc
,kPropertyImplLlist
);
139 ////////////////////////////////////////////////////////////
143 static sPropertyDesc price_pdesc
=
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
,
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
185 { "Inventory", "Being Taken" },
188 IBoolProperty
* CreateBeingTakenProperty()
190 return CreateBoolProperty(&being_taken_pdesc
,kPropertyImplSparseHash
);