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 firstPerson;
|
||||||
bool isVR;
|
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);
|
changeView(false);
|
||||||
if (owner->getEntity().type != TR::Entity::LARA && level->cameraFrames) {
|
if (owner->getEntity().type != TR::Entity::LARA && level->cameraFrames) {
|
||||||
state = STATE_CUTSCENE;
|
state = STATE_CUTSCENE;
|
||||||
|
@@ -29,6 +29,8 @@ struct Character : Controller {
|
|||||||
Controller *viewTarget;
|
Controller *viewTarget;
|
||||||
int jointChest;
|
int jointChest;
|
||||||
int jointHead;
|
int jointHead;
|
||||||
|
vec4 rangeChest;
|
||||||
|
vec4 rangeHead;
|
||||||
|
|
||||||
vec3 velocity;
|
vec3 velocity;
|
||||||
float angleExt;
|
float angleExt;
|
||||||
@@ -47,6 +49,9 @@ struct Character : Controller {
|
|||||||
stepHeight = 256;
|
stepHeight = 256;
|
||||||
dropHeight = -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();
|
animation.initOverrides();
|
||||||
rotHead = rotChest = quat(0, 0, 0, 1);
|
rotHead = rotChest = quat(0, 0, 0, 1);
|
||||||
|
|
||||||
@@ -202,7 +207,7 @@ struct Character : Controller {
|
|||||||
quat rot;
|
quat rot;
|
||||||
|
|
||||||
if (jointChest > -1) {
|
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);
|
rotChest = rotChest.slerp(quat(0, 0, 0, 1).slerp(rot, 0.5f), speed);
|
||||||
else
|
else
|
||||||
rotChest = rotChest.slerp(quat(0, 0, 0, 1), speed);
|
rotChest = rotChest.slerp(quat(0, 0, 0, 1), speed);
|
||||||
@@ -210,7 +215,7 @@ struct Character : Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (jointHead > -1) {
|
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);
|
rotHead = rotHead.slerp(rot, speed);
|
||||||
else
|
else
|
||||||
rotHead = rotHead.slerp(quat(0, 0, 0, 1), speed);
|
rotHead = rotHead.slerp(quat(0, 0, 0, 1), speed);
|
||||||
|
@@ -221,7 +221,7 @@ namespace TR {
|
|||||||
ANIM_CMD_EFFECT ,
|
ANIM_CMD_EFFECT ,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Effect : uint32 {
|
enum Effect : int32 {
|
||||||
NONE = -1,
|
NONE = -1,
|
||||||
ROTATE_180 ,
|
ROTATE_180 ,
|
||||||
FLOOR_SHAKE ,
|
FLOOR_SHAKE ,
|
||||||
|
@@ -406,6 +406,9 @@ struct Lara : Character {
|
|||||||
|
|
||||||
jointChest = 7;
|
jointChest = 7;
|
||||||
jointHead = 14;
|
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;
|
oxygen = LARA_MAX_OXYGEN;
|
||||||
hitDir = -1;
|
hitDir = -1;
|
||||||
damageTime = LARA_DAMAGE_TIME;
|
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(40448, 3584, 60928), PI * 0.5f, STAND_ONWATER); // gym (pool)
|
||||||
//reset(14, vec3(20215, 6656, 52942), PI); // level 1 (bridge)
|
//reset(14, vec3(20215, 6656, 52942), PI); // level 1 (bridge)
|
||||||
//reset(33, vec3(48229, 4608, 78420), 270 * DEG2RAD); // level 1 (end)
|
//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(26, vec3(71980, 1546, 19000), 270 * DEG2RAD); // level 2 (underwater switch)
|
||||||
//reset(61, vec3(27221, -1024, 29205), PI * 0.5f); // level 2 (blade)
|
//reset(61, vec3(27221, -1024, 29205), PI * 0.5f); // level 2 (blade)
|
||||||
//reset(43, vec3(31400, -2560, 25200), PI); // level 2 (reach)
|
//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) {
|
virtual void playTrack(int track, bool restart = false) {
|
||||||
|
#ifndef WIN32
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
if (track == 0)
|
if (track == 0)
|
||||||
track = TR::LEVEL_INFO[level.id].ambientTrack;
|
track = TR::LEVEL_INFO[level.id].ambientTrack;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user