Decompile 3 functions in Source/Contents/Items/ItemInfo.cpp
Batch #12228 by Yommy: 0 byte-identical, 3 confirmed by peer review. - fn_06612 ITEM_INFO::Deserialize: logic confirmed by peer review - fn_06614 LoadItemIntegerTable: logic confirmed by peer review - fn_23386 LookupClientItem: logic confirmed by peer review Peer-reviewed-by: KWDev, Tanke, Toshiro Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
parent
f793aa6e80
commit
8056824bb4
1 changed files with 9 additions and 5 deletions
|
|
@ -194,6 +194,10 @@ void ITEM_INFO::Reset() {
|
|||
// OFFSET: 0x00DDD4E0
|
||||
// FUNCTION: fn_23386
|
||||
ITEM_INFO LookupClientItem(const std::list<ITEM_INFO>& values, int id, unsigned char requireIdentified) {
|
||||
if (values.empty()) {
|
||||
return ITEM_INFO(0);
|
||||
}
|
||||
|
||||
for (const ITEM_INFO& value : values) {
|
||||
if (std::atoi(value.itemId.c_str()) == id && (!requireIdentified || value.identified != 0)) {
|
||||
return value;
|
||||
|
|
@ -304,14 +308,14 @@ std::uint32_t ITEM_INFO::Deserialize(const std::vector<unsigned char>& data) {
|
|||
}
|
||||
|
||||
std::uint32_t offset = 6;
|
||||
ItemRecordHeader header{};
|
||||
std::memcpy(&header, data.data(), sizeof(header));
|
||||
ItemRecordHeader header;
|
||||
header.Read(data.data());
|
||||
if (header.id != 281) {
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
while (offset < data.size()) {
|
||||
std::memcpy(&header, data.data() + offset, sizeof(header));
|
||||
header.Read(data.data() + offset);
|
||||
offset += 6;
|
||||
const unsigned char* source = data.data() + offset;
|
||||
switch (header.id) {
|
||||
|
|
@ -579,7 +583,7 @@ bool LoadItemIntegerTable(std::vector<int>& values, const char* name) {
|
|||
}
|
||||
|
||||
const unsigned int size = file.GetSize();
|
||||
char* buffer = static_cast<char*>(std::malloc(size + 1));
|
||||
char* buffer = new char[size + 1];
|
||||
if (values.capacity() < size) {
|
||||
values.reserve(size);
|
||||
}
|
||||
|
|
@ -612,7 +616,7 @@ bool LoadItemIntegerTable(std::vector<int>& values, const char* name) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
std::free(buffer);
|
||||
delete[] buffer;
|
||||
std::vector<int>(values).swap(values);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue