(svn r25011) -Codechange: allow vehicle transfer and profit text effects to be shown at the same time (fonsinchen)

This commit is contained in:
rubidium
2013-02-17 14:50:54 +00:00
parent 79b74a5925
commit c62cbe04a4
7 changed files with 48 additions and 27 deletions

View File

@@ -1140,21 +1140,23 @@ CargoPayment::~CargoPayment()
this->front->cargo_payment = NULL;
if (this->visual_profit == 0) return;
if (this->visual_profit == 0 && this->visual_transfer == 0) return;
Backup<CompanyByte> cur_company(_current_company, this->front->owner, FILE_LINE);
SubtractMoneyFromCompany(CommandCost(this->front->GetExpenseType(true), -this->route_profit));
this->front->profit_this_year += this->visual_profit << 8;
this->front->profit_this_year += (this->visual_profit + this->visual_transfer) << 8;
if (this->route_profit != 0) {
if (IsLocalCompany() && !PlayVehicleSound(this->front, VSE_LOAD_UNLOAD)) {
SndPlayVehicleFx(SND_14_CASHTILL, this->front);
}
if (this->route_profit != 0 && IsLocalCompany() && !PlayVehicleSound(this->front, VSE_LOAD_UNLOAD)) {
SndPlayVehicleFx(SND_14_CASHTILL, this->front);
}
ShowCostOrIncomeAnimation(this->front->x_pos, this->front->y_pos, this->front->z_pos, -this->visual_profit);
} else {
ShowFeederIncomeAnimation(this->front->x_pos, this->front->y_pos, this->front->z_pos, this->visual_profit);
if (this->visual_transfer != 0) {
ShowFeederIncomeAnimation(this->front->x_pos, this->front->y_pos,
this->front->z_pos, this->visual_transfer, -this->visual_profit);
} else if (this->visual_profit != 0) {
ShowCostOrIncomeAnimation(this->front->x_pos, this->front->y_pos,
this->front->z_pos, -this->visual_profit);
}
cur_company.Restore();
@@ -1196,7 +1198,7 @@ Money CargoPayment::PayTransfer(const CargoPacket *cp, uint count)
profit = profit * _settings_game.economy.feeder_payment_share / 100;
this->visual_profit += profit; // accumulate transfer profits for whole vehicle
this->visual_transfer += profit; // accumulate transfer profits for whole vehicle
return profit; // account for the (virtual) profit already made for the cargo packet
}