Added missing files from previous commit.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@1596 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
hikerstk 2008-02-26 11:59:44 +00:00
parent fbeee35bc2
commit 23076d39e8
2 changed files with 177 additions and 0 deletions

137
src/gui/num_karts.cpp Normal file
View File

@ -0,0 +1,137 @@
// $Id: num_laps.cpp 1369 2007-12-25 03:23:32Z cosmosninja $
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2006, 2007 SuperTuxKart-Team
//
// 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 "race_manager.hpp"
#include "num_karts.hpp"
#include "widget_manager.hpp"
#include "menu_manager.hpp"
#if defined(WIN32) && !defined(__CYGWIN__)
# define snprintf _snprintf
#endif
enum WidgetTokens
{
WTOK_TITLE,
WTOK_NUMLAPS,
WTOK_LESS,
WTOK_MORE,
WTOK_CONTINUE,
WTOK_QUIT
};
NumKarts::NumKarts()
{
widget_manager->addWgt(WTOK_TITLE, 50, 7);
widget_manager->showWgtRect(WTOK_TITLE);
widget_manager->showWgtText(WTOK_TITLE);
widget_manager->setWgtText(WTOK_TITLE, _("Choose number of karts"));
widget_manager->breakLine();
widget_manager->addWgt( WidgetManager::WGT_NONE, 100, 5);
widget_manager->breakLine();
widget_manager->addWgt(WTOK_NUMLAPS, 20, 7);
widget_manager->showWgtRect(WTOK_NUMLAPS);
widget_manager->showWgtText(WTOK_NUMLAPS);
m_num_karts = race_manager->getNumKarts();
snprintf(m_kart_label, MAX_MESSAGE_LENGTH, _("Karts: %d"), m_num_karts);
widget_manager->setWgtText(WTOK_NUMLAPS, m_kart_label);
widget_manager->breakLine();
widget_manager->addWgt( WidgetManager::WGT_NONE, 100, 5);
widget_manager->breakLine();
widget_manager->addWgt(WTOK_LESS, 20, 7);
widget_manager->showWgtRect(WTOK_LESS);
widget_manager->showWgtText(WTOK_LESS);
widget_manager->setWgtText(WTOK_LESS, _("Less"));
widget_manager->activateWgt(WTOK_LESS);
widget_manager->breakLine();
widget_manager->addWgt(WTOK_MORE, 20, 7);
widget_manager->showWgtRect(WTOK_MORE);
widget_manager->showWgtText(WTOK_MORE);
widget_manager->setWgtText(WTOK_MORE, _("More"));
widget_manager->activateWgt(WTOK_MORE);
widget_manager->breakLine();
widget_manager->addWgt( WidgetManager::WGT_NONE, 100, 5);
widget_manager->breakLine();
widget_manager->addWgt(WTOK_CONTINUE, 30, 7);
widget_manager->showWgtRect(WTOK_CONTINUE);
widget_manager->showWgtText(WTOK_CONTINUE);
if (race_manager->getRaceMode() == RaceSetup::RM_GRAND_PRIX)
widget_manager->setWgtText(WTOK_CONTINUE, _("Start race"));
else
widget_manager->setWgtText(WTOK_CONTINUE, _("Continue"));
widget_manager->activateWgt(WTOK_CONTINUE);
widget_manager->breakLine();
widget_manager->addWgt(WTOK_QUIT, 50, 7);
widget_manager->showWgtRect(WTOK_QUIT);
widget_manager->showWgtText(WTOK_QUIT);
widget_manager->setWgtText(WTOK_QUIT, _("Press <ESC> to go back"));
widget_manager->activateWgt(WTOK_QUIT);
widget_manager->layout(WGT_AREA_ALL);
}
// -----------------------------------------------------------------------------
NumKarts::~NumKarts()
{
widget_manager->reset();
} // ~NumKarts
// -----------------------------------------------------------------------------
void NumKarts::select()
{
const int WGT = widget_manager->getSelectedWgt();
switch (WGT)
{
case WTOK_LESS:
m_num_karts = std::max(race_manager->getNumPlayers(), m_num_karts-1);
snprintf(m_kart_label, MAX_MESSAGE_LENGTH, "Karts: %d", m_num_karts);
widget_manager->setWgtText(WTOK_NUMLAPS, m_kart_label);
break;
case WTOK_MORE:
m_num_karts = std::min(stk_config->m_max_karts, m_num_karts+1);
snprintf(m_kart_label, MAX_MESSAGE_LENGTH, "Karts: %d", m_num_karts);
widget_manager->setWgtText(WTOK_NUMLAPS, m_kart_label);
break;
case WTOK_CONTINUE:
race_manager->setNumKarts(m_num_karts);
if (race_manager->getRaceMode() == RaceSetup::RM_GRAND_PRIX)
race_manager->start();
else
menu_manager->pushMenu(MENUID_NUMLAPS);
break;
case WTOK_QUIT:
menu_manager->popMenu();
break;
}
} // select

40
src/gui/num_karts.hpp Normal file
View File

@ -0,0 +1,40 @@
// $Id: num_karts.hpp 924 2007-03-06 17:33:35Z coz $
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2006 SuperTuxKart-Team
//
// 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.
#ifndef HEADER_KARTSLAPS_H
#define HEADER_KARTSLAPS_H
#include "base_gui.hpp"
#include "translation.hpp"
class NumKarts: public BaseGUI
{
public:
NumKarts();
~NumKarts();
void select();
private:
int m_karts_label_id;
int m_num_karts;
char m_kart_label[MAX_MESSAGE_LENGTH];
};
#endif