#include "camera.h" #include #include #include #include "draw.h" extern int KeyTriggerActive; void ActivateCamera() { KeyTriggerActive = 2; } void LookAt(int posX, int posY, int posZ, int targetX, int targetY, int targetZ, short roll) { Vector3 position = Vector3(posX, posY, posZ); Vector3 target = Vector3(targetX, targetY, targetZ); Vector3 up = Vector3(0.0f, -1.0f, 0.0f); float fov = TR_ANGLE_TO_RAD(CurrentFOV / 1.333333f); float r = TR_ANGLE_TO_RAD(roll); g_Renderer->UpdateCameraMatrices(posX, posY, posZ, targetX, targetY, targetZ, r, fov); } void AlterFOV(int value) { if (SIN(value / 2) == 0) return; /* @FIXME Integer division by zero */ CurrentFOV = value; PhdPerspective = PhdWidth / 2 * COS(CurrentFOV / 2) / SIN(CurrentFOV / 2); } void Inject_Camera() { INJECT(0x0048EDC0, AlterFOV); INJECT(0x0048F760, LookAt); }