mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-21 14:21:32 +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) {
|
||||
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];
|
||||
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"`,"
|
||||
#include "item_fieldlist.h"
|
||||
#undef F
|
||||
"updated"
|
||||
" from items order by id";
|
||||
Item_Struct item;
|
||||
if(RunQuery(query, sizeof(query), errbuf, &result)) {
|
||||
while((row = mysql_fetch_row(result))) {
|
||||
"updated FROM items ORDER BY id";
|
||||
auto results = QueryDatabase(query);
|
||||
if (!results.Success()) {
|
||||
LogFile->write(EQEMuLog::Error, "LoadItems '%s', %s", query.c_str(), results.ErrorMessage().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
for(auto row = results.begin(); row != results.end(); ++row) {
|
||||
memset(&item, 0, sizeof(Item_Struct));
|
||||
|
||||
item.ItemClass = (uint8)atoi(row[ItemField::itemclass]);
|
||||
strcpy(item.Name,row[ItemField::name]);
|
||||
strcpy(item.Lore,row[ItemField::lore]);
|
||||
strcpy(item.IDFile,row[ItemField::idfile]);
|
||||
|
||||
item.ID = (uint32)atoul(row[ItemField::id]);
|
||||
item.Weight = (uint8)atoi(row[ItemField::weight]);
|
||||
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.Deity = (uint32)atoul(row[ItemField::deity]);
|
||||
item.SkillModValue = (int32)atoul(row[ItemField::skillmodvalue]);
|
||||
//item.Unk033 = (int32)atoul(row[ItemField::UNK033]);
|
||||
|
||||
item.SkillModType = (uint32)atoul(row[ItemField::skillmodtype]);
|
||||
item.BaneDmgRace = (uint32)atoul(row[ItemField::banedmgrace]);
|
||||
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.Classes = (uint32)atoul(row[ItemField::classes]);
|
||||
item.Races = (uint32)atoul(row[ItemField::races]);
|
||||
//item.Unk054 = (uint32)atoul(row[ItemField::UNK054]);
|
||||
|
||||
item.MaxCharges = (int16)atoi(row[ItemField::maxcharges]);
|
||||
item.ItemType = (uint8)atoi(row[ItemField::itemtype]);
|
||||
item.Material = (uint8)atoi(row[ItemField::material]);
|
||||
item.SellRate = (float)atof(row[ItemField::sellrate]);
|
||||
//item.Unk059 = (uint32)atoul(row[ItemField::UNK059]);
|
||||
|
||||
item.CastTime = (uint32)atoul(row[ItemField::casttime]);
|
||||
item.EliteMaterial = (uint32)atoul(row[ItemField::elitematerial]);
|
||||
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.FactionAmt3 = (int32)atoul(row[ItemField::factionamt3]);
|
||||
item.FactionAmt4 = (int32)atoul(row[ItemField::factionamt4]);
|
||||
|
||||
strcpy(item.CharmFile,row[ItemField::charmfile]);
|
||||
|
||||
item.AugType = (uint32)atoul(row[ItemField::augtype]);
|
||||
item.AugSlotType[0] = (uint8)atoi(row[ItemField::augslot1type]);
|
||||
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.AugSlotVisible[4] = (uint8)atoi(row[ItemField::augslot5visible]);
|
||||
item.AugSlotUnk2[4] = 0;
|
||||
|
||||
item.LDoNTheme = (uint32)atoul(row[ItemField::ldontheme]);
|
||||
item.LDoNPrice = (uint32)atoul(row[ItemField::ldonprice]);
|
||||
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.Book = (uint8)atoi(row[ItemField::book]);
|
||||
item.BookType = (uint32)atoul(row[ItemField::booktype]);
|
||||
|
||||
strcpy(item.Filename,row[ItemField::filename]);
|
||||
|
||||
item.BaneDmgRaceAmt = (uint32)atoul(row[ItemField::banedmgraceamt]);
|
||||
item.AugRestrict = (uint32)atoul(row[ItemField::augrestrict]);
|
||||
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.Level = (uint8)atoul(row[ItemField::clicklevel]);
|
||||
item.Click.Level2 = (uint8)atoul(row[ItemField::clicklevel2]);
|
||||
|
||||
strcpy(item.CharmFile,row[ItemField::charmfile]);
|
||||
|
||||
item.Proc.Effect = (uint16)atoul(row[ItemField::proceffect]);
|
||||
item.Proc.Type = (uint8)atoul(row[ItemField::proctype]);
|
||||
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.ExpendableArrow = (uint16)atoul(row[ItemField::expendablearrow]);
|
||||
item.Clairvoyance = (uint32)atoul(row[ItemField::clairvoyance]);
|
||||
|
||||
strcpy(item.ClickName,row[ItemField::clickname]);
|
||||
strcpy(item.ProcName,row[ItemField::procname]);
|
||||
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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user