console/cmd: add /give all item cheat variant

This commit is contained in:
Marcin Kurczewski 2024-04-19 09:36:51 +02:00
parent 31f1710053
commit 2b0cd951f0
6 changed files with 38 additions and 30 deletions

View file

@ -1,6 +1,7 @@
## [Unreleased](https://github.com/LostArtefacts/TR1X/compare/stable...develop) - ××××-××-××
- added ability to kill specific enemy types (#1313)
- added ability to teleport to nearest specific object (#1312)
- added `/give all` variant of the item cheat
- changed injection files to be placed in its own directory (#1306)
- fixed camera vibrations when using the teleport command in 60 FPS (#1274)
- fixed the camera being thrown through doors for one frame when looked at from fixed camera positions (#954)

View file

@ -17,6 +17,9 @@ Currently supported commands:
- `/give {item_name}`
`/give {num} {item_name}`
`/give all`
`/give guns`
`/give keys`
Gives Lara an item. Try `/give guns` to arm her to the teeth, and `/give keys` to get her all important puzzle items. Ain't nobody got time for searching!
- `/kill`

View file

@ -248,6 +248,37 @@ static bool Console_Cmd_GiveItem(const char *args)
return true;
}
if (String_Equivalent(args, "keys")) {
Inv_AddItem(O_PUZZLE_ITEM1);
Inv_AddItem(O_PUZZLE_ITEM2);
Inv_AddItem(O_PUZZLE_ITEM3);
Inv_AddItem(O_PUZZLE_ITEM4);
Inv_AddItem(O_KEY_ITEM1);
Inv_AddItem(O_KEY_ITEM2);
Inv_AddItem(O_KEY_ITEM3);
Inv_AddItem(O_KEY_ITEM4);
Inv_AddItem(O_PICKUP_ITEM1);
Inv_AddItem(O_PICKUP_ITEM2);
Console_Log(GS(OSD_GIVE_ITEM_ALL_KEYS));
return true;
}
if (String_Equivalent(args, "guns")) {
Inv_AddItem(O_GUN_ITEM);
Inv_AddItem(O_MAGNUM_ITEM);
Inv_AddItem(O_UZI_ITEM);
Inv_AddItem(O_SHOTGUN_ITEM);
g_Lara.shotgun.ammo = g_GameInfo.bonus_flag & GBF_NGPLUS ? 10001 : 300;
g_Lara.magnums.ammo = g_GameInfo.bonus_flag & GBF_NGPLUS ? 10001 : 1000;
g_Lara.uzis.ammo = g_GameInfo.bonus_flag & GBF_NGPLUS ? 10001 : 2000;
Console_Log(GS(OSD_GIVE_ITEM_ALL_GUNS));
return true;
}
if (String_Equivalent(args, "all")) {
return Lara_Cheat_GiveItems();
}
int32_t num = 1;
if (sscanf(args, "%d ", &num) == 1) {
args = strstr(args, " ");
@ -279,33 +310,6 @@ static bool Console_Cmd_GiveItem(const char *args)
return true;
}
if (String_Equivalent(args, "keys")) {
Inv_AddItem(O_PUZZLE_ITEM1);
Inv_AddItem(O_PUZZLE_ITEM2);
Inv_AddItem(O_PUZZLE_ITEM3);
Inv_AddItem(O_PUZZLE_ITEM4);
Inv_AddItem(O_KEY_ITEM1);
Inv_AddItem(O_KEY_ITEM2);
Inv_AddItem(O_KEY_ITEM3);
Inv_AddItem(O_KEY_ITEM4);
Inv_AddItem(O_PICKUP_ITEM1);
Inv_AddItem(O_PICKUP_ITEM2);
Console_Log(GS(OSD_GIVE_ITEM_ALL_KEYS));
return true;
}
if (String_Equivalent(args, "guns")) {
Inv_AddItem(O_GUN_ITEM);
Inv_AddItem(O_MAGNUM_ITEM);
Inv_AddItem(O_UZI_ITEM);
Inv_AddItem(O_SHOTGUN_ITEM);
g_Lara.shotgun.ammo = g_GameInfo.bonus_flag & GBF_NGPLUS ? 10001 : 300;
g_Lara.magnums.ammo = g_GameInfo.bonus_flag & GBF_NGPLUS ? 10001 : 1000;
g_Lara.uzis.ammo = g_GameInfo.bonus_flag & GBF_NGPLUS ? 10001 : 2000;
Console_Log(GS(OSD_GIVE_ITEM_ALL_GUNS));
return true;
}
Console_Log(GS(OSD_INVALID_ITEM), args);
return true;
}

View file

@ -56,7 +56,7 @@ void Lara_Control(void)
}
if (g_InputDB.item_cheat) {
Lara_Cheat_GetStuff();
Lara_Cheat_GiveItems();
}
if (g_Lara.water_status != LWS_CHEAT && g_Input.fly_cheat) {

View file

@ -191,7 +191,7 @@ bool Lara_Cheat_ExitFlyMode(void)
return true;
}
bool Lara_Cheat_GetStuff(void)
bool Lara_Cheat_GiveItems(void)
{
if (g_LaraItem == NULL) {
return false;

View file

@ -7,6 +7,6 @@ void Lara_Cheat_Control(void);
void Lara_Cheat_EndLevel(void);
bool Lara_Cheat_EnterFlyMode(void);
bool Lara_Cheat_ExitFlyMode(void);
bool Lara_Cheat_GetStuff(void);
bool Lara_Cheat_GiveItems(void);
bool Lara_Cheat_OpenNearestDoor(void);
bool Lara_Cheat_KillEnemy(int16_t item_num);