Select by item name

develop
Anuradha Dissanayake 2012-11-20 22:52:44 +13:00
parent 0e2aa299b9
commit 5c18952caa
1 changed files with 11 additions and 3 deletions

@ -39,13 +39,19 @@ DFHACK_PLUGIN("automaterial");
struct MaterialDescriptor struct MaterialDescriptor
{ {
df::item_type item_type;
int16_t item_subtype;
int16_t type; int16_t type;
int32_t index; int32_t index;
bool valid; bool valid;
bool matches(const MaterialDescriptor &a) const bool matches(const MaterialDescriptor &a) const
{ {
return a.valid && valid && a.type == type && a.index == index; return a.valid && valid &&
a.type == type &&
a.index == index &&
a.item_type == item_type &&
a.item_subtype == item_subtype;
} }
}; };
@ -150,12 +156,16 @@ static MaterialDescriptor get_material_in_list(size_t i)
if (VIRTUAL_CAST_VAR(gen, df::build_req_choice_genst, ui_build_selector->choices[i])) if (VIRTUAL_CAST_VAR(gen, df::build_req_choice_genst, ui_build_selector->choices[i]))
{ {
result.item_type = gen->item_type;
result.item_subtype = gen->item_subtype;
result.type = gen->mat_type; result.type = gen->mat_type;
result.index = gen->mat_index; result.index = gen->mat_index;
result.valid = true; result.valid = true;
} }
else if (VIRTUAL_CAST_VAR(spec, df::build_req_choice_specst, ui_build_selector->choices[i])) else if (VIRTUAL_CAST_VAR(spec, df::build_req_choice_specst, ui_build_selector->choices[i]))
{ {
result.item_type = gen->item_type;
result.item_subtype = gen->item_subtype;
result.type = spec->candidate->getActualMaterial(); result.type = spec->candidate->getActualMaterial();
result.index = spec->candidate->getActualMaterialIndex(); result.index = spec->candidate->getActualMaterialIndex();
result.valid = true; result.valid = true;
@ -250,8 +260,6 @@ struct jobutils_hook : public df::viewscreen_dwarfmodest
{ {
typedef df::viewscreen_dwarfmodest interpose_base; typedef df::viewscreen_dwarfmodest interpose_base;
static color_ostream_proxy console_out;
DEFINE_VMETHOD_INTERPOSE(void, feed, (set<df::interface_key> *input)) DEFINE_VMETHOD_INTERPOSE(void, feed, (set<df::interface_key> *input))
{ {
if (in_material_choice_stage()) if (in_material_choice_stage())