void item::make(itype* it) { if(!it) type = nullitem(); else type = it; contents.clear(); }
item::item(itype* it, unsigned int turn) { if(!it) type = nullitem(); else type = it; bday = turn; name = ""; invlet = 0; damage = 0; burnt = 0; poison = 0; mode = IF_NULL; item_flags = 0; item_counter = 0; active = false; curammo = NULL; corpse = NULL; owned = -1; mission_id = -1; player_id = -1; if (it == NULL) return; if (it->is_gun()) charges = 0; else if (it->is_ammo()) { it_ammo* ammo = dynamic_cast<it_ammo*>(it); charges = ammo->count; } else if (it->is_food()) { it_comest* comest = dynamic_cast<it_comest*>(it); if (comest->charges == 1 && !made_of(LIQUID)) charges = -1; else charges = comest->charges; } else if (it->is_tool()) { it_tool* tool = dynamic_cast<it_tool*>(it); if (tool->max_charges == 0) charges = -1; else charges = tool->def_charges; } else if ((it->is_gunmod() && it->id == "spare_mag") || it->item_flags & mfb(IF_MODE_AUX)) { charges = 0; } else charges = -1; if(it->is_var_veh_part()){ it_var_veh_part* varcarpart = dynamic_cast<it_var_veh_part*>(it); bigness= rng( varcarpart->min_bigness, varcarpart->max_bigness); } }
item::item(itype *it, unsigned int turn, char let) { if(!it) type = nullitem(); else type = it; bday = turn; name = ""; damage = 0; burnt = 0; poison = 0; mode = IF_NULL; active = false; if (it->is_gun()) { charges = 0; } else if (it->is_ammo()) { it_ammo* ammo = dynamic_cast<it_ammo*>(it); charges = ammo->count; } else if (it->is_food()) { it_comest* comest = dynamic_cast<it_comest*>(it); if (comest->charges == 1 && !made_of(LIQUID)) charges = -1; else charges = comest->charges; } else if (it->is_tool()) { it_tool* tool = dynamic_cast<it_tool*>(it); if (tool->max_charges == 0) charges = -1; else charges = tool->def_charges; } else if (it->is_gunmod() && it->id == itm_spare_mag) { charges = 0; } else { charges = -1; } if(it->is_var_veh_part()){ it_var_veh_part* engine = dynamic_cast<it_var_veh_part*>(it); bigness= rng( engine->min_bigness, engine->max_bigness); } curammo = NULL; corpse = NULL; owned = -1; invlet = let; mission_id = -1; player_id = -1; }
item::item() { name = ""; charges = -1; bday = 0; invlet = 0; damage = 0; burnt = 0; poison = 0; mode = IF_NULL; type = nullitem(); curammo = NULL; corpse = NULL; active = false; owned = -1; mission_id = -1; player_id = -1; }
void item::make_corpse(itype* it, mtype* mt, unsigned int turn) { name = ""; charges = -1; invlet = 0; damage = 0; burnt = 0; poison = 0; mode = IF_NULL; curammo = NULL; active = false; if(!it) type = nullitem(); else type = it; corpse = mt; bday = turn; }