mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
SimplifyLogic
This commit is contained in:
parent
97a5def2aa
commit
be0aeefaa4
1 changed files with 2 additions and 11 deletions
|
@ -23,8 +23,7 @@ namespace TEN::Entities::Traps
|
||||||
Speed,
|
Speed,
|
||||||
PauseCounter,
|
PauseCounter,
|
||||||
Direction,
|
Direction,
|
||||||
DistanceTravelled,
|
DistanceTravelled
|
||||||
SpeedCalc
|
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr auto MOVING_LASER_DAMAGE = 100;
|
constexpr auto MOVING_LASER_DAMAGE = 100;
|
||||||
|
@ -38,7 +37,6 @@ namespace TEN::Entities::Traps
|
||||||
auto& item = g_Level.Items[itemNumber];
|
auto& item = g_Level.Items[itemNumber];
|
||||||
item.ItemFlags[Direction] = 1;
|
item.ItemFlags[Direction] = 1;
|
||||||
item.ItemFlags[Speed] = 10;
|
item.ItemFlags[Speed] = 10;
|
||||||
item.ItemFlags[SpeedCalc] = MIN_SPEED;
|
|
||||||
item.Pose.Translate(item.Pose.Orientation, -CLICK(1)); //Offset by one click to make it dangerous at the edges of the block.
|
item.Pose.Translate(item.Pose.Orientation, -CLICK(1)); //Offset by one click to make it dangerous at the edges of the block.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,23 +69,16 @@ namespace TEN::Entities::Traps
|
||||||
{
|
{
|
||||||
item.ItemFlags[Direction] *= -1;
|
item.ItemFlags[Direction] *= -1;
|
||||||
item.ItemFlags[DistanceTravelled] = 0;
|
item.ItemFlags[DistanceTravelled] = 0;
|
||||||
item.ItemFlags[SpeedCalc] = MIN_SPEED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimateItem(&item);
|
AnimateItem(&item);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
item.Pose.Translate(item.Pose.Orientation, (item.ItemFlags[Direction] * item.ItemFlags[SpeedCalc]));
|
item.Pose.Translate(item.Pose.Orientation, (item.ItemFlags[Direction] * distancePerFrame));
|
||||||
|
|
||||||
item.ItemFlags[DistanceTravelled] += distancePerFrame;
|
item.ItemFlags[DistanceTravelled] += distancePerFrame;
|
||||||
|
|
||||||
if (item.ItemFlags[DistanceTravelled] < (moveDistance * MAX_SPEED_THRESHOLD))
|
|
||||||
item.ItemFlags[SpeedCalc] = std::min(distancePerFrame, item.ItemFlags[SpeedCalc] + ACCELERATION);
|
|
||||||
else
|
|
||||||
item.ItemFlags[SpeedCalc] = std::max(MIN_SPEED, item.ItemFlags[SpeedCalc] - ACCELERATION);
|
|
||||||
|
|
||||||
|
|
||||||
if (item.ItemFlags[DistanceTravelled] >= moveDistance)
|
if (item.ItemFlags[DistanceTravelled] >= moveDistance)
|
||||||
{
|
{
|
||||||
item.ItemFlags[PauseCounter] = PAUSE_FRAMES;
|
item.ItemFlags[PauseCounter] = PAUSE_FRAMES;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue