As per KLS' suggestion, I should use new instead of malloc(), so I am going to. I should also free memory :P
Code:
void Client::DoTributeUpdate() {
const Item_Struct* myitem = database.GetItem(1001);
Item_Struct* item = new Item_Struct;
memcpy(item, myitem, sizeof(Item_Struct));
if(GetLevel() >= 76 && this->GetClientVersion() == EQClientSoF)
{
item->HP += (CalcBaseHP() - 5);
item->Mana += (CalcMaxMana() - 5);
item->Endur += (this->max_end - 5);
}
const Item_Struct* item2 = item;
ItemInst* myinst = database.CreateBaseItem(item2);
SendFakeItem(400, myinst, ItemPacketTributeItem);
delete item;
delete myinst;
return;
}