/[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.52 by dheck, Mon Sep 8 18:27:59 2003 UTC revision 1.53 by dheck, Fri Sep 12 21:56:28 2003 UTC
# Line 989  by using st-wood1 or st-wood2. Line 989  by using st-wood1 or st-wood2.
989  namespace  namespace
990  {  {
991      class WoodenStone : public MovableStone {      class WoodenStone : public MovableStone {
992          CLONEOBJ(WoodenStone);          CLONEOBJ(WoodenStone);
993      public:      public:
994          WoodenStone(const char *kind) : MovableStone(kind) {}          WoodenStone(const char *kind) : MovableStone(kind) {}
995    
996      private:      private:
   
         // When st-wood is created it randomly becomes st-wood1 or st-wood2.  
         void on_creation() {  
             if (is_kind("st-wood")) {  
                 ReplaceStone(get_pos(), MakeStone(IntegerRand(0, 1) ? "st-wood1" :  "st-wood2"));  
                 return;  
             }  
             MovableStone::on_creation();  
         }  
   
997          void fall() {          void fall() {
998              GridPos p = get_pos();              GridPos p = get_pos();
999              if (!world::IsLevelBorder(p)) {              if (!world::IsLevelBorder(p)) {
# Line 1028  namespace Line 1018  namespace
1018                  fall();                  fall();
1019          }          }
1020      };      };
1021    
1022        class RandomWoodenStone : public Stone {
1023        public:
1024            RandomWoodenStone() : Stone("st-wood") {}
1025        private:
1026            // When st-wood is created it randomly becomes st-wood1 or st-wood2.
1027            Stone *clone() {
1028                return new WoodenStone (IntegerRand(0, 1) ? "st-wood1" :  "st-wood2");
1029            }
1030            void dispose() {delete this;}
1031        };
1032  }  }
1033    
1034  //----------------------------------------  //----------------------------------------
# Line 2406  void stones::Init_simple() Line 2407  void stones::Init_simple()
2407    
2408      Register(new Window);      Register(new Window);
2409    
2410      Register(new WoodenStone("st-wood")); // random flavor      Register(new RandomWoodenStone); // random flavor
2411      Register(new WoodenStone("st-wood1")); // horizontal planks      Register(new WoodenStone("st-wood1")); // horizontal planks
2412      Register(new WoodenStone("st-wood2")); // vertical planks      Register(new WoodenStone("st-wood2")); // vertical planks
2413      Register(new WoodenStone_Growing);      Register(new WoodenStone_Growing);

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.53

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