Bugfix: projectiles were not handled correctly on the client, resulting in
a crash. git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@2253 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
10915df3bb
commit
26324da7a2
14
src/kart.cpp
14
src/kart.cpp
@ -471,18 +471,18 @@ void Kart::raceFinished(float time)
|
|||||||
} // raceFinished
|
} // raceFinished
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void Kart::collectedHerring(const Herring &herring, int random_attachment)
|
void Kart::collectedHerring(const Herring &herring, int add_info)
|
||||||
{
|
{
|
||||||
const herringType type = herring.getType();
|
const herringType type = herring.getType();
|
||||||
const int OLD_HERRING_GOBBLED = m_num_herrings_gobbled;
|
const int OLD_HERRING_GOBBLED = m_num_herrings_gobbled;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case HE_GREEN : m_attachment.hitGreenHerring(herring); break;
|
case HE_GREEN : m_attachment.hitGreenHerring(herring, add_info); break;
|
||||||
case HE_SILVER : m_num_herrings_gobbled++ ; break;
|
case HE_SILVER : m_num_herrings_gobbled++ ; break;
|
||||||
case HE_GOLD : m_num_herrings_gobbled += 3 ; break;
|
case HE_GOLD : m_num_herrings_gobbled += 3 ; break;
|
||||||
case HE_RED : int n=1 + 4*getNumHerring() / MAX_HERRING_EATEN;
|
case HE_RED : int n=1 + 4*getNumHerring() / MAX_HERRING_EATEN;
|
||||||
m_collectable.hitRedHerring(n, herring); break;
|
m_collectable.hitRedHerring(n, herring, add_info); break;
|
||||||
} // switch TYPE
|
} // switch TYPE
|
||||||
|
|
||||||
// Attachments and collectables are stored in the corresponding
|
// Attachments and collectables are stored in the corresponding
|
||||||
@ -564,6 +564,14 @@ void Kart::handleExplosion(const Vec3& pos, bool direct_hit)
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void Kart::update(float dt)
|
void Kart::update(float dt)
|
||||||
{
|
{
|
||||||
|
// Store the actual kart controls at the start of update in the server
|
||||||
|
// state. This makes it easier to reset some fields when they are not used
|
||||||
|
// anymore (e.g. controls.fire).
|
||||||
|
if(network_manager->getMode()==NetworkManager::NW_SERVER)
|
||||||
|
{
|
||||||
|
race_state->storeKartControls(*this);
|
||||||
|
}
|
||||||
|
|
||||||
// On a client fiering is done upon receiving the command from the server.
|
// On a client fiering is done upon receiving the command from the server.
|
||||||
if ( m_controls.fire && network_manager->getMode()!=NetworkManager::NW_CLIENT
|
if ( m_controls.fire && network_manager->getMode()!=NetworkManager::NW_CLIENT
|
||||||
&& !isRescue())
|
&& !isRescue())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user