From cf13d92e4abaf41f1cbacda5148266bafce0780e Mon Sep 17 00:00:00 2001 From: Montagna Marco Date: Wed, 8 Apr 2020 13:28:26 +0200 Subject: [PATCH] Decompiled UpdateCameraElevation() --- TR5Main/Game/camera.cpp | 37 +++++++++++++++++++++++++++++++++++++ TR5Main/Game/camera.h | 4 +++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/TR5Main/Game/camera.cpp b/TR5Main/Game/camera.cpp index 8b895ebbb..1e2a98c79 100644 --- a/TR5Main/Game/camera.cpp +++ b/TR5Main/Game/camera.cpp @@ -3,6 +3,7 @@ #include #include #include "draw.h" +#include "lara.h" struct OLD_CAMERA { @@ -342,6 +343,40 @@ void MoveCamera(GAME_VECTOR* ideal, int speed) } } +void ChaseCamera(ITEM_INFO* item) +{ + +} + +void UpdateCameraElevation() +{ + PHD_VECTOR pos; + PHD_VECTOR pos1; + + if (Camera.laraNode != -1) + { + pos.z = 0; + pos.y = 0; + pos.x = 0; + GetLaraJointPosition(&pos, Camera.laraNode); + + pos1.x = 0; + pos1.y = -256; + pos1.z = 2048; + GetLaraJointPosition(&pos1, Camera.laraNode); + + pos.z = pos1.z - pos.z; + pos.x = pos1.x - pos.x; + Camera.actualAngle = Camera.targetAngle + ATAN(pos.z, pos.x); + } + else + { + Camera.actualAngle = LaraItem->pos.yRot + Camera.targetAngle; + } + + Camera.actualElevation += (Camera.targetElevation - Camera.actualElevation) >> 3; +} + void Inject_Camera() { INJECT(0x0048EDC0, AlterFOV); @@ -349,4 +384,6 @@ void Inject_Camera() INJECT(0x0040FA70, mgLOS); INJECT(0x0040C7A0, MoveCamera); INJECT(0x0040C690, InitialiseCamera); + INJECT(0x004107C0, UpdateCameraElevation); + //INJECT(0x0040D150, ChaseCamera); } \ No newline at end of file diff --git a/TR5Main/Game/camera.h b/TR5Main/Game/camera.h index df7bdf81d..7f648f7e4 100644 --- a/TR5Main/Game/camera.h +++ b/TR5Main/Game/camera.h @@ -10,7 +10,7 @@ //#define InitialiseCamera ((void (__cdecl*)()) 0x0040C690) //#define MoveCamera ((int(__cdecl*)(GAME_VECTOR*,int)) 0x0040C7A0) -#define ChaseCamera ((int(__cdecl*)(ITEM_INFO*)) 0x0040D150) +//#define ChaseCamera ((int(__cdecl*)(ITEM_INFO*)) 0x0040D150) #define CombatCamera ((int(__cdecl*)(ITEM_INFO*)) 0x0040D640) #define LookCamera ((void(__cdecl*)(ITEM_INFO*)) 0x0040DC10) #define FixedCamera ((void(__cdecl*)()) 0x0040E890) @@ -30,5 +30,7 @@ void AlterFOV(int value); int mgLOS(GAME_VECTOR* start, GAME_VECTOR* target, int push); void InitialiseCamera(); void MoveCamera(GAME_VECTOR* ideal, int speed); +void ChaseCamera(ITEM_INFO* item); +void UpdateCameraElevation(); void Inject_Camera(); \ No newline at end of file