diff --git a/plugins/remotefortressreader/remotefortressreader.cpp b/plugins/remotefortressreader/remotefortressreader.cpp index 91ebc0d55..db5778b9d 100644 --- a/plugins/remotefortressreader/remotefortressreader.cpp +++ b/plugins/remotefortressreader/remotefortressreader.cpp @@ -93,6 +93,8 @@ #include "df/unit.h" #include "df/unit_inventory_item.h" #include "df/viewscreen_choose_start_sitest.h" +#include "df/viewscreen_loadgamest.h" +#include "df/viewscreen_savegamest.h" #include "df/vehicle.h" #include "df/world.h" #include "df/world_data.h" @@ -166,7 +168,7 @@ static command_result GetPauseState(color_ostream & stream, const EmptyMessage * static command_result GetVersionInfo(color_ostream & stream, const EmptyMessage * in, RemoteFortressReader::VersionInfo * out); static command_result GetReports(color_ostream & stream, const EmptyMessage * in, RemoteFortressReader::Status * out); static command_result GetLanguage(color_ostream & stream, const EmptyMessage * in, RemoteFortressReader::Language * out); - +static command_result GetGameValidity(color_ostream &stream, const EmptyMessage * in, SingleBool *out); void CopyBlock(df::map_block * DfBlock, RemoteFortressReader::MapBlock * NetBlock, MapExtras::MapCache * MC, DFCoord pos); @@ -272,6 +274,7 @@ DFhackCExport RPCService *plugin_rpcconnect(color_ostream &) svc->addFunction("GetLanguage", GetLanguage, SF_ALLOW_REMOTE); svc->addFunction("GetSideMenu", GetSideMenu, SF_ALLOW_REMOTE); svc->addFunction("SetSideMenu", SetSideMenu, SF_ALLOW_REMOTE); + svc->addFunction("GetGameValidity", GetGameValidity, SF_ALLOW_REMOTE); return svc; } @@ -2884,6 +2887,23 @@ static command_result GetPauseState(color_ostream &stream, const EmptyMessage *i return CR_OK; } +static command_result GetGameValidity(color_ostream &stream, const EmptyMessage * in, SingleBool *out) +{ + auto viewScreen = Gui::getCurViewscreen(); + if (strict_virtual_cast(viewScreen)) + { + out->set_value(false); + return CR_OK; + } + else if (strict_virtual_cast(viewScreen)) + { + out->set_value(false); + return CR_OK; + } + out->set_value(true); + return CR_OK; +} + static command_result GetVersionInfo(color_ostream & stream, const EmptyMessage * in, RemoteFortressReader::VersionInfo * out) { out->set_dfhack_version(DFHACK_VERSION);