X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscene.cpp;h=a2350355f22889b9aa77a204826ea015c3c58e9a;hb=546364c9567ef212ea9276201facf73f5ada696a;hp=c9c506a2b0c92dca77c0e4912d21a041fdd63af3;hpb=aadd77c676baae31db931c8e64cd1713c24289d5;p=supertux.git diff --git a/src/scene.cpp b/src/scene.cpp index c9c506a2b..a2350355f 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -1,57 +1,75 @@ +// $Id$ // -// C Implementation: scene +// SuperTux - A Jump'n Run +// Copyright (C) 2003 Tobias Glaesser // -// Description: -// -// -// Author: Tobias Glaesser , (C) 2004 -// -// Copyright: See COPYING file that comes with this distribution +// 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 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, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#include -#include #include "scene.h" +#include "defines.h" -int score; -int distros; -int level; -int next_level; -int game_pause; -int score_multiplier; -int endpos; -bool counting_distros; -int distro_counter; -timer_type super_bkgd_timer; -float scroll_x; -unsigned int global_frame_counter; +PlayerStatus player_status; -Player tux; -texture_type img_box_full; -texture_type img_box_empty; -texture_type img_mints; -texture_type img_coffee; -texture_type img_super_bkgd; -texture_type img_red_glow; -timer_type time_left; -double frame_ratio; - -void set_defaults(void) +PlayerStatus::PlayerStatus() + : distros(0), + lives(START_LIVES), + bonus(NO_BONUS), + score_multiplier(1), + max_score_multiplier(1) { - // Set defaults: - scroll_x = 0; +} +void PlayerStatus::reset() +{ + distros = 0; + lives = START_LIVES; + bonus = NO_BONUS; score_multiplier = 1; - timer_init(&super_bkgd_timer, true); - - counting_distros = false; - distro_counter = 0; + max_score_multiplier = 1; +} - endpos = 0; +std::string bonus_to_string(PlayerStatus::BonusType b) +{ + switch (b) + { + case PlayerStatus::NO_BONUS: + return "none"; + case PlayerStatus::GROWUP_BONUS: + return "growup"; + case PlayerStatus::FLOWER_BONUS: + return "iceflower"; + default: + return "none"; + } +} - /* set current song/music */ - set_current_music(LEVEL_MUSIC); +PlayerStatus::BonusType string_to_bonus(const std::string& str) +{ + if (str == "none") + return PlayerStatus::NO_BONUS; + else if (str == "growup") + return PlayerStatus::GROWUP_BONUS; + else if (str == "iceflower") + return PlayerStatus::FLOWER_BONUS; + else + return PlayerStatus::NO_BONUS; } +unsigned int global_frame_counter; + // EOF //