summaryrefslogtreecommitdiff
path: root/plugins/jobutils.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-01-04 18:46:39 +0400
committerAlexander Gavrilov2012-01-04 18:46:39 +0400
commit99dda069de241920b19ad99ba8dbc88f166f1d91 (patch)
tree88ff4de0f506ee42904ec92d0e2916e88bf1bf8a /plugins/jobutils.cpp
parent1d1cd638003a74d4543ff7348ee29c27f03ed78a (diff)
downloaddfhack-99dda069de241920b19ad99ba8dbc88f166f1d91.tar.gz
dfhack-99dda069de241920b19ad99ba8dbc88f166f1d91.tar.bz2
dfhack-99dda069de241920b19ad99ba8dbc88f166f1d91.tar.xz
Update data definitions.
Diffstat (limited to 'plugins/jobutils.cpp')
-rw-r--r--plugins/jobutils.cpp54
1 files changed, 32 insertions, 22 deletions
diff --git a/plugins/jobutils.cpp b/plugins/jobutils.cpp
index 83503ddc..71ecc2b2 100644
--- a/plugins/jobutils.cpp
+++ b/plugins/jobutils.cpp
@@ -18,6 +18,7 @@
#include <df/job.h>
#include <df/job_item.h>
#include <df/item.h>
+#include <df/tool_uses.h>
using std::vector;
using std::string;
@@ -102,7 +103,7 @@ static bool workshop_job_hotkey(Core *c, df::viewscreen *top)
// No jobs?
if (selected->jobs.empty() ||
- selected->jobs[0]->job_id == job_type::DestroyBuilding)
+ selected->jobs[0]->job_type == job_type::DestroyBuilding)
return false;
// Add job gui activated?
@@ -169,7 +170,7 @@ static command_result job_material_in_job(Core *c, MaterialInfo &new_mat)
if (!job)
return CR_FAILURE;
- MaterialInfo cur_mat(job->matType, job->matIndex);
+ MaterialInfo cur_mat(job);
if (!cur_mat.isValid() || cur_mat.type != 0)
{
@@ -195,7 +196,7 @@ static command_result job_material_in_job(Core *c, MaterialInfo &new_mat)
for (unsigned i = 0; i < job->job_items.size(); i++)
{
df::job_item *item = job->job_items[i];
- MaterialInfo item_mat(item->matType, item->matIndex);
+ MaterialInfo item_mat(item);
if (item_mat != cur_mat)
{
@@ -206,18 +207,18 @@ static command_result job_material_in_job(Core *c, MaterialInfo &new_mat)
}
// Apply the substitution
- job->matType = new_mat.type;
- job->matIndex = new_mat.index;
+ job->mat_type = new_mat.type;
+ job->mat_index = new_mat.index;
for (unsigned i = 0; i < job->job_items.size(); i++)
{
df::job_item *item = job->job_items[i];
- item->matType = new_mat.type;
- item->matIndex = new_mat.index;
+ item->mat_type = new_mat.type;
+ item->mat_index = new_mat.index;
}
c->con << "Applied material '" << new_mat.toString()
- << "' to job " << ENUM_KEY_STR(job_type,job->job_id) << endl;
+ << "' to job " << ENUM_KEY_STR(job_type,job->job_type) << endl;
return CR_OK;
}
@@ -226,8 +227,8 @@ static bool build_choice_matches(df::ui_build_item_req *req, df::build_req_choic
{
if (VIRTUAL_CAST_VAR(gen, df::build_req_choice_genst, choice))
{
- if (gen->matType == new_mat.type &&
- gen->matIndex == new_mat.index &&
+ if (gen->mat_type == new_mat.type &&
+ gen->mat_index == new_mat.index &&
gen->used_count < gen->candidates.size())
{
return true;
@@ -289,14 +290,22 @@ static command_result job_material(Core * c, vector <string> & parameters)
static void print_job_item_details(Core *c, df::job *job, df::job_item *item)
{
- c->con << " Input Item: " << ENUM_KEY_STR(item_type,item->itemType);
- if (item->itemSubtype != -1)
- c->con << " [" << item->itemSubtype << "]";
- c->con << "; count=" << item->count << endl;
-
- MaterialInfo mat(item->matType, item->matIndex);
- if (mat.isValid())
- c->con << " material: " << mat.toString() << endl;
+ c->con << " Input Item: " << ENUM_KEY_STR(item_type,item->item_type);
+ if (item->item_subtype != -1)
+ c->con << " [" << item->item_subtype << "]";
+ if (item->quantity != 1)
+ c->con << "; quantity=" << item->quantity;
+ if (item->min_dimension >= 0)
+ c->con << "; min_dimension=" << item->min_dimension;
+ c->con << endl;
+
+ MaterialInfo mat(item);
+ if (mat.isValid() || item->metal_ore >= 0) {
+ c->con << " material: " << mat.toString();
+ if (item->metal_ore >= 0)
+ c->con << "; ore of " << MaterialInfo(0,item->metal_ore).toString();
+ c->con << endl;
+ }
if (item->flags1.whole)
c->con << " flags1: " << bitfieldToString(item->flags1) << endl;
@@ -309,15 +318,16 @@ static void print_job_item_details(Core *c, df::job *job, df::job_item *item)
c->con << " reaction class: " << item->reaction_class << endl;
if (!item->has_material_reaction_product.empty())
c->con << " reaction product: " << item->has_material_reaction_product << endl;
+ if (item->has_tool_use >= 0)
+ c->con << " tool use: " << ENUM_KEY_STR(tool_uses, item->has_tool_use) << endl;
}
static void print_job_details(Core *c, df::job *job)
{
- c->con << "Job " << job->id << ": " << ENUM_KEY_STR(job_type,job->job_id)
- << " [" << job->x << "," << job->y << "," << job->z << "] ("
- << bitfieldToString(job->flags) << ")" << endl;
+ c->con << "Job " << job->id << ": " << ENUM_KEY_STR(job_type,job->job_type)
+ << " (" << bitfieldToString(job->flags) << ")" << endl;
- MaterialInfo mat(job->matType, job->matIndex);
+ MaterialInfo mat(job);
if (mat.isValid() || job->material_category.whole)
{
c->con << " material: " << mat.toString();