diff --git a/TR5Main/Game/box.cpp b/TR5Main/Game/box.cpp index 6702dfefa..804f666cb 100644 --- a/TR5Main/Game/box.cpp +++ b/TR5Main/Game/box.cpp @@ -9,6 +9,7 @@ #include "draw.h" #include "sphere.h" #include "misc.h" +#include "camera.h" #include "control.h" #include "../Specific/setup.h" diff --git a/TR5Main/Game/camera.cpp b/TR5Main/Game/camera.cpp index 9c4585846..1cd3243e0 100644 --- a/TR5Main/Game/camera.cpp +++ b/TR5Main/Game/camera.cpp @@ -47,6 +47,7 @@ int ExittingBinos = 0; int LSHKShotsFired = 0; PHD_VECTOR CamOldPos; int TLFlag = 0; +CAMERA_INFO Camera; void ActivateCamera() { @@ -1575,7 +1576,7 @@ void CalculateCamera() //Camera is in a water room, play water sound effect. if ((Rooms[Camera.pos.roomNumber].flags & ENV_FLAG_WATER)) { - SoundEffect(SFX_UNDERWATER, NULL, 2); + SoundEffect(SFX_UNDERWATER, NULL, SFX_ALWAYS); if (Camera.underwater == 0) { /*if (GLOBAL_playing_cutseq == 0 && TLFlag == 0) @@ -1632,7 +1633,7 @@ void CalculateCamera() int dx = Camera.item->pos.xPos - item->pos.xPos; int dz = Camera.item->pos.zPos - item->pos.zPos; int shift = SQRT_ASM(SQUARE(dx) + SQUARE(dz)); - short angle = ATAN(Camera.item->pos.zPos - item->pos.zPos, Camera.item->pos.xPos - item->pos.xPos) - item->pos.yRot; + short angle = ATAN(dz, dx) - item->pos.yRot; short tilt = ATAN(shift, y - (bounds[2] + bounds[3]) / 2 - Camera.item->pos.yPos); bounds = GetBoundsAccurate(Camera.item); angle >>= 1; diff --git a/TR5Main/Game/camera.h b/TR5Main/Game/camera.h index 242d6bb14..164a81af9 100644 --- a/TR5Main/Game/camera.h +++ b/TR5Main/Game/camera.h @@ -4,7 +4,7 @@ #include #include -#define Camera VAR_U_(0x00EEF940, CAMERA_INFO) +//#define Camera VAR_U_(0x00EEF940, CAMERA_INFO) #define ForcedFixedCamera VAR_U_(0x00EEFA20, GAME_VECTOR) #define UseForcedFixedCamera VAR_U_(0x00EEFA50, char) @@ -23,6 +23,7 @@ #define UnknownCamera ((void(__cdecl*)()) 0x004975D0) extern PHD_VECTOR CurrentCameraPosition; +extern CAMERA_INFO Camera; void ActivateCamera(); void LookAt(int posX, int posY, int posZ, int targetX, int targetY, int targetZ, short roll); diff --git a/TR5Main/Game/effects.cpp b/TR5Main/Game/effects.cpp index e6273a17e..fb02e73a3 100644 --- a/TR5Main/Game/effects.cpp +++ b/TR5Main/Game/effects.cpp @@ -13,6 +13,7 @@ #include "..\Specific\roomload.h" #include "debris.h" #include "../Specific/setup.h" +#include "camera.h" int wf = 256; extern std::deque footprints; diff --git a/TR5Main/Game/inventory.cpp b/TR5Main/Game/inventory.cpp index a13bfdf33..32057d026 100644 --- a/TR5Main/Game/inventory.cpp +++ b/TR5Main/Game/inventory.cpp @@ -7,7 +7,7 @@ #include "sound.h" #include "savegame.h" #include "Lara.h" - +#include "camera.h" #include "..\Global\global.h" #include "..\Specific\input.h" #include "..\Specific\configuration.h" diff --git a/TR5Main/Game/lara1gun.cpp b/TR5Main/Game/lara1gun.cpp index 22c4b0784..075ed4ed5 100644 --- a/TR5Main/Game/lara1gun.cpp +++ b/TR5Main/Game/lara1gun.cpp @@ -16,6 +16,7 @@ #include "objects.h" #include "sphere.h" #include "traps.h" +#include "camera.h" #include "..\Global\global.h" #include "..\Scripting\GameFlowScript.h" diff --git a/TR5Main/Game/lara2gun.cpp b/TR5Main/Game/lara2gun.cpp index 4fd834b82..318479ee6 100644 --- a/TR5Main/Game/lara2gun.cpp +++ b/TR5Main/Game/lara2gun.cpp @@ -6,6 +6,7 @@ #include "tomb4fx.h" #include "..\Specific\roomload.h" #include "..\Specific\setup.h" +#include "camera.h" PISTOL_DEF PistolsTable[4] = { diff --git a/TR5Main/Game/laraclmb.cpp b/TR5Main/Game/laraclmb.cpp index 3a0cce4b8..1cb69f6e9 100644 --- a/TR5Main/Game/laraclmb.cpp +++ b/TR5Main/Game/laraclmb.cpp @@ -5,6 +5,7 @@ #include "draw.h" #include "sphere.h" #include "laramisc.h" +#include "camera.h" short LeftIntRightExtTab[4] = // offset 0xA0B7C { diff --git a/TR5Main/Game/larafire.cpp b/TR5Main/Game/larafire.cpp index da679c1e3..950f10914 100644 --- a/TR5Main/Game/larafire.cpp +++ b/TR5Main/Game/larafire.cpp @@ -5,9 +5,8 @@ #include "laraflar.h" #include "lara1gun.h" #include "lara2gun.h" - +#include "camera.h" #include "..\Scripting\GameFlowScript.h" - #include #include "objects.h" #include "effects.h" diff --git a/TR5Main/Game/laramisc.cpp b/TR5Main/Game/laramisc.cpp index a6bd7cc97..381b402c5 100644 --- a/TR5Main/Game/laramisc.cpp +++ b/TR5Main/Game/laramisc.cpp @@ -14,6 +14,7 @@ #include "rope.h" #include "draw.h" #include "inventory.h" +#include "camera.h" extern LaraExtraInfo g_LaraExtra; extern GameFlow* g_GameFlow; diff --git a/TR5Main/Game/lot.cpp b/TR5Main/Game/lot.cpp index cbcfdfbeb..91573df96 100644 --- a/TR5Main/Game/lot.cpp +++ b/TR5Main/Game/lot.cpp @@ -3,6 +3,7 @@ #include "..\Global\global.h" #include #include "../Specific/setup.h" +#include "camera.h" #define DEFAULT_FLY_UPDOWN_SPEED 16 #define DEFAULT_SWIM_UPDOWN_SPEED 32 diff --git a/TR5Main/Game/savegame.cpp b/TR5Main/Game/savegame.cpp index 090697db5..41a3c8022 100644 --- a/TR5Main/Game/savegame.cpp +++ b/TR5Main/Game/savegame.cpp @@ -14,6 +14,7 @@ #include "..\Game\sound.h" #include "..\Specific\roomload.h" #include "../Specific/setup.h" +#include "camera.h" FileStream* SaveGame::m_stream; ChunkReader* SaveGame::m_reader; diff --git a/TR5Main/Game/sound.cpp b/TR5Main/Game/sound.cpp index bc20edc99..c90c9ea93 100644 --- a/TR5Main/Game/sound.cpp +++ b/TR5Main/Game/sound.cpp @@ -1,4 +1,5 @@ #include "sound.h" +#include "camera.h" #include "..\Specific\configuration.h" HSTREAM BASS_3D_Mixdown; diff --git a/TR5Main/Global/vars.h b/TR5Main/Global/vars.h index d38788424..3ee76ca5f 100644 --- a/TR5Main/Global/vars.h +++ b/TR5Main/Global/vars.h @@ -2,7 +2,7 @@ #include "..\Game\sound.h" -#define Camera VAR_U_(0x00EEF940, CAMERA_INFO) +//#define Camera VAR_U_(0x00EEF940, CAMERA_INFO) #define ForcedFixedCamera VAR_U_(0x00EEFA20, GAME_VECTOR) #define UseForcedFixedCamera VAR_U_(0x00EEFA50, char) #define MallocBuffer VAR_U_(0x00E4B10C, char*) diff --git a/TR5Main/Objects/TR1/tr1_natla_evil.cpp b/TR5Main/Objects/TR1/tr1_natla_evil.cpp index 5878f0e37..cf052dce6 100644 --- a/TR5Main/Objects/TR1/tr1_natla_evil.cpp +++ b/TR5Main/Objects/TR1/tr1_natla_evil.cpp @@ -2,6 +2,7 @@ #include "../../Game/Box.h" #include "../../Game/effect2.h" #include "../../Game/items.h" +#include "../../Game/camera.h" #include "../../Specific/setup.h" enum abortion_anims { diff --git a/TR5Main/Objects/TR1/tr1_pierre.cpp b/TR5Main/Objects/TR1/tr1_pierre.cpp index 8e472e355..a50ed0eef 100644 --- a/TR5Main/Objects/TR1/tr1_pierre.cpp +++ b/TR5Main/Objects/TR1/tr1_pierre.cpp @@ -4,6 +4,7 @@ #include "../../Game/people.h" #include "../../Game/lot.h" #include "../../specific/setup.h" +#include "..\..\Game\camera.h" enum PIERRE_STATE { PEOPLE_EMPTY, PEOPLE_STOP, PEOPLE_WALK, PEOPLE_RUN, PEOPLE_AIM, diff --git a/TR5Main/Objects/TR2/tr2_dragon.cpp b/TR5Main/Objects/TR2/tr2_dragon.cpp index c214972fd..37a4b53bd 100644 --- a/TR5Main/Objects/TR2/tr2_dragon.cpp +++ b/TR5Main/Objects/TR2/tr2_dragon.cpp @@ -6,6 +6,7 @@ #include "../../Game/Box.h" #include "../../Game/lot.h" #include "../../Game/sphere.h" +#include "../../Game/camera.h" #include "../../Specific/roomload.h" #include "../../specific/setup.h" diff --git a/TR5Main/Objects/TR3/tr3_trex.cpp b/TR5Main/Objects/TR3/tr3_trex.cpp index 6638381c1..e4d191f07 100644 --- a/TR5Main/Objects/TR3/tr3_trex.cpp +++ b/TR5Main/Objects/TR3/tr3_trex.cpp @@ -1,6 +1,7 @@ #include "../newobjects.h" #include "../../Game/items.h" #include "../../Game/Box.h" +#include "../../Game/camera.h" #include "../../Specific/setup.h" void LaraTyrannosaurDeath(ITEM_INFO* item) diff --git a/TR5Main/Objects/TR4/tr4_demigod.cpp b/TR5Main/Objects/TR4/tr4_demigod.cpp index 8bfac141a..fa30ff39e 100644 --- a/TR5Main/Objects/TR4/tr4_demigod.cpp +++ b/TR5Main/Objects/TR4/tr4_demigod.cpp @@ -6,6 +6,7 @@ #include "../../Game/effect2.h" #include "../../Game/draw.h" #include "../../Game/tomb4fx.h" +#include "../../Game/camera.h" #include "../../Specific/setup.h" extern SMOKE_SPARKS SmokeSparks[MAX_SPARKS_SMOKE]; diff --git a/TR5Main/Objects/TR5/tr5_misc_objects.cpp b/TR5Main/Objects/TR5/tr5_misc_objects.cpp index 917127925..2d2afee21 100644 --- a/TR5Main/Objects/TR5/tr5_misc_objects.cpp +++ b/TR5Main/Objects/TR5/tr5_misc_objects.cpp @@ -14,6 +14,7 @@ #include "../../Game/switch.h" #include "../../Game/debris.h" #include "../../Game/objects.h" +#include "../../Game/camera.h" #include "../../Game/missile.h" #include "../../Specific/setup.h" diff --git a/TR5Main/Objects/TR5/tr5_traps.cpp b/TR5Main/Objects/TR5/tr5_traps.cpp index 5dc56d7df..4a2d9d91a 100644 --- a/TR5Main/Objects/TR5/tr5_traps.cpp +++ b/TR5Main/Objects/TR5/tr5_traps.cpp @@ -14,6 +14,7 @@ #include "../../Game/effect2.h" #include "../../Game/sphere.h" #include "../../Game/traps.h" +#include "../../Game/camera.h" #include "../../Specific/setup.h" short SPyoffs[8] = diff --git a/TR5Main/Objects/Vehicles/boat.cpp b/TR5Main/Objects/Vehicles/boat.cpp index 33877c94b..dea5a35d1 100644 --- a/TR5Main/Objects/Vehicles/boat.cpp +++ b/TR5Main/Objects/Vehicles/boat.cpp @@ -3,6 +3,7 @@ #include "../../Game/items.h" #include "../../Game/collide.h" #include "../../Game/sphere.h" +#include "../../Game/camera.h" #include "../../Specific/setup.h" extern LaraExtraInfo g_LaraExtra; diff --git a/TR5Main/Objects/Vehicles/jeep.cpp b/TR5Main/Objects/Vehicles/jeep.cpp index d06b29c4a..d91d67bd1 100644 --- a/TR5Main/Objects/Vehicles/jeep.cpp +++ b/TR5Main/Objects/Vehicles/jeep.cpp @@ -6,6 +6,7 @@ #include "../../Game/effects.h" #include "../../Game/lara1gun.h" #include "../../Game/items.h" +#include "../../Game/camera.h" #include "../../Game/sphere.h" #include "../../Game/laraflar.h" diff --git a/TR5Main/Objects/Vehicles/minecart.cpp b/TR5Main/Objects/Vehicles/minecart.cpp index a1a18194f..ece07693d 100644 --- a/TR5Main/Objects/Vehicles/minecart.cpp +++ b/TR5Main/Objects/Vehicles/minecart.cpp @@ -7,6 +7,7 @@ #include "../../Game/sphere.h" #include "../../Game/draw.h" #include "../../Game/misc.h" +#include "../../Game/camera.h" #include "..\..\Specific\roomload.h" #include "../../Specific/setup.h" diff --git a/TR5Main/Objects/Vehicles/quad.cpp b/TR5Main/Objects/Vehicles/quad.cpp index beea8b6b0..1ce4f0128 100644 --- a/TR5Main/Objects/Vehicles/quad.cpp +++ b/TR5Main/Objects/Vehicles/quad.cpp @@ -4,6 +4,7 @@ #include "../../Game/items.h" #include "../../Game/sphere.h" #include "../../Game/collide.h" +#include "../../Game/camera.h" #include "../../Game/effects.h" #include "../../Game/laraflar.h" #include diff --git a/TR5Main/Renderer/Render11Helper.cpp b/TR5Main/Renderer/Render11Helper.cpp index 26f4c3be3..db3d0bf9c 100644 --- a/TR5Main/Renderer/Render11Helper.cpp +++ b/TR5Main/Renderer/Render11Helper.cpp @@ -1,6 +1,7 @@ #pragma once #include "Renderer11.h" #include "../Specific/configuration.h" +#include "../Game/camera.h" #include "../Game/draw.h" #include "../Specific/setup.h" extern GameConfiguration g_Configuration; diff --git a/TR5Main/Renderer/Renderer11DrawEffect.cpp b/TR5Main/Renderer/Renderer11DrawEffect.cpp index ff29b4ff2..8421b959d 100644 --- a/TR5Main/Renderer/Renderer11DrawEffect.cpp +++ b/TR5Main/Renderer/Renderer11DrawEffect.cpp @@ -5,6 +5,7 @@ #include "../Game/tomb4fx.h" #include "../Game/lara.h" #include "../Game/draw.h" +#include "../Game/camera.h" #include "../Game/debris.h" #include "../Specific/setup.h" diff --git a/TR5Main/Specific/setup.cpp b/TR5Main/Specific/setup.cpp index 020d0b0c7..70d063793 100644 --- a/TR5Main/Specific/setup.cpp +++ b/TR5Main/Specific/setup.cpp @@ -9,6 +9,7 @@ #include "..\Game\missile.h" #include "..\Game\control.h" #include "..\Game\pickup.h" +#include "../Game/camera.h" #include "..\Game\lara1gun.h" #include "..\Game\laraflar.h" #include "..\Game\larafire.h"