Fix some bugs and copyright year

This commit is contained in:
Benau 2015-11-22 15:01:22 +08:00
parent 62f5be0d9d
commit e1f1461488
11 changed files with 75 additions and 19 deletions

View File

@ -1,7 +1,7 @@
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2006-2009 Eduardo Hernandez Munoz
// Copyright (C) 2009, 2010 Joerg Henrichs
// Copyright (C) 2009-2015 Joerg Henrichs
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2010 Joerg Henrichs
// Copyright (C) 2010-2015 Joerg Henrichs
// 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

View File

@ -18,15 +18,12 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//#define AI_DEBUG
#include <iostream>
using namespace std;
#undef AI_DEBUG
#include "karts/controller/battle_ai.hpp"
//#ifdef AI_DEBUG
#ifdef AI_DEBUG
#include "graphics/irr_driver.hpp"
//#endif
#endif
#include "items/attachment.hpp"
#include "items/item_manager.hpp"
@ -201,7 +198,7 @@ void BattleAI::handleSteering(const float dt)
}
}
//After this AI kart has a powerup, try to follow a closet kart in the map
// After this AI kart has a powerup, try to follow a closest kart in the map
findClosestKart(&m_target_point , &m_target_node);
if (m_target_node == BattleGraph::UNKNOWN_POLY) return;
@ -252,7 +249,7 @@ void BattleAI::findClosestKart(Vec3* aim_point, int* target_node)
const AbstractKart* kart = m_world->getKart(i);
if(kart->isEliminated()) continue;
if (kart->getXYZ() == m_kart->getXYZ())
if (kart->getWorldKartId() == m_kart->getWorldKartId())
continue; // Skip the same kart
Vec3 d = kart->getXYZ() - m_kart->getXYZ();

View File

