#include "stdafx.h"#include "openttd.h"#include "currency.h"#include "landscape.h"#include "news.h"#include "player_base.h"#include "player_func.h"#include "station.h"#include "command_func.h"#include "saveload.h"#include "industry.h"#include "town.h"#include "network/network.h"#include "engine.h"#include "network/network_data.h"#include "variables.h"#include "vehicle_gui.h"#include "ai/ai.h"#include "train.h"#include "roadveh.h"#include "aircraft.h"#include "newgrf_engine.h"#include "newgrf_sound.h"#include "newgrf_callbacks.h"#include "newgrf_industries.h"#include "newgrf_industrytiles.h"#include "unmovable.h"#include "cargotype.h"#include "player_face.h"#include "group.h"#include "strings_func.h"#include "tile_cmd.h"#include "functions.h"#include "window_func.h"#include "date_func.h"#include "vehicle_func.h"#include "sound_func.h"#include "track_type.h"#include "track_func.h"#include "road_func.h"#include "rail_map.h"#include "signal_func.h"#include "gfx_func.h"#include "autoreplace_func.h"#include "signs.h"#include "table/strings.h"#include "table/sprites.h"Go to the source code of this file.
Data Structures | |
| struct | FoundRoute |
Functions | |
| static int32 | BigMulS (const int32 a, const int32 b, const uint8 shift) |
| Multiply two integer values and shift the results to right. | |
| static uint32 | BigMulSU (const uint32 a, const uint32 b, const uint8 shift) |
| Multiply two unsigned integers and shift the results to right. | |
| Money | CalculateCompanyValue (const Player *p) |
| int | UpdateCompanyRatingAndValue (Player *p, bool update) |
| if update is set to true, the economy is updated with this score (also the house is updated, should only be true in the on-tick event) | |
| void | ChangeOwnershipOfPlayerItems (PlayerID old_player, PlayerID new_player) |
| static void | ChangeNetworkOwner (PlayerID current_player, PlayerID new_player) |
| static void | PlayersCheckBankrupt (Player *p) |
| void | DrawNewsBankrupcy (Window *w) |
| StringID | GetNewsStringBankrupcy (const NewsItem *ni) |
| static void | PlayersGenStatistics () |
| static void | AddSingleInflation (Money *value, uint16 *frac, int32 amt) |
| static void | AddInflation () |
| static void | PlayersPayInterest () |
| static void | HandleEconomyFluctuations () |
| void | ResetPriceBaseMultipliers () |
| Reset changes to the price base multipliers. | |
| void | SetPriceBaseMultiplier (uint price, byte factor) |
| Change a price base by the given factor. | |
| void | StartupEconomy () |
| Money | GetPriceByIndex (uint8 index) |
| Pair | SetupSubsidyDecodeParam (const Subsidy *s, bool mode) |
| void | DeleteSubsidyWithTown (TownID index) |
| void | DeleteSubsidyWithIndustry (IndustryID index) |
| void | DeleteSubsidyWithStation (StationID index) |
| static void | FindSubsidyPassengerRoute (FoundRoute *fr) |
| static void | FindSubsidyCargoRoute (FoundRoute *fr) |
| static bool | CheckSubsidyDuplicate (Subsidy *s) |
| static void | SubsidyMonthlyHandler () |
| static void | Save_SUBS () |
| static void | Load_SUBS () |
| Money | GetTransportedGoodsIncome (uint num_pieces, uint dist, byte transit_days, CargoID cargo_type) |
| static void | DeliverGoodsToIndustry (TileIndex xy, CargoID cargo_type, int num_pieces) |
| static bool | CheckSubsidised (Station *from, Station *to, CargoID cargo_type) |
| static Money | DeliverGoods (int num_pieces, CargoID cargo_type, StationID source, StationID dest, TileIndex source_tile, byte days_in_transit) |
| void | VehiclePayment (Vehicle *front_v) |
| Performs the vehicle payment _and_ marks the vehicle to be unloaded. | |
| static void | LoadUnloadVehicle (Vehicle *v, int *cargo_left) |
| Loads/unload the vehicle if possible. | |
| void | LoadUnloadStation (Station *st) |
| Load/unload the vehicles in this station according to the order they entered. | |
| void | PlayersMonthlyLoop () |
| static void | DoAcquireCompany (Player *p) |
| int | GetAmountOwnedBy (const Player *p, PlayerID owner) |
| CommandCost | CmdBuyShareInCompany (TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
| Acquire shares in an opposing company. | |
| CommandCost | CmdSellShareInCompany (TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
| Sell shares in an opposing company. | |
| CommandCost | CmdBuyCompany (TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
| Buy up another company. | |
| static void | SaveLoad_PRIC () |
| Prices. | |
| static void | SaveLoad_CAPR () |
| Cargo payment rates. | |
| static void | SaveLoad_ECMY () |
| Economy variables. | |
Variables | |
| const ScoreInfo | _score_info [] |
| int | _score_part [MAX_PLAYERS][SCORE_END] |
| Economy | _economy |
| Subsidy | _subsidies [MAX_PLAYERS] |
| Prices | _price |
| uint16 | _price_frac [NUM_PRICES] |
| Money | _cargo_payment_rates [NUM_CARGO] |
| uint16 | _cargo_payment_rates_frac [NUM_CARGO] |
| Money | _additional_cash_required |
| static byte | _price_category [NUM_PRICES] |
| static const Money | _price_base [NUM_PRICES] |
| static byte | price_base_multiplier [NUM_PRICES] |
| static const SaveLoad | _subsidies_desc [] |
| static const SaveLoad | _economy_desc [] |
| const ChunkHandler | _economy_chunk_handlers [] |
Definition in file economy.cpp.
| static int32 BigMulS | ( | const int32 | a, | |
| const int32 | b, | |||
| const uint8 | shift | |||
| ) | [inline, static] |
Multiply two integer values and shift the results to right.
This function multiplies two integer values. The result is shifted by the amount of shift to right.
| a | The first integer | |
| b | The second integer | |
| shift | The amount to shift the value to right. |
Definition at line 65 of file economy.cpp.
| static uint32 BigMulSU | ( | const uint32 | a, | |
| const uint32 | b, | |||
| const uint8 | shift | |||
| ) | [inline, static] |
Multiply two unsigned integers and shift the results to right.
This function multiplies two unsigned integers. The result is shifted by the amount of shift to right.
| a | The first unsigned integer | |
| b | The second unsigned integer | |
| shift | The amount to shift the value to right. |
Definition at line 81 of file economy.cpp.
| CommandCost CmdBuyCompany | ( | TileIndex | tile, | |
| uint32 | flags, | |||
| uint32 | p1, | |||
| uint32 | p2 | |||
| ) |
Buy up another company.
When a competing company is gone bankrupt you get the chance to purchase that company.
| tile | unused | |
| flags | type of operation | |
| p1 | player/company to buy up | |
| p2 | unused |
Definition at line 1976 of file economy.cpp.
References _networking, CMD_ERROR, and DC_EXEC.
| CommandCost CmdBuyShareInCompany | ( | TileIndex | tile, | |
| uint32 | flags, | |||
| uint32 | p1, | |||
| uint32 | p2 | |||
| ) |
Acquire shares in an opposing company.
| tile | unused | |
| flags | type of operation | |
| p1 | player to buy the shares from | |
| p2 | unused |
Definition at line 1888 of file economy.cpp.
References CommandCost::AddCost(), CMD_ERROR, DC_EXEC, PLAYER_SPECTATOR, and return_cmd_error.
| CommandCost CmdSellShareInCompany | ( | TileIndex | tile, | |
| uint32 | flags, | |||
| uint32 | p1, | |||
| uint32 | p2 | |||
| ) |
Sell shares in an opposing company.
| tile | unused | |
| flags | type of operation | |
| p1 | player to sell the shares from | |
| p2 | unused |
Definition at line 1937 of file economy.cpp.
References CMD_ERROR, DC_EXEC, and PLAYER_SPECTATOR.
| static void DeliverGoodsToIndustry | ( | TileIndex | xy, | |
| CargoID | cargo_type, | |||
| int | num_pieces | |||
| ) | [static] |
< unlikely value, just for warning removing
Definition at line 1297 of file economy.cpp.
References Industry::accepts_cargo, IndustrySpec::callback_flags, CBID_INDUSTRY_REFUSE_CARGO, CBM_IND_PRODUCTION_256_TICKS, CBM_IND_PRODUCTION_CARGO_ARRIVAL, CBM_IND_REFUSE_CARGO, DistanceManhattan(), GetIndustrySpec(), IndustrySpec::grf_prop, GRFFileProps::grffile, HasBit(), Industry::incoming_cargo_waiting, PoolItem< T, Tid, Tpool >::index, IndustryProductionCallback(), IndustrySpec::input_cargo_multiplier, Industry::last_cargo_accepted_at, min(), Industry::produced_cargo_waiting, Industry::type, Industry::was_cargo_delivered, and Industry::xy.
| void LoadUnloadStation | ( | Station * | st | ) |
Load/unload the vehicles in this station according to the order they entered.
| st | the station to do the loading/unloading for |
Definition at line 1819 of file economy.cpp.
References LoadUnloadVehicle().
| static void LoadUnloadVehicle | ( | Vehicle * | v, | |
| int * | cargo_left | |||
| ) | [static] |
Loads/unload the vehicle if possible.
| v | the vehicle to be (un)loaded | |
| cargo_left | the amount of each cargo type that is virtually left on the platform to be picked up by another vehicle when all previous vehicles have loaded. |
Definition at line 1576 of file economy.cpp.
References CalcPercentVehicleFilled(), CALLBACK_FAILED, CBID_VEHICLE_LOAD_AMOUNT, CBM_VEHICLE_LOAD_AMOUNT, CC_PASSENGERS, ClrBit(), GB(), GetVehicleCallback(), HasBit(), IsTileType(), min(), MP_STATION, CargoList::MTA_CARGO_LOAD, CargoList::MTA_FINAL_DELIVERY, OFB_TRANSFER, OFB_UNLOAD, PLAYER_SPECTATOR, SB(), SetBit(), and TILE_SIZE.
Referenced by LoadUnloadStation().
| void SetPriceBaseMultiplier | ( | uint | price, | |
| byte | factor | |||
| ) |
Change a price base by the given factor.
The price base is altered by factors of two, with an offset of 8. NewBaseCost = OldBaseCost * 2^(n-8)
| price | Index of price base to change. | |
| factor | Amount to change by. |
Definition at line 899 of file economy.cpp.
| int UpdateCompanyRatingAndValue | ( | Player * | p, | |
| bool | update | |||
| ) |
if update is set to true, the economy is updated with this score (also the house is updated, should only be true in the on-tick event)
| update | the economy with calculated score | |
| p | player been evaluated |
Definition at line 148 of file economy.cpp.
References Clamp(), ClampToI32(), CountBits(), max(), min(), SCORE_END, SCORE_MAX, and SCORE_TOTAL.
Referenced by CmdBuildCompanyHQ().
| void VehiclePayment | ( | Vehicle * | front_v | ) |
Performs the vehicle payment _and_ marks the vehicle to be unloaded.
| front_v | the vehicle to be unloaded |
Definition at line 1476 of file economy.cpp.
References ClrBit(), CargoPacket::count, CargoPacket::days_in_transit, DistanceManhattan(), CargoPacket::feeder_share, HasBit(), CargoPacket::loaded_at_xy, OFB_TRANSFER, OFB_UNLOAD, CargoPacket::paid_for, SetBit(), CargoPacket::source, and CargoPacket::source_xy.
| const ChunkHandler _economy_chunk_handlers[] |
Initial value:
{
{ 'PRIC', SaveLoad_PRIC, SaveLoad_PRIC, CH_RIFF | CH_AUTO_LENGTH},
{ 'CAPR', SaveLoad_CAPR, SaveLoad_CAPR, CH_RIFF | CH_AUTO_LENGTH},
{ 'SUBS', Save_SUBS, Load_SUBS, CH_ARRAY},
{ 'ECMY', SaveLoad_ECMY, SaveLoad_ECMY, CH_RIFF | CH_LAST},
}
const SaveLoad _economy_desc[] [static] |
Initial value:
{
SLE_CONDVAR(Economy, max_loan, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
SLE_CONDVAR(Economy, max_loan, SLE_INT64, 65, SL_MAX_VERSION),
SLE_CONDVAR(Economy, max_loan_unround, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
SLE_CONDVAR(Economy, max_loan_unround, SLE_INT64, 65, SL_MAX_VERSION),
SLE_CONDVAR(Economy, max_loan_unround_fract, SLE_UINT16, 70, SL_MAX_VERSION),
SLE_VAR(Economy, fluct, SLE_INT16),
SLE_VAR(Economy, interest_rate, SLE_UINT8),
SLE_VAR(Economy, infl_amount, SLE_UINT8),
SLE_VAR(Economy, infl_amount_pr, SLE_UINT8),
}
Definition at line 2014 of file economy.cpp.
byte _price_category[NUM_PRICES] [static] |
Initial value:
{
0, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 1, 1, 1, 1, 1, 1,
2,
}
Definition at line 816 of file economy.cpp.
| const ScoreInfo _score_info[] |
Initial value:
{
{ SCORE_VEHICLES, 120, 100 },
{ SCORE_STATIONS, 80, 100 },
{ SCORE_MIN_PROFIT, 10000, 100 },
{ SCORE_MIN_INCOME, 50000, 50 },
{ SCORE_MAX_INCOME, 100000, 100 },
{ SCORE_DELIVERED, 40000, 400 },
{ SCORE_CARGO, 8, 50 },
{ SCORE_MONEY, 10000000, 50 },
{ SCORE_LOAN, 250000, 50 },
{ SCORE_TOTAL, 0, 0 }
}
Definition at line 87 of file economy.cpp.
const SaveLoad _subsidies_desc[] [static] |
Initial value:
{
SLE_VAR(Subsidy, cargo_type, SLE_UINT8),
SLE_VAR(Subsidy, age, SLE_UINT8),
SLE_CONDVAR(Subsidy, from, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVAR(Subsidy, from, SLE_UINT16, 5, SL_MAX_VERSION),
SLE_CONDVAR(Subsidy, to, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVAR(Subsidy, to, SLE_UINT16, 5, SL_MAX_VERSION),
}
Definition at line 1210 of file economy.cpp.
1.5.6