Fix instance of search-and-replace going beyond its scope; cleanup

This commit is contained in:
Sezz 2022-03-21 18:00:19 +11:00
parent f128004c36
commit 0538d8f13b
7 changed files with 69 additions and 82 deletions

View file

@ -231,9 +231,9 @@ void CreatureKill(ITEM_INFO* item, int killAnim, int killState, int laraKillStat
LaraItem->Position.yRot = item->Position.yRot;
LaraItem->Position.xRot = item->Position.xRot;
LaraItem->Position.zRot = item->Position.zRot;
LaraItem->Animation.Velocity = 0;
LaraItem->Animation.VerticalVelocity = 0;
LaraItem->Animation.Airborne = false;
LaraItem->Animation.VerticalVelocity = 0;
if (item->RoomNumber != LaraItem->RoomNumber)
ItemNewRoom(Lara.ItemNumber, item->RoomNumber);
@ -275,7 +275,7 @@ short CreatureEffect(ITEM_INFO* item, BITE_INFO* bite, std::function<CreatureEff
PHD_VECTOR pos = { bite->x, bite->y, bite->z };
GetJointAbsPosition(item, &pos, bite->meshNum);
return func(pos.x, pos.y, pos.z, item->Animation.VerticalVelocity, item->Position.yRot, item->RoomNumber);
return func(pos.x, pos.y, pos.z, item->Animation.Velocity, item->Position.yRot, item->RoomNumber);
}
void CreatureUnderwater(ITEM_INFO* item, int depth)
@ -397,7 +397,7 @@ short CreatureTurn(ITEM_INFO* item, short maxTurn)
int x = creature->Target.x - item->Position.xPos;
int z = creature->Target.z - item->Position.zPos;
angle = phd_atan(z, x) - item->Position.yRot;
int range = item->Animation.VerticalVelocity * (16384 / maxTurn);
int range = item->Animation.Velocity * (16384 / maxTurn);
int distance = pow(x, 2) + pow(z, 2);
if (angle > FRONT_ARC || angle < -FRONT_ARC && distance < pow(range, 2))
@ -604,7 +604,7 @@ int CreatureAnimation(short itemNumber, short angle, short tilt)
}
short biffAngle;
if (item->ObjectNumber != ID_TYRANNOSAUR && item->Animation.VerticalVelocity && item->HitPoints > 0)
if (item->ObjectNumber != ID_TYRANNOSAUR && item->Animation.Velocity && item->HitPoints > 0)
biffAngle = CreatureCreature(itemNumber);
else
biffAngle = 0;
@ -679,7 +679,7 @@ int CreatureAnimation(short itemNumber, short angle, short tilt)
floor = GetFloor(item->Position.xPos, y, item->Position.zPos, &roomNumber);
item->Floor = GetFloorHeight(floor, item->Position.xPos, y, item->Position.zPos);
angle = (item->Animation.VerticalVelocity) ? phd_atan(item->Animation.VerticalVelocity, -dy) : 0;
angle = (item->Animation.Velocity) ? phd_atan(item->Animation.Velocity, -dy) : 0;
if (angle < -ANGLE(20.0f))
angle = -ANGLE(20.0f);
else if (angle > ANGLE(20.0f))
@ -1437,13 +1437,13 @@ void CreatureAIInfo(ITEM_INFO* item, AI_INFO* info)
if (enemy == LaraItem)
{
x = enemy->Position.xPos + enemy->Animation.VerticalVelocity * PREDICTIVE_SCALE_FACTOR * phd_sin(Lara.Control.MoveAngle) - item->Position.xPos - object->pivotLength * phd_sin(item->Position.yRot);
z = enemy->Position.zPos + enemy->Animation.VerticalVelocity * PREDICTIVE_SCALE_FACTOR * phd_cos(Lara.Control.MoveAngle) - item->Position.zPos - object->pivotLength * phd_cos(item->Position.yRot);
x = enemy->Position.xPos + enemy->Animation.Velocity * PREDICTIVE_SCALE_FACTOR * phd_sin(Lara.Control.MoveAngle) - item->Position.xPos - object->pivotLength * phd_sin(item->Position.yRot);
z = enemy->Position.zPos + enemy->Animation.Velocity * PREDICTIVE_SCALE_FACTOR * phd_cos(Lara.Control.MoveAngle) - item->Position.zPos - object->pivotLength * phd_cos(item->Position.yRot);
}
else
{
x = enemy->Position.xPos + enemy->Animation.VerticalVelocity * PREDICTIVE_SCALE_FACTOR * phd_sin(enemy->Position.yRot) - item->Position.xPos - object->pivotLength * phd_sin(item->Position.yRot);
z = enemy->Position.zPos + enemy->Animation.VerticalVelocity * PREDICTIVE_SCALE_FACTOR * phd_cos(enemy->Position.yRot) - item->Position.zPos - object->pivotLength * phd_cos(item->Position.yRot);
x = enemy->Position.xPos + enemy->Animation.Velocity * PREDICTIVE_SCALE_FACTOR * phd_sin(enemy->Position.yRot) - item->Position.xPos - object->pivotLength * phd_sin(item->Position.yRot);
z = enemy->Position.zPos + enemy->Animation.Velocity * PREDICTIVE_SCALE_FACTOR * phd_cos(enemy->Position.yRot) - item->Position.zPos - object->pivotLength * phd_cos(item->Position.yRot);
}
y = item->Position.yPos - enemy->Position.yPos;

View file

@ -46,7 +46,7 @@ static void ShootHarpoon(ITEM_INFO* item, int x, int y, int z, short velocity, s
harpoonItem->Position.xRot = 0;
harpoonItem->Position.yRot = yRot;
harpoonItem->Animation.VerticalVelocity = 150;
harpoonItem->Animation.Velocity = 150;
AddActiveItem(harpoonItemNumber);
harpoonItem->Status = ITEM_ACTIVE;
@ -70,10 +70,10 @@ void ScubaHarpoonControl(short itemNumber)
int ox = item->Position.xPos;
int oz = item->Position.zPos;
int velocity = item->Animation.VerticalVelocity * phd_cos(item->Position.xRot);
int velocity = item->Animation.Velocity * phd_cos(item->Position.xRot);
item->Position.zPos += velocity * phd_cos(item->Position.yRot);
item->Position.xPos += velocity * phd_sin(item->Position.yRot);
item->Position.yPos += -item->Animation.VerticalVelocity * phd_sin(item->Position.xRot);
item->Position.yPos += -item->Animation.Velocity * phd_sin(item->Position.xRot);
auto probe = GetCollision(item);
@ -202,7 +202,7 @@ void ScubaControl(short itemNumber)
if (!creature->Flags)
{
ShootHarpoon(item, item->Position.xPos, item->Position.yPos, item->Position.zPos, item->Animation.VerticalVelocity, item->Position.yRot, item->RoomNumber);
ShootHarpoon(item, item->Position.xPos, item->Position.yPos, item->Position.zPos, item->Animation.Velocity, item->Position.yRot, item->RoomNumber);
creature->Flags = 1;
}
@ -243,7 +243,7 @@ void ScubaControl(short itemNumber)
if (!creature->Flags)
{
ShootHarpoon(item, item->Position.xPos, item->Position.yPos, item->Position.zPos, item->Animation.VerticalVelocity, item->Position.yRot, item->RoomNumber);
ShootHarpoon(item, item->Position.xPos, item->Position.yPos, item->Position.zPos, item->Animation.Velocity, item->Position.yRot, item->RoomNumber);
creature->Flags = 1;
}

View file

@ -277,7 +277,7 @@ static bool QuadCheckGetOff(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
{
laraItem->Animation.TargetState = LS_DEATH;
laraItem->Animation.VerticalVelocity = DAMAGE_START + DAMAGE_LENGTH;
laraItem->Animation.VerticalVelocity = 0;
laraItem->Animation.Velocity = 0;
quad->Flags |= QUAD_FLAG_DEAD;
return false;
@ -335,27 +335,29 @@ static int GetOnQuadBike(ITEM_INFO* laraItem, ITEM_INFO* quadItem, CollisionInfo
return true;
}
static void QuadBaddieCollision(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
static void QuadEntityCollision(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
{
vector<short> roomsList;
roomsList.push_back(quadItem->RoomNumber);
auto* roomInfo = &g_Level.Rooms[quadItem->RoomNumber];
for (int i = 0; i < roomInfo->doors.size(); i++)
roomsList.push_back(roomInfo->doors[i].room);
auto* room = &g_Level.Rooms[quadItem->RoomNumber];
for (int i = 0; i < room->doors.size(); i++)
roomsList.push_back(room->doors[i].room);
for (int i = 0; i < roomsList.size(); i++)
{
auto itemNum = g_Level.Rooms[roomsList[i]].itemNumber;
short itemNumber = g_Level.Rooms[roomsList[i]].itemNumber;
while (itemNum != NO_ITEM)
while (itemNumber != NO_ITEM)
{
auto* item = &g_Level.Items[itemNum];
auto* item = &g_Level.Items[itemNumber];
if (item->Collidable &&
item->Status != ITEM_INVISIBLE &&
item != laraItem && item != quadItem)
{
auto* object = &Objects[item->ObjectNumber];
if (object->collision && object->intelligent)
{
int x = quadItem->Position.xPos - item->Position.xPos;
@ -368,14 +370,14 @@ static void QuadBaddieCollision(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
{
if (TestBoundsCollide(item, quadItem, QUAD_RADIUS))
{
DoLotsOfBlood(item->Position.xPos, quadItem->Position.yPos - CLICK(1), item->Position.zPos, quadItem->Animation.VerticalVelocity, quadItem->Position.yRot, item->RoomNumber, 3);
DoLotsOfBlood(item->Position.xPos, quadItem->Position.yPos - CLICK(1), item->Position.zPos, quadItem->Animation.Velocity, quadItem->Position.yRot, item->RoomNumber, 3);
item->HitPoints = 0;
}
}
}
}
itemNum = item->NextItem;
itemNumber = item->NextItem;
}
}
}
@ -438,8 +440,8 @@ static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old)
int z = pos->z / SECTOR(1);
int oldX = old->x / SECTOR(1);
int oldZ = old->z / SECTOR(1);
int shiftX = pos->x & (WALL_SIZE - 1);
int shiftZ = pos->z & (WALL_SIZE - 1);
int shiftX = pos->x & (SECTOR(1) - 1);
int shiftZ = pos->z & (SECTOR(1) - 1);
if (x == oldX)
{
@ -455,7 +457,7 @@ static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old)
}
else
{
quadItem->Position.zPos += WALL_SIZE - shiftZ;
quadItem->Position.zPos += SECTOR(1) - shiftZ;
return (quadItem->Position.xPos - pos->x);
}
}
@ -468,7 +470,7 @@ static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old)
}
else
{
quadItem->Position.xPos += WALL_SIZE - shiftX;
quadItem->Position.xPos += SECTOR(1) - shiftX;
return (pos->z - quadItem->Position.zPos);
}
}
@ -483,7 +485,7 @@ static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old)
if (pos->z > old->z)
z = -shiftZ - 1;
else
z = WALL_SIZE - shiftZ;
z = SECTOR(1) - shiftZ;
}
probe = GetCollision(pos->x, pos->y, old->z, quadItem->RoomNumber);
@ -492,7 +494,7 @@ static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old)
if (pos->x > old->x)
x = -shiftX - 1;
else
x = WALL_SIZE - shiftX;
x = SECTOR(1) - shiftX;
}
if (x && z)
@ -528,18 +530,18 @@ static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old)
return 0;
}
static int DoQuadDynamics(int height, int fallspeed, int* y)
static int DoQuadDynamics(int height, int verticalVelocity, int* y)
{
if (height > *y)
{
*y += fallspeed;
*y += verticalVelocity;
if (*y > height - QUAD_MIN_BOUNCE)
{
*y = height;
fallspeed = 0;
verticalVelocity = 0;
}
else
fallspeed += 6;
verticalVelocity += 6;
}
else
{
@ -547,13 +549,13 @@ static int DoQuadDynamics(int height, int fallspeed, int* y)
if (kick < -80)
kick = -80;
fallspeed += ((kick - fallspeed) / 8);
verticalVelocity += ((kick - verticalVelocity) / 8);
if (*y > height)
*y = height;
}
return fallspeed;
return verticalVelocity;
}
static int QuadDynamics(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
@ -625,11 +627,9 @@ static int QuadDynamics(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
quadItem->Position.yRot += quad->TurnRate + quad->ExtraRotation;
short momentum;
momentum = MIN_MOMENTUM_TURN - (((((MIN_MOMENTUM_TURN - MAX_MOMENTUM_TURN) * 256) / MAX_VELOCITY) * quad->Velocity) / 256);
short momentum = MIN_MOMENTUM_TURN - (((((MIN_MOMENTUM_TURN - MAX_MOMENTUM_TURN) * 256) / MAX_VELOCITY) * quad->Velocity) / 256);
if (!(TrInput & QUAD_IN_ACCELERATE) && quad->Velocity > 0)
momentum += (momentum / 4);
momentum += momentum / 4;
short rot = quadItem->Position.yRot - quad->MomentumAngle;
if (rot < -MAX_MOMENTUM_TURN)
@ -655,16 +655,15 @@ static int QuadDynamics(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
else
quad->MomentumAngle = quadItem->Position.yRot;
}
else
quadItem->Position.yRot += quad->TurnRate + quad->ExtraRotation;
auto probe = GetCollision(quadItem);
int speed = 0;
if (quadItem->Position.yPos >= probe.Position.Floor)
speed = quadItem->Animation.VerticalVelocity * phd_cos(quadItem->Position.xRot);
speed = quadItem->Animation.Velocity * phd_cos(quadItem->Position.xRot);
else
speed = quadItem->Animation.VerticalVelocity;
speed = quadItem->Animation.Velocity;
quadItem->Position.zPos += speed * phd_cos(quad->MomentumAngle);
quadItem->Position.xPos += speed * phd_sin(quad->MomentumAngle);
@ -692,7 +691,7 @@ static int QuadDynamics(ITEM_INFO* laraItem, ITEM_INFO* quadItem)
moved.z = quadItem->Position.zPos;
if (!(quadItem->Flags & ONESHOT))
QuadBaddieCollision(laraItem, quadItem);
QuadEntityCollision(laraItem, quadItem);
short rot = 0;
short rotAdd = 0;
@ -1146,7 +1145,7 @@ static int QuadUserControl(ITEM_INFO* quadItem, int height, int* pitch)
quad->Revs = 0;
}
quadItem->Animation.VerticalVelocity = quad->Velocity / 256;
quadItem->Animation.Velocity = quad->Velocity / 256;
if (quad->EngineRevs > 0x7000)
quad->EngineRevs = -0x2000;
@ -1421,11 +1420,11 @@ bool QuadBikeControl(ITEM_INFO* laraItem, CollisionInfo* coll)
pos.z = quadEffectsPositions[i].z;
GetJointAbsPosition(quadItem, &pos, quadEffectsPositions[i].meshNum);
angle = quadItem->Position.yRot + ((i == 0) ? 0x9000 : 0x7000);
if (quadItem->Animation.VerticalVelocity > 32)
if (quadItem->Animation.Velocity > 32)
{
if (quadItem->Animation.VerticalVelocity < 64)
if (quadItem->Animation.Velocity < 64)
{
speed = 64 - quadItem->Animation.VerticalVelocity;
speed = 64 - quadItem->Animation.Velocity;
TriggerQuadExhaustSmoke(pos.x, pos.y, pos.z, angle, speed, 1);
}
}

View file

@ -4,18 +4,5 @@ struct ITEM_INFO;
struct CollisionInfo;
void InitialiseQuadBike(short itemNumber);
//static void QuadbikeExplode(ITEM_INFO* laraItem, ITEM_INFO* quadItem);
//static int CanQuadbikeGetOff(int direction);
//static bool QuadCheckGetOff(ITEM_INFO* laraItem, ITEM_INFO* quadItem);
//static int GetOnQuadBike(ITEM_INFO* laraItem, ITEM_INFO* quadItem, COLL_INFO* coll);
//static void QuadBaddieCollision(ITEM_INFO* laraItem, ITEM_INFO* quadItem);
//static int GetQuadCollisionAnim(ITEM_INFO* quadItem, PHD_VECTOR* p);
//static int TestQuadHeight(ITEM_INFO* quadItem, int dz, int dx, PHD_VECTOR* pos);
//static int DoQuadShift(ITEM_INFO* quadItem, PHD_VECTOR* pos, PHD_VECTOR* old);
//static int DoQuadDynamics(int height, int fallspeed, int* y);
//static int QuadDynamics(ITEM_INFO* laraItem, ITEM_INFO* quadItem);
//static void AnimateQuadBike(ITEM_INFO* laraItem, ITEM_INFO* quadItem, int collide, bool dead);
//static int QuadUserControl(ITEM_INFO* quadItem, int height, int* pitch);
void QuadBikeCollision(short itemNumber, ITEM_INFO* laraItem, CollisionInfo* coll);
//static void TriggerQuadExhaustSmoke(int x, int y, int z, short angle, int speed, int moving);
bool QuadBikeControl(ITEM_INFO* laraItem, CollisionInfo* coll);

View file

@ -163,7 +163,7 @@ static void FireUPVHarpoon(ITEM_INFO* laraItem, ITEM_INFO* UPVItem)
// TODO: Huh?
harpoonItem->Animation.VerticalVelocity = -HARPOON_VELOCITY * phd_sin(harpoonItem->Position.xRot);
harpoonItem->Animation.VerticalVelocity = HARPOON_VELOCITY * phd_cos(harpoonItem->Position.xRot);
harpoonItem->Animation.Velocity = HARPOON_VELOCITY * phd_cos(harpoonItem->Position.xRot);
harpoonItem->HitPoints = HARPOON_TIME;
harpoonItem->ItemFlags[0] = 1;
@ -779,7 +779,7 @@ static void UPVControl(ITEM_INFO* laraItem, ITEM_INFO* UPVItem)
UPV->Flags |= UPV_DEAD;
}
UPVItem->Animation.VerticalVelocity = 0;
UPVItem->Animation.Velocity = 0;
break;
}
@ -924,7 +924,7 @@ bool UPVControl(ITEM_INFO* laraItem, CollisionInfo* coll)
{
UPVControl(laraItem, UPVItem);
UPVItem->Animation.VerticalVelocity = UPV->Velocity / (USHRT_MAX + 1);
UPVItem->Animation.Velocity = UPV->Velocity / (USHRT_MAX + 1);
UPVItem->Position.xRot += UPV->XRot / (USHRT_MAX + 1);
UPVItem->Position.yRot += UPV->Rot / (USHRT_MAX + 1);
@ -935,9 +935,9 @@ bool UPVControl(ITEM_INFO* laraItem, CollisionInfo* coll)
else if (UPVItem->Position.xRot < -UPDOWN_LIMIT)
UPVItem->Position.xRot = -UPDOWN_LIMIT;
UPVItem->Position.xPos += phd_sin(UPVItem->Position.yRot) * UPVItem->Animation.VerticalVelocity * phd_cos(UPVItem->Position.xRot);
UPVItem->Position.yPos -= phd_sin(UPVItem->Position.xRot) * UPVItem->Animation.VerticalVelocity;
UPVItem->Position.zPos += phd_cos(UPVItem->Position.yRot) * UPVItem->Animation.VerticalVelocity * phd_cos(UPVItem->Position.xRot);
UPVItem->Position.xPos += phd_sin(UPVItem->Position.yRot) * UPVItem->Animation.Velocity * phd_cos(UPVItem->Position.xRot);
UPVItem->Position.yPos -= phd_sin(UPVItem->Position.xRot) * UPVItem->Animation.Velocity;
UPVItem->Position.zPos += phd_cos(UPVItem->Position.yRot) * UPVItem->Animation.Velocity * phd_cos(UPVItem->Position.xRot);
}
int newHeight = GetCollision(UPVItem).Position.Floor;
@ -948,7 +948,7 @@ bool UPVControl(ITEM_INFO* laraItem, CollisionInfo* coll)
UPVItem->Position.xPos = oldPos.xPos;
UPVItem->Position.yPos = oldPos.yPos;
UPVItem->Position.zPos = oldPos.zPos;
UPVItem->Animation.VerticalVelocity = 0;
UPVItem->Animation.Velocity = 0;
}
UPVItem->Floor = probe.Position.Floor;
@ -1047,7 +1047,7 @@ bool UPVControl(ITEM_INFO* laraItem, CollisionInfo* coll)
BackgroundCollision(laraItem, UPVItem);
if (UPV->Flags & UPV_CONTROL)
SoundEffect(SFX_TR3_UPV_LOOP, (PHD_3DPOS*)&UPVItem->Position.xPos, 2 | 4 | 0x1000000 | (UPVItem->Animation.VerticalVelocity * (USHRT_MAX + 1)));
SoundEffect(SFX_TR3_UPV_LOOP, (PHD_3DPOS*)&UPVItem->Position.xPos, 2 | 4 | 0x1000000 | (UPVItem->Animation.Velocity * (USHRT_MAX + 1)));
UPVItem->Animation.AnimNumber = Objects[ID_UPV].animIndex + (laraItem->Animation.AnimNumber - Objects[ID_UPV_LARA_ANIMS].animIndex);
UPVItem->Animation.FrameNumber = g_Level.Anims[UPVItem->Animation.AnimNumber].frameBase + (laraItem->Animation.FrameNumber - g_Level.Anims[laraItem->Animation.AnimNumber].frameBase);
@ -1072,6 +1072,7 @@ bool UPVControl(ITEM_INFO* laraItem, CollisionInfo* coll)
SetAnimation(UPVItem, UPV_ANIM_IDLE);
UPVItem->Animation.VerticalVelocity = 0;
UPVItem->Animation.Velocity = 0;
UPVItem->Animation.Airborne = true;
AnimateItem(UPVItem);

