Merge remote-tracking branch 'Moth-Tolias/seedwatch' into develop

develop
lethosor 2021-01-30 17:56:16 -05:00
commit 9d0eacadbf
No known key found for this signature in database
GPG Key ID: 76A269552F4F58C1
2 changed files with 25 additions and 7 deletions

@ -35,6 +35,7 @@ changelog.txt uses a syntax similar to RST, with a few special sequences:
## Fixes ## Fixes
- `embark-assistant`: fixed order of factors when calculating min temperature - `embark-assistant`: fixed order of factors when calculating min temperature
- `seedwatch`: don't turn off upon map load
- `embark-assistant`: improved performance of surveying - `embark-assistant`: improved performance of surveying
- `quickfort`: creating zones no longer causes eventual crashes - `quickfort`: creating zones no longer causes eventual crashes
- `search`: fixed crash when searching the ``k`` sidebar and navigating to another tile with certain keys, like ``<`` or ``>`` - `search`: fixed crash when searching the ``k`` sidebar and navigating to another tile with certain keys, like ``<`` or ``>``

@ -1,4 +1,3 @@
// This does not work with Linux Dwarf Fortress
// With thanks to peterix for DFHack and Quietust for information http://www.bay12forums.com/smf/index.php?topic=91166.msg2605147#msg2605147 // With thanks to peterix for DFHack and Quietust for information http://www.bay12forums.com/smf/index.php?topic=91166.msg2605147#msg2605147
#include <map> #include <map>
@ -101,7 +100,23 @@ string searchAbbreviations(string in)
DFhackCExport command_result plugin_enable(color_ostream &out, bool enable) DFhackCExport command_result plugin_enable(color_ostream &out, bool enable)
{ {
running = enable; if(enable == true)
{
if(Core::getInstance().isWorldLoaded())
{
running = true;
out.print("seedwatch supervision started.\n");
} else {
out.printerr(
"This plugin needs a fortress to be loaded and will deactivate automatically otherwise.\n"
"Activate with 'seedwatch start' after you load the game.\n"
);
}
} else {
running = false;
out.print("seedwatch supervision stopped.\n");
}
return CR_OK; return CR_OK;
} }
@ -143,13 +158,12 @@ command_result df_seedwatch(color_ostream &out, vector<string>& parameters)
} }
else if(par == "start") else if(par == "start")
{ {
running = true; plugin_enable(out, true);
out.print("seedwatch supervision started.\n");
} }
else if(par == "stop") else if(par == "stop")
{ {
running = false; plugin_enable(out, false);
out.print("seedwatch supervision stopped.\n");
} }
else if(par == "clear") else if(par == "clear")
{ {
@ -284,9 +298,12 @@ DFhackCExport command_result plugin_onstatechange(color_ostream &out, state_chan
{ {
switch (event) { switch (event) {
case SC_MAP_LOADED: case SC_MAP_LOADED:
if(running)
out.print("seedwatch supervision started.\n");
break;
case SC_MAP_UNLOADED: case SC_MAP_UNLOADED:
if (running) if (running)
out.printerr("seedwatch deactivated due to game load/unload\n"); out.printerr("seedwatch deactivated due to game unload\n");
running = false; running = false;
break; break;
default: default: