@@ -335,7 +335,7 @@ static void itemMoveHandler(CNSocket* sock, CNPacketData* data) {
335335
336336 // if equipping an item, validate that it's of the correct type for the slot
337337 if ((SlotType)itemmove->eTo == SlotType::EQUIP) {
338- if (fromItem->iType == 10 && itemmove->iToSlotNum != AEQUIP_VEHICLE_IDX )
338+ if (fromItem->iType == 10 && itemmove->iToSlotNum != EQUIP_SLOT_VEHICLE )
339339 return ; // vehicle in wrong slot
340340 else if (fromItem->iType != 10
341341 && !(fromItem->iType == 0 && itemmove->iToSlotNum == 7 )
@@ -399,7 +399,7 @@ static void itemMoveHandler(CNSocket* sock, CNPacketData* data) {
399399 }
400400
401401 // unequip vehicle if equip slot 8 is 0
402- if (plr->Equip [AEQUIP_VEHICLE_IDX ].iID == 0 && plr->iPCState & 8 ) {
402+ if (plr->Equip [EQUIP_SLOT_VEHICLE ].iID == 0 && plr->iPCState & 8 ) {
403403 INITSTRUCT (sP_FE2CL_PC_VEHICLE_OFF_SUCC , response);
404404 sock->sendPacket (response, P_FE2CL_PC_VEHICLE_OFF_SUCC);
405405
@@ -830,7 +830,7 @@ size_t Items::checkAndRemoveExpiredItems(CNSocket* sock, Player* player) {
830830 }
831831
832832 // exit vehicle if player no longer has one equipped (function checks pcstyle)
833- if (player->Equip [AEQUIP_VEHICLE_IDX ].iID == 0 )
833+ if (player->Equip [EQUIP_SLOT_VEHICLE ].iID == 0 )
834834 PlayerManager::exitPlayerVehicle (sock, nullptr );
835835
836836 return itemData.size ();
@@ -880,14 +880,13 @@ static void getMobDrop(sItemBase* reward, const std::vector<int>& weights, const
880880 reward->iID = crateIds[chosenIndex];
881881}
882882
883- static int getTaroDrop (Player* plr, int baseAmount, int groupSize) {
883+ static int32_t calculateTaroReward (Player* plr, int baseAmount, int groupSize) {
884884 double bonus = plr->hasBuff (ECSB_REWARD_CASH) ? (Nanos::getNanoBoost (plr) ? 1.23 : 1.2 ) : 1.0 ;
885885 double groupEffect = 1.0 / groupSize;
886- int amount = baseAmount * bonus * groupEffect;
887- return amount;
886+ return baseAmount * plr->rateT [RATE_SLOT_COMBAT] * bonus * groupEffect;
888887}
889888
890- static int getFMDrop (Player* plr, int baseAmount, int levelDiff, int groupSize) {
889+ static int32_t calculateFMReward (Player* plr, int baseAmount, int levelDiff, int groupSize) {
891890 double bonus = plr->hasBuff (ECSB_REWARD_BLOB) ? (Nanos::getNanoBoost (plr) ? 1.23 : 1.2 ) : 1.0 ;
892891 double boosterEffect = plr->hasHunterBoost () ? (plr->hasQuestBoost () && plr->hasRacerBoost () ? 1.75 : 1.5 ) : 1.0 ;
893892
@@ -936,7 +935,7 @@ static int getFMDrop(Player* plr, int baseAmount, int levelDiff, int groupSize)
936935 break ;
937936 }
938937
939- int amount = baseAmount * bonus * levelEffect * groupEffect;
938+ int32_t amount = baseAmount * plr-> rateF [RATE_SLOT_COMBAT] * bonus * levelEffect * groupEffect;
940939 amount *= boosterEffect;
941940 return amount;
942941}
@@ -993,24 +992,20 @@ static void giveSingleDrop(CNSocket *sock, Mob* mob, int mobDropId, const DropRo
993992 MiscDropType& miscDropType = Items::MiscDropTypes[drop.miscDropTypeId ];
994993
995994 if (rolled.taros % miscDropChance.taroDropChanceTotal < miscDropChance.taroDropChance ) {
996- plr->money += getTaroDrop (plr, miscDropType.taroAmount , groupSize);
995+ int32_t taros = calculateTaroReward (plr, miscDropType.taroAmount , groupSize);
996+ plr->addCapped (CappedValueType::TAROS, taros);
997997 }
998998 if (rolled.fm % miscDropChance.fmDropChanceTotal < miscDropChance.fmDropChance ) {
999999 int levelDifference = plr->level - mob->level ;
1000- int fm = getFMDrop (plr, miscDropType.fmAmount , levelDifference, groupSize);
1001- Missions::updateFusionMatter (sock, fm);
1000+ int32_t fm = calculateFMReward (plr, miscDropType.fmAmount , levelDifference, groupSize);
1001+ plr->addCapped (CappedValueType::FUSIONMATTER, fm);
1002+ Missions::updateFusionMatter (sock);
10021003 }
10031004
10041005 if (rolled.potions % miscDropChance.potionDropChanceTotal < miscDropChance.potionDropChance )
1005- plr->batteryN += miscDropType.potionAmount ;
1006+ plr->addCapped (CappedValueType::BATTERY_N, miscDropType.potionAmount ) ;
10061007 if (rolled.boosts % miscDropChance.boostDropChanceTotal < miscDropChance.boostDropChance )
1007- plr->batteryW += miscDropType.boostAmount ;
1008-
1009- // caps
1010- if (plr->batteryW > 9999 )
1011- plr->batteryW = 9999 ;
1012- if (plr->batteryN > 9999 )
1013- plr->batteryN = 9999 ;
1008+ plr->addCapped (CappedValueType::BATTERY_W, miscDropType.boostAmount );
10141009
10151010 // simple rewards
10161011 reward->m_iCandy = plr->money ;
0 commit comments