mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Merge pull request #228 from 1dot13/master_1dot13
[Fix] One of optimizations in (2482234e) commit is not suitable for M…
This commit is contained in:
+18
-23
@@ -5667,36 +5667,31 @@ UINT64 SetAttachmentSlotsFlag(OBJECTTYPE* pObj)
|
|||||||
if (pObj->exists() == false)
|
if (pObj->exists() == false)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (UsingNewAttachmentSystem())
|
std::pair<std::multimap<UINT16, AttachmentStruct>::iterator, std::multimap<UINT16, AttachmentStruct>::iterator> range;
|
||||||
|
std::multimap<UINT16, AttachmentStruct>::iterator it;
|
||||||
|
range = AttachmentBackmap.equal_range(pObj->usItem);
|
||||||
|
for (it = range.first; it != range.second; it++)
|
||||||
{
|
{
|
||||||
std::pair<std::multimap<UINT16, AttachmentStruct>::iterator, std::multimap<UINT16, AttachmentStruct>::iterator> range;
|
UINT16 attachmentId = it->second.attachmentIndex;
|
||||||
std::multimap<UINT16, AttachmentStruct>::iterator it;
|
if (ItemIsLegal(attachmentId, TRUE))
|
||||||
range = AttachmentBackmap.equal_range(pObj->usItem);
|
uiSlotFlag |= Item[attachmentId].nasAttachmentClass;
|
||||||
for (it = range.first; it != range.second; it++)
|
}
|
||||||
|
|
||||||
|
for (UINT32 i = 0; i < gMAXLAUNCHABLES_READ; i++)
|
||||||
|
{
|
||||||
|
if (Launchable[i][1] == pObj->usItem)
|
||||||
{
|
{
|
||||||
UINT16 attachmentId = it->second.attachmentIndex;
|
UINT16 attachmentId = Launchable[i][0];
|
||||||
if (ItemIsLegal(attachmentId, TRUE))
|
if (ItemIsLegal(attachmentId, TRUE))
|
||||||
uiSlotFlag |= Item[attachmentId].nasAttachmentClass;
|
uiSlotFlag |= Item[attachmentId].nasAttachmentClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (UINT32 i = 0; i < gMAXLAUNCHABLES_READ; i++)
|
|
||||||
{
|
|
||||||
if (Launchable[i][1] == pObj->usItem)
|
|
||||||
{
|
|
||||||
UINT16 attachmentId = Launchable[i][0];
|
|
||||||
if (ItemIsLegal(attachmentId, TRUE))
|
|
||||||
uiSlotFlag |= Item[attachmentId].nasAttachmentClass;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
UINT64 point = GetAvailableAttachmentPoint(pObj, 0);
|
||||||
|
for (UINT32 itemId = 1; itemId < gMAXITEMS_READ; itemId++)
|
||||||
{
|
{
|
||||||
UINT64 point = GetAvailableAttachmentPoint(pObj, 0);
|
if (IsAttachmentPointAvailable(point, itemId, TRUE))
|
||||||
for (UINT32 itemId = 1; itemId < gMAXITEMS_READ; itemId++)
|
uiSlotFlag |= Item[itemId].nasAttachmentClass;
|
||||||
{
|
|
||||||
if (ItemIsLegal(itemId, TRUE) && IsAttachmentPointAvailable(point, itemId, TRUE))
|
|
||||||
uiSlotFlag |= Item[itemId].nasAttachmentClass;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return uiSlotFlag;
|
return uiSlotFlag;
|
||||||
|
|||||||
Reference in New Issue
Block a user