Add "visit" debug command
This commit is contained in:
parent
b5090ac817
commit
be21eebb08
1 changed files with 56 additions and 0 deletions
|
|
@ -16,6 +16,7 @@
|
|||
#include "lighting.h"
|
||||
#include "setmaps.h"
|
||||
#include "spells.h"
|
||||
#include "towners.h"
|
||||
#include "utils/language.h"
|
||||
#include "quests.h"
|
||||
|
||||
|
|
@ -182,6 +183,60 @@ std::string DebugCmdLoadMap(const std::string_view parameter)
|
|||
return fmt::format("Level {} is not known. Do you want to write a mod?", level);
|
||||
}
|
||||
|
||||
std::unordered_map<std::string_view, _talker_id> TownerShortNameToTownerId = {
|
||||
{ "griswold", _talker_id::TOWN_SMITH },
|
||||
{ "pepin", _talker_id::TOWN_HEALER },
|
||||
{ "ogden", _talker_id::TOWN_TAVERN },
|
||||
{ "cain", _talker_id::TOWN_STORY },
|
||||
{ "farnham", _talker_id::TOWN_DRUNK },
|
||||
{ "adria", _talker_id::TOWN_WITCH },
|
||||
{ "gillian", _talker_id::TOWN_BMAID },
|
||||
{ "wirt", _talker_id ::TOWN_PEGBOY },
|
||||
{ "lester", _talker_id ::TOWN_FARMER },
|
||||
{ "girl", _talker_id ::TOWN_GIRL },
|
||||
{ "nut", _talker_id::TOWN_COWFARM },
|
||||
};
|
||||
|
||||
std::string DebugCmdVisitTowner(const std::string_view parameter)
|
||||
{
|
||||
auto &myPlayer = Players[MyPlayerId];
|
||||
|
||||
if (setlevel || myPlayer.plrlevel != 0)
|
||||
return "What kind of friends do you have in dungeons?";
|
||||
|
||||
if (parameter.empty()) {
|
||||
std::string ret;
|
||||
ret = "Who? ";
|
||||
for (auto &entry : TownerShortNameToTownerId) {
|
||||
ret.append(" ");
|
||||
ret.append(entry.first);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
auto it = TownerShortNameToTownerId.find(parameter);
|
||||
if (it == TownerShortNameToTownerId.end())
|
||||
return fmt::format("{} is unknown. Perhaps he is a ninja?", parameter);
|
||||
|
||||
for (auto &towner : Towners) {
|
||||
if (towner._ttype != it->second)
|
||||
continue;
|
||||
|
||||
CastSpell(
|
||||
MyPlayerId,
|
||||
SPL_TELEPORT,
|
||||
myPlayer.position.tile.x,
|
||||
myPlayer.position.tile.y,
|
||||
towner.position.x,
|
||||
towner.position.y,
|
||||
1);
|
||||
|
||||
return fmt::format("Say hello to {} from me.", parameter);
|
||||
}
|
||||
|
||||
return fmt::format("Couldn't find {}.", parameter);
|
||||
}
|
||||
|
||||
std::string DebugCmdResetLevel(const std::string_view parameter)
|
||||
{
|
||||
auto &myPlayer = Players[MyPlayerId];
|
||||
|
|
@ -291,6 +346,7 @@ std::vector<DebugCmdItem> DebugCmdList = {
|
|||
{ "give quest", "Enable a given quest.", "({id})", &DebugCmdQuest },
|
||||
{ "changelevel", "Moves to specifided {level} (use 0 for town).", "{level}", &DebugCmdWarpToLevel },
|
||||
{ "map", "Load a quest level {level}.", "{level}", &DebugCmdLoadMap },
|
||||
{ "visit", "Visit a towner.", "{towner}", &DebugCmdVisitTowner },
|
||||
{ "restart", "Resets specified {level}.", "{level}", &DebugCmdResetLevel },
|
||||
{ "god", "Togggles godmode.", "", &DebugCmdGodMode },
|
||||
{ "r_drawvision", "Togggles vision debug rendering.", "", &DebugCmdVision },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue