X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fobject%2Flevel_time.hpp;h=3650c9c75d75739c08deaaf340a583d7d53d92ff;hb=3546f9b659b3b2ec53b2bee45e6f81e755d9207f;hp=5855051c3427f00d966ff939661310839611c6d9;hpb=29608a58312cb5859076a8d497d149c30e637374;p=supertux.git diff --git a/src/object/level_time.hpp b/src/object/level_time.hpp index 5855051c3..3650c9c75 100644 --- a/src/object/level_time.hpp +++ b/src/object/level_time.hpp @@ -1,27 +1,78 @@ -#ifndef __LEVELTIME_H__ -#define __LEVELTIME_H__ +// SuperTux +// Copyright (C) 2006 Matthias Braun +// +// 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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, see . -#include "game_object.hpp" -#include "timer.hpp" -#include "lisp/lisp.hpp" +#ifndef HEADER_SUPERTUX_OBJECT_LEVEL_TIME_HPP +#define HEADER_SUPERTUX_OBJECT_LEVEL_TIME_HPP -class LevelTime : public GameObject +#include + +#include "supertux/game_object.hpp" +#include "supertux/script_interface.hpp" +#include "util/reader_fwd.hpp" +#include "video/color.hpp" +#include "video/surface_ptr.hpp" + +class LevelTime : public GameObject, + public ScriptInterface { + static Color text_color; public: - LevelTime(const lisp::Lisp& reader); - virtual ~LevelTime(); + LevelTime(const Reader& reader); + + virtual void expose(HSQUIRRELVM vm, SQInteger table_idx); + virtual void unexpose(HSQUIRRELVM vm, SQInteger table_idx); + + void update(float elapsed_time); + void draw(DrawingContext& context); + + /** + * @name Scriptable Methods + * @{ + */ + + /** + * Resumes the countdown + */ + void start(); + + /** + * Pauses the countdown + */ + void stop(); + + /** + * Returns the number of seconds left on the clock + */ + float get_time(); + + /** + * Changes the number of seconds left on the clock + */ + void set_time(float time_left); - void update(float elapsed_time); - void draw(DrawingContext& context); - void stop(); - float get_level_time(); - float get_remaining_time(); + /** + * @} + */ private: - Timer time_left; - float final_level_time; - float final_remaining_time; + SurfacePtr time_surface; + bool running; + float time_left; }; #endif +/* EOF */