X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbackground.h;h=7ed3e837c9a31d87b9f13c7d306d0f9f99138892;hb=875ef8eb7e93726bc67dfa7f05da946250e588d4;hp=e154392634c6c75f4611b381435e0d50306f7a99;hpb=42398ef94da66fa3eb3d42aeae45c9076cae99ca;p=supertux.git diff --git a/src/background.h b/src/background.h index e15439263..7ed3e837c 100644 --- a/src/background.h +++ b/src/background.h @@ -16,43 +16,56 @@ // 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. -#ifndef __BACKGROUND_H__ -#define __BACKGROUND_H__ -#include "texture.h" -#include "game_object.h" -#include "drawable.h" +#ifndef SUPERTUX_BACKGROUND_H +#define SUPERTUX_BACKGROUND_H -enum { - BACKGROUND_GRADIENT, - BACKGROUND_IMAGE -}; +#include "video/surface.h" +#include "video/drawing_context.h" +#include "special/game_object.h" +#include "utils/lispreader.h" +#include "serializable.h" class DisplayManager; -class Background : public GameObject, public Drawable +class Background : public GameObject, public Serializable { public: - Background(DisplayManager& displaymanager); + Background(); + Background(LispReader& reader); virtual ~Background(); - void set_image(Surface* image, float bkgd_speed); + virtual void write(LispWriter& writer); + + void set_image(const std::string& name, float bkgd_speed); void set_gradient(Color top, Color bottom); - virtual std::string type() const - { return "Background"; } + std::string get_image() const + { return imagefile; } + float get_speed() const + { return speed; } + Color get_gradient_top() const + { return gradient_top; } + Color get_gradient_bottom() const + { return gradient_bottom; } virtual void action(float elapsed_time); - virtual void draw(ViewPort& viewport, int layer); + virtual void draw(DrawingContext& context); private: - int bgtype; + enum Type { + INVALID, GRADIENT, IMAGE + }; + + Type type; + int layer; + std::string imagefile; float speed; Surface* image; Color gradient_top, gradient_bottom; }; -#endif +#endif /*SUPERTUX_BACKGROUND_H*/