mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-10 20:46:47 +03:00
Merge remote-tracking branch 'origin/lara_info'
# Conflicts: # TR5Main/Game/Lara/lara_flare.h # TR5Main/Scripting/GameLogicScript.cpp
This commit is contained in:
commit
8294e73199
24 changed files with 375 additions and 300 deletions
|
@ -196,12 +196,12 @@ function<LaraRoutineFunction> lara_control_routines[NUM_LARA_STATES + 1] = {
|
|||
lara_as_null,//137
|
||||
lara_as_null,//138
|
||||
lara_as_null,//ara_as_hang_feet,//139
|
||||
lara_as_null,//lara_as_hang_feet_shimmyr,//140
|
||||
lara_as_null,//lara_as_hang_feet_shimmyl,//141
|
||||
lara_as_null,//lara_as_hang_feet_inRcorner,//142
|
||||
lara_as_null,//lara_as_hang_feet_inLcorner,//143
|
||||
lara_as_null,//lara_as_hang_feet_outRcorner,//144
|
||||
lara_as_null,//lara_as_hang_feet_outLcorner,//145
|
||||
lara_as_hang_feet_shimmyr,//140
|
||||
lara_as_hang_feet_shimmyl,//141
|
||||
lara_as_hang_feet_inRcorner,//142
|
||||
lara_as_hang_feet_inLcorner,//143
|
||||
lara_as_hang_feet_outRcorner,//144
|
||||
lara_as_hang_feet_outLcorner,//145
|
||||
lara_as_controlledl,
|
||||
lara_as_null,
|
||||
lara_as_null,
|
||||
|
@ -349,9 +349,9 @@ function<LaraRoutineFunction> lara_collision_routines[NUM_LARA_STATES + 1] = {
|
|||
lara_void_func,
|
||||
lara_void_func,
|
||||
lara_void_func,
|
||||
lara_void_func,//lara_col_hang_feet,
|
||||
lara_void_func,//lara_col_hang_feet_shimmyr,
|
||||
lara_void_func,//lara_col_hang_feet_shimmyl,
|
||||
lara_col_hang_feet,
|
||||
lara_col_hang_feet_shimmyr,
|
||||
lara_col_hang_feet_shimmyl,
|
||||
lara_default_col,
|
||||
lara_default_col,
|
||||
lara_default_col,
|
||||
|
@ -789,8 +789,8 @@ void LaraControl(short itemNumber)
|
|||
}
|
||||
if (Lara.air < 0)
|
||||
{
|
||||
if (LaraDrawType == LARA_DIVESUIT && Lara.anxiety < 251)
|
||||
Lara.anxiety += 4;
|
||||
// if (LaraDrawType == LARA_DIVESUIT && Lara.anxiety < 251)
|
||||
// Lara.anxiety += 4;
|
||||
Lara.air = -1;
|
||||
item->hitPoints -= 5;
|
||||
}
|
||||
|
@ -1138,7 +1138,6 @@ void LaraCheat(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
Lara.gunStatus = LG_NO_ARMS;
|
||||
LaraInitialiseMeshes();
|
||||
Lara.meshEffects = 0;
|
||||
LaraItem->hitPoints = 1000;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -230,6 +230,12 @@ void lara_as_run(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (item->pos.zRot < -LARA_LEAN_MAX)
|
||||
item->pos.zRot = -LARA_LEAN_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->pos.zRot -= LARA_LEAN_RATE;
|
||||
if (item->pos.zRot < -LARA_LEAN_MAX * 3 / 5)//gives best results
|
||||
item->pos.zRot = -LARA_LEAN_MAX * 3 / 5;
|
||||
}
|
||||
}
|
||||
else if (TrInput & IN_RIGHT)
|
||||
{
|
||||
|
@ -243,6 +249,12 @@ void lara_as_run(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (item->pos.zRot > LARA_LEAN_MAX)
|
||||
item->pos.zRot = LARA_LEAN_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->pos.zRot += LARA_LEAN_RATE;
|
||||
if (item->pos.zRot > LARA_LEAN_MAX * 3 / 5)//gives best results
|
||||
item->pos.zRot = LARA_LEAN_MAX * 3 / 5;
|
||||
}
|
||||
}
|
||||
|
||||
if (item->animNumber == LA_STAND_TO_RUN)
|
||||
|
@ -1066,7 +1078,7 @@ void lara_col_reach(ITEM_INFO* item, COLL_INFO* coll)
|
|||
{
|
||||
if (TestHangSwingIn(item, angle))
|
||||
{
|
||||
/* if (TR12_OSCILLATE_HANG == true)
|
||||
if (Lara.NewAnims.OscillateHanging)
|
||||
{
|
||||
Lara.headYrot = 0;
|
||||
Lara.headXrot = 0;
|
||||
|
@ -1078,7 +1090,7 @@ void lara_col_reach(ITEM_INFO* item, COLL_INFO* coll)
|
|||
item->goalAnimState = LS_HANG;
|
||||
}
|
||||
else
|
||||
{ */
|
||||
{
|
||||
Lara.headYrot = 0;
|
||||
Lara.headXrot = 0;
|
||||
Lara.torsoYrot = 0;
|
||||
|
@ -1087,18 +1099,18 @@ void lara_col_reach(ITEM_INFO* item, COLL_INFO* coll)
|
|||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = LS_MONKEYSWING_IDLE;
|
||||
item->goalAnimState = LS_MONKEYSWING_IDLE;
|
||||
// }
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* if (TestHangFeet(item, angle))
|
||||
if (TestHangFeet(item, angle))
|
||||
{
|
||||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = LS_HANG;
|
||||
item->goalAnimState = LS_HANG_FEET;
|
||||
}
|
||||
else*/
|
||||
else
|
||||
{
|
||||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -1683,14 +1695,14 @@ void lara_col_upjump(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
else
|
||||
{
|
||||
/* if (TestHangFeet(item, angle))
|
||||
if (TestHangFeet(item, angle))
|
||||
{
|
||||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase + 12;
|
||||
item->currentAnimState = LS_HANG;
|
||||
item->goalAnimState = LS_HANG_FEET;
|
||||
}
|
||||
else*/
|
||||
else
|
||||
{
|
||||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase + 12;
|
||||
|
@ -1840,7 +1852,10 @@ void lara_col_roll(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (LaraFallen(item, coll))
|
||||
return;
|
||||
|
||||
if (TrInput & IN_FORWARD && item->animNumber == LA_SWANDIVE_ROLL)
|
||||
//##LUA debug etc.
|
||||
Lara.NewAnims.SwandiveRollRun = 1;
|
||||
|
||||
if (TrInput & IN_FORWARD && item->animNumber == LA_SWANDIVE_ROLL && Lara.NewAnims.SwandiveRollRun)
|
||||
{
|
||||
item->goalAnimState = LS_RUN_FORWARD;
|
||||
}
|
||||
|
@ -1957,8 +1972,14 @@ void lara_as_wade(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (TestLaraLean(item, coll))
|
||||
{
|
||||
item->pos.zRot -= LARA_LEAN_RATE;
|
||||
if (item->pos.zRot < -(LARA_LEAN_MAX / 2))
|
||||
item->pos.zRot = -(LARA_LEAN_MAX / 2);
|
||||
if (item->pos.zRot < -LARA_LEAN_MAX / 2)
|
||||
item->pos.zRot = -LARA_LEAN_MAX / 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->pos.zRot -= LARA_LEAN_RATE;
|
||||
if (item->pos.zRot < -LARA_LEAN_MAX * 3 / 5)
|
||||
item->pos.zRot = -LARA_LEAN_MAX * 3 / 5;
|
||||
}
|
||||
}
|
||||
else if (TrInput & IN_RIGHT)
|
||||
|
@ -1970,8 +1991,14 @@ void lara_as_wade(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (TestLaraLean(item, coll))
|
||||
{
|
||||
item->pos.zRot += LARA_LEAN_RATE;
|
||||
if (item->pos.zRot > (LARA_LEAN_MAX / 2))
|
||||
item->pos.zRot = (LARA_LEAN_MAX / 2);
|
||||
if (item->pos.zRot > LARA_LEAN_MAX / 2)
|
||||
item->pos.zRot = LARA_LEAN_MAX / 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->pos.zRot += LARA_LEAN_RATE;
|
||||
if (item->pos.zRot > LARA_LEAN_MAX * 3 / 5)
|
||||
item->pos.zRot = LARA_LEAN_MAX * 3 / 5;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1994,6 +2021,12 @@ void lara_as_wade(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (item->pos.zRot < -LARA_LEAN_MAX)
|
||||
item->pos.zRot = -LARA_LEAN_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->pos.zRot -= LARA_LEAN_RATE;
|
||||
if (item->pos.zRot < -LARA_LEAN_MAX * 3 / 5)
|
||||
item->pos.zRot = -LARA_LEAN_MAX * 3 / 5;
|
||||
}
|
||||
}
|
||||
else if (TrInput & IN_RIGHT)
|
||||
{
|
||||
|
@ -2007,6 +2040,12 @@ void lara_as_wade(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (item->pos.zRot > LARA_LEAN_MAX)
|
||||
item->pos.zRot = LARA_LEAN_MAX;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->pos.zRot += LARA_LEAN_RATE;
|
||||
if (item->pos.zRot > LARA_LEAN_MAX * 3 / 5)
|
||||
item->pos.zRot = LARA_LEAN_MAX * 3 / 5;
|
||||
}
|
||||
}
|
||||
|
||||
if (TrInput & IN_FORWARD)
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "lara_slide.h"
|
||||
#include "lara_collide.h"
|
||||
#include "draw.h"
|
||||
#include <Game/Lara/lara_flare.h>
|
||||
|
||||
/*this file has all the related functions to ducking and crawling*/
|
||||
|
||||
|
@ -33,8 +34,8 @@ void lara_as_duck(ITEM_INFO* item, COLL_INFO* coll)
|
|||
|
||||
GetFloor(LaraItem->pos.xPos, LaraItem->pos.yPos, LaraItem->pos.zPos, &roomNum);
|
||||
|
||||
// FOR DEBUG PURPOSES UNTIL SCRIPTING IS FINISHED-
|
||||
// EnableCrouchRoll = true;
|
||||
// FOR DEBUG PURPOSES UNTIL SCRIPTING IS FINISHED- ## LUA
|
||||
Lara.NewAnims.CrouchRoll = 1;
|
||||
|
||||
|
||||
if ((TrInput & IN_FORWARD || TrInput & IN_BACK)
|
||||
|
@ -48,7 +49,7 @@ void lara_as_duck(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if ((item->animNumber == LA_CROUCH_IDLE
|
||||
|| item->animNumber == LA_STAND_TO_CROUCH_END)
|
||||
&& !(TrInput & IN_FLARE || TrInput & IN_DRAW)
|
||||
&& (Lara.gunType != WEAPON_FLARE || Lara.flareAge < 900 && Lara.flareAge != 0))
|
||||
&& (Lara.gunType != WEAPON_FLARE || Lara.flareAge < FLARE_AGE && Lara.flareAge != 0))
|
||||
{
|
||||
Lara.torsoYrot = 0;
|
||||
Lara.torsoXrot = 0;
|
||||
|
@ -61,15 +62,15 @@ void lara_as_duck(ITEM_INFO* item, COLL_INFO* coll)
|
|||
&& Lara.gunStatus == LG_NO_ARMS
|
||||
&& Lara.waterStatus != LW_WADE
|
||||
|| Lara.waterSurfaceDist == 256
|
||||
&& !(Lara.waterSurfaceDist > 256))
|
||||
// && EnableCrouchRoll == true)
|
||||
&& !(Lara.waterSurfaceDist > 256)
|
||||
&& Lara.NewAnims.CrouchRoll)
|
||||
{
|
||||
if (LaraFloorFront(item, item->pos.yRot, 1024) >= 384 || //4 clicks away from holes in the floor
|
||||
TestWall(item, 1024, 0, -256)) //4 clicks away from walls
|
||||
TestWall(item, WALL_SIZE / 2, 0, -256)) //2 clicks away from walls + added a fix in lara_col_crouch_roll, better this way
|
||||
return;
|
||||
|
||||
if (!(TrInput & IN_FLARE || TrInput & IN_DRAW) //avoids some flare spawning/wep stuff
|
||||
&& (Lara.gunType != WEAPON_FLARE || Lara.flareAge < 900 && Lara.flareAge != 0))
|
||||
&& (Lara.gunType != WEAPON_FLARE || Lara.flareAge < FLARE_AGE && Lara.flareAge != 0))
|
||||
|
||||
{
|
||||
Lara.torsoYrot = 0;
|
||||
|
@ -130,7 +131,7 @@ void lara_col_duck(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
}
|
||||
|
||||
void lara_as_crouch_roll(ITEM_INFO* item, COLL_INFO* coll)
|
||||
void lara_as_crouch_roll(ITEM_INFO* item, COLL_INFO* coll)//horrible name.
|
||||
{
|
||||
/*state 72*/
|
||||
/*collision: lara_col_crouch_roll*/
|
||||
|
@ -138,26 +139,43 @@ void lara_as_crouch_roll(ITEM_INFO* item, COLL_INFO* coll)
|
|||
item->goalAnimState = LS_CROUCH_IDLE;
|
||||
}
|
||||
|
||||
void lara_col_crouch_roll(ITEM_INFO* item, COLL_INFO* coll)
|
||||
void lara_col_crouch_roll(ITEM_INFO* item, COLL_INFO* coll)//horrible name.
|
||||
{
|
||||
/*state 72*/
|
||||
/*state code: lara_as_crouch_roll*/
|
||||
Lara.isDucked = true;
|
||||
item->gravityStatus = false;
|
||||
item->gravityStatus = 0;
|
||||
item->fallspeed = 0;
|
||||
Lara.moveAngle = item->pos.yRot;
|
||||
coll->badPos = 384;
|
||||
coll->facing = item->pos.yRot;
|
||||
coll->badPos = STEPUP_HEIGHT;
|
||||
coll->badNeg = -STEPUP_HEIGHT;
|
||||
coll->badNeg = -384;
|
||||
coll->badCeiling = 0;
|
||||
coll->slopesAreWalls = true;
|
||||
coll->facing = Lara.moveAngle;
|
||||
GetCollisionInfo(coll, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber, -400);
|
||||
coll->slopesAreWalls = 1;
|
||||
GetCollisionInfo(coll, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber, 400);
|
||||
|
||||
if (LaraFallen(item, coll))
|
||||
Lara.gunStatus = LG_NO_ARMS;
|
||||
else if (!TestLaraSlide(item, coll))
|
||||
{
|
||||
if (coll->midCeiling >= -362)
|
||||
Lara.keepDucked = 1;
|
||||
else
|
||||
Lara.keepDucked = 0;
|
||||
|
||||
if (coll->midFloor < coll->badNeg)//hit a wall, stop
|
||||
{
|
||||
item->pos.xPos = coll->old.x;
|
||||
item->pos.yPos = coll->old.y;
|
||||
item->pos.zPos = coll->old.z;
|
||||
return;
|
||||
}
|
||||
|
||||
ShiftItem(item, coll);
|
||||
if (coll->midFloor != NO_HEIGHT)
|
||||
|
||||
if (!LaraHitCeiling(item, coll))
|
||||
item->pos.yPos += coll->midFloor;
|
||||
}
|
||||
}
|
||||
/*crouch/duck end*/
|
||||
/*-*/
|
||||
/*crawl start*/
|
||||
|
@ -172,17 +190,14 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
|
||||
// FOR DEBUG PURPOSES UNTIL SCRIPTING IS FINISHED
|
||||
// EnableCrawlFlex1clickdown = true;
|
||||
// EnableCrawlFlex1clickup = true;
|
||||
// EnableCrawlFlex3clickE = true;
|
||||
// EnableCrawlFlex2clickE = true;
|
||||
// EnableCrawlFlex1clickE = true;
|
||||
// Lara.NewAnims.Crawl1clickdown = 1;
|
||||
// Lara.NewAnims.Crawl1clickup = 1;
|
||||
// Lara.NewAnims.CrawlExit1click = 1;
|
||||
// Lara.NewAnims.CrawlExit2click = 1;
|
||||
// Lara.NewAnims.CrawlExit3click = 1;
|
||||
Lara.NewAnims.CrawlExitJump = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (TrInput & IN_JUMP)
|
||||
if (TrInput & IN_JUMP && Lara.NewAnims.CrawlExitJump)
|
||||
{
|
||||
GAME_VECTOR s, d;
|
||||
MESH_INFO* StaticMesh;
|
||||
|
@ -228,7 +243,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)
|
|||
d.y = s.y + 160;
|
||||
d.z = s.z + 768 * phd_cos(LaraItem->pos.yRot);
|
||||
|
||||
if (LOS(&s, &d) && item->animNumber != LA_CROUCH_TO_CRAWL_START && item->animNumber != LA_CROUCH_TO_CRAWL_CONTINUE)// && EnableCrawlFlex3clickE == true)
|
||||
if (LOS(&s, &d) && item->animNumber != LA_CROUCH_TO_CRAWL_START && item->animNumber != LA_CROUCH_TO_CRAWL_CONTINUE && Lara.NewAnims.CrawlExit3click)
|
||||
{
|
||||
item->animNumber = LA_CRAWL_JUMP_DOWN_23CLICK;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -252,7 +267,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)
|
|||
d.y = s.y + 160;
|
||||
d.z = s.z + 768 * phd_cos(LaraItem->pos.yRot);
|
||||
|
||||
if (LOS(&s, &d) && item->animNumber != LA_CROUCH_TO_CRAWL_START && item->animNumber != LA_CROUCH_TO_CRAWL_CONTINUE)// && EnableCrawlFlex2clickE == true)
|
||||
if (LOS(&s, &d) && item->animNumber != LA_CROUCH_TO_CRAWL_START && item->animNumber != LA_CROUCH_TO_CRAWL_CONTINUE && Lara.NewAnims.CrawlExit2click)
|
||||
{
|
||||
item->animNumber = LA_CRAWL_JUMP_DOWN_23CLICK;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -275,7 +290,7 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)
|
|||
d.y = s.y + 160;
|
||||
d.z = s.z + 768 * phd_cos(LaraItem->pos.yRot);
|
||||
|
||||
if (LOS(&s, &d) && item->animNumber != LA_CROUCH_TO_CRAWL_START && item->animNumber != LA_CROUCH_TO_CRAWL_CONTINUE)// && EnableCrawlFlex1clickE == true)
|
||||
if (LOS(&s, &d) && item->animNumber != LA_CROUCH_TO_CRAWL_START && item->animNumber != LA_CROUCH_TO_CRAWL_CONTINUE && Lara.NewAnims.CrawlExit1click)
|
||||
{
|
||||
item->animNumber = LA_CRAWL_JUMP_DOWN_1CLICK;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -292,8 +307,8 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)
|
|||
{
|
||||
if (LaraFloorFront(item, item->pos.yRot, 256) == -256 &&
|
||||
LaraCeilingFront(item, item->pos.yRot, 256, 256) != NO_HEIGHT &&
|
||||
LaraCeilingFront(item, item->pos.yRot, 256, 256) <= -512)// &&
|
||||
// EnableCrawlFlex1clickup == true)
|
||||
LaraCeilingFront(item, item->pos.yRot, 256, 256) <= -512 &&
|
||||
Lara.NewAnims.Crawl1clickup)
|
||||
{
|
||||
item->animNumber = LA_CRAWL_UP_STEP;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -303,8 +318,8 @@ void lara_as_all4s(ITEM_INFO* item, COLL_INFO* coll)
|
|||
else
|
||||
if (LaraFloorFront(item, item->pos.yRot, 256) == 256 &&
|
||||
LaraCeilingFront(item, item->pos.yRot, 256, 256) != NO_HEIGHT &&
|
||||
LaraCeilingFront(item, item->pos.yRot, 256, -256) <= -512)// &&
|
||||
// EnableCrawlFlex1clickdown == true)
|
||||
LaraCeilingFront(item, item->pos.yRot, 256, -256) <= -512 &&
|
||||
Lara.NewAnims.Crawl1clickdown)
|
||||
{
|
||||
item->animNumber = LA_CRAWL_DOWN_STEP;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -498,7 +513,7 @@ void lara_as_crawl(ITEM_INFO* item, COLL_INFO* coll)
|
|||
{
|
||||
/*state 81*/
|
||||
/*collision: lara_col_crawl*/
|
||||
if (item->hitPoints <= 0 || TrInput & IN_JUMP)
|
||||
if (item->hitPoints <= 0)
|
||||
{
|
||||
item->goalAnimState = LS_CRAWL_IDLE;
|
||||
return;
|
||||
|
@ -839,14 +854,14 @@ void lara_col_crawl2hang(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
else
|
||||
{
|
||||
/* if (TestHangFeet(item, angle))
|
||||
if (TestHangFeet(item, angle))
|
||||
{
|
||||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = LS_HANG;
|
||||
item->goalAnimState = LS_HANG_FEET;
|
||||
}
|
||||
else*/
|
||||
else
|
||||
{
|
||||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
|
|
@ -64,7 +64,7 @@ void FlareControl(short itemNumber)
|
|||
DoProperDetection(itemNumber, oldX, oldY, oldZ, xv, item->fallspeed, zv);
|
||||
|
||||
short age = (short)(item->data) & 0x7FFF;
|
||||
if (age >= 900)
|
||||
if (age >= FLARE_AGE)
|
||||
{
|
||||
if (!item->fallspeed && !item->speed)
|
||||
{
|
||||
|
@ -397,7 +397,7 @@ void DoFlareInHand(int flare_age)
|
|||
|
||||
/* Hardcoded code */
|
||||
|
||||
if (Lara.flareAge >= 900)
|
||||
if (Lara.flareAge >= FLARE_AGE)
|
||||
{
|
||||
if (Lara.gunStatus == LG_NO_ARMS)
|
||||
Lara.gunStatus = LG_UNDRAW_GUNS;
|
||||
|
@ -414,7 +414,7 @@ int DoFlareLight(PHD_VECTOR* pos, int age)
|
|||
int r, g, b;
|
||||
float random;
|
||||
int falloff;
|
||||
if (age >= 900 || age == 0)
|
||||
if (age >= FLARE_AGE || age == 0)
|
||||
return 0;
|
||||
random = generateFloat();
|
||||
|
||||
|
@ -433,7 +433,7 @@ int DoFlareLight(PHD_VECTOR* pos, int age)
|
|||
TriggerDynamicLight(x, y, z, falloff, r, g, b);
|
||||
return (random < 0.9f);
|
||||
}
|
||||
else if (age < 810)
|
||||
else if (age < (FLARE_AGE - 90))
|
||||
{
|
||||
float multiplier = FlareFlickerTable[age % FlareFlickerTable.size()];
|
||||
falloff = 12*multiplier;
|
||||
|
@ -448,7 +448,7 @@ int DoFlareLight(PHD_VECTOR* pos, int age)
|
|||
{
|
||||
float multiplier = FlareFlickerTableLow[age % FlareFlickerTableLow.size()];
|
||||
|
||||
falloff = 12* (1.0f - ((age-810) / (900-810)));
|
||||
falloff = 12 * (1.0f - ((age - (FLARE_AGE - 90)) / (FLARE_AGE - (FLARE_AGE - 90))));
|
||||
r = FlareMainColor.x * 255 * multiplier;
|
||||
g = FlareMainColor.y * 255 * multiplier;
|
||||
b = FlareMainColor.z * 255 * multiplier;
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
enum GAME_OBJECT_ID : short;
|
||||
|
||||
#define FLARE_AGE 30*30 //30 seconds * 30 frames
|
||||
|
||||
void FlareControl(short item_number);
|
||||
void ready_flare();
|
||||
void undraw_flare_meshes();
|
||||
|
|
|
@ -274,10 +274,10 @@ void lara_as_intcornerr(ITEM_INFO* item, COLL_INFO* coll)
|
|||
-corner anims(works well, tested with placeholder anims)
|
||||
-handstand(not tested)*/
|
||||
|
||||
/*void lara_as_hang_feet(ITEM_INFO* item, COLL_INFO* coll)
|
||||
void lara_as_hang_feet(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 139*/
|
||||
/*collision: lara_col_hang_feet
|
||||
//collision: lara_col_hang_feet
|
||||
Lara.isClimbing = false;
|
||||
|
||||
if (item->hitPoints <= 0)
|
||||
|
@ -298,7 +298,7 @@ void lara_as_intcornerr(ITEM_INFO* item, COLL_INFO* coll)
|
|||
void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 139*/
|
||||
/*state code: lara_as_hang_feet
|
||||
//state code: lara_as_hang_feet
|
||||
item->fallspeed = 0;
|
||||
item->gravityStatus = false;
|
||||
|
||||
|
@ -395,7 +395,7 @@ void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
if (Lara.climbStatus != 0 &&
|
||||
coll->midCeiling <= -256 &&
|
||||
abs(coll->leftCeiling2 - coll->rightCeiling2) < 60)
|
||||
|
@ -406,24 +406,24 @@ void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
else
|
||||
{
|
||||
item->animNumber = LA_LADDER_UP_HANDS;
|
||||
item->animNumber = LA_LADDER_SHIMMY_UP;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
item->goalAnimState = LS_HANG;
|
||||
item->currentAnimState = LS_HANG;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Lara.moveAngle = item->pos.yRot;
|
||||
LaraHangTest(item, coll);
|
||||
}
|
||||
}
|
||||
|
||||
void lara_as_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 140*/
|
||||
/*collision: lara_col_hang_feet_shimmyr
|
||||
//collision: lara_col_hang_feet_shimmyr
|
||||
coll->enableBaddiePush = false;
|
||||
coll->enableSpaz = false;
|
||||
Camera.targetAngle = 0;
|
||||
|
@ -436,7 +436,7 @@ void lara_as_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll)
|
|||
void lara_col_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 140*/
|
||||
/*state code: lara_as_hang_feet_shimmyr
|
||||
//state code: lara_as_hang_feet_shimmyr
|
||||
Lara.moveAngle = item->pos.yRot + ANGLE(90);
|
||||
coll->radius = LARA_RAD;
|
||||
LaraHangTest(item, coll);
|
||||
|
@ -446,7 +446,7 @@ void lara_col_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll)
|
|||
void lara_as_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 141*/
|
||||
/*collision: lara_col_hang_feet_shimmyl
|
||||
//collision: lara_col_hang_feet_shimmyl
|
||||
coll->enableBaddiePush = false;
|
||||
coll->enableSpaz = false;
|
||||
Camera.targetAngle = 0;
|
||||
|
@ -458,55 +458,51 @@ void lara_as_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll)
|
|||
void lara_col_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 141*/
|
||||
/*state code: lara_as_hang_feet_shimmyl
|
||||
//state code: lara_as_hang_feet_shimmyl
|
||||
Lara.moveAngle = item->pos.yRot - ANGLE(90);
|
||||
coll->radius = LARA_RAD;
|
||||
LaraHangTest(item, coll);
|
||||
Lara.moveAngle = item->pos.yRot - ANGLE(90);
|
||||
}
|
||||
|
||||
/*go around corners feet
|
||||
//go around corners feet
|
||||
|
||||
void lara_as_hang_feet_inRcorner(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 142*/
|
||||
/*collision: lara_default_col
|
||||
//collision: lara_default_col
|
||||
Camera.laraNode = 8;
|
||||
Camera.targetElevation = ANGLE(33.0f);
|
||||
if (item->frameNumber == g_Level.Anims[LA_SHIMMY_FEET_RIGHT_CORNER_INNER].frameEnd) // I don't like this either but it's better than adding 4 new 1 frame anims?
|
||||
SetCornerAnimFeet(item, coll, ANGLE(90.0f),
|
||||
item->animNumber = LA_SHIMMY_FEET_RIGHT_CORNER_INNER);
|
||||
SetCornerAnimFeet(item, coll, ANGLE(90.0f), 1);
|
||||
}
|
||||
|
||||
void lara_as_hang_feet_inLcorner(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 143*/
|
||||
/*collision: lara_default_col
|
||||
//collision: lara_default_col
|
||||
Camera.laraNode = 8;
|
||||
Camera.targetElevation = ANGLE(33.0f);
|
||||
if (item->frameNumber == g_Level.Anims[LA_SHIMMY_FEET_LEFT_CORNER_INNER].frameEnd)
|
||||
SetCornerAnimFeet(item, coll, -ANGLE(90.0f),
|
||||
item->animNumber = LA_SHIMMY_FEET_LEFT_CORNER_INNER);
|
||||
SetCornerAnimFeet(item, coll, -ANGLE(90.0f), 1);
|
||||
}
|
||||
|
||||
void lara_as_hang_feet_outRcorner(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 144*/
|
||||
/*collision: lara_default_col
|
||||
//collision: lara_default_col
|
||||
Camera.laraNode = 8;
|
||||
Camera.targetElevation = ANGLE(33.0f);
|
||||
if (item->frameNumber == g_Level.Anims[LA_SHIMMY_FEET_RIGHT_CORNER_OUTER].frameEnd)
|
||||
SetCornerAnimFeet(item, coll, -ANGLE(90.0f),
|
||||
item->animNumber = LA_SHIMMY_FEET_RIGHT_CORNER_OUTER);
|
||||
SetCornerAnimFeet(item, coll, -ANGLE(90.0f), 1);
|
||||
}
|
||||
|
||||
void lara_as_hang_feet_outLcorner(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
/*state 145*/
|
||||
/*collision: lara_default_col
|
||||
//collision: lara_default_col
|
||||
Camera.laraNode = 8;
|
||||
Camera.targetElevation = ANGLE(33.0f);
|
||||
if (item->frameNumber == g_Level.Anims[LA_SHIMMY_FEET_LEFT_CORNER_OUTER].frameEnd)
|
||||
SetCornerAnimFeet(item, coll, ANGLE(90.0f),
|
||||
item->animNumber = LA_SHIMMY_FEET_LEFT_CORNER_OUTER);
|
||||
}*/
|
||||
SetCornerAnimFeet(item, coll, ANGLE(90.0f), 1);
|
||||
}
|
||||
|
|
|
@ -13,15 +13,15 @@ void lara_as_extcornerl(ITEM_INFO* item, COLL_INFO* coll);
|
|||
void lara_as_extcornerr(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_intcornerl(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_intcornerr(ITEM_INFO* item, COLL_INFO* coll);
|
||||
/*feet hanging and shimmying
|
||||
//feet hanging and shimmying
|
||||
void lara_as_hang_feet(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_col_hang_feet(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_col_hang_feet_shimmyr(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_col_hang_feet_shimmyl(ITEM_INFO* item, COLL_INFO* coll);
|
||||
/*go around corners feet
|
||||
//go around corners feet
|
||||
void lara_as_hang_feet_inRcorner(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_hang_feet_inLcorner(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_hang_feet_outRcorner(ITEM_INFO* item, COLL_INFO* coll);
|
||||
void lara_as_hang_feet_outLcorner(ITEM_INFO* item, COLL_INFO* coll);*/
|
||||
void lara_as_hang_feet_outLcorner(ITEM_INFO* item, COLL_INFO* coll);
|
||||
|
|
|
@ -58,7 +58,8 @@ void InitialiseLara(int restore)
|
|||
Lara.ropePtr = -1;
|
||||
LaraItem->hitPoints = 1000;
|
||||
Lara.gunStatus = LG_NO_ARMS;
|
||||
Lara.skelebob = 0;
|
||||
// Lara.skelebob = 0;
|
||||
memset(&Lara.NewAnims, 0, sizeof(AnimsNew)); //make sure script changes these AFTER Lara is initialized?
|
||||
|
||||
LARA_WEAPON_TYPE gun = WEAPON_NONE;
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ void lara_col_hang2(ITEM_INFO* item, COLL_INFO* coll)
|
|||
GetCollisionInfo(coll, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber, 600);
|
||||
|
||||
// FOR DEBUG PURPOSES UNTIL SCRIPTING IS READY-
|
||||
// EnableMonkeyRoll = true;
|
||||
Lara.NewAnims.Monkey180Roll = 1;
|
||||
|
||||
|
||||
if (TrInput & IN_FORWARD && coll->collType != CT_FRONT && abs(coll->midCeiling - coll->frontCeiling) < 50)
|
||||
|
@ -84,7 +84,7 @@ void lara_col_hang2(ITEM_INFO* item, COLL_INFO* coll)
|
|||
{
|
||||
item->goalAnimState = LS_MONKEYSWING_TURN_RIGHT;
|
||||
}
|
||||
else if ((TrInput & IN_ROLL))// && EnableMonkeyRoll == true)
|
||||
else if (TrInput & IN_ROLL && Lara.NewAnims.Monkey180Roll)
|
||||
{
|
||||
item->goalAnimState = LS_MONKEYSWING_TURN_180;
|
||||
}
|
||||
|
|
|
@ -472,10 +472,10 @@ enum LARA_ANIM
|
|||
LA_CRAWL_IDLE = 263, // Crwal idle
|
||||
LA_CROUCH_TO_CRAWL_END = 264, // Crawl > crouch (2/2)
|
||||
LA_CRAWL_TO_CROUCH_END_UNUSED = 265, // Crouch > crawl (3/3)
|
||||
LA_CRAWL_TO_IDLE_END_RIGHT_POINTLESS = 266, // TODO: remove.
|
||||
LA_CRAWL_TO_IDLE_END_RIGHT_POINTLESS = 266, // TODO: remove.//no dont remove thanks
|
||||
LA_CRAWL_TO_IDLE_RIGHT = 267, // Crawl forward > crawl idle, right leg first
|
||||
// TODO: in WAD, link next to 263
|
||||
LA_CRAWL_TO_IDLE_END_LEFT_POINTLESS = 268, // TODO: remove.
|
||||
LA_CRAWL_TO_IDLE_END_LEFT_POINTLESS = 268, // TODO: remove. //no dont remove thanks
|
||||
LA_CRAWL_TURN_LEFT = 269, // Crawl rotate left (looped)
|
||||
LA_CRAWL_TURN_RIGHT = 270, // Crawl rotate right (looped)
|
||||
LA_MONKEYSWING_TURN_LEFT = 271, // Monkey swing rotate left
|
||||
|
@ -961,6 +961,25 @@ typedef struct LARA_ARM
|
|||
short flash_gun;
|
||||
};
|
||||
|
||||
struct AnimsNew
|
||||
{
|
||||
bool CrouchRoll; //crouch roll
|
||||
bool Monkey180Roll; //the 180° roll on monkeybars
|
||||
bool Crawl1clickup; //going 1 click up in crawlspaces
|
||||
bool Crawl1clickdown; //going 1 click down in crawlspaces
|
||||
bool CrawlExit1click; //crawlspace exit at 1 click
|
||||
bool CrawlExit2click; //crawlspace exit at 2 clicks
|
||||
bool CrawlExit3click; //crawlspace exit at 3 clicks
|
||||
bool CrawlVault1click; //vault into crawlspace at 1 click
|
||||
bool CrawlVault2click; //vault into crawlspace at 2 clicks
|
||||
bool CrawlVault3click; //vault into crawlspace at 3 clicks
|
||||
bool MonkeyVault; //vault up to monkeybars when pressing up + action underneath them. super annoying :)
|
||||
bool CrawlExitJump; //TR5 crawlspace exit with jump!
|
||||
bool SwandiveRollRun; //the transition from swandive roll to run
|
||||
bool OscillateHanging; //the thin ledge grab animation from TR1 and 2
|
||||
bool FeetHanging; //Daniel's super awesome feet hanging
|
||||
};
|
||||
|
||||
typedef struct LaraInfo
|
||||
{
|
||||
short itemNumber;
|
||||
|
@ -989,11 +1008,8 @@ typedef struct LaraInfo
|
|||
short flareFrame;
|
||||
short poisoned;
|
||||
short dpoisoned;
|
||||
short electric; // used for electric value in TR3
|
||||
byte anxiety;
|
||||
byte wet[NUM_LARA_MESHES];
|
||||
bool flareControlLeft;
|
||||
bool flareControlRight; // not used
|
||||
bool look;
|
||||
bool burn;
|
||||
bool keepDucked;
|
||||
|
@ -1012,7 +1028,6 @@ typedef struct LaraInfo
|
|||
int waterSurfaceDist;
|
||||
PHD_VECTOR lastPos;
|
||||
FX_INFO* spazEffect;
|
||||
int meshEffects;
|
||||
int meshPtrs[NUM_LARA_MESHES];
|
||||
ITEM_INFO* target;
|
||||
short targetAngles[2];
|
||||
|
@ -1047,7 +1062,6 @@ typedef struct LaraInfo
|
|||
byte ropeFlag;
|
||||
byte moveCount;
|
||||
int ropeCount;
|
||||
byte skelebob;
|
||||
byte wetcloth;
|
||||
byte bottle;
|
||||
signed char location;
|
||||
|
@ -1056,12 +1070,12 @@ typedef struct LaraInfo
|
|||
byte tightRopeOnCount;
|
||||
byte tightRopeOff;
|
||||
byte tightRopeFall;
|
||||
byte chaffTimer;
|
||||
/// =================================== NEW:
|
||||
byte BeetleLife;
|
||||
short hasBeetleThings;// & 1 -> beetle. & 2 -> combo1. & 4 ->combo2
|
||||
byte small_waterskin;// 1 = has the waterskin. 2 = has the waterskin and it has 1 liter. etc. max value is 4: has skin + 3 = 4
|
||||
byte big_waterskin;// 1 = has the waterskin. 2 = has the waterskin and it has 1 liter. etc. max value is 6: has skin + 5 liters = 6
|
||||
AnimsNew NewAnims;//troye's creative naming
|
||||
short Vehicle;
|
||||
short ExtraAnim;
|
||||
bool mineL;
|
||||
|
|
|
@ -649,7 +649,7 @@ void LaraSwimCollision(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
else if (item->fallspeed > 100)
|
||||
{
|
||||
if (LaraDrawType == 5)
|
||||
/* if (LaraDrawType == 5)
|
||||
{
|
||||
SoundEffect(SFX_TR5_SWIMSUIT_METAL_CLASH, &LaraItem->pos, ((2 * GetRandomControl() + 0x8000) * 256) | 6);
|
||||
}
|
||||
|
@ -657,7 +657,7 @@ void LaraSwimCollision(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (Lara.anxiety < 96)
|
||||
{
|
||||
Lara.anxiety += 16;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if (Lara.waterStatus != LW_FLYCHEAT && Lara.ExtraAnim == NO_ITEM)
|
||||
|
|
|
@ -18,9 +18,6 @@ static short RightClimbTab[4] = // offset 0xA0640
|
|||
0x0800, 0x0100, 0x0200, 0x0400
|
||||
};
|
||||
|
||||
//bool EnableCrawlFlex1click, EnableCrawlFlex2click, EnableCrawlFlex3click, EnableMonkeyVault;
|
||||
//bool TR12_OSCILLATE_HANG, EnableFeetHang;
|
||||
|
||||
/*this file has all the generic test functions called in lara's state code*/
|
||||
|
||||
int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll)
|
||||
|
@ -28,10 +25,11 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll)
|
|||
if (!(TrInput & IN_ACTION) || Lara.gunStatus != LG_NO_ARMS)
|
||||
return 0;
|
||||
|
||||
// EnableCrawlFlex1click = true;
|
||||
// EnableCrawlFlex2click = true;
|
||||
// EnableCrawlFlex3click = true;
|
||||
// EnableMonkeyVault = true;
|
||||
//##LUA debug etc.
|
||||
// Lara.NewAnims.CrawlVault1click = 1;
|
||||
// Lara.NewAnims.CrawlVault2click = 1;
|
||||
// Lara.NewAnims.CrawlVault3click = 1;
|
||||
// Lara.NewAnims.MonkeyVault = 1;
|
||||
|
||||
if (coll->collType == CT_FRONT)
|
||||
{
|
||||
|
@ -56,7 +54,7 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll)
|
|||
|
||||
if (coll->frontFloor < 0 && coll->frontFloor >= -256)
|
||||
{
|
||||
if (!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256))// && EnableCrawlFlex1click == true)
|
||||
if (!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256) && Lara.NewAnims.CrawlVault1click)
|
||||
{
|
||||
item->animNumber = LA_VAULT_TO_CROUCH_1CLICK;
|
||||
item->currentAnimState = LS_GRABBING;
|
||||
|
@ -85,7 +83,7 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll)
|
|||
item->pos.yPos += coll->frontFloor + 512;
|
||||
Lara.gunStatus = LG_HANDS_BUSY;
|
||||
}
|
||||
else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256)))// && EnableCrawlFlex2click == true)
|
||||
else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256)) && Lara.NewAnims.CrawlVault2click)
|
||||
{
|
||||
item->animNumber = LA_VAULT_TO_CROUCH_2CLICK;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -118,7 +116,7 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll)
|
|||
item->pos.yPos += coll->frontFloor + 768;
|
||||
Lara.gunStatus = LG_HANDS_BUSY;
|
||||
}
|
||||
else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256)))// && EnableCrawlFlex3click == true))
|
||||
else if ((!slope && (abs(coll->frontCeiling - coll->frontFloor) < 256)) && Lara.NewAnims.CrawlVault3click)
|
||||
{
|
||||
item->animNumber = LA_VAULT_TO_CROUCH_3CLICK;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
|
@ -197,36 +195,24 @@ int TestLaraVault(ITEM_INFO* item, COLL_INFO* coll)
|
|||
}
|
||||
return 1;
|
||||
}
|
||||
#if 0
|
||||
else// if (EnableMonkeyVault == true)
|
||||
else if (Lara.NewAnims.MonkeyVault)//gross
|
||||
{
|
||||
if (Lara.canMonkeySwing)
|
||||
{
|
||||
FLOOR_INFO* F;
|
||||
int c, h;
|
||||
short roomNum = item->roomNumber;
|
||||
F = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNum);
|
||||
c = GetCeiling(F, item->pos.xPos, item->pos.yPos, item->pos.zPos);
|
||||
h = (c)-(item->pos.yPos);
|
||||
if (h > 1792 ||
|
||||
h < -1792 ||
|
||||
abs(h) == 768)
|
||||
{
|
||||
int ceiling = (GetCeiling(GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNum),
|
||||
item->pos.xPos, item->pos.yPos, item->pos.zPos))-(item->pos.yPos);
|
||||
|
||||
if (ceiling > 1792 || ceiling < -1792 || abs(ceiling) == 768)
|
||||
return 0;
|
||||
}
|
||||
|
||||
item->animNumber = LA_STAND_IDLE;
|
||||
item->frameNumber = g_Level.Anims[LA_STAND_IDLE].frameBase;
|
||||
item->goalAnimState = LS_JUMP_UP;
|
||||
item->currentAnimState = LS_TEST_1;
|
||||
AnimateLara(item);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
// else
|
||||
return 0;
|
||||
#else
|
||||
else return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int TestWall(ITEM_INFO* item, int front, int right, int down)
|
||||
|
@ -439,13 +425,13 @@ int LaraHangTest(ITEM_INFO* item, COLL_INFO* coll)
|
|||
item->animNumber = LA_REACH_TO_HANG;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase + 21;
|
||||
}
|
||||
/* else if (item->currentAnimState == LS_SHIMMY_FEET_LEFT || item->currentAnimState == LS_SHIMMY_FEET_RIGHT)
|
||||
else if (item->currentAnimState == LS_SHIMMY_FEET_LEFT || item->currentAnimState == LS_SHIMMY_FEET_RIGHT)
|
||||
{
|
||||
item->currentAnimState = LS_HANG_FEET;
|
||||
item->goalAnimState = LS_HANG_FEET;
|
||||
item->animNumber = LA_HANG_FEET_IDLE;
|
||||
item->frameNumber = g_Level.Anims[item->animNumber].frameBase;
|
||||
}*/
|
||||
}
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
|
@ -470,7 +456,7 @@ int LaraHangTest(ITEM_INFO* item, COLL_INFO* coll)
|
|||
|
||||
int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
if (item->animNumber != LA_REACH_TO_HANG)// && item->animNumber != LA_HANG_FEET_IDLE)
|
||||
if (item->animNumber != LA_REACH_TO_HANG && item->animNumber != LA_HANG_FEET_IDLE)
|
||||
return 0;
|
||||
|
||||
if (coll->hitStatic)
|
||||
|
@ -625,7 +611,7 @@ int LaraHangLeftCornerTest(ITEM_INFO* item, COLL_INFO* coll)
|
|||
|
||||
int LaraHangRightCornerTest(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
if (item->animNumber != LA_REACH_TO_HANG)// && item->animNumber != LA_HANG_FEET_IDLE)
|
||||
if (item->animNumber != LA_REACH_TO_HANG && item->animNumber != LA_HANG_FEET_IDLE)
|
||||
return 0;
|
||||
|
||||
if (coll->hitStatic)
|
||||
|
@ -945,24 +931,7 @@ int TestHangSwingIn(ITEM_INFO* item, short angle)
|
|||
int h, c;
|
||||
|
||||
//debug till scripting be ready
|
||||
// TR12_OSCILLATE_HANG = true;
|
||||
|
||||
/*if (angle == ANGLE(180.0f))
|
||||
{
|
||||
z -= 256;
|
||||
}
|
||||
else if (angle == -ANGLE(90))
|
||||
{
|
||||
x -= 256;
|
||||
}
|
||||
else if (angle == ANGLE(90))
|
||||
{
|
||||
x += 256;
|
||||
}
|
||||
else if (angle == ANGLE(0))
|
||||
{
|
||||
z += 256;
|
||||
}*/
|
||||
Lara.NewAnims.OscillateHanging = 0;
|
||||
|
||||
z += phd_cos(angle) * STEP_SIZE;
|
||||
x += phd_sin(angle) * STEP_SIZE;
|
||||
|
@ -973,35 +942,29 @@ int TestHangSwingIn(ITEM_INFO* item, short angle)
|
|||
|
||||
if (h != NO_HEIGHT)
|
||||
{
|
||||
/* if (TR12_OSCILLATE_HANG == true)
|
||||
if (Lara.NewAnims.OscillateHanging)
|
||||
{
|
||||
if (((h - y) > 0)
|
||||
&& ((c - y) < -400))
|
||||
return(1);
|
||||
if (h - y > 0 && c - y < -400)
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{*/
|
||||
if (((h - y) > 0)
|
||||
&& ((c - y) < -400)
|
||||
&& ((y - 819 - c) > -72))
|
||||
return(1);
|
||||
// }
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
/*int TestHangFeet(ITEM_INFO* item, short angle)
|
||||
{
|
||||
if (h - y > 0 && c - y < -400 && (y - 819 - c > -72))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
if (Lara.climbStatus)
|
||||
}
|
||||
|
||||
bool TestHangFeet(ITEM_INFO* item, short angle)
|
||||
{
|
||||
//##LUA debug etc.
|
||||
Lara.NewAnims.FeetHanging = 0;
|
||||
|
||||
if (Lara.climbStatus || !Lara.NewAnims.FeetHanging)
|
||||
return 0;
|
||||
|
||||
// EnableFeetHang = true;
|
||||
|
||||
|
||||
// if (!EnableFeetHang)
|
||||
// return 0;
|
||||
|
||||
int x = item->pos.xPos;
|
||||
int y = item->pos.yPos;
|
||||
int z = item->pos.zPos;
|
||||
|
@ -1009,22 +972,8 @@ int TestHangSwingIn(ITEM_INFO* item, short angle)
|
|||
FLOOR_INFO* floor;
|
||||
int h, c, g, m, j;
|
||||
|
||||
if (angle == ANGLE(180.0f))
|
||||
{
|
||||
z -= 256;
|
||||
}
|
||||
else if (angle == -ANGLE(90.0f))
|
||||
{
|
||||
x -= 256;
|
||||
}
|
||||
else if (angle == ANGLE(90.0f))
|
||||
{
|
||||
x += 256;
|
||||
}
|
||||
else if (angle == ANGLE(0.0f))
|
||||
{
|
||||
z += 256;
|
||||
}
|
||||
z += phd_cos(angle) * STEP_SIZE;
|
||||
x += phd_sin(angle) * STEP_SIZE;
|
||||
|
||||
floor = GetFloor(x, y, z, &roomNum);
|
||||
h = GetFloorHeight(floor, x, y, z);
|
||||
|
@ -1033,29 +982,12 @@ int TestHangSwingIn(ITEM_INFO* item, short angle)
|
|||
m = c - y;
|
||||
j = y - 128 - c;
|
||||
|
||||
if (item->currentAnimState == LS_CRAWL_TO_HANG)
|
||||
{
|
||||
if (h != NO_HEIGHT)
|
||||
{
|
||||
if (((g) > 0)
|
||||
&& ((m) < -128)
|
||||
&& ((j) > -72))
|
||||
return(1);
|
||||
if (g > 0 && m < -128 && j > -72)
|
||||
return 1;
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (h != NO_HEIGHT)
|
||||
{
|
||||
if (((g) > 0)
|
||||
&& ((m) < -128)
|
||||
&& ((j) > -72))
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
}*/
|
||||
|
||||
int CanLaraHangSideways(ITEM_INFO* item, COLL_INFO* coll, short angle)
|
||||
{
|
||||
|
@ -1143,7 +1075,7 @@ void SetCornerAnim(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip)
|
|||
}
|
||||
}
|
||||
|
||||
/*void SetCornerAnimFeet(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip)
|
||||
void SetCornerAnimFeet(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip)
|
||||
{
|
||||
if (item->hitPoints <= 0)
|
||||
{
|
||||
|
@ -1177,7 +1109,7 @@ void SetCornerAnim(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip)
|
|||
|
||||
item->pos.yRot += rot;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
int LaraFloorFront(ITEM_INFO* item, short ang, int dist)
|
||||
{
|
||||
|
@ -1264,6 +1196,7 @@ void GetTighRopeFallOff(int regularity)
|
|||
|
||||
bool TestLaraLean(ITEM_INFO* item, COLL_INFO* coll)
|
||||
{
|
||||
#if 0
|
||||
// TODO: make it more fine-tuned when new collision is done.
|
||||
switch (coll->collType)
|
||||
{
|
||||
|
@ -1275,4 +1208,10 @@ bool TestLaraLean(ITEM_INFO* item, COLL_INFO* coll)
|
|||
return false;
|
||||
}
|
||||
return true;
|
||||
#else
|
||||
if (coll->collType == CT_RIGHT || coll->collType == CT_LEFT)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -11,10 +11,10 @@ int LaraTestHangOnClimbWall(ITEM_INFO* item, COLL_INFO* coll);
|
|||
int LaraTestEdgeCatch(ITEM_INFO* item, COLL_INFO* coll, int* edge);
|
||||
int IsValidHangPos(ITEM_INFO* item, COLL_INFO* coll);
|
||||
int TestHangSwingIn(ITEM_INFO* item, short angle);
|
||||
//int TestHangFeet(ITEM_INFO* item, short angle);
|
||||
bool TestHangFeet(ITEM_INFO* item, short angle);
|
||||
int CanLaraHangSideways(ITEM_INFO* item, COLL_INFO* coll, short angle);
|
||||
void SetCornerAnim(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip);
|
||||
//void SetCornerAnimFeet(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip);
|
||||
void SetCornerAnimFeet(ITEM_INFO* item, COLL_INFO* coll, short rot, short flip);
|
||||
int LaraFloorFront(ITEM_INFO* item, short ang, int dist);
|
||||
int LaraCeilingFront(ITEM_INFO* item, short ang, int dist, int h);
|
||||
int LaraFallen(ITEM_INFO* item, COLL_INFO* coll);
|
||||
|
|
|
@ -522,7 +522,7 @@ GAME_STATUS ControlPhase(int numFrames, int demoMode)
|
|||
|
||||
// Control Lara
|
||||
InItemControlLoop = true;
|
||||
Lara.skelebob = NULL;
|
||||
// Lara.skelebob = NULL;
|
||||
LaraControl(Lara.itemNumber);
|
||||
InItemControlLoop = false;
|
||||
KillMoveItems();
|
||||
|
@ -1164,9 +1164,9 @@ void TestTriggers(short *data, int heavy, int HeavyFlags)
|
|||
break;
|
||||
return;
|
||||
|
||||
case TRIGGER_TYPES::SKELETON_T:
|
||||
Lara.skelebob = 2;
|
||||
break;
|
||||
// case TRIGGER_TYPES::SKELETON_T: //NO.
|
||||
// Lara.skelebob = 2;
|
||||
// break;
|
||||
|
||||
case TRIGGER_TYPES::HEAVY:
|
||||
case TRIGGER_TYPES::DUMMY:
|
||||
|
|
|
@ -115,6 +115,26 @@ const char* optmessages[] =
|
|||
// STRING_READ_DIARY
|
||||
};
|
||||
|
||||
const char* controlmsgs[] =
|
||||
{
|
||||
STRING_CONTROLS_MOVE_FORWARD,
|
||||
STRING_CONTROLS_MOVE_BACKWARD,
|
||||
STRING_CONTROLS_MOVE_LEFT,
|
||||
STRING_CONTROLS_MOVE_RIGHT,
|
||||
STRING_CONTROLS_DUCK,
|
||||
STRING_CONTROLS_DASH,
|
||||
STRING_CONTROLS_WALK,
|
||||
STRING_CONTROLS_JUMP,
|
||||
STRING_CONTROLS_ACTION,
|
||||
STRING_CONTROLS_DRAW_WEAPON,
|
||||
STRING_CONTROLS_USE_FLARE,
|
||||
STRING_CONTROLS_LOOK,
|
||||
STRING_CONTROLS_ROLL,
|
||||
STRING_CONTROLS_INVENTORY,
|
||||
STRING_CONTROLS_STEP_LEFT,
|
||||
STRING_CONTROLS_STEP_RIGHT
|
||||
};
|
||||
|
||||
#define phd_winxmax g_Configuration.Width
|
||||
#define phd_winymax g_Configuration.Height
|
||||
#define phd_centerx 400
|
||||
|
@ -586,7 +606,7 @@ int TitleOptions()
|
|||
break;
|
||||
|
||||
case title_controls_menu:
|
||||
settings_flag = 1 << 19;
|
||||
settings_flag = 1 << 17;
|
||||
handle_control_settings_input();
|
||||
break;
|
||||
|
||||
|
@ -929,7 +949,7 @@ void handle_control_settings_input()
|
|||
|
||||
if (goSelect)
|
||||
{
|
||||
if (title_selected_option & (1 << 18))//apply
|
||||
if (title_selected_option & (1 << 16))//apply
|
||||
{
|
||||
SoundEffect(SFX_TR4_MENU_CHOOSE, NULL, 0);
|
||||
memcpy(KeyboardLayout[1], CurrentSettings.conf.KeyboardLayout, NUM_CONTROLS);
|
||||
|
@ -939,7 +959,7 @@ void handle_control_settings_input()
|
|||
return;
|
||||
}
|
||||
|
||||
if (title_selected_option & (1 << 19))//cancel
|
||||
if (title_selected_option & (1 << 17))//cancel
|
||||
{
|
||||
SoundEffect(SFX_TR4_MENU_CHOOSE, NULL, 0);
|
||||
title_menu_to_display = title_options_menu;
|
||||
|
@ -949,7 +969,7 @@ void handle_control_settings_input()
|
|||
}
|
||||
}
|
||||
|
||||
if (KeyMap[DIK_RETURN] && !(title_selected_option & (1 << 18)) && !(title_selected_option & (1 << 19)))
|
||||
if (KeyMap[DIK_RETURN] && !(title_selected_option & (1 << 16)) && !(title_selected_option & (1 << 17)))
|
||||
{
|
||||
SoundEffect(SFX_TR4_MENU_SELECT, NULL, 0);
|
||||
CurrentSettings.waitingForkey = 1;
|
||||
|
@ -1222,7 +1242,7 @@ int DoPauseMenu()
|
|||
break;
|
||||
|
||||
case pause_controls_menu:
|
||||
pause_flag = 1 << 19;
|
||||
pause_flag = 1 << 17;
|
||||
handle_control_settings_input_pause();
|
||||
break;
|
||||
|
||||
|
@ -1484,7 +1504,7 @@ void handle_control_settings_input_pause()
|
|||
|
||||
if (goSelect)
|
||||
{
|
||||
if (pause_selected_option & (1 << 18))//apply
|
||||
if (pause_selected_option & (1 << 16))//apply
|
||||
{
|
||||
SoundEffect(SFX_TR4_MENU_CHOOSE, NULL, 0);
|
||||
memcpy(KeyboardLayout[1], CurrentSettings.conf.KeyboardLayout, NUM_CONTROLS);
|
||||
|
@ -1494,7 +1514,7 @@ void handle_control_settings_input_pause()
|
|||
return;
|
||||
}
|
||||
|
||||
if (pause_selected_option & (1 << 19))//cancel
|
||||
if (pause_selected_option & (1 << 17))//cancel
|
||||
{
|
||||
SoundEffect(SFX_TR4_MENU_CHOOSE, NULL, 0);
|
||||
pause_menu_to_display = pause_options_menu;
|
||||
|
@ -1504,7 +1524,7 @@ void handle_control_settings_input_pause()
|
|||
}
|
||||
}
|
||||
|
||||
if (KeyMap[DIK_RETURN] && !(pause_selected_option & (1 << 18)) && !(pause_selected_option & (1 << 19)))
|
||||
if (KeyMap[DIK_RETURN] && !(pause_selected_option & (1 << 16)) && !(pause_selected_option & (1 << 17)))
|
||||
{
|
||||
SoundEffect(SFX_TR4_MENU_SELECT, NULL, 0);
|
||||
CurrentSettings.waitingForkey = 1;
|
||||
|
@ -2703,7 +2723,6 @@ void handle_inventry_menu()
|
|||
if (rings[RING_AMMO]->ringactive)
|
||||
{
|
||||
g_Renderer.drawString(phd_centerx, phd_centery, g_GameFlow->GetString(optmessages[5]), PRINTSTRING_COLOR_WHITE, PRINTSTRING_BLINK | PRINTSTRING_CENTER);
|
||||
// PrintString(phd_centerx, phd_centery, 1, &gfStringWad[gfStringOffset[optmessages[5]]], FF_CENTER);
|
||||
|
||||
if (rings[RING_INVENTORY]->objlistmovement)
|
||||
return;
|
||||
|
@ -2896,13 +2915,11 @@ void handle_inventry_menu()
|
|||
if (i == current_selected_option)
|
||||
{
|
||||
g_Renderer.drawString(phd_centerx, ypos, current_options[i].text, PRINTSTRING_COLOR_WHITE, PRINTSTRING_BLINK | PRINTSTRING_CENTER);
|
||||
// PrintString(phd_centerx, ypos, 1, current_options[i].text, FF_CENTER);
|
||||
ypos += font_height;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_Renderer.drawString(phd_centerx, ypos, current_options[i].text, PRINTSTRING_COLOR_WHITE, PRINTSTRING_CENTER);
|
||||
// PrintString(phd_centerx, ypos, 5, current_options[i].text, FF_CENTER);
|
||||
ypos += font_height;
|
||||
}
|
||||
}
|
||||
|
@ -3077,10 +3094,10 @@ void spinback(unsigned short* angle)
|
|||
{
|
||||
val2 = val;
|
||||
|
||||
if (val2 < 1022)
|
||||
val = 1022;
|
||||
else if (val2 > 16384)
|
||||
val2 = 16384;
|
||||
if (val2 < ANGLE(5))
|
||||
val = ANGLE(5);
|
||||
else if (val2 > ANGLE(90))
|
||||
val2 = ANGLE(90);
|
||||
|
||||
val -= (val2 >> 3);
|
||||
|
||||
|
@ -3091,14 +3108,14 @@ void spinback(unsigned short* angle)
|
|||
{
|
||||
val2 = -val;
|
||||
|
||||
if (val2 < 1022)
|
||||
val = 1022;
|
||||
else if (val2 > 16384)
|
||||
val2 = 16384;
|
||||
if (val2 < ANGLE(5))
|
||||
val = ANGLE(5);
|
||||
else if (val2 > ANGLE(90))
|
||||
val2 = ANGLE(90);
|
||||
|
||||
val += (val2 >> 3);
|
||||
|
||||
if (val < 32768)
|
||||
if (val < ANGLE(180))
|
||||
val = 0;
|
||||
}
|
||||
|
||||
|
@ -3134,13 +3151,13 @@ void draw_ammo_selector()
|
|||
if (n == *current_ammo_type)
|
||||
{
|
||||
if (objme->rot_flags & INV_ROT_X)
|
||||
ammo_object_list[n].xrot += 1022;
|
||||
ammo_object_list[n].xrot += ANGLE(5);
|
||||
|
||||
if (objme->rot_flags & INV_ROT_Y)
|
||||
ammo_object_list[n].yrot += 1022;
|
||||
ammo_object_list[n].yrot += ANGLE(5);
|
||||
|
||||
if (objme->rot_flags & INV_ROT_Z)
|
||||
ammo_object_list[n].zrot += 1022;
|
||||
ammo_object_list[n].zrot += ANGLE(5);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3477,13 +3494,13 @@ void draw_current_object_list(int ringnum)
|
|||
if (!i && !rings[ringnum]->objlistmovement)
|
||||
{
|
||||
if (inventry_objects_list[rings[ringnum]->current_object_list[n].invitem].rot_flags & INV_ROT_X)
|
||||
rings[ringnum]->current_object_list[n].xrot += 1022;
|
||||
rings[ringnum]->current_object_list[n].xrot += ANGLE(5);
|
||||
|
||||
if (inventry_objects_list[rings[ringnum]->current_object_list[n].invitem].rot_flags & INV_ROT_Y)
|
||||
rings[ringnum]->current_object_list[n].yrot += 1022;
|
||||
rings[ringnum]->current_object_list[n].yrot += ANGLE(5);
|
||||
|
||||
if (inventry_objects_list[rings[ringnum]->current_object_list[n].invitem].rot_flags & INV_ROT_Z)
|
||||
rings[ringnum]->current_object_list[n].zrot += 1022;
|
||||
rings[ringnum]->current_object_list[n].zrot += ANGLE(5);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -505,6 +505,7 @@ struct INVOBJ
|
|||
short rot_flags;
|
||||
};
|
||||
|
||||
extern const char* controlmsgs[];
|
||||
extern int GLOBAL_invMode;
|
||||
extern int pause_menu_to_display;
|
||||
extern __int64 pause_selected_option;
|
||||
|
|
|
@ -590,15 +590,15 @@ void TorpedoControl(short itemNumber)
|
|||
SoundEffect(SFX_TR5_UNDERWATER_EXPLOSION, &item->pos, 2);
|
||||
SoundEffect(SFX_TR5_LARA_UNDERWATER_HIT, &LaraItem->pos, 2);
|
||||
LaraItem->hitPoints -= 200;
|
||||
if (Lara.anxiety >= 0x7F)
|
||||
Lara.anxiety--;
|
||||
else
|
||||
Lara.anxiety -= 128;
|
||||
// if (Lara.anxiety >= 0x7F)
|
||||
// Lara.anxiety--;
|
||||
// else
|
||||
// Lara.anxiety -= 128;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ItemNearLara(&item->pos, 400) && Lara.anxiety < 0xE0)
|
||||
Lara.anxiety += 32;
|
||||
// if (ItemNearLara(&item->pos, 400) && Lara.anxiety < 0xE0)
|
||||
// Lara.anxiety += 32;
|
||||
|
||||
if (roomNumber!= item->roomNumber)
|
||||
ItemNewRoom(itemNumber, roomNumber);
|
||||
|
|
|
@ -676,9 +676,9 @@ namespace T5M::Renderer
|
|||
|
||||
y += 25;
|
||||
|
||||
for (int k = 0; k < 18; k++)
|
||||
for (int k = 0; k < 16; k++)
|
||||
{
|
||||
drawString(200, y, g_GameFlow->GetString(STRING_CONTROLS_MOVE_FORWARD + k),
|
||||
drawString(200, y, g_GameFlow->GetString(controlmsgs[k]),
|
||||
PRINTSTRING_COLOR_WHITE,
|
||||
PRINTSTRING_OUTLINE | ((title_selected_option & (1 << k)) ? PRINTSTRING_BLINK : 0) |
|
||||
(CurrentSettings.waitingForkey ? PRINTSTRING_DONT_UPDATE_BLINK : 0));
|
||||
|
@ -702,13 +702,13 @@ namespace T5M::Renderer
|
|||
// Apply and cancel
|
||||
drawString(400, y, g_GameFlow->GetString(STRING_APPLY),
|
||||
PRINTSTRING_COLOR_ORANGE,
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((title_selected_option & (1 << 18)) ? PRINTSTRING_BLINK : 0));
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((title_selected_option & (1 << 16)) ? PRINTSTRING_BLINK : 0));
|
||||
|
||||
y += 25;
|
||||
|
||||
drawString(400, y, g_GameFlow->GetString(STRING_CANCEL),
|
||||
PRINTSTRING_COLOR_ORANGE,
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((title_selected_option & (1 << 19)) ? PRINTSTRING_BLINK : 0));
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((title_selected_option & (1 << 17)) ? PRINTSTRING_BLINK : 0));
|
||||
break;
|
||||
|
||||
case title_sounds_menu:
|
||||
|
@ -911,9 +911,9 @@ namespace T5M::Renderer
|
|||
|
||||
y += 25;
|
||||
|
||||
for (int k = 0; k < 18; k++)
|
||||
for (int k = 0; k < 16; k++)
|
||||
{
|
||||
drawString(200, y, g_GameFlow->GetString(STRING_CONTROLS_MOVE_FORWARD + k),
|
||||
drawString(200, y, g_GameFlow->GetString(controlmsgs[k]),
|
||||
PRINTSTRING_COLOR_WHITE,
|
||||
PRINTSTRING_OUTLINE | ((pause_selected_option & (1 << k)) ? PRINTSTRING_BLINK : 0) |
|
||||
(CurrentSettings.waitingForkey ? PRINTSTRING_DONT_UPDATE_BLINK : 0));
|
||||
|
@ -937,13 +937,13 @@ namespace T5M::Renderer
|
|||
// Apply and cancel
|
||||
drawString(400, y, g_GameFlow->GetString(STRING_APPLY),
|
||||
PRINTSTRING_COLOR_ORANGE,
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((pause_selected_option & (1 << 18)) ? PRINTSTRING_BLINK : 0));
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((pause_selected_option & (1 << 16)) ? PRINTSTRING_BLINK : 0));
|
||||
|
||||
y += 25;
|
||||
|
||||
drawString(400, y, g_GameFlow->GetString(STRING_CANCEL),
|
||||
PRINTSTRING_COLOR_ORANGE,
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((pause_selected_option & (1 << 19)) ? PRINTSTRING_BLINK : 0));
|
||||
PRINTSTRING_CENTER | PRINTSTRING_OUTLINE | ((pause_selected_option & (1 << 17)) ? PRINTSTRING_BLINK : 0));
|
||||
|
||||
break;
|
||||
|
||||
|
@ -2481,7 +2481,7 @@ namespace T5M::Renderer
|
|||
dynamicLight->Out = falloff * 256.0f;
|
||||
dynamicLight->Type = LIGHT_TYPES::LIGHT_TYPE_POINT;
|
||||
dynamicLight->Dynamic = true;
|
||||
dynamicLight->Intensity = falloff / 2;
|
||||
dynamicLight->Intensity = falloff >> 2; //looks better..
|
||||
|
||||
m_dynamicLights.push_back(dynamicLight);
|
||||
//NumDynamics++;
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
#include <Objects/objectslist.h>
|
||||
#include <Game/newinv2.h>
|
||||
|
||||
#ifndef _DEBUG
|
||||
#include <iostream>
|
||||
#endif
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
using std::unordered_map;
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
#include <iostream>
|
||||
#include "InventorySlots.h"
|
||||
|
||||
#ifndef _DEBUG
|
||||
#include <iostream>
|
||||
#endif
|
||||
|
||||
extern GameFlow* g_GameFlow;
|
||||
GameScript* g_GameScript;
|
||||
extern bool const WarningsAsErrors = true;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
|
||||
#define NUM_CONTROLS 18
|
||||
#define NUM_CONTROLS 16
|
||||
|
||||
#define DIK_ESCAPE 0x01
|
||||
#define DIK_1 0x02
|
||||
|
|
|
@ -915,7 +915,7 @@ void LoadAIObjects()
|
|||
{
|
||||
AI_OBJECT obj;
|
||||
|
||||
obj.objectNumber = ReadInt16();
|
||||
obj.objectNumber = (GAME_OBJECT_ID)ReadInt16();
|
||||
obj.roomNumber = ReadInt16();
|
||||
obj.x = ReadInt32();
|
||||
obj.y = ReadInt32();
|
||||
|
|
|
@ -160,6 +160,12 @@ xcopy /Y "$(ProjectDir)Shaders\HUD\*.hlsl" "$(TargetDir)\Shaders\HUD\"</Command>
|
|||
<ClInclude Include="Game\particle\SimpleParticle.h" />
|
||||
<ClInclude Include="Game\phd_global.h" />
|
||||
<ClInclude Include="Game\memory\qmalloc.h" />
|
||||
<ClInclude Include="Game\pickup\pickuputil.h" />
|
||||
<ClInclude Include="Game\pickup\pickup_ammo.h" />
|
||||
<ClInclude Include="Game\pickup\pickup_consumable.h" />
|
||||
<ClInclude Include="Game\pickup\pickup_key_items.h" />
|
||||
<ClInclude Include="Game\pickup\pickup_misc_items.h" />
|
||||
<ClInclude Include="Game\pickup\pickup_weapon.h" />
|
||||
<ClInclude Include="Game\precompute\precompute.h" />
|
||||
<ClInclude Include="Game\prng.h" />
|
||||
<ClInclude Include="Game\puzzles_keys.h" />
|
||||
|
@ -480,6 +486,11 @@ xcopy /Y "$(ProjectDir)Shaders\HUD\*.hlsl" "$(TargetDir)\Shaders\HUD\"</Command>
|
|||
<ClCompile Include="Game\misc.cpp" />
|
||||
<ClCompile Include="Game\newinv2.cpp" />
|
||||
<ClCompile Include="Game\particle\SimpleParticle.cpp" />
|
||||
<ClCompile Include="Game\pickup\pickup_ammo.cpp" />
|
||||
<ClCompile Include="Game\pickup\pickup_consumable.cpp" />
|
||||
<ClCompile Include="Game\pickup\pickup_key_items.cpp" />
|
||||
<ClCompile Include="Game\pickup\pickup_misc_items.cpp" />
|
||||
<ClCompile Include="Game\pickup\pickup_weapon.cpp" />
|
||||
<ClCompile Include="Game\prng.cpp" />
|
||||
<ClCompile Include="Game\puzzles_keys.cpp" />
|
||||
<ClCompile Include="Scripting\GameScriptColor.cpp" />
|
||||
|
|
|
@ -981,6 +981,24 @@
|
|||
<ClInclude Include="Scripting\GameScriptRotation.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game\pickup\pickuputil.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game\pickup\pickup_ammo.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game\pickup\pickup_consumable.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game\pickup\pickup_key_items.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game\pickup\pickup_misc_items.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game\pickup\pickup_weapon.h">
|
||||
<Filter>File di intestazione</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Game\box.cpp">
|
||||
|
@ -1805,6 +1823,21 @@
|
|||
<ClCompile Include="Scripting\GameScriptRotation.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Game\pickup\pickup_consumable.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Game\pickup\pickup_key_items.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Game\pickup\pickup_misc_items.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Game\pickup\pickup_weapon.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Game\pickup\pickup_ammo.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue