mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-02 17:57:59 +03:00
Fix instance of search-and-replace going beyond its scope; cleanup
This commit is contained in:
parent
f128004c36
commit
0538d8f13b
7 changed files with 69 additions and 82 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue