TombEngine/TR5Main/Game/Lara/lara_cheat.cpp

234 lines
5.7 KiB
C++
Raw Normal View History

#include "framework.h"
#include "lara.h"
#include "lara_cheat.h"
#include "input.h"
#include "GameFlowScript.h"
2021-09-19 23:41:26 +03:00
#include "effects/effects.h"
#include "Sound/sound.h"
2021-08-28 13:27:58 +02:00
#include "collide.h"
2021-09-19 23:41:26 +03:00
#include "items.h"
2021-08-28 13:27:58 +02:00
#include "setup.h"
Merge branch 'master' into item_data # Conflicts: # TR5Main/Game/Lara/lara.cpp # TR5Main/Game/Lara/lara_collide.cpp # TR5Main/Game/Lara/lara_monkey.cpp # TR5Main/Game/Lara/lara_struct.h # TR5Main/Game/Lara/lara_tests.cpp # TR5Main/Game/collide.h # TR5Main/Game/control.h # TR5Main/Game/effect.h # TR5Main/Game/effect2.cpp # TR5Main/Game/flipeffect.cpp # TR5Main/Game/floordata.h # TR5Main/Game/hair.cpp # TR5Main/Game/health.cpp # TR5Main/Game/items.cpp # TR5Main/Game/newinv2.cpp # TR5Main/Game/spotcam.cpp # TR5Main/Objects/Effects/tr4_bubbles.cpp # TR5Main/Objects/TR1/Entity/tr1_ape.cpp # TR5Main/Objects/TR1/Entity/tr1_bigrat.cpp # TR5Main/Objects/TR1/Entity/tr1_doppelganger.cpp # TR5Main/Objects/TR2/Entity/tr2_birdmonster.cpp # TR5Main/Objects/TR2/Entity/tr2_shark.cpp # TR5Main/Objects/TR2/Entity/tr2_spider.cpp # TR5Main/Objects/TR2/Entity/tr2_yeti.cpp # TR5Main/Objects/TR3/Entity/tr3_fishemitter.cpp # TR5Main/Objects/TR3/Entity/tr3_flamethrower.cpp # TR5Main/Objects/TR3/Entity/tr3_monkey.cpp # TR5Main/Objects/TR3/Entity/tr3_raptor.cpp # TR5Main/Objects/TR3/Entity/tr3_scuba.cpp # TR5Main/Objects/TR3/Entity/tr3_trex.cpp # TR5Main/Objects/TR3/Vehicles/kayak.cpp # TR5Main/Objects/TR3/Vehicles/minecart.cpp # TR5Main/Objects/TR4/Entity/tr4_bat.cpp # TR5Main/Objects/TR4/Entity/tr4_big_beetle.cpp # TR5Main/Objects/TR4/Entity/tr4_bigscorpion.cpp # TR5Main/Objects/TR4/Entity/tr4_demigod.cpp # TR5Main/Objects/TR4/Entity/tr4_dog.cpp # TR5Main/Objects/TR4/Entity/tr4_hammerhead.cpp # TR5Main/Objects/TR4/Entity/tr4_harpy.cpp # TR5Main/Objects/TR4/Entity/tr4_mutant.cpp # TR5Main/Objects/TR4/Entity/tr4_smallscorpion.cpp # TR5Main/Objects/TR4/Entity/tr4_troops.cpp # TR5Main/Objects/TR4/Entity/tr4_wildboar.cpp # TR5Main/Objects/TR4/Trap/tr4_joby_spikes.cpp # TR5Main/Objects/TR4/Vehicles/motorbike.cpp # TR5Main/Objects/TR5/Entity/tr5_doberman.cpp # TR5Main/Objects/TR5/Entity/tr5_imp.cpp # TR5Main/Objects/TR5/Entity/tr5_larson.cpp # TR5Main/Objects/TR5/Entity/tr5_lion.cpp # TR5Main/Objects/TR5/Entity/tr5_reaper.cpp # TR5Main/Objects/TR5/Object/tr5_pushableblock.cpp # TR5Main/Objects/TR5/Object/tr5_rollingball.cpp # TR5Main/Objects/TR5/Trap/tr5_fallingceiling.cpp # TR5Main/Renderer/Renderer11Draw2D.cpp # TR5Main/Specific/input.cpp # TR5Main/Specific/level.cpp # TR5Main/TombEngine.vcxproj.filters
2021-08-31 17:37:15 +02:00
#include "level.h"
int NoCheatCounter;
2021-02-03 01:50:59 -03:00
void lara_as_swimcheat(ITEM_INFO* item, COLL_INFO* coll)
{
if (TrInput & IN_FORWARD)
{
item->pos.xRot -= ANGLE(3);
}
else if (TrInput & IN_BACK)
{
item->pos.xRot += ANGLE(3);
}
if (TrInput & IN_LEFT)
{
Lara.turnRate -= 613;
if (Lara.turnRate < -ANGLE(6))
Lara.turnRate = -ANGLE(6);
}
else if (TrInput & IN_RIGHT)
{
Lara.turnRate += 613;
if (Lara.turnRate > ANGLE(6))
Lara.turnRate = ANGLE(6);
}
if (TrInput & IN_ACTION)
{
TriggerDynamicLight(item->pos.xPos, item->pos.yPos, item->pos.zPos, 31, 255, 255, 255);
}
if (TrInput & IN_OPTION)
{
Lara.turnRate = -ANGLE(12);
}
if (TrInput & IN_JUMP)
{
item->fallspeed += 16;
if (item->fallspeed > 400)
item->fallspeed = 400;
}
else
{
if (item->fallspeed >= 8)
item->fallspeed -= item->fallspeed >> 3;
else
item->fallspeed = 0;
}
}
2021-02-03 01:50:59 -03:00
void LaraCheatyBits()
{
if (g_GameFlow->FlyCheat)
{
2021-05-18 19:16:58 -05:00
if (KeyMap[DIK_O])
{
if (Lara.Vehicle == NO_ITEM)
{
LaraCheatGetStuff();
DelsGiveLaraItemsCheat();
LaraItem->pos.yPos -= 128;
if (Lara.waterStatus != LW_FLYCHEAT)
{
Lara.waterStatus = LW_FLYCHEAT;
2021-11-16 17:25:17 +03:00
SetAnimation(LaraItem, LA_DOZY);
LaraItem->gravityStatus = false;
LaraItem->pos.xRot = ANGLE(30);
LaraItem->fallspeed = 30;
LaraItem->hitPoints = 1000;
2021-09-16 01:58:43 +03:00
Lara.poisoned = 0;
Lara.air = 1800;
Lara.deathCount = 0;
Lara.torsoYrot = 0;
Lara.torsoXrot = 0;
Lara.headYrot = 0;
Lara.headXrot = 0;
}
}
else if (!NoCheatCounter)
{
SayNo();
NoCheatCounter = 15;
}
}
}
if (NoCheatCounter)
NoCheatCounter--;
}
2021-02-03 01:50:59 -03:00
void LaraCheatGetStuff()
{
Lara.NumFlares = -1;
Lara.NumSmallMedipacks = -1;
Lara.NumLargeMedipacks = -1;
if (Objects[ID_CROWBAR_ITEM].loaded)
Lara.Crowbar = true;
if (Objects[ID_LASERSIGHT_ITEM].loaded)
Lara.Lasersight = true;
if (Objects[ID_CLOCKWORK_BEETLE].loaded)
Lara.hasBeetleThings |= 1;
2021-06-05 15:27:19 -05:00
if (Objects[ID_WATERSKIN1_EMPTY].loaded)
Lara.small_waterskin = 1;
if (Objects[ID_WATERSKIN2_EMPTY].loaded)
Lara.big_waterskin = 1;
if (Objects[ID_REVOLVER_ITEM].loaded)
{
Lara.Weapons[WEAPON_REVOLVER].Present = true;
Lara.Weapons[WEAPON_REVOLVER].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_REVOLVER].HasLasersight = false;
Lara.Weapons[WEAPON_REVOLVER].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_REVOLVER].Ammo[WEAPON_AMMO1].setInfinite(true);
}
if (Objects[ID_UZI_ITEM].loaded)
{
Lara.Weapons[WEAPON_UZI].Present = true;
Lara.Weapons[WEAPON_UZI].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_UZI].HasLasersight = false;
Lara.Weapons[WEAPON_UZI].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_UZI].Ammo[WEAPON_AMMO1].setInfinite(true);
}
if (Objects[ID_SHOTGUN_ITEM].loaded)
{
Lara.Weapons[WEAPON_SHOTGUN].Present = true;
Lara.Weapons[WEAPON_SHOTGUN].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_SHOTGUN].HasLasersight = false;
Lara.Weapons[WEAPON_SHOTGUN].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_SHOTGUN].Ammo[WEAPON_AMMO1].setInfinite(true);
}
if (Objects[ID_HARPOON_ITEM].loaded)
{
Lara.Weapons[WEAPON_HARPOON_GUN].Present = true;
Lara.Weapons[WEAPON_HARPOON_GUN].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_HARPOON_GUN].HasLasersight = false;
Lara.Weapons[WEAPON_HARPOON_GUN].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_HARPOON_GUN].Ammo[WEAPON_AMMO1].setInfinite(true);
}
if (Objects[ID_GRENADE_GUN_ITEM].loaded)
{
Lara.Weapons[WEAPON_GRENADE_LAUNCHER].Present = true;
Lara.Weapons[WEAPON_GRENADE_LAUNCHER].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_GRENADE_LAUNCHER].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_GRENADE_LAUNCHER].Ammo[WEAPON_AMMO1].setInfinite(true);
Lara.Weapons[WEAPON_GRENADE_LAUNCHER].Ammo[WEAPON_AMMO2].setInfinite(true);
Lara.Weapons[WEAPON_GRENADE_LAUNCHER].Ammo[WEAPON_AMMO3].setInfinite(true);
}
if (Objects[ID_ROCKET_LAUNCHER_ITEM].loaded)
{
Lara.Weapons[WEAPON_ROCKET_LAUNCHER].Present = true;
Lara.Weapons[WEAPON_ROCKET_LAUNCHER].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_ROCKET_LAUNCHER].HasLasersight = false;
Lara.Weapons[WEAPON_ROCKET_LAUNCHER].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_ROCKET_LAUNCHER].Ammo[WEAPON_AMMO1].setInfinite(true);
}
if (Objects[ID_HK_ITEM].loaded)
{
Lara.Weapons[WEAPON_HK].Present = true;
Lara.Weapons[WEAPON_HK].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_HK].HasLasersight = false;
Lara.Weapons[WEAPON_HK].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_HK].Ammo[WEAPON_AMMO1].setInfinite(true);
}
if (Objects[ID_CROSSBOW_ITEM].loaded)
{
Lara.Weapons[WEAPON_CROSSBOW].Present = true;
Lara.Weapons[WEAPON_CROSSBOW].SelectedAmmo = WEAPON_AMMO1;
Lara.Weapons[WEAPON_CROSSBOW].HasLasersight = false;
Lara.Weapons[WEAPON_CROSSBOW].HasSilencer = false;
2021-01-26 10:03:59 +01:00
Lara.Weapons[WEAPON_CROSSBOW].Ammo[WEAPON_AMMO1].setInfinite(true);
Lara.Weapons[WEAPON_CROSSBOW].Ammo[WEAPON_AMMO2].setInfinite(true);
Lara.Weapons[WEAPON_CROSSBOW].Ammo[WEAPON_AMMO3].setInfinite(true);
}
}
2021-02-03 01:50:59 -03:00
void DelsGiveLaraItemsCheat()
{
int i;
for (i = 0; i < 8; ++i)
{
if (Objects[ID_PUZZLE_ITEM1 + i].loaded)
Lara.Puzzles[i] = 1;
Lara.PuzzlesCombo[2 * i] = false;
Lara.PuzzlesCombo[2 * i + 1] = false;
}
for (i = 0; i < 8; ++i)
{
if (Objects[ID_KEY_ITEM1 + i].loaded)
Lara.Keys[i] = 1;
Lara.KeysCombo[2 * i] = false;
Lara.KeysCombo[2 * i + 1] = false;
}
for (i = 0; i < 3; ++i)
{
if (Objects[ID_PICKUP_ITEM1 + i].loaded)
Lara.Pickups[i] = 1;
Lara.PickupsCombo[2 * i] = false;
Lara.PickupsCombo[2 * i + 1] = false;
}
/* Hardcoded code */
}