From 26cec5f60c120b7ea4ce4592ef926bd11f2c2cc4 Mon Sep 17 00:00:00 2001 From: Kelly Martin Date: Sun, 22 Apr 2012 10:17:14 -0500 Subject: [PATCH] Probe now displays the "surroundings" name for the biome (e.g. Joyous Wilds, or Terrifying). Rprobe can be used from the embark screen to set the evilness of the selected biome; use with due care. --- plugins/devel/rprobe.cpp | 22 +++++++++++++++++++++- plugins/probe.cpp | 9 +++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/plugins/devel/rprobe.cpp b/plugins/devel/rprobe.cpp index 4378c547c..8829b9a4f 100644 --- a/plugins/devel/rprobe.cpp +++ b/plugins/devel/rprobe.cpp @@ -61,6 +61,9 @@ command_result rprobe (color_ostream &out, vector & parameters) { CoreSuspender suspend; + bool set = false; + int to_set, set_val; + // Embark screen active: estimate using world geology data VIRTUAL_CAST_VAR(screen, df::viewscreen_choose_start_sitest, Core::getTopViewscreen()); @@ -73,6 +76,17 @@ command_result rprobe (color_ostream &out, vector & parameters) return CR_FAILURE; } + if (parameters.size() == 1) + { + if (!screen->biome_highlighted) + { + return CR_WRONG_USAGE; + } + set = true; + to_set = screen->biome_idx; + set_val = atoi(parameters[0].c_str()); + } + df::world_data *data = world->world_data; coord2d cur_region = screen->region_pos; @@ -80,10 +94,16 @@ command_result rprobe (color_ostream &out, vector & parameters) for (int i = 0; i < screen->biome_rgn.size(); i++) { coord2d rg = screen->biome_rgn[i]; - out << i << ": x = " << rg.x << ", y = " << rg.y; df::world_data::T_region_map* rd = &data->region_map[rg.x][rg.y]; + if (set && i == to_set) { + rd->evilness = set_val; + out << "* Set evilness to " << set_val << endl; + } + + out << i << ": x = " << rg.x << ", y = " << rg.y; + out << " region_id: " << rd->region_id << " geo_index: " << rd->geo_index << diff --git a/plugins/probe.cpp b/plugins/probe.cpp index 058a9e5ca..06b1f968e 100644 --- a/plugins/probe.cpp +++ b/plugins/probe.cpp @@ -216,9 +216,18 @@ command_result df_probe (color_ostream &out, vector & parameters) df::world_data::T_region_map* biome = &world->world_data->region_map[region_pos.x][region_pos.y]; + int sav = biome->savagery; + int evi = biome->evilness; + int sindex = sav > 65 ? 2 : sav < 33 ? 0 : 1; + int eindex = evi > 65 ? 2 : evi < 33 ? 0 : 1; + int surr = sindex + eindex * 3; + + char* surroundings[] = { "Serene", "Mirthful", "Joyous Wilds", "Calm", "Wilderness", "Untamed Wilds", "Sinister", "Haunted", "Terrifying" }; + // biome, geolayer out << "biome: " << des.bits.biome << " (" << "region id=" << biome->region_id << ", " << + surroundings[surr] << ", " << "savagery " << biome->savagery << ", " << "evilness " << biome->evilness << ")" << std::endl; out << "geolayer: " << des.bits.geolayer_index