X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fspotlight.cpp;h=d86848cf42854cd370e34babaa91741cfdc3e6f6;hb=ca967dcf4ee89f99880355be00782d1cd047be6a;hp=d171525eb590d4a15cf8c7158ee772928bf49f15;hpb=251fce9ec1ac9372fb63f2a049d261b281eb645b;p=supertux.git diff --git a/src/object/spotlight.cpp b/src/object/spotlight.cpp index d171525eb..d86848cf4 100644 --- a/src/object/spotlight.cpp +++ b/src/object/spotlight.cpp @@ -1,4 +1,4 @@ -// $Id: light.cpp 3327 2006-04-13 15:02:40Z ravu_al_hemio $ +// $Id$ // // SuperTux // Copyright (C) 2006 Ingo Ruhnke @@ -28,17 +28,26 @@ #include "sector.hpp" Spotlight::Spotlight(const lisp::Lisp& lisp) + : angle(0.0f), + color(1.0f, 1.0f, 1.0f) { lisp.get("x", position.x); lisp.get("y", position.y); - + + lisp.get("angle", angle); + + std::vector vColor; + if( lisp.get_vector( "color", vColor ) ){ + color = Color( vColor ); + } + center = sprite_manager->create("images/objects/spotlight/spotlight_center.sprite"); base = sprite_manager->create("images/objects/spotlight/spotlight_base.sprite"); lights = sprite_manager->create("images/objects/spotlight/spotlight_lights.sprite"); lightcone = sprite_manager->create("images/objects/spotlight/lightcone.sprite"); light = sprite_manager->create("images/objects/spotlight/light.sprite"); - angle = 0.0f; + } Spotlight::~Spotlight() @@ -59,15 +68,17 @@ Spotlight::update(float delta) void Spotlight::draw(DrawingContext& context) { - context.push_target(); + context.push_target(); context.set_target(DrawingContext::LIGHTMAP); - + + light->set_color(color); + light->set_blend(Blend(GL_SRC_ALPHA, GL_ONE)); light->set_angle(angle); light->draw(context, position, 0); //lightcone->set_angle(angle); //lightcone->draw(context, position, 0); - + context.set_target(DrawingContext::NORMAL); lights->set_angle(angle);