|
|
|
@ -46,6 +46,8 @@ DFhackCExport command_result plugin_init (Core *c, std::vector <PluginCommand> &
|
|
|
|
|
"tweak", "Various tweaks for minor bugs.", tweak, false,
|
|
|
|
|
" tweak clear-missing\n"
|
|
|
|
|
" Remove the missing status from the selected unit.\n"
|
|
|
|
|
" lair\n"
|
|
|
|
|
" Mark the map as monster lair\n"
|
|
|
|
|
));
|
|
|
|
|
return CR_OK;
|
|
|
|
|
}
|
|
|
|
@ -54,7 +56,7 @@ DFhackCExport command_result plugin_shutdown ( Core * c )
|
|
|
|
|
{
|
|
|
|
|
return CR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
command_result lair(DFHack::Core * c, std::vector<std::string> & params);
|
|
|
|
|
static command_result tweak(Core * c, vector <string> ¶meters)
|
|
|
|
|
{
|
|
|
|
|
CoreSuspender suspend(c);
|
|
|
|
@ -81,8 +83,47 @@ static command_result tweak(Core * c, vector <string> ¶meters)
|
|
|
|
|
crime->flags.bits.discovered = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return CR_WRONG_USAGE;
|
|
|
|
|
else if(cmd == "lair")
|
|
|
|
|
{
|
|
|
|
|
return lair(c,parameters);
|
|
|
|
|
}
|
|
|
|
|
else return CR_WRONG_USAGE;
|
|
|
|
|
|
|
|
|
|
return CR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#include "modules/Maps.h"
|
|
|
|
|
command_result lair(DFHack::Core * c, std::vector<std::string> & params)
|
|
|
|
|
{
|
|
|
|
|
for(size_t i = 0; i < params.size();i++)
|
|
|
|
|
{
|
|
|
|
|
if(params[i] == "help" || params[i] == "?")
|
|
|
|
|
{
|
|
|
|
|
c->con.print("Makes the map a smonster lair, hopefully preventing item scatter.\n");
|
|
|
|
|
return CR_OK;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Console & con = c->con;
|
|
|
|
|
|
|
|
|
|
//CoreSuspender suspend(c);
|
|
|
|
|
if (!Maps::IsValid())
|
|
|
|
|
{
|
|
|
|
|
c->con.printerr("Map is not available!\n");
|
|
|
|
|
return CR_FAILURE;
|
|
|
|
|
}
|
|
|
|
|
uint32_t x_max,y_max,z_max;
|
|
|
|
|
Maps::getSize(x_max,y_max,z_max);
|
|
|
|
|
for (size_t i = 0; i < world->map.map_blocks.size(); i++)
|
|
|
|
|
{
|
|
|
|
|
df::map_block *block = world->map.map_blocks[i];
|
|
|
|
|
DFHack::occupancies40d & occupancies = block->occupancy;
|
|
|
|
|
// for each tile in block
|
|
|
|
|
for (uint32_t x = 0; x < 16; x++) for (uint32_t y = 0; y < 16; y++)
|
|
|
|
|
{
|
|
|
|
|
// set to revealed
|
|
|
|
|
occupancies[x][y].bits.monster_lair = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
con.print("Map monsterized.\n");
|
|
|
|
|
return CR_OK;
|
|
|
|
|
}
|