View file

@ -31,7 +31,7 @@ namespace TEN::Entities::TR4
item->Data = WraithInfo();
auto* wraith = (WraithInfo*)item->Data;
item->Animation.VerticalVelocity = WraithVelocity;
item->Animation.Velocity = WraithVelocity;
item->ItemFlags[0] = 0;
item->ItemFlags[6] = 0;
@ -93,7 +93,7 @@ namespace TEN::Entities::TR4
angleV -= item->Position.xRot;
int velocity = 8 * (WraithVelocity / item->Animation.VerticalVelocity);
int velocity = 8 * (WraithVelocity / item->Animation.Velocity);
if (abs(angleH) >= item->ItemFlags[2] || angleH > 0 != item->ItemFlags[2] > 0)
{
@ -151,9 +151,9 @@ namespace TEN::Entities::TR4
oldY = item->Position.yPos;
oldZ = item->Position.zPos;
item->Position.xPos += item->Animation.VerticalVelocity * phd_sin(item->Position.yRot);
item->Position.yPos += item->Animation.VerticalVelocity * phd_sin(item->Position.xRot);
item->Position.zPos += item->Animation.VerticalVelocity * phd_cos(item->Position.yRot);
item->Position.xPos += item->Animation.Velocity * phd_sin(item->Position.yRot);
item->Position.yPos += item->Animation.Velocity * phd_sin(item->Position.xRot);
item->Position.zPos += item->Animation.Velocity * phd_cos(item->Position.yRot);
auto outsideRoom = IsRoomOutside(item->Position.xPos, item->Position.yPos, item->Position.zPos);
if (item->RoomNumber != outsideRoom && outsideRoom != NO_ROOM)
@ -223,8 +223,8 @@ namespace TEN::Entities::TR4
{
if (Wibble & 16)
{
if (item->Animation.VerticalVelocity < WraithVelocity)
item->Animation.VerticalVelocity++;
if (item->Animation.Velocity < WraithVelocity)
item->Animation.Velocity++;
if (item->ItemFlags[6])
{
@ -235,8 +235,8 @@ namespace TEN::Entities::TR4
}
else
{
if (item->Animation.VerticalVelocity > 32)
item->Animation.VerticalVelocity -= 12;
if (item->Animation.Velocity > 32)
item->Animation.Velocity -= 12;
if (target == LaraItem)
{

View file

@ -485,7 +485,7 @@ static void DrawMotorBikeSmoke(ITEM_INFO* item)
pos.z = -500;
GetJointAbsPosition(item, &pos, 0);
speed = item->Animation.VerticalVelocity;
speed = item->Animation.Velocity;
if (speed > 32 && speed < 64)
{
TriggerMotorbikeExhaustSmoke(pos.x, pos.y, pos.z, item->Position.yRot - ANGLE(180), 64 - speed, TRUE);
@ -805,9 +805,9 @@ static int MotorBikeDynamics(ITEM_INFO* item)
floor = GetFloor(item->Position.xPos, item->Position.yPos, item->Position.zPos, &room_number);
height = GetFloorHeight(floor, item->Position.xPos, item->Position.yPos, item->Position.zPos);
if (item->Position.yPos >= height)
speed = item->Animation.VerticalVelocity * phd_cos(item->Position.xRot);
speed = item->Animation.Velocity * phd_cos(item->Position.xRot);
else
speed = item->Animation.VerticalVelocity;
speed = item->Animation.Velocity;
item->Position.zPos += speed * phd_cos(motorbike->momentumAngle);
item->Position.xPos += speed * phd_sin(motorbike->momentumAngle);
@ -1333,7 +1333,7 @@ static int MotorbikeUserControl(ITEM_INFO* item, int height, int* pitch)
}
}
item->Animation.VerticalVelocity = motorbike->velocity / 256;
item->Animation.Velocity = motorbike->velocity / 256;
if (motorbike->engineRevs > MOTORBIKE_ACCEL_MAX)
motorbike->engineRevs = (GetRandomControl() & 0x1FF) + 0xBF00;