MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / GetLookCameraVerticalOffset

Function GetLookCameraVerticalOffset

TombEngine/Game/camera.cpp:129–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129static int GetLookCameraVerticalOffset(const ItemInfo& item, const CollisionInfo& coll)
130{
131 constexpr auto VERTICAL_OFFSET_DEFAULT = -BLOCK(1 / 16.0f);
132 constexpr auto VERTICAL_OFFSET_SWAMP = BLOCK(0.4f);
133 constexpr auto VERTICAL_OFFSET_MONKEY_SWING = BLOCK(0.25f);
134 constexpr auto VERTICAL_OFFSET_TREADING_WATER = BLOCK(0.5f);
135
136 const auto& player = GetLaraInfo(item);
137
138 bool isInSwamp = TestEnvironment(ENV_FLAG_SWAMP, item.RoomNumber);
139
140 // Determine contextual vertical offset.
141 float verticalOffset = coll.Setup.Height;
142 if (player.Control.IsMonkeySwinging)
143 {
144 verticalOffset -= VERTICAL_OFFSET_MONKEY_SWING;
145 }
146 else if (player.Control.WaterStatus == WaterStatus::TreadWater)
147 {
148 verticalOffset -= VERTICAL_OFFSET_TREADING_WATER;
149 }
150 else if (isInSwamp)
151 {
152 verticalOffset = VERTICAL_OFFSET_SWAMP;
153 }
154 else
155 {
156 verticalOffset -= VERTICAL_OFFSET_DEFAULT;
157 }
158
159 // Get floor-to-ceiling height.
160 auto pointColl = GetPointCollision(item);
161 int floorToCeilHeight = abs(pointColl.GetCeilingHeight() - pointColl.GetFloorHeight());
162
163 // Return appropriate vertical offset.
164 return -((verticalOffset < floorToCeilHeight) ? verticalOffset : floorToCeilHeight);
165}
166
167void LookCamera(ItemInfo& item, const CollisionInfo& coll)
168{

Callers 1

LookCameraFunction · 0.85

Calls 4

TestEnvironmentFunction · 0.85
GetPointCollisionFunction · 0.85
GetCeilingHeightMethod · 0.45
GetFloorHeightMethod · 0.45

Tested by

no test coverage detected