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

Function RefreshCamera

TombEngine/Game/control/trigger.cpp:272–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

270}
271
272void RefreshCamera(short type, short* data)
273{
274 short trigger, value, targetOk;
275
276 targetOk = 2;
277
278 do
279 {
280 trigger = *(data++);
281 value = trigger & VALUE_BITS;
282
283 switch (TRIG_BITS(trigger))
284 {
285 case TO_CAMERA:
286 data++;
287
288 if (value == Camera.last)
289 {
290 Camera.number = value;
291
292 if (Camera.timer < 0 || !TestLockedCamera())
293 {
294 Camera.timer = NO_VALUE;
295 targetOk = 0;
296 break;
297 }
298 Camera.type = CameraType::Fixed;
299 targetOk = 1;
300 }
301 else
302 targetOk = 0;
303
304 break;
305
306 case TO_TARGET:
307 if (!TestLockedCamera())
308 break;
309
310 Camera.item = &g_Level.Items[value];
311 break;
312 }
313 } while (!(trigger & END_BIT));
314
315 if (Camera.item)
316 {
317 if (!targetOk || (targetOk == 2 && Camera.item->LookedAt && Camera.item != Camera.lastItem))
318 Camera.item = nullptr;
319 }
320
321 if (Camera.number == NO_VALUE && Camera.timer > 0)
322 Camera.timer = NO_VALUE;
323}
324
325short* GetTriggerIndex(FloorInfo* floor, int x, int y, int z)
326{

Callers 1

TestTriggersFunction · 0.85

Calls 1

TestLockedCameraFunction · 0.85

Tested by 1

TestTriggersFunction · 0.68