/[enigma]/enigma/src/stones_simple.cc
ViewVC logotype

Diff of /enigma/src/stones_simple.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.24 by dheck, Thu Jun 26 17:25:20 2003 UTC revision 1.25 by reallysoft, Sat Jun 28 10:55:26 2003 UTC
# Line 764  namespace Line 764  namespace
764    
765  /** \page st-wood Wooden Stone  /** \page st-wood Wooden Stone
766    
767  This stone is movable.  If moved into abyss or water it will  This stone is movable.  If moved into abyss, water or swamp it builds
768  disappear and change into a wooden plank.  a wooden plank.
769    
770  \subsection woode Example  \subsection woode Example
771  \verbatim  \verbatim
772  set_stone("st-wood", 10,10)  set_stone("st-wood", 10,10)
773  \endverbatim  \endverbatim
774    
775    Note: There are two flavors of st-wood which may be specified
776    by using st-wood1 or st-wood2.
777    
778  \image html st-wood.png  \image html st-wood.png
779  */  */
780  namespace  namespace
# Line 779  namespace Line 782  namespace
782      class WoodenStone : public MovableStone {      class WoodenStone : public MovableStone {
783          CLONEOBJ(WoodenStone);          CLONEOBJ(WoodenStone);
784      public:      public:
785          WoodenStone() : MovableStone("st-wood") {}          WoodenStone(const char *kind) : MovableStone(kind) {}
786    
787      private:      private:
788    
789            // When st-wood is created it randomly becomes st-wood1 or st-wood2.
790            void on_creation() {
791                if (is_kind("st-wood")) {
792                    GridPos p = get_pos();
793                    KillStone(p);
794                    SetStone(p, MakeStone(IntegerRand(0, 1) ? "st-wood1" :  "st-wood2"));
795                    return;
796                }
797                MovableStone::on_creation();
798            }
799    
800          void fall() {          void fall() {
801              if (Floor *fl=GetFloor(get_pos())) {              if (Floor *fl=GetFloor(get_pos())) {
802                  const string &k = fl->get_kind();                  const string &k = fl->get_kind();
803                  if (k == "fl-abyss" || k=="fl-water" || k=="fl-swamp") {                  if (k == "fl-abyss" || k=="fl-water" || k=="fl-swamp") {
804                      SetFloor(get_pos(), MakeFloor("fl-wood"));                      SetFloor(get_pos(), MakeFloor(is_kind("st-wood1") ? "fl-stwood1" : "fl-stwood2"));
805                      KillStone(get_pos());                      KillStone(get_pos());
806                  }                  }
807              }              }
# Line 810  namespace Line 826  namespace
826      private:      private:
827          void init_model() { set_anim("st-wood-growing"); }          void init_model() { set_anim("st-wood-growing"); }
828          void animcb() {          void animcb() {
829              Stone *st = world::MakeStone("st-wood");              Stone *st = world::MakeStone("st-wood1");
830              world::SetStone(get_pos(), st);              world::SetStone(get_pos(), st);
831          }          }
832      };      };
# Line 2049  void stones::Init_simple() Line 2065  void stones::Init_simple()
2065    
2066      Register(new Window);      Register(new Window);
2067    
2068      Register(new WoodenStone);      Register(new WoodenStone("st-wood")); // random flavor
2069        Register(new WoodenStone("st-wood1")); // horizontal planks
2070        Register(new WoodenStone("st-wood2")); // vertical planks
2071      Register(new WoodenStone_Growing);      Register(new WoodenStone_Growing);
2072    
2073      Register(new YinYangStone1);      Register(new YinYangStone1);

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26