SimplifyLogic

This commit is contained in:
TrainWrack 2025-03-06 19:42:01 -05:00
parent 97a5def2aa
commit be0aeefaa4

View file

@ -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;