Do not try an orbital insertion when the ship is not moving; bug #648
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3259 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
Changes towards version 0.7:
|
Changes towards version 0.7:
|
||||||
|
- Fixed AI ship not moving on warp in (bug #648) - Alex
|
||||||
- Revert gfx settings entirely when a mode switch fails (bug #1056) - Alex
|
- Revert gfx settings entirely when a mode switch fails (bug #1056) - Alex
|
||||||
- Fixed the Syreen lights-out scene timing (bug #1011) - Alex
|
- Fixed the Syreen lights-out scene timing (bug #1011) - Alex
|
||||||
- Added a native error box for MacOSX (like we have for Windows) - Alex
|
- Added a native error box for MacOSX (like we have for Windows) - Alex
|
||||||
|
|||||||
@@ -1124,13 +1124,14 @@ if (!(ShipPtr->state_flags & FINITE_LIFE)
|
|||||||
ed.facing = ARCTAN (-dx, -dy);
|
ed.facing = ARCTAN (-dx, -dy);
|
||||||
if (UltraManeuverable)
|
if (UltraManeuverable)
|
||||||
ed.MoveState = AVOID;
|
ed.MoveState = AVOID;
|
||||||
else
|
else // Try a gravity whip
|
||||||
ed.MoveState = ENTICE;
|
ed.MoveState = ENTICE;
|
||||||
|
|
||||||
ObjectsOfConcern[GRAVITY_MASS_INDEX] = ed;
|
ObjectsOfConcern[GRAVITY_MASS_INDEX] = ed;
|
||||||
}
|
}
|
||||||
else if (!UltraManeuverable)
|
else if (!UltraManeuverable &&
|
||||||
{
|
!IsVelocityZero (&Ship.velocity))
|
||||||
|
{ // Try an orbital insertion, don't thrust
|
||||||
++Ship.thrust_wait;
|
++Ship.thrust_wait;
|
||||||
if (Ship.turn_wait)
|
if (Ship.turn_wait)
|
||||||
ShipMoved = TRUE;
|
ShipMoved = TRUE;
|
||||||
|
|||||||
@@ -45,6 +45,14 @@ extern void SetVelocityComponents (VELOCITY_DESC *velocityptr, SIZE dx,
|
|||||||
extern void DeltaVelocityComponents (VELOCITY_DESC *velocityptr, SIZE dx,
|
extern void DeltaVelocityComponents (VELOCITY_DESC *velocityptr, SIZE dx,
|
||||||
SIZE dy);
|
SIZE dy);
|
||||||
|
|
||||||
|
static inline BOOLEAN
|
||||||
|
IsVelocityZero (VELOCITY_DESC *vptr)
|
||||||
|
{
|
||||||
|
return vptr->vector.width == 0 && vptr->vector.height == 0 &&
|
||||||
|
vptr->incr.width == 0 && vptr->incr.height == 0 &&
|
||||||
|
vptr->fract.width == 0 && vptr->fract.height == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline DWORD
|
static inline DWORD
|
||||||
VelocitySquared (SIZE dx, SIZE dy)
|
VelocitySquared (SIZE dx, SIZE dy)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user