blob: 9bfe01e0a00f4253022a2ea97100fcdb20659fa5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <libultraship.h>
#include <libultra/gbi.h>
#include "LookBehindCamera.h"
#include "port/interpolation/FrameInterpolation.h"
#include "engine/Matrix.h"
#include "port/Game.h"
#include "src/enhancements/freecam/freecam.h"
extern "C" {
#include "main.h"
#include "code_800029B0.h"
#include "camera.h"
#include "code_80057C60.h"
#include "defines.h"
}
LookBehindCamera::LookBehindCamera(FVector pos, s16 rot, u32 mode) : GameCamera() {
_camera->renderMode = RENDER_TRACK_SECTIONS;
ProjMode = ProjectionMode::PERSPECTIVE;
bActive = true;
// Look behind
Vec3f spawn = {pos.x, pos.y, pos.z};
camera_init(spawn, rot, mode, _camera->cameraId);
// Flip camera to look backwards
_camera->unk_30[2] = -_camera->unk_30[2];
_camera->unk_3C[2] = -_camera->unk_3C[2];
}
void LookBehindCamera::Tick() {
if (!bActive) { return; }
if (nullptr == _camera) {
bActive = false;
return;
}
func_8001EE98(&gPlayers[_camera->playerId], _camera, _camera->cameraId);
}
|