mirror of
https://github.com/XProger/OpenLara.git
synced 2025-08-13 16:44:50 +02:00
@@ -42,7 +42,7 @@ struct Camera : Controller {
|
||||
bool firstPerson;
|
||||
bool isVR;
|
||||
|
||||
Camera(IGame *game, Character *owner) : Controller(game, owner ? owner->entity : 0), owner(owner), frustum(new Frustum()), timer(-1.0f), viewIndex(-1), viewIndexLast(-1), viewTarget(NULL), reflectPlane(NULL), isVR(false) {
|
||||
Camera(IGame *game, Character *owner) : Controller(game, owner ? owner->entity : 0), owner(owner), frustum(new Frustum()), timer(-1.0f), reflectPlane(NULL), viewIndex(-1), viewIndexLast(-1), viewTarget(NULL), isVR(false) {
|
||||
changeView(false);
|
||||
if (owner->getEntity().type != TR::Entity::LARA && level->cameraFrames) {
|
||||
state = STATE_CUTSCENE;
|
||||
|
@@ -29,6 +29,8 @@ struct Character : Controller {
|
||||
Controller *viewTarget;
|
||||
int jointChest;
|
||||
int jointHead;
|
||||
vec4 rangeChest;
|
||||
vec4 rangeHead;
|
||||
|
||||
vec3 velocity;
|
||||
float angleExt;
|
||||
@@ -47,6 +49,9 @@ struct Character : Controller {
|
||||
stepHeight = 256;
|
||||
dropHeight = -256;
|
||||
|
||||
rangeChest = vec4(-0.80f, 0.80f, -0.75f, 0.75f) * PI;
|
||||
rangeHead = vec4(-0.25f, 0.25f, -0.50f, 0.50f) * PI;
|
||||
|
||||
animation.initOverrides();
|
||||
rotHead = rotChest = quat(0, 0, 0, 1);
|
||||
|
||||
@@ -202,7 +207,7 @@ struct Character : Controller {
|
||||
quat rot;
|
||||
|
||||
if (jointChest > -1) {
|
||||
if (aim(target, jointChest, vec4(-PI * 0.8f, PI * 0.8f, -PI * 0.75f, PI * 0.75f), rot))
|
||||
if (aim(target, jointChest, rangeChest, rot))
|
||||
rotChest = rotChest.slerp(quat(0, 0, 0, 1).slerp(rot, 0.5f), speed);
|
||||
else
|
||||
rotChest = rotChest.slerp(quat(0, 0, 0, 1), speed);
|
||||
@@ -210,7 +215,7 @@ struct Character : Controller {
|
||||
}
|
||||
|
||||
if (jointHead > -1) {
|
||||
if (aim(target, jointHead, vec4(-PI * 0.25f, PI * 0.25f, -PI * 0.5f, PI * 0.5f), rot))
|
||||
if (aim(target, jointHead, rangeHead, rot))
|
||||
rotHead = rotHead.slerp(rot, speed);
|
||||
else
|
||||
rotHead = rotHead.slerp(quat(0, 0, 0, 1), speed);
|
||||
|
@@ -221,7 +221,7 @@ namespace TR {
|
||||
ANIM_CMD_EFFECT ,
|
||||
};
|
||||
|
||||
enum Effect : uint32 {
|
||||
enum Effect : int32 {
|
||||
NONE = -1,
|
||||
ROTATE_180 ,
|
||||
FLOOR_SHAKE ,
|
||||
|
@@ -406,6 +406,9 @@ struct Lara : Character {
|
||||
|
||||
jointChest = 7;
|
||||
jointHead = 14;
|
||||
rangeChest = vec4(-0.40f, 0.40f, -0.90f, 0.90f) * PI;
|
||||
rangeHead = vec4(-0.25f, 0.25f, -0.50f, 0.50f) * PI;
|
||||
|
||||
oxygen = LARA_MAX_OXYGEN;
|
||||
hitDir = -1;
|
||||
damageTime = LARA_DAMAGE_TIME;
|
||||
@@ -437,7 +440,7 @@ struct Lara : Character {
|
||||
//reset(14, vec3(40448, 3584, 60928), PI * 0.5f, STAND_ONWATER); // gym (pool)
|
||||
//reset(14, vec3(20215, 6656, 52942), PI); // level 1 (bridge)
|
||||
//reset(33, vec3(48229, 4608, 78420), 270 * DEG2RAD); // level 1 (end)
|
||||
reset(15, vec3(70067, -256, 29104), -0.68f); // level 2 (pool)
|
||||
//reset(15, vec3(70067, -256, 29104), -0.68f); // level 2 (pool)
|
||||
//reset(26, vec3(71980, 1546, 19000), 270 * DEG2RAD); // level 2 (underwater switch)
|
||||
//reset(61, vec3(27221, -1024, 29205), PI * 0.5f); // level 2 (blade)
|
||||
//reset(43, vec3(31400, -2560, 25200), PI); // level 2 (reach)
|
||||
|
@@ -192,6 +192,9 @@ struct Level : IGame {
|
||||
}
|
||||
|
||||
virtual void playTrack(int track, bool restart = false) {
|
||||
#ifndef WIN32
|
||||
return;
|
||||
#endif
|
||||
if (track == 0)
|
||||
track = TR::LEVEL_INFO[level.id].ambientTrack;
|
||||
|
||||
|
Reference in New Issue
Block a user