Browse Source

Arkaine's Valor: Don't check player inventory when processing CMD_OPERATEOBJ

pull/5863/head
staphen 3 years ago committed by Anders Jenbo
parent
commit
9af5bf84ba
  1. 26
      Source/objects.cpp

26
Source/objects.cpp

@ -2266,10 +2266,19 @@ void OperatePedestal(Player &player, Object &pedestal, bool sendmsg)
return;
}
if (pedestal._oVar6 == 3 || !RemoveInventoryItemById(player, IDI_BLDSTONE)) {
if (pedestal._oVar6 == 3 || (sendmsg && !RemoveInventoryItemById(player, IDI_BLDSTONE))) {
return;
}
if (sendmsg) {
NetSendCmdLoc(MyPlayerId, false, CMD_OPERATEOBJ, pedestal.position);
if (gbIsMultiplayer) {
// Store added stones to pedestal in qvar2, cause we get only one CMD_OPERATEOBJ from DeltaLoadLevel even if we add multiple stones
Quests[Q_BLOOD]._qvar2++;
NetSendCmdQuest(true, Quests[Q_BLOOD]);
}
}
pedestal._oAnimFrame++;
pedestal._oVar6++;
if (pedestal._oVar6 == 1) {
@ -2292,15 +2301,6 @@ void OperatePedestal(Player &player, Object &pedestal, bool sendmsg)
SpawnUnique(UITEM_ARMOFVAL, SetPiece.position.megaToWorld() + Displacement { 9, 3 });
pedestal._oSelFlag = 0;
}
if (sendmsg) {
NetSendCmdLoc(MyPlayerId, false, CMD_OPERATEOBJ, pedestal.position);
if (gbIsMultiplayer) {
// Store added stones to pedestal in qvar2, cause we get only one CMD_OPERATEOBJ from DeltaLoadLevel even if we add multiple stones
Quests[Q_BLOOD]._qvar2++;
NetSendCmdQuest(true, Quests[Q_BLOOD]);
}
}
}
void OperateShrineMysterious(Player &player)
@ -4467,7 +4467,8 @@ void OperateObject(Player &player, Object &object)
OperateStoryBook(object);
break;
case OBJ_PEDESTAL:
OperatePedestal(player, object, sendmsg);
if (sendmsg)
OperatePedestal(player, object, sendmsg);
break;
case OBJ_WARWEAP:
case OBJ_WEAPONRACK:
@ -4657,7 +4658,8 @@ void SyncOpObject(Player &player, int cmd, Object &object)
OperateStoryBook(object);
break;
case OBJ_PEDESTAL:
OperatePedestal(player, object, sendmsg);
if (!sendmsg)
OperatePedestal(player, object, sendmsg);
break;
case OBJ_WARWEAP:
case OBJ_WEAPONRACK:

Loading…
Cancel
Save