MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / Camera_Acceleration_Set

Method Camera_Acceleration_Set

Source/Fodder.cpp:2439–2479  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2437}
2438
2439void cFodder::Camera_Acceleration_Set() {
2440
2441 if (mSquad_Leader == INVALID_SPRITE_PTR || mSquad_Leader == 0)
2442 return;
2443
2444 int16 DistanceX = mSquad_Leader->field_0 + 0x40;
2445 int16 DistanceY = mSquad_Leader->field_4 + 0x10;
2446
2447 DistanceX -= mCameraX >> 16;
2448 DistanceY -= mCameraY >> 16;
2449
2450 if (mCamera_Speed_Reset_X && DistanceX > 0x90 && DistanceX < 0xCF) { // 90 / A2 = Amiga
2451 mCamera_Speed_Reset_X = false;
2452 mCamera_AccelerationX = 0;
2453 }
2454
2455 if (mCamera_Speed_Reset_Y && DistanceY > 0x60 && DistanceY < 0x87) { // 64 / 8F = Amiga
2456 mCamera_Speed_Reset_Y = false;
2457 mCamera_AccelerationY = 0;
2458 }
2459 //loc_1234F
2460 if (DistanceX <= 0x40) {
2461 mCamera_AccelerationX = (mCamera_AccelerationX & 0xFFFF) | -CAMERA_PAN_TO_SQUAD_ACCELERATION; // (-2 << 16);
2462 mCamera_Speed_Reset_X = true;
2463 }
2464 //loc_12362
2465 if (DistanceX >= getCameraWidth() + 64) {
2466 mCamera_AccelerationX = (mCamera_AccelerationX & 0xFFFF) | CAMERA_PAN_TO_SQUAD_ACCELERATION; // (2 << 16);
2467 mCamera_Speed_Reset_X = true;
2468 }
2469
2470 if (DistanceY <= 0x10) {
2471 mCamera_AccelerationY = (mCamera_AccelerationY & 0xFFFF) | -CAMERA_PAN_TO_SQUAD_ACCELERATION; // (-2 << 16);
2472 mCamera_Speed_Reset_Y = true;
2473 }
2474
2475 if (DistanceY >= (getCameraHeight() - 9)) {
2476 mCamera_AccelerationY = (mCamera_AccelerationY & 0xFFFF) | CAMERA_PAN_TO_SQUAD_ACCELERATION; // (2 << 16);
2477 mCamera_Speed_Reset_Y = true;
2478 }
2479}
2480
2481void cFodder::Mission_Sprites_Handle() {
2482

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected