#include "sprite/sprite.hpp"
#include "sprite/sprite_manager.hpp"
#include "supertux/object_factory.hpp"
+#include "util/reader.hpp"
-Lantern::Lantern(const Reader& reader)
- : Rock(reader, "images/objects/lantern/lantern.sprite"),
- lightcolor(1.0f, 1.0f, 1.0f)
+Lantern::Lantern(const Reader& reader) :
+ Rock(reader, "images/objects/lantern/lantern.sprite"),
+ lightcolor(1.0f, 1.0f, 1.0f),
+ lightsprite()
{
//get color from lisp
std::vector<float> vColor;
reader.get("color", vColor);
lightcolor = Color(vColor);
- lightsprite = sprite_manager->create("images/objects/lightmap_light/lightmap_light.sprite");
+ lightsprite = SpriteManager::current()->create("images/objects/lightmap_light/lightmap_light.sprite");
lightsprite->set_blend(Blend(GL_SRC_ALPHA, GL_ONE));
updateColor();
- sound_manager->preload("sounds/willocatch.wav");
+ SoundManager::current()->preload("sounds/willocatch.wav");
}
-Lantern::Lantern(const Vector& pos)
- : Rock(pos, "images/objects/lantern/lantern.sprite"),
- lightcolor(0.0f, 0.0f, 0.0f)
+Lantern::Lantern(const Vector& pos) :
+ Rock(pos, "images/objects/lantern/lantern.sprite"),
+ lightcolor(0.0f, 0.0f, 0.0f),
+ lightsprite(SpriteManager::current()->create("images/objects/lightmap_light/lightmap_light.sprite"))
{
- lightsprite = sprite_manager->create("images/objects/lightmap_light/lightmap_light.sprite");
lightsprite->set_blend(Blend(GL_SRC_ALPHA, GL_ONE));
updateColor();
- sound_manager->preload("sounds/willocatch.wav");
+ SoundManager::current()->preload("sounds/willocatch.wav");
}
Lantern::~Lantern()
WillOWisp* wow = dynamic_cast<WillOWisp*>(&other);
if (wow) {
// collided with WillOWisp while grabbed and unlit
- sound_manager->play("sounds/willocatch.wav");
+ SoundManager::current()->play("sounds/willocatch.wav");
lightcolor = Color(0,1,0);
updateColor();
wow->vanish();
TreeWillOWisp* twow = dynamic_cast<TreeWillOWisp*>(&other);
if (twow) {
// collided with TreeWillOWisp while grabbed and unlit
- sound_manager->play("sounds/willocatch.wav");
+ SoundManager::current()->play("sounds/willocatch.wav");
lightcolor = twow->get_color();
updateColor();
twow->vanish();
Rock::ungrab(object, dir);
}
-
-bool
+
+bool
Lantern::is_open()
{
return ((grabbed) && lightcolor.red == 0 && lightcolor.green == 0 && lightcolor.blue == 0);
}
-IMPLEMENT_FACTORY(Lantern, "lantern");
-
/* EOF */