diff --git a/docs/Plugins.rst b/docs/Plugins.rst index 01b13eebf..5b86950b1 100644 --- a/docs/Plugins.rst +++ b/docs/Plugins.rst @@ -195,7 +195,7 @@ the visible part of the map is scanned. Options: -:all: Scan the whole map, as if it was revealed. +:all: Scan the whole map, as if it were revealed. :value: Show material value in the output. Most useful for gems. :hell: Show the Z range of HFS tubes. Implies 'all'. @@ -2586,8 +2586,6 @@ Subcommands: (e.g. TOWER_CAP). The cursor must be located on a dirt or grass floor tile. :grow: Turns saplings into trees; under the cursor if a sapling is selected, or every sapling on the map if the cursor is hidden. -:extirpate: Kills the tree or shrub under the cursor, instantly turning them to ashes. -:immolate: Sets the plants on fire instead. The fires can and *will* spread ;) For mass effects, use one of the additional options: diff --git a/plugins/plants.cpp b/plugins/plants.cpp index a15377279..69e712ef8 100644 --- a/plugins/plants.cpp +++ b/plugins/plants.cpp @@ -26,135 +26,6 @@ REQUIRE_GLOBAL(world); const uint32_t sapling_to_tree_threshold = 120 * 28 * 12 * 3 - 1; // 3 years minus 1 - let the game handle the actual growing-up -/* Immolate/Extirpate no longer work in 0.40 -enum do_what -{ - do_immolate, - do_extirpate -}; - -static bool getoptions( vector & parameters, bool & shrubs, bool & trees, bool & help) -{ - for(size_t i = 0;i < parameters.size();i++) - { - if(parameters[i] == "shrubs") - { - shrubs = true; - } - else if(parameters[i] == "trees") - { - trees = true; - } - else if(parameters[i] == "all") - { - trees = true; - shrubs = true; - } - else if(parameters[i] == "help" || parameters[i] == "?") - { - help = true; - } - else - { - return false; - } - } - return true; -} - -// -// Book of Immolations, chapter 1, verse 35: -// Armok emerged from the hellish depths and beheld the sunny realms for the first time. -// And he cursed the plants and trees for their bloodless wood, turning them into ash and smoldering ruin. -// Armok was pleased and great temples were built by the dwarves, for they shared his hatred for trees and plants. -// - -static command_result immolations (color_ostream &out, do_what what, bool shrubs, bool trees) -{ - CoreSuspender suspend; - if (!Maps::IsValid()) - { - out.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); - MapExtras::MapCache map; - if(shrubs || trees) - { - int destroyed = 0; - for(size_t i = 0 ; i < world->plants.all.size(); i++) - { - df::plant *p = world->plants.all[i]; - if(shrubs && p->flags.bits.is_shrub || trees && !p->flags.bits.is_shrub) - { - if (what == do_immolate) - p->damage_flags.bits.is_burning = true; - p->hitpoints = 0; - destroyed ++; - } - } - out.print("Praise Armok! %i plants destroyed.\n", destroyed); - } - else - { - int32_t x,y,z; - if(Gui::getCursorCoords(x,y,z)) - { - bool didit = false; - for(size_t i = 0; i < world->plants.all.size(); i++) - { - df::plant *tree = world->plants.all[i]; - if(tree->pos.x == x && tree->pos.y == y && tree->pos.z == z) - { - if(what == do_immolate) - tree->damage_flags.bits.is_burning = true; - tree->hitpoints = 0; - didit = true; - break; - } - } - if(didit) - out.print("Praise Armok! Selected plant destroyed.\n"); - else - out.printerr("No plant found at specified location!\n"); - } - else - { - out.printerr("No mass destruction and no cursor...\n" ); - } - } - return CR_OK; -} - -command_result df_immolate (color_ostream &out, vector & parameters, do_what what) -{ - bool shrubs = false, trees = false, help = false; - if (getoptions(parameters, shrubs, trees, help) && !help) - { - return immolations(out, what, shrubs, trees); - } - - string mode; - if (what == do_immolate) - mode = "Set plants on fire"; - else - mode = "Kill plants"; - - if (!help) - out.printerr("Invalid parameter!\n"); - - out << "Usage:\n" << - mode << " (under cursor, 'shrubs', 'trees' or 'all').\n" - "Without any options, this command acts on the plant under the cursor.\n" - "Options:\n" - "shrubs - affect all shrubs\n" - "trees - affect all trees\n" - "all - affect all plants\n"; - - return CR_OK; -} -*/ command_result df_grow (color_ostream &out, vector & parameters) { for(size_t i = 0; i < parameters.size();i++) @@ -320,18 +191,7 @@ command_result df_plant (color_ostream &out, vector & parameters) if (parameters[0] == "grow") { parameters.erase(parameters.begin()); return df_grow(out, parameters); - } else -/* - if (parameters[0] == "immolate") { - parameters.erase(parameters.begin()); - return df_immolate(out, parameters, do_immolate); - } else - if (parameters[0] == "extirpate") { - parameters.erase(parameters.begin()); - return df_immolate(out, parameters, do_extirpate); - } else -*/ - if (parameters[0] == "create") { + } else if (parameters[0] == "create") { parameters.erase(parameters.begin()); return df_createplant(out, parameters); } @@ -343,10 +203,8 @@ DFhackCExport command_result plugin_init ( color_ostream &out, std::vector