X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fobject%2Flantern.cpp;h=db909a9bed3c900ec3dc444877820f1d86d1d205;hb=a6c19fc69bee325216222dca98dd8f466cdcf85a;hp=f2c17128133df56a4497488fd8d93af91917371a;hpb=65a0b6f7ec1123cff959e13e1a4919dc70fe4e85;p=supertux.git diff --git a/src/object/lantern.cpp b/src/object/lantern.cpp index f2c171281..db909a9be 100644 --- a/src/object/lantern.cpp +++ b/src/object/lantern.cpp @@ -1,12 +1,10 @@ -// $Id$ -// // SuperTux - Lantern // Copyright (C) 2006 Wolfgang Becker // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,44 +12,45 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// along with this program. If not, see . -#include +#include "object/lantern.hpp" -#include "lantern.hpp" -#include "sprite/sprite_manager.hpp" -#include "object_factory.hpp" -#include "badguy/willowisp.hpp" +#include "audio/sound_manager.hpp" #include "badguy/treewillowisp.hpp" +#include "badguy/willowisp.hpp" +#include "sprite/sprite.hpp" +#include "sprite/sprite_manager.hpp" +#include "supertux/object_factory.hpp" +#include "util/reader.hpp" -Lantern::Lantern(const lisp::Lisp& 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 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() { - delete lightsprite; } void @@ -59,10 +58,10 @@ Lantern::updateColor(){ lightsprite->set_color(lightcolor); //Turn lantern off if light is black if(lightcolor.red == 0 && lightcolor.green == 0 && lightcolor.blue == 0){ - sprite->set_action("off"); + sprite->set_action("off"); } else { - sprite->set_action("normal"); - sprite->set_color(lightcolor); + sprite->set_action("normal"); + sprite->set_color(lightcolor); } } @@ -84,7 +83,7 @@ HitResponse Lantern::collision(GameObject& other, const CollisionHit& hit) { WillOWisp* wow = dynamic_cast(&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(); @@ -92,7 +91,7 @@ HitResponse Lantern::collision(GameObject& other, const CollisionHit& hit) { TreeWillOWisp* twow = dynamic_cast(&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(); @@ -123,12 +122,11 @@ Lantern::ungrab(MovingObject& object, Direction dir) 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 */