Camera locks to one position (Incam)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Armagetron Advanced |
Fix Committed
|
High
|
Manuel Moos |
Bug Description
OS: Gentoo x86
Clients: BZR revision 698 and a few before that did the same (i don't know where it started occurring
Using the internal camera the camera locks to one position after hitting a wall and turning away.
I found out where the problem is caused and how to stop the camera from freezing but it generates a new (actually old one from 0.2.8.2.1 is recreated) bug. i changed line 1807 in eCamera.cpp
from
if (CenterIncamOnT
{
// fetch the relevant turning speed
REAL turnSpeed = ( newmode == CAMERA_IN || newmode == CAMERA_SMART_IN ) ? s_inTurnSpeed : customTurnSpeed;
eCoord cycleDir = CenterCamDir();
// test if we're looking against the current driving direction
REAL wrongDirection = -eCoord::F( cycleDir, newdir );
if ( Center() && wrongDirection > 0 )
{
// if so, turn to the side using the last driving direction
}
}
to
if (CenterIncamOnT
{
// fetch the relevant turning speed
REAL turnSpeed = ( newmode == CAMERA_IN || newmode == CAMERA_SMART_IN ) ? s_inTurnSpeed : customTurnSpeed;
eCoord cycleDir = CenterCycleDir();
// test if we're looking against the current driving direction
REAL wrongDirection = -eCoord::F( cycleDir, newdir );
if ( Center() && wrongDirection > 0 )
{
// if so, turn to the side using the last driving direction
}
}
however now when grinding a wall using incam as in 0.2.8.2.1 the cyclespeed goes down to 0 when you turn away from the wall.
description: | updated |
we are talking about the 0.2.8 branch, right?