Renamed namespaces to all lowercase
[supertux.git] / src / worldmap / special_tile.cpp
1 //  SuperTux
2 //  Copyright (C) 2004 Ingo Ruhnke <grumbel@gmx.de>
3 //  Copyright (C) 2006 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>
4 //
5 //  This program is free software: you can redistribute it and/or modify
6 //  it under the terms of the GNU General Public License as published by
7 //  the Free Software Foundation, either version 3 of the License, or
8 //  (at your option) any later version.
9 //
10 //  This program is distributed in the hope that it will be useful,
11 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 //  GNU General Public License for more details.
14 //
15 //  You should have received a copy of the GNU General Public License
16 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #include <config.h>
18
19 #include "sprite/sprite.hpp"
20 #include "sprite/sprite_manager.hpp"
21 #include "util/reader.hpp"
22 #include "video/drawing_context.hpp"
23 #include "worldmap/special_tile.hpp"
24
25 namespace worldmap {
26
27 SpecialTile::SpecialTile(const Reader& lisp) :
28   pos(),
29   sprite(),
30   map_message(),
31   passive_message(false), 
32   script(),
33   invisible(false),
34   apply_action_north(true), 
35   apply_action_east(true),
36   apply_action_south(true), 
37   apply_action_west(true)
38 {
39   lisp.get("x", pos.x);
40   lisp.get("y", pos.y);
41   lisp.get("invisible-tile", invisible);
42
43   if(!invisible) {
44     std::string spritefile = "";
45     lisp.get("sprite", spritefile);
46     sprite = sprite_manager->create(spritefile);
47   }
48
49   lisp.get("map-message", map_message);
50   lisp.get("passive-message", passive_message);
51   lisp.get("script", script);
52
53   std::string apply_direction;
54   lisp.get("apply-to-direction", apply_direction);
55   if(!apply_direction.empty()) {
56     apply_action_north = false;
57     apply_action_south = false;
58     apply_action_east = false;
59     apply_action_west = false;
60     if(apply_direction.find("north") != std::string::npos)
61       apply_action_north = true;
62     if(apply_direction.find("south") != std::string::npos)
63       apply_action_south = true;
64     if(apply_direction.find("east") != std::string::npos)
65       apply_action_east = true;
66     if(apply_direction.find("west") != std::string::npos)
67       apply_action_west = true;
68   }
69 }
70
71 SpecialTile::~SpecialTile()
72 {
73 }
74
75 void
76 SpecialTile::draw(DrawingContext& context)
77 {
78   if(invisible)
79     return;
80
81   sprite->draw(context, pos*32 + Vector(16, 16), LAYER_OBJECTS - 1);
82 }
83
84 void
85 SpecialTile::update(float )
86 {
87 }
88
89 }
90
91 /* EOF */