@ -21,6 +21,7 @@
#include <IMeshSceneNode.h>
#include "audio/music_manager.hpp"
#include "config/user_config.hpp"
#include "graphics/camera.hpp"
#include "graphics/irr_driver.hpp"
#include "io/file_manager.hpp"
@ -178,7 +179,8 @@ void ThreeStrikesBattle::kartHit(const unsigned int kart_id)
if(wheels[1]) wheels[1]->setVisible(false);
if(wheels[2]) wheels[2]->setVisible(false);
if(wheels[3]) wheels[3]->setVisible(false);
eliminateKart(kart_id, /*notify_of_elimination*/ true);
if (getCurrentNumPlayers())
eliminateKart(kart_id, /*notify_of_elimination*/ true);
// Find a camera of the kart with the most lives ("leader"), and
// attach all cameras for this kart to the leader.
int max_lives = 0;
@ -196,7 +198,7 @@ void ThreeStrikesBattle::kartHit(const unsigned int kart_id)
}
// leader could be 0 if the last two karts hit each other in
// the same frame
if(leader)
if(leader && getCurrentNumPlayers())
{
for(unsigned int i=0; i<Camera::getNumCameras(); i++)
{
@ -418,7 +420,9 @@ void ThreeStrikesBattle::updateKartRanks()
bool ThreeStrikesBattle::isRaceOver()
{
// for tests : never over when we have a single player there :)
if (race_manager->getNumPlayers() < 2)
if (race_manager->getNumberOfKarts()==1 &&
getCurrentNumKarts()==1 &&
UserConfigParams::m_artist_debug_mode)
{
return false;
}
@ -432,6 +436,8 @@ bool ThreeStrikesBattle::isRaceOver()
*/
void ThreeStrikesBattle::updateKartNodes()
{
if (isRaceOver()) return;
const unsigned int n = getNumKarts();
for(unsigned int i=0; i<n; i++)
{

View File

@ -197,7 +197,7 @@ public:
case MINOR_MODE_NORMAL_RACE: return true;
case MINOR_MODE_TIME_TRIAL: return true;
case MINOR_MODE_FOLLOW_LEADER: return true;
case MINOR_MODE_3_STRIKES: return false;
case MINOR_MODE_3_STRIKES: return true;
case MINOR_MODE_EASTER_EGG: return false;
case MINOR_MODE_SOCCER: return false;
default: assert(false); return false;

View File

@ -156,7 +156,13 @@ void TrackInfoScreen::init()
if (num_ai < 0) num_ai = 0;
m_ai_kart_spinner->setValue(num_ai);
race_manager->setNumKarts(num_ai + race_manager->getNumLocalPlayers());
m_ai_kart_spinner->setMax(stk_config->m_max_karts - race_manager->getNumLocalPlayers());
// Currently battle arena only has 4 starting position
if(race_manager->getMinorMode()==RaceManager::MINOR_MODE_3_STRIKES)
{
m_ai_kart_spinner->setMax(4 - race_manager->getNumLocalPlayers());
}
else
m_ai_kart_spinner->setMax(stk_config->m_max_karts - race_manager->getNumLocalPlayers());
// A ftl reace needs at least three karts to make any sense
if(race_manager->getMinorMode()==RaceManager::MINOR_MODE_FOLLOW_LEADER)
{

View File

@ -1,6 +1,6 @@
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2009 Joerg Henrichs
// Copyright (C) 2009-2015 Joerg Henrichs
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2009 Joerg Henrichs
// Copyright (C) 2009-2015 Joerg Henrichs
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2009 Joerg Henrichs
// Copyright (C) 2009-2015 Joerg Henrichs
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -1,6 +1,6 @@
//
// SuperTuxKart - a fun racing game with go-kart
// Copyright (C) 2009 Joerg Henrichs
// Copyright (C) 2009-2015 Joerg Henrichs
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License

View File

@ -102,6 +102,10 @@ enum DebugMenuCommand
DEBUG_GUI_CAM_NORMAL,
DEBUG_GUI_CAM_SMOOTH,
DEBUG_GUI_CAM_ATTACH,
DEBUG_VIEW_KART_ONE,
DEBUG_VIEW_KART_TWO,
DEBUG_VIEW_KART_THREE,
DEBUG_VIEW_KART_FOUR,
DEBUG_HIDE_KARTS,
DEBUG_THROTTLE_FPS,
DEBUG_VISUAL_VALUES,
@ -154,7 +158,27 @@ void addAttachment(Attachment::AttachmentType type)
} // addAttachment
// ----------------------------------------------------------------------------
void changeCameraTarget(u32 num)
{
World* world = World::getWorld();
Camera *cam = Camera::getActiveCamera();
if (world == NULL || cam == NULL) return;
if ((num - 1) < (world->getNumKarts() + 1))
{
AbstractKart* kart = world->getKart(num - 1);
if (kart->isEliminated()) return;
cam->setMode(Camera::CM_NORMAL);
cam->setKart(kart);
}
else
return;
} // changeCameraTarget
// -----------------------------------------------------------------------------
/** returns the light node with the lowest distance to the player kart (excluding
* nitro emitters) */
LightNode* findNearestLight()
@ -452,6 +476,22 @@ bool handleContextMenuAction(s32 cmdID)
Camera *cam = Camera::getActiveCamera();
cam->setAttachedFpsCam(!cam->getAttachedFpsCam());
}
else if (cmdID == DEBUG_VIEW_KART_ONE)
{
changeCameraTarget(1);
}
else if (cmdID == DEBUG_VIEW_KART_TWO)
{
changeCameraTarget(2);
}
else if (cmdID == DEBUG_VIEW_KART_THREE)
{
changeCameraTarget(3);
}
else if (cmdID == DEBUG_VIEW_KART_FOUR)
{
changeCameraTarget(4);
}
else if (cmdID == DEBUG_PRINT_START_POS)
{
if (!world) return false;
@ -643,6 +683,13 @@ bool onEvent(const SEvent &event)
sub->addItem(L"Toggle smooth camera", DEBUG_GUI_CAM_SMOOTH);
sub->addItem(L"Attach fps camera to kart", DEBUG_GUI_CAM_ATTACH);
mnu->addItem(L"Change camera target >",-1,true, true);
sub = mnu->getSubMenu(4);
sub->addItem(L"To kart one", DEBUG_VIEW_KART_ONE);
sub->addItem(L"To kart two", DEBUG_VIEW_KART_TWO);
sub->addItem(L"To kart three", DEBUG_VIEW_KART_THREE);
sub->addItem(L"To kart four", DEBUG_VIEW_KART_FOUR);
mnu->addItem(L"Adjust values", DEBUG_VISUAL_VALUES);
mnu->addItem(L"Profiler", DEBUG_PROFILER);