Remove AS prefixes from add-spatter.cpp

The actual cause of this crash was fixed in #558

See #205
develop
lethosor 2015-02-19 11:56:57 -05:00
parent 962df78ff0
commit c80fbbc397
2 changed files with 21 additions and 21 deletions

@ -26,7 +26,7 @@ namespace DFHack
DFLibrary * OpenPlugin (const char * filename) DFLibrary * OpenPlugin (const char * filename)
{ {
dlerror(); dlerror();
DFLibrary * ret = (DFLibrary *) dlopen(filename, RTLD_NOW); DFLibrary * ret = (DFLibrary *) dlopen(filename, RTLD_NOW | RTLD_LOCAL);
if(!ret) if(!ret)
{ {
std::cerr << dlerror() << std::endl; std::cerr << dlerror() << std::endl;

@ -49,44 +49,44 @@ REQUIRE_GLOBAL(ui);
typedef df::reaction_product_item_improvementst improvement_product; typedef df::reaction_product_item_improvementst improvement_product;
struct ASReagentSource { struct ReagentSource {
int idx; int idx;
df::reaction_reagent *reagent; df::reaction_reagent *reagent;
ASReagentSource() : idx(-1), reagent(NULL) {} ReagentSource() : idx(-1), reagent(NULL) {}
}; };
struct ASMaterialSource : ASReagentSource { struct MaterialSource : ReagentSource {
bool product; bool product;
std::string product_name; std::string product_name;
int mat_type, mat_index; int mat_type, mat_index;
ASMaterialSource() : product(false), mat_type(-1), mat_index(-1) {} MaterialSource() : product(false), mat_type(-1), mat_index(-1) {}
}; };
struct ASProductInfo { struct ProductInfo {
df::reaction *react; df::reaction *react;
improvement_product *product; improvement_product *product;
ASReagentSource object; ReagentSource object;
ASMaterialSource material; MaterialSource material;
bool isValid() { bool isValid() {
return object.reagent && (material.mat_type >= 0 || material.reagent); return object.reagent && (material.mat_type >= 0 || material.reagent);
} }
}; };
struct ASReactionInfo { struct ReactionInfo {
df::reaction *react; df::reaction *react;
std::vector<ASProductInfo> products; std::vector<ProductInfo> products;
}; };
static std::map<std::string, ASReactionInfo> reactions; static std::map<std::string, ReactionInfo> reactions;
static std::map<df::reaction_product*, ASProductInfo*> products; static std::map<df::reaction_product*, ProductInfo*> products;
static ASReactionInfo *find_reaction(const std::string &name) static ReactionInfo *find_reaction(const std::string &name)
{ {
auto it = reactions.find(name); auto it = reactions.find(name);
return (it != reactions.end()) ? &it->second : NULL; return (it != reactions.end()) ? &it->second : NULL;
@ -97,7 +97,7 @@ static bool is_add_spatter(const std::string &name)
return name.size() > 12 && memcmp(name.data(), "SPATTER_ADD_", 12) == 0; return name.size() > 12 && memcmp(name.data(), "SPATTER_ADD_", 12) == 0;
} }
static void find_material(int *type, int *index, df::item *input, ASMaterialSource &mat) static void find_material(int *type, int *index, df::item *input, MaterialSource &mat)
{ {
if (input && mat.reagent) if (input && mat.reagent)
{ {
@ -146,7 +146,7 @@ static int has_contaminant(df::item_actual *item, int type, int index)
typedef std::map<int, std::vector<df::item*> > item_table; typedef std::map<int, std::vector<df::item*> > item_table;
static void index_items(item_table &table, df::job *job, ASReactionInfo *info) static void index_items(item_table &table, df::job *job, ReactionInfo *info)
{ {
for (int i = job->items.size()-1; i >= 0; i--) for (int i = job->items.size()-1; i >= 0; i--)
{ {
@ -178,7 +178,7 @@ static void index_items(item_table &table, df::job *job, ASReactionInfo *info)
} }
} }
df::item* find_item(ASReagentSource &info, item_table &table) df::item* find_item(ReagentSource &info, item_table &table)
{ {
if (!info.reagent) if (!info.reagent)
return NULL; return NULL;
@ -192,7 +192,7 @@ struct item_hook : df::item_constructed {
DEFINE_VMETHOD_INTERPOSE(bool, isImprovable, (df::job *job, int16_t mat_type, int32_t mat_index)) DEFINE_VMETHOD_INTERPOSE(bool, isImprovable, (df::job *job, int16_t mat_type, int32_t mat_index))
{ {
ASReactionInfo *info; ReactionInfo *info;
if (job && job->job_type == job_type::CustomReaction && if (job && job->job_type == job_type::CustomReaction &&
(info = find_reaction(job->reaction_name)) != NULL) (info = find_reaction(job->reaction_name)) != NULL)
@ -226,7 +226,7 @@ struct item_hook : df::item_constructed {
IMPLEMENT_VMETHOD_INTERPOSE(item_hook, isImprovable); IMPLEMENT_VMETHOD_INTERPOSE(item_hook, isImprovable);
df::item* find_item( df::item* find_item(
ASReagentSource &info, ReagentSource &info,
std::vector<df::reaction_reagent*> *in_reag, std::vector<df::reaction_reagent*> *in_reag,
std::vector<df::item*> *in_items std::vector<df::item*> *in_items
) { ) {
@ -304,7 +304,7 @@ IMPLEMENT_VMETHOD_INTERPOSE(product_hook, produce);
*/ */
static void find_reagent( static void find_reagent(
color_ostream &out, ASReagentSource &info, df::reaction *react, std::string name color_ostream &out, ReagentSource &info, df::reaction *react, std::string name
) { ) {
for (size_t i = 0; i < react->reagents.size(); i++) for (size_t i = 0; i < react->reagents.size(); i++)
{ {
@ -320,7 +320,7 @@ static void find_reagent(
} }
static void parse_product( static void parse_product(
color_ostream &out, ASProductInfo &info, df::reaction *react, improvement_product *prod color_ostream &out, ProductInfo &info, df::reaction *react, improvement_product *prod
) { ) {
using namespace df::enums::reaction_product_improvement_flags; using namespace df::enums::reaction_product_improvement_flags;
@ -374,7 +374,7 @@ static bool find_reactions(color_ostream &out)
auto itprod = strict_virtual_cast<improvement_product>(prod[i]); auto itprod = strict_virtual_cast<improvement_product>(prod[i]);
if (!itprod) continue; if (!itprod) continue;
out_prod.push_back(ASProductInfo()); out_prod.push_back(ProductInfo());
parse_product(out, out_prod.back(), it->second.react, itprod); parse_product(out, out_prod.back(), it->second.react, itprod);
} }