mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-21 06:01:29 +00:00
LoadItems converted to QueryDatabase
This commit is contained in:
parent
638d121b75
commit
2a73a572d3
@ -729,9 +729,6 @@ bool SharedDatabase::LoadItems() {
|
|||||||
|
|
||||||
void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id) {
|
void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id) {
|
||||||
EQEmu::FixedMemoryHashSet<Item_Struct> hash(reinterpret_cast<uint8*>(data), size, items, max_item_id);
|
EQEmu::FixedMemoryHashSet<Item_Struct> hash(reinterpret_cast<uint8*>(data), size, items, max_item_id);
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
|
|
||||||
char ndbuffer[4];
|
char ndbuffer[4];
|
||||||
bool disableNoRent = false;
|
bool disableNoRent = false;
|
||||||
@ -759,21 +756,27 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char query[] = "select source,"
|
Item_Struct item;
|
||||||
|
|
||||||
|
const std::string query = "SELECT source,"
|
||||||
#define F(x) "`"#x"`,"
|
#define F(x) "`"#x"`,"
|
||||||
#include "item_fieldlist.h"
|
#include "item_fieldlist.h"
|
||||||
#undef F
|
#undef F
|
||||||
"updated"
|
"updated FROM items ORDER BY id";
|
||||||
" from items order by id";
|
auto results = QueryDatabase(query);
|
||||||
Item_Struct item;
|
if (!results.Success()) {
|
||||||
if(RunQuery(query, sizeof(query), errbuf, &result)) {
|
LogFile->write(EQEMuLog::Error, "LoadItems '%s', %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
while((row = mysql_fetch_row(result))) {
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(auto row = results.begin(); row != results.end(); ++row) {
|
||||||
memset(&item, 0, sizeof(Item_Struct));
|
memset(&item, 0, sizeof(Item_Struct));
|
||||||
|
|
||||||
item.ItemClass = (uint8)atoi(row[ItemField::itemclass]);
|
item.ItemClass = (uint8)atoi(row[ItemField::itemclass]);
|
||||||
strcpy(item.Name,row[ItemField::name]);
|
strcpy(item.Name,row[ItemField::name]);
|
||||||
strcpy(item.Lore,row[ItemField::lore]);
|
strcpy(item.Lore,row[ItemField::lore]);
|
||||||
strcpy(item.IDFile,row[ItemField::idfile]);
|
strcpy(item.IDFile,row[ItemField::idfile]);
|
||||||
|
|
||||||
item.ID = (uint32)atoul(row[ItemField::id]);
|
item.ID = (uint32)atoul(row[ItemField::id]);
|
||||||
item.Weight = (uint8)atoi(row[ItemField::weight]);
|
item.Weight = (uint8)atoi(row[ItemField::weight]);
|
||||||
item.NoRent = disableNoRent ? (uint8)atoi("255") : (uint8)atoi(row[ItemField::norent]);
|
item.NoRent = disableNoRent ? (uint8)atoi("255") : (uint8)atoi(row[ItemField::norent]);
|
||||||
@ -801,7 +804,7 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.AC = (int32)atoul(row[ItemField::ac]);
|
item.AC = (int32)atoul(row[ItemField::ac]);
|
||||||
item.Deity = (uint32)atoul(row[ItemField::deity]);
|
item.Deity = (uint32)atoul(row[ItemField::deity]);
|
||||||
item.SkillModValue = (int32)atoul(row[ItemField::skillmodvalue]);
|
item.SkillModValue = (int32)atoul(row[ItemField::skillmodvalue]);
|
||||||
//item.Unk033 = (int32)atoul(row[ItemField::UNK033]);
|
|
||||||
item.SkillModType = (uint32)atoul(row[ItemField::skillmodtype]);
|
item.SkillModType = (uint32)atoul(row[ItemField::skillmodtype]);
|
||||||
item.BaneDmgRace = (uint32)atoul(row[ItemField::banedmgrace]);
|
item.BaneDmgRace = (uint32)atoul(row[ItemField::banedmgrace]);
|
||||||
item.BaneDmgAmt = (int8)atoi(row[ItemField::banedmgamt]);
|
item.BaneDmgAmt = (int8)atoi(row[ItemField::banedmgamt]);
|
||||||
@ -822,12 +825,12 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.Color = (uint32)atoul(row[ItemField::color]);
|
item.Color = (uint32)atoul(row[ItemField::color]);
|
||||||
item.Classes = (uint32)atoul(row[ItemField::classes]);
|
item.Classes = (uint32)atoul(row[ItemField::classes]);
|
||||||
item.Races = (uint32)atoul(row[ItemField::races]);
|
item.Races = (uint32)atoul(row[ItemField::races]);
|
||||||
//item.Unk054 = (uint32)atoul(row[ItemField::UNK054]);
|
|
||||||
item.MaxCharges = (int16)atoi(row[ItemField::maxcharges]);
|
item.MaxCharges = (int16)atoi(row[ItemField::maxcharges]);
|
||||||
item.ItemType = (uint8)atoi(row[ItemField::itemtype]);
|
item.ItemType = (uint8)atoi(row[ItemField::itemtype]);
|
||||||
item.Material = (uint8)atoi(row[ItemField::material]);
|
item.Material = (uint8)atoi(row[ItemField::material]);
|
||||||
item.SellRate = (float)atof(row[ItemField::sellrate]);
|
item.SellRate = (float)atof(row[ItemField::sellrate]);
|
||||||
//item.Unk059 = (uint32)atoul(row[ItemField::UNK059]);
|
|
||||||
item.CastTime = (uint32)atoul(row[ItemField::casttime]);
|
item.CastTime = (uint32)atoul(row[ItemField::casttime]);
|
||||||
item.EliteMaterial = (uint32)atoul(row[ItemField::elitematerial]);
|
item.EliteMaterial = (uint32)atoul(row[ItemField::elitematerial]);
|
||||||
item.ProcRate = (int32)atoi(row[ItemField::procrate]);
|
item.ProcRate = (int32)atoi(row[ItemField::procrate]);
|
||||||
@ -849,7 +852,9 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.FactionAmt2 = (int32)atoul(row[ItemField::factionamt2]);
|
item.FactionAmt2 = (int32)atoul(row[ItemField::factionamt2]);
|
||||||
item.FactionAmt3 = (int32)atoul(row[ItemField::factionamt3]);
|
item.FactionAmt3 = (int32)atoul(row[ItemField::factionamt3]);
|
||||||
item.FactionAmt4 = (int32)atoul(row[ItemField::factionamt4]);
|
item.FactionAmt4 = (int32)atoul(row[ItemField::factionamt4]);
|
||||||
|
|
||||||
strcpy(item.CharmFile,row[ItemField::charmfile]);
|
strcpy(item.CharmFile,row[ItemField::charmfile]);
|
||||||
|
|
||||||
item.AugType = (uint32)atoul(row[ItemField::augtype]);
|
item.AugType = (uint32)atoul(row[ItemField::augtype]);
|
||||||
item.AugSlotType[0] = (uint8)atoi(row[ItemField::augslot1type]);
|
item.AugSlotType[0] = (uint8)atoi(row[ItemField::augslot1type]);
|
||||||
item.AugSlotVisible[0] = (uint8)atoi(row[ItemField::augslot1visible]);
|
item.AugSlotVisible[0] = (uint8)atoi(row[ItemField::augslot1visible]);
|
||||||
@ -866,6 +871,7 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.AugSlotType[4] = (uint8)atoi(row[ItemField::augslot5type]);
|
item.AugSlotType[4] = (uint8)atoi(row[ItemField::augslot5type]);
|
||||||
item.AugSlotVisible[4] = (uint8)atoi(row[ItemField::augslot5visible]);
|
item.AugSlotVisible[4] = (uint8)atoi(row[ItemField::augslot5visible]);
|
||||||
item.AugSlotUnk2[4] = 0;
|
item.AugSlotUnk2[4] = 0;
|
||||||
|
|
||||||
item.LDoNTheme = (uint32)atoul(row[ItemField::ldontheme]);
|
item.LDoNTheme = (uint32)atoul(row[ItemField::ldontheme]);
|
||||||
item.LDoNPrice = (uint32)atoul(row[ItemField::ldonprice]);
|
item.LDoNPrice = (uint32)atoul(row[ItemField::ldonprice]);
|
||||||
item.LDoNSold = (uint32)atoul(row[ItemField::ldonsold]);
|
item.LDoNSold = (uint32)atoul(row[ItemField::ldonsold]);
|
||||||
@ -875,7 +881,9 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.BagWR = (uint8)atoi(row[ItemField::bagwr]);
|
item.BagWR = (uint8)atoi(row[ItemField::bagwr]);
|
||||||
item.Book = (uint8)atoi(row[ItemField::book]);
|
item.Book = (uint8)atoi(row[ItemField::book]);
|
||||||
item.BookType = (uint32)atoul(row[ItemField::booktype]);
|
item.BookType = (uint32)atoul(row[ItemField::booktype]);
|
||||||
|
|
||||||
strcpy(item.Filename,row[ItemField::filename]);
|
strcpy(item.Filename,row[ItemField::filename]);
|
||||||
|
|
||||||
item.BaneDmgRaceAmt = (uint32)atoul(row[ItemField::banedmgraceamt]);
|
item.BaneDmgRaceAmt = (uint32)atoul(row[ItemField::banedmgraceamt]);
|
||||||
item.AugRestrict = (uint32)atoul(row[ItemField::augrestrict]);
|
item.AugRestrict = (uint32)atoul(row[ItemField::augrestrict]);
|
||||||
item.LoreGroup = disableLoreGroup ? (uint8)atoi("0") : atoi(row[ItemField::loregroup]);
|
item.LoreGroup = disableLoreGroup ? (uint8)atoi("0") : atoi(row[ItemField::loregroup]);
|
||||||
@ -909,7 +917,9 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.Click.Type = (uint8)atoul(row[ItemField::clicktype]);
|
item.Click.Type = (uint8)atoul(row[ItemField::clicktype]);
|
||||||
item.Click.Level = (uint8)atoul(row[ItemField::clicklevel]);
|
item.Click.Level = (uint8)atoul(row[ItemField::clicklevel]);
|
||||||
item.Click.Level2 = (uint8)atoul(row[ItemField::clicklevel2]);
|
item.Click.Level2 = (uint8)atoul(row[ItemField::clicklevel2]);
|
||||||
|
|
||||||
strcpy(item.CharmFile,row[ItemField::charmfile]);
|
strcpy(item.CharmFile,row[ItemField::charmfile]);
|
||||||
|
|
||||||
item.Proc.Effect = (uint16)atoul(row[ItemField::proceffect]);
|
item.Proc.Effect = (uint16)atoul(row[ItemField::proceffect]);
|
||||||
item.Proc.Type = (uint8)atoul(row[ItemField::proctype]);
|
item.Proc.Type = (uint8)atoul(row[ItemField::proctype]);
|
||||||
item.Proc.Level = (uint8)atoul(row[ItemField::proclevel]);
|
item.Proc.Level = (uint8)atoul(row[ItemField::proclevel]);
|
||||||
@ -954,6 +964,7 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
item.ScriptFileID = (uint32)atoul(row[ItemField::scriptfileid]);
|
item.ScriptFileID = (uint32)atoul(row[ItemField::scriptfileid]);
|
||||||
item.ExpendableArrow = (uint16)atoul(row[ItemField::expendablearrow]);
|
item.ExpendableArrow = (uint16)atoul(row[ItemField::expendablearrow]);
|
||||||
item.Clairvoyance = (uint32)atoul(row[ItemField::clairvoyance]);
|
item.Clairvoyance = (uint32)atoul(row[ItemField::clairvoyance]);
|
||||||
|
|
||||||
strcpy(item.ClickName,row[ItemField::clickname]);
|
strcpy(item.ClickName,row[ItemField::clickname]);
|
||||||
strcpy(item.ProcName,row[ItemField::procname]);
|
strcpy(item.ProcName,row[ItemField::procname]);
|
||||||
strcpy(item.WornName,row[ItemField::wornname]);
|
strcpy(item.WornName,row[ItemField::wornname]);
|
||||||
@ -968,11 +979,6 @@ void SharedDatabase::LoadItems(void *data, uint32 size, int32 items, uint32 max_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_free_result(result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
LogFile->write(EQEMuLog::Error, "LoadItems '%s', %s", query, errbuf);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const Item_Struct* SharedDatabase::GetItem(uint32 id) {
|
const Item_Struct* SharedDatabase::GetItem(uint32 id) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user