/[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.4 by reallysoft, Mon May 26 09:38:31 2003 UTC revision 1.5 by reallysoft, Wed Jun 4 12:56:57 2003 UTC
# Line 1739  namespace Line 1739  namespace
1739      };      };
1740  }  }
1741    
1742    // -------------------
1743    //      BrakeStone
1744    // -------------------
1745    
1746    /** \page st-brake Brake
1747    
1748    Blocks bolder stones and other movable stones.
1749    May be carried.
1750    
1751    \image html st-brake.png
1752    */
1753    
1754    namespace
1755    {
1756        class BrakeStone : public Stone {
1757            CLONEOBJ(BrakeStone);
1758        public:
1759            BrakeStone() : Stone("st-brake") {}
1760    
1761            void on_creation() {
1762                Stone::on_creation();
1763    
1764                GridPos  p  = get_pos();
1765                Item    *it = GetItem(p);
1766                if (it && 0 == strcmp(it->get_kind(), "it-blocker")) {
1767                    KillItem(p);
1768                    play_sound("explosion1");
1769                }
1770            }
1771    
1772            StoneResponse collision_response(const StoneContact &/*sc*/) {
1773                return STONE_PASS;
1774            }
1775    
1776            void actor_inside(Actor *a) {
1777                const double BRAKE_RADIUS = 0.3;
1778                GridPos      p            = get_pos();
1779                double       dist         = length(a->get_pos() - p.center());
1780    
1781                if (dist < BRAKE_RADIUS) {
1782                    player::PickupStoneAsItem(a, p);
1783                }
1784            }
1785    
1786             bool on_laserhit(Direction) {
1787                 GridPos p = get_pos();
1788                 KillStone(p);
1789                 SetItem(p, MakeItem("it-explosion1"));
1790                 return false;      // block laser
1791             }
1792        };
1793    }
1794    
1795  // --------------------------------------------------------------------------------  // --------------------------------------------------------------------------------
1796    
# Line 1784  void stones::Init_simple() Line 1836  void stones::Init_simple()
1836    
1837      Register(new BlockStone);      Register(new BlockStone);
1838      Register(new BombStone);      Register(new BombStone);
1839        Register(new BrakeStone);
1840    
1841      Register(new Break_acblack);      Register(new Break_acblack);
1842      Register(new Break_acwhite);      Register(new Break_acwhite);

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

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