cosmetix
[k8-i-v-a-n.git] / src / game / items / materialcontainer_can.cpp
blob26fcdcd65e43414ed807a49759777177e8ad5b87
1 #ifdef HEADER_PHASE
2 ITEM(can, materialcontainer)
4 public:
5 virtual item *BetterVersion () const;
6 virtual void DipInto (liquid *, character *);
7 virtual truth IsDippable (ccharacter *) const { return !SecondaryMaterial; }
8 virtual truth IsDipDestination (ccharacter *) const;
9 virtual truth IsDumpable (ccharacter *) const { return SecondaryMaterial != 0; }
10 virtual liquid *CreateDipLiquid ();
11 virtual truth AllowSpoil () const { return false; } // temporary
12 virtual truth Spoils () const { return false; } // temporary
13 virtual truth HasBetterVersion () const { return !SecondaryMaterial; }
14 virtual truth IsCan () const { return true; }
15 protected:
16 virtual void AddPostFix (festring &String, int) const { AddContainerPostFix(String); }
17 virtual truth AddAdjective (festring &, truth) const;
18 virtual v2 GetBitmapPos (int) const;
22 #else
25 truth can::AddAdjective (festring &String, truth Articled) const { return AddEmptyAdjective(String, Articled); }
26 v2 can::GetBitmapPos (int) const { return v2(16, SecondaryMaterial ? 288 : 304); }
27 truth can::IsDipDestination (ccharacter *) const { return SecondaryMaterial && SecondaryMaterial->IsLiquid(); }
28 liquid *can::CreateDipLiquid () { return static_cast<liquid *>(GetSecondaryMaterial()->TakeDipVolumeAway()); }
32 item *can::BetterVersion () const {
33 if (!GetSecondaryMaterial()) return can::Spawn();
34 return 0;
38 void can::DipInto (liquid *Liquid, character *Dipper) {
39 /* Add alchemy */
40 if (Dipper->IsPlayer()) ADD_MESSAGE("%s is now filled with %s.", CHAR_NAME(DEFINITE), Liquid->GetName(false, false).CStr());
41 ChangeSecondaryMaterial(Liquid);
42 Dipper->DexterityAction(10);
46 #endif