Fixed EndController (base functions in AIBasecontroller need to
use same state size as PlayerController.
This commit is contained in:
9
src/karts/controller/ai_base_controller.cpp
Normal file → Executable file
9
src/karts/controller/ai_base_controller.cpp
Normal file → Executable 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
4
src/karts/controller/player_controller.cpp
Executable file → Normal 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();
|
||||
|
||||
Reference in New Issue
Block a user