scenario.cpp: check item types before adding a default description,
party.cpp: minor cleaninggs...
This commit is contained in:
@@ -429,8 +429,90 @@ void cScenario::import_legacy(legacy::scen_item_data_type const &old){
|
|||||||
|
|
||||||
scen_items.resize(400);
|
scen_items.resize(400);
|
||||||
StringList strings = *ResMgr::strings.get("legacy-items-desc");
|
StringList strings = *ResMgr::strings.get("legacy-items-desc");
|
||||||
|
static eItemType const legacyTypes[399]={
|
||||||
|
eItemType::GOLD, eItemType::FOOD, eItemType::FOOD, eItemType::FOOD, eItemType::PANTS,
|
||||||
|
eItemType::PANTS, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::THROWN_MISSILE,
|
||||||
|
eItemType::THROWN_MISSILE, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::TOOL, eItemType::TOOL, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::TOOL, eItemType::TOOL, eItemType::SCROLL, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::ARMOR, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED,
|
||||||
|
eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED,
|
||||||
|
eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::TWO_HANDED,
|
||||||
|
eItemType::TWO_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE,
|
||||||
|
eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE, eItemType::ARROW, eItemType::ARROW,
|
||||||
|
eItemType::ARROW, eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE, eItemType::BOW, eItemType::BOW,
|
||||||
|
eItemType::BOW, eItemType::BOW, eItemType::CROSSBOW, eItemType::CROSSBOW, eItemType::CROSSBOW,
|
||||||
|
eItemType::BOLTS, eItemType::BOLTS, eItemType::BOLTS, eItemType::MISSILE_NO_AMMO, eItemType::MISSILE_NO_AMMO,
|
||||||
|
eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR,
|
||||||
|
eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR,
|
||||||
|
eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR,
|
||||||
|
eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::ARMOR, eItemType::SHIELD,
|
||||||
|
eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD,
|
||||||
|
eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD,
|
||||||
|
eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::HELM,
|
||||||
|
eItemType::HELM, eItemType::HELM, eItemType::HELM, eItemType::HELM, eItemType::HELM,
|
||||||
|
eItemType::HELM, eItemType::HELM, eItemType::HELM, eItemType::HELM, eItemType::GLOVES,
|
||||||
|
eItemType::GLOVES, eItemType::GLOVES, eItemType::GLOVES, eItemType::GLOVES, eItemType::BOOTS,
|
||||||
|
eItemType::BOOTS, eItemType::TOOL, eItemType::WEAPON_POISON, eItemType::WEAPON_POISON, eItemType::WEAPON_POISON,
|
||||||
|
eItemType::WEAPON_POISON, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::TOOL, eItemType::TOOL,
|
||||||
|
eItemType::SCROLL, eItemType::NON_USE_OBJECT, eItemType::POTION, eItemType::SCROLL, eItemType::SCROLL,
|
||||||
|
eItemType::SCROLL, eItemType::POTION, eItemType::SCROLL, eItemType::SCROLL, eItemType::POTION,
|
||||||
|
eItemType::POTION, eItemType::POTION, eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL,
|
||||||
|
eItemType::POTION, eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL,
|
||||||
|
eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL,
|
||||||
|
eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL, eItemType::SCROLL, eItemType::WAND,
|
||||||
|
eItemType::WAND, eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::HELM, eItemType::HELM, eItemType::HELM,
|
||||||
|
eItemType::HELM, eItemType::HELM, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::GLOVES, eItemType::GLOVES, eItemType::GLOVES, eItemType::GLOVES,
|
||||||
|
eItemType::GLOVES, eItemType::GLOVES, eItemType::BOOTS, eItemType::BOOTS, eItemType::BOOTS,
|
||||||
|
eItemType::BOOTS, eItemType::BOOTS, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD,
|
||||||
|
eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD, eItemType::SHIELD,
|
||||||
|
eItemType::SHIELD, eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION,
|
||||||
|
eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION,
|
||||||
|
eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION,
|
||||||
|
eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION,
|
||||||
|
eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::POTION,
|
||||||
|
eItemType::POTION, eItemType::POTION, eItemType::POTION, eItemType::THROWN_MISSILE, eItemType::THROWN_MISSILE,
|
||||||
|
eItemType::ARROW, eItemType::ARROW, eItemType::ARROW, eItemType::ARROW, eItemType::ARROW,
|
||||||
|
eItemType::BOW, eItemType::BOW, eItemType::THROWN_MISSILE, eItemType::WAND, eItemType::WAND,
|
||||||
|
eItemType::WAND, eItemType::WAND, eItemType::WAND, eItemType::WAND, eItemType::WAND,
|
||||||
|
eItemType::WAND, eItemType::WAND, eItemType::WAND, eItemType::RING, eItemType::RING,
|
||||||
|
eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING,
|
||||||
|
eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING,
|
||||||
|
eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING,
|
||||||
|
eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING,
|
||||||
|
eItemType::RING, eItemType::RING, eItemType::RING, eItemType::RING, eItemType::NECKLACE,
|
||||||
|
eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE,
|
||||||
|
eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE,
|
||||||
|
eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NECKLACE, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::POTION, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::SCROLL, eItemType::SCROLL,
|
||||||
|
eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::TWO_HANDED, eItemType::ONE_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::SCROLL, eItemType::SCROLL, eItemType::POTION, eItemType::RING, eItemType::RING,
|
||||||
|
eItemType::NECKLACE, eItemType::WAND, eItemType::WAND, eItemType::HELM, eItemType::SHIELD,
|
||||||
|
eItemType::ONE_HANDED, eItemType::SHIELD, eItemType::RING, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::ONE_HANDED, eItemType::ONE_HANDED, eItemType::TWO_HANDED,
|
||||||
|
eItemType::ONE_HANDED, eItemType::SHIELD, eItemType::ONE_HANDED, eItemType::RING, eItemType::TWO_HANDED,
|
||||||
|
eItemType::NON_USE_OBJECT, eItemType::NON_USE_OBJECT, eItemType::ONE_HANDED, eItemType::ARMOR, eItemType::PANTS,
|
||||||
|
eItemType::FOOD, eItemType::FOOD, eItemType::SCROLL, eItemType::NON_USE_OBJECT,
|
||||||
|
};
|
||||||
for(size_t i = 0; i < 400; i++) {
|
for(size_t i = 0; i < 400; i++) {
|
||||||
scen_items[i].import_legacy(old.scen_items[i]);
|
scen_items[i].import_legacy(old.scen_items[i]);
|
||||||
|
if (i>=399 || scen_items[i].variety!=legacyTypes[i]) // check with legacy type
|
||||||
|
continue;
|
||||||
if (i>=strings.size())
|
if (i>=strings.size())
|
||||||
continue;
|
continue;
|
||||||
if (!scen_items[i].desc.empty())
|
if (!scen_items[i].desc.empty())
|
||||||
|
@@ -649,10 +649,10 @@ bool cParty::forced_give(cItem item,eItemAbil abil,short dat) {
|
|||||||
item.abil_data[0] = dat / 1000;
|
item.abil_data[0] = dat / 1000;
|
||||||
item.abil_data[1] = dat % 1000;
|
item.abil_data[1] = dat % 1000;
|
||||||
}
|
}
|
||||||
// TODO: It's strange to check main_status in the inner loop here rather than the outer loop
|
for(cPlayer& pc : *this) {
|
||||||
for(cPlayer& pc : *this)
|
if(pc.main_status != eMainStatus::ALIVE) continue;
|
||||||
for(cItem& slot : pc.items)
|
for(cItem& slot : pc.items)
|
||||||
if(pc.main_status == eMainStatus::ALIVE && slot.variety == eItemType::NO_ITEM) {
|
if(slot.variety == eItemType::NO_ITEM) {
|
||||||
slot = item;
|
slot = item;
|
||||||
|
|
||||||
if(print_result) {
|
if(print_result) {
|
||||||
@@ -668,6 +668,7 @@ bool cParty::forced_give(cItem item,eItemAbil abil,short dat) {
|
|||||||
pc.sort_items();
|
pc.sort_items();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user