Fixed EndController (base functions in AIBasecontroller need to

use same state size as PlayerController.
This commit is contained in:
hiker
2018-06-02 00:48:48 +10:00
parent e0d7717c46
commit 5ec22d17f4
2 changed files with 9 additions and 4 deletions

9
src/karts/controller/ai_base_controller.cpp Normal file → Executable file
View File

@@ -334,13 +334,14 @@ void AIBaseController::determineTurnRadius(const Vec3 &end, Vec3 *center,
void AIBaseController::saveState(BareNetworkString *buffer) const
{
// Endcontroller needs this for proper offset in kart rewinder
buffer->addUInt32(0).addUInt32(0).addUInt32(0);
// Must match the number of bytes in Playercontroller.
buffer->addUInt32(0).addUInt32(0).addUInt32(0).addUInt8(0).addUInt32(0);
} // copyToBuffer
//-----------------------------------------------------------------------------
void AIBaseController::rewindTo(BareNetworkString *buffer)
{
// Endcontroller needs this for proper offset in kart rewinder
// Skip 3 uint32_t
buffer->skip(3 * 4);
// Endcontroller needs this for proper offset in kart rewinder.
// Skip the same number of bytes as PlayerController.
buffer->skip(4 * 4 + 1);
} // rewindTo

4
src/karts/controller/player_controller.cpp Executable file → Normal file
View File

@@ -378,6 +378,8 @@ void PlayerController::handleZipper(bool play_sound)
//-----------------------------------------------------------------------------
void PlayerController::saveState(BareNetworkString *buffer) const
{
// NOTE: when the size changes, the AIBaseController::saveState and
// restore state MUST be adjusted!!
buffer->addUInt32(m_steer_val).addUInt32(m_steer_val_l)
.addUInt32(m_steer_val_r).addUInt8(m_prev_brake)
.addUInt32(m_prev_accel);
@@ -386,6 +388,8 @@ void PlayerController::saveState(BareNetworkString *buffer) const
//-----------------------------------------------------------------------------
void PlayerController::rewindTo(BareNetworkString *buffer)
{
// NOTE: when the size changes, the AIBaseController::saveState and
// restore state MUST be adjusted!!
m_steer_val = buffer->getUInt32();
m_steer_val_l = buffer->getUInt32();
m_steer_val_r = buffer->getUInt32();