mirror of
https://github.com/EQEmu/Server.git
synced 2026-08-30 22:06:46 +00:00
Added ConvertExpansionMaskToLatestExpansion
This commit is contained in:
@@ -597,3 +597,28 @@ uint32 EQEmu::expansions::ConvertClientVersionToExpansionMask(versions::ClientVe
|
||||
return expansions::maskEverQuest;
|
||||
}
|
||||
}
|
||||
|
||||
uint32 EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(uint32 expansion_mask)
|
||||
{
|
||||
if (expansion_mask & bitRoK == bitRoK) return static_cast<uint32>(Expansion::RoK);
|
||||
if (expansion_mask & bitSoV == bitSoV) return static_cast<uint32>(Expansion::SoV);
|
||||
if (expansion_mask & bitSoL == bitSoL) return static_cast<uint32>(Expansion::SoL);
|
||||
if (expansion_mask & bitPoP == bitPoP) return static_cast<uint32>(Expansion::PoP);
|
||||
if (expansion_mask & bitLoY == bitLoY) return static_cast<uint32>(Expansion::LoY);
|
||||
if (expansion_mask & bitLDoN == bitLDoN) return static_cast<uint32>(Expansion::LDoN);
|
||||
if (expansion_mask & bitGoD == bitGoD) return static_cast<uint32>(Expansion::GoD);
|
||||
if (expansion_mask & bitOoW == bitOoW) return static_cast<uint32>(Expansion::OoW);
|
||||
if (expansion_mask & bitDoN == bitDoN) return static_cast<uint32>(Expansion::DoN);
|
||||
if (expansion_mask & bitDoD == bitDoD) return static_cast<uint32>(Expansion::DoD);
|
||||
if (expansion_mask & bitPoR == bitPoR) return static_cast<uint32>(Expansion::PoR);
|
||||
if (expansion_mask & bitTSS == bitTSS) return static_cast<uint32>(Expansion::TSS);
|
||||
if (expansion_mask & bitTBS == bitTBS) return static_cast<uint32>(Expansion::TBS);
|
||||
if (expansion_mask & bitSoF == bitSoF) return static_cast<uint32>(Expansion::SoF);
|
||||
if (expansion_mask & bitSoD == bitSoD) return static_cast<uint32>(Expansion::SoD);
|
||||
if (expansion_mask & bitUF == bitUF) return static_cast<uint32>(Expansion::UF);
|
||||
if (expansion_mask & bitHoT == bitHoT) return static_cast<uint32>(Expansion::HoT);
|
||||
if (expansion_mask & bitVoA == bitVoA) return static_cast<uint32>(Expansion::VoA);
|
||||
if (expansion_mask & bitRoF == bitRoF) return static_cast<uint32>(Expansion::RoF);
|
||||
if (expansion_mask & bitCotF == bitCotF) return static_cast<uint32>(Expansion::CotF);
|
||||
return static_cast<uint32>(Expansion::EverQuest);
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ namespace EQEmu
|
||||
Expansion ConvertClientVersionToExpansion(versions::ClientVersion client_version);
|
||||
uint32 ConvertClientVersionToExpansionBit(versions::ClientVersion client_version);
|
||||
uint32 ConvertClientVersionToExpansionMask(versions::ClientVersion client_version);
|
||||
|
||||
uint32 ConvertExpansionMaskToLatestExpansion(uint32 expansion_mask);
|
||||
} /*expansions*/
|
||||
|
||||
} /*EQEmu*/
|
||||
|
||||
+6
-5
@@ -413,7 +413,7 @@ bool SharedDatabase::SetSharedPlatinum(uint32 account_id, int32 amount_to_add) {
|
||||
bool SharedDatabase::SetStartingItems(PlayerProfile_Struct* pp, EQEmu::InventoryProfile* inv, uint32 si_race, uint32 si_class, uint32 si_deity, uint32 si_current_zone, char* si_name, int admin_level) {
|
||||
|
||||
const EQEmu::ItemData* myitem;
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionBitToExpansion(RuleI(World, ExpansionSettings));
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(RuleI(World, ExpansionSettings));
|
||||
std::string query = StringFormat("SELECT itemid, item_charges, slot FROM starting_items "
|
||||
"WHERE (race = %i or race = 0) AND (class = %i or class = 0) AND "
|
||||
"(deityid = %i or deityid = 0) AND (zoneid = %i or zoneid = 0) AND "
|
||||
@@ -1936,7 +1936,7 @@ void SharedDatabase::GetLootTableInfo(uint32 &loot_table_count, uint32 &max_loot
|
||||
loot_table_count = 0;
|
||||
max_loot_table = 0;
|
||||
loot_table_entries = 0;
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionBitToExpansion(RuleI(World, ExpansionSettings));
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(RuleI(World, ExpansionSettings));
|
||||
const std::string query = StringFormat("SELECT COUNT(*), MAX(id), (SELECT COUNT(*) FROM loottable_entries) FROM loottable WHERE min_expansion <= %i AND max_expansion >= %i", latest_expansion, latest_expansion);
|
||||
auto results = QueryDatabase(query);
|
||||
if (!results.Success()) {
|
||||
@@ -1957,7 +1957,7 @@ void SharedDatabase::GetLootDropInfo(uint32 &loot_drop_count, uint32 &max_loot_d
|
||||
loot_drop_count = 0;
|
||||
max_loot_drop = 0;
|
||||
loot_drop_entries = 0;
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionBitToExpansion(RuleI(World, ExpansionSettings));
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(RuleI(World, ExpansionSettings));
|
||||
|
||||
const std::string query = StringFormat("SELECT COUNT(*), MAX(id), (SELECT COUNT(*) FROM lootdrop_entries) FROM lootdrop WHERE min_expansion <= %i AND max_expansion >= %i", latest_expansion, latest_expansion);
|
||||
auto results = QueryDatabase(query);
|
||||
@@ -1981,10 +1981,11 @@ void SharedDatabase::LoadLootTables(void *data, uint32 size) {
|
||||
uint8 loot_table[sizeof(LootTable_Struct) + (sizeof(LootTableEntries_Struct) * 128)];
|
||||
LootTable_Struct *lt = reinterpret_cast<LootTable_Struct*>(loot_table);
|
||||
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(RuleI(World, ExpansionSettings));
|
||||
const std::string query = StringFormat("SELECT loottable.id, loottable.mincash, loottable.maxcash, loottable.avgcoin, "
|
||||
"loottable_entries.lootdrop_id, loottable_entries.multiplier, loottable_entries.droplimit, "
|
||||
"loottable_entries.mindrop, loottable_entries.probability FROM loottable LEFT JOIN loottable_entries "
|
||||
"ON loottable.id = loottable_entries.loottable_id WHERE %d & loottable.expansions = loottable.expansions ORDER BY id", RuleI(World, ExpansionSettings));
|
||||
"ON loottable.id = loottable_entries.loottable_id WHERE min_expansion <= %i AND max_expansion >= %i ORDER BY id", latest_expansion, latest_expansion);
|
||||
auto results = QueryDatabase(query);
|
||||
if (!results.Success()) {
|
||||
return;
|
||||
@@ -2034,7 +2035,7 @@ void SharedDatabase::LoadLootDrops(void *data, uint32 size) {
|
||||
uint8 loot_drop[sizeof(LootDrop_Struct) + (sizeof(LootDropEntries_Struct) * 1260)];
|
||||
LootDrop_Struct *ld = reinterpret_cast<LootDrop_Struct*>(loot_drop);
|
||||
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionBitToExpansion(RuleI(World, ExpansionSettings));
|
||||
auto latest_expansion = EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(RuleI(World, ExpansionSettings));
|
||||
const std::string query = StringFormat("SELECT lootdrop.id, lootdrop_entries.item_id, lootdrop_entries.item_charges, "
|
||||
"lootdrop_entries.equip_item, lootdrop_entries.chance, lootdrop_entries.minlevel, "
|
||||
"lootdrop_entries.maxlevel, lootdrop_entries.multiplier FROM lootdrop JOIN lootdrop_entries "
|
||||
|
||||
Reference in New Issue
Block a user