|
OpenTTD Source
14.0-beta1
|
#include "stdafx.h"#include "landscape.h"#include "command_func.h"#include "company_func.h"#include "viewport_func.h"#include "company_base.h"#include "town.h"#include "bridge_map.h"#include "genworld.h"#include "autoslope.h"#include "clear_func.h"#include "water.h"#include "window_func.h"#include "company_gui.h"#include "cheat_type.h"#include "object.h"#include "cargopacket.h"#include "core/random_func.hpp"#include "core/pool_func.hpp"#include "object_map.h"#include "object_base.h"#include "newgrf_config.h"#include "newgrf_object.h"#include "timer/timer_game_calendar.h"#include "newgrf_debug.h"#include "vehicle_func.h"#include "station_func.h"#include "object_cmd.h"#include "landscape_cmd.h"#include "pathfinder/water_regions.h"#include "table/strings.h"#include "table/object_land.h"#include "safeguards.h"Go to the source code of this file.
Macros | |
| #define | GetCompanyHQSize GetAnimationFrame |
| We encode the company HQ size in the animation stage. | |
| #define | IncreaseCompanyHQSize IncreaseAnimationStage |
| We encode the company HQ size in the animation stage. | |
Functions | |
| ObjectType | GetObjectType (Tile t) |
| Gets the ObjectType of the given object tile. More... | |
| void | InitializeObjects () |
| Initialize/reset the objects. | |
| void | BuildObject (ObjectType type, TileIndex tile, CompanyID owner, Town *town, uint8_t view) |
| Actually build the object. More... | |
| static void | IncreaseAnimationStage (TileIndex tile) |
| Increase the animation stage of a whole structure. More... | |
| void | UpdateCompanyHQ (TileIndex tile, uint score) |
| Update the CompanyHQ to the state associated with the given score. More... | |
| void | UpdateObjectColours (const Company *c) |
| Updates the colour of the object whenever a company changes. More... | |
| CommandCost | CheckBuildableTile (TileIndex tile, uint invalid_dirs, int &allowed_z, bool allow_steep, bool check_bridge) |
| Checks if the given tile is buildable, flat and has a certain height. More... | |
| static CommandCost | ClearTile_Object (TileIndex tile, DoCommandFlag flags) |
| CommandCost | CmdBuildObject (DoCommandFlag flags, TileIndex tile, ObjectType type, uint8_t view) |
| Build an object object. More... | |
| CommandCost | CmdBuildObjectArea (DoCommandFlag flags, TileIndex tile, TileIndex start_tile, ObjectType type, uint8_t view, bool diagonal) |
| Construct multiple objects in an area. More... | |
| static Foundation | GetFoundation_Object (TileIndex tile, Slope tileh) |
| static void | DrawTile_Object (TileInfo *ti) |
| static int | GetSlopePixelZ_Object (TileIndex tile, uint x, uint y, bool) |
| static void | ReallyClearObjectTile (Object *o) |
| Perform the actual removal of the object from the map. More... | |
| ClearedObjectArea * | FindClearedObject (TileIndex tile) |
| Find the entry in _cleared_object_areas which occupies a certain tile. More... | |
| static void | AddAcceptedCargo_Object (TileIndex tile, CargoArray &acceptance, CargoTypes *always_accepted) |
| static void | AddProducedCargo_Object (TileIndex tile, CargoArray &produced) |
| static void | GetTileDesc_Object (TileIndex tile, TileDesc *td) |
| static void | TileLoop_Object (TileIndex tile) |
| static TrackStatus | GetTileTrackStatus_Object (TileIndex, TransportType, uint, DiagDirection) |
| static bool | ClickTile_Object (TileIndex tile) |
| static void | AnimateTile_Object (TileIndex tile) |
| static bool | HasTransmitter (TileIndex tile, void *) |
Helper function for CircularTileSearch. More... | |
| static bool | TryBuildLightHouse () |
| Try to build a lighthouse. More... | |
| static bool | TryBuildTransmitter () |
| Try to build a transmitter. More... | |
| void | GenerateObjects () |
| static void | ChangeTileOwner_Object (TileIndex tile, Owner old_owner, Owner new_owner) |
| static CommandCost | TerraformTile_Object (TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new) |
Variables | |
| ObjectPool | _object_pool ("Object") |
| std::vector< ClearedObjectArea > | _cleared_object_areas |
| const TileTypeProcs | _tile_type_object_procs |
Handling of object tiles.
Definition in file object_cmd.cpp.
| void BuildObject | ( | ObjectType | type, |
| TileIndex | tile, | ||
| CompanyID | owner, | ||
| Town * | town, | ||
| uint8_t | view | ||
| ) |
Actually build the object.
| type | The type of object to build. |
| tile | The tile to build the northern tile of the object on. |
| owner | The owner of the object. |
| town | Town the tile is related with. |
| view | The view for the object. |
Definition at line 88 of file object_cmd.cpp.
References Object::build_date, CalcClosestTownFromTile(), Object::colour, TimerGameCalendar::date, GB(), ObjectSpec::Get(), HasBit(), Object::location, OWNER_NONE, ObjectSpec::size, Object::town, Object::type, and Object::view.
Referenced by TryBuildTransmitter().
| CommandCost CheckBuildableTile | ( | TileIndex | tile, |
| uint | invalid_dirs, | ||
| int & | allowed_z, | ||
| bool | allow_steep, | ||
| bool | check_bridge = true |
||
| ) |
Checks if the given tile is buildable, flat and has a certain height.
| tile | TileIndex to check. |
| invalid_dirs | Prohibited directions for slopes (set of DiagDirection). |
| allowed_z | Height allowed for the tile. If allowed_z is negative, it will be set to the height of this tile. |
| allow_steep | Whether steep slopes are allowed. |
| check_bridge | Check for the existence of a bridge. |
Definition at line 799 of file station_cmd.cpp.
References _settings_game, CommandCost::AddCost(), ConstructionSettings::build_on_slopes, CanBuildDepotByTileh(), GameSettings::construction, DIAGDIR_BEGIN, DIAGDIR_END, EnsureNoVehicleOnGround(), EXPENSES_CONSTRUCTION, CommandCost::Failed(), GetSlopeMaxZ(), GetTileSlope(), HasBit(), IsBridgeAbove(), IsSteepSlope(), return_cmd_error, and SLOPE_FLAT.
Referenced by CheckFlatLandAirport(), and CheckFlatLandRoadStop().
| CommandCost CmdBuildObject | ( | DoCommandFlag | flags, |
| TileIndex | tile, | ||
| ObjectType | type, | ||
| uint8_t | view | ||
| ) |
Build an object object.
| flags | type of operation |
| tile | tile where the object will be located |
| type | the object type to build |
| view | the view for the object |
Definition at line 208 of file object_cmd.cpp.
References CMD_ERROR, EXPENSES_CONSTRUCTION, and ObjectSpec::Get().
| CommandCost CmdBuildObjectArea | ( | DoCommandFlag | flags, |
| TileIndex | tile, | ||
| TileIndex | start_tile, | ||
| ObjectType | type, | ||
| uint8_t | view, | ||
| bool | diagonal | ||
| ) |
Construct multiple objects in an area.
| flags | of operation to conduct |
| tile | end tile of area dragging |
| start_tile | start tile of area dragging |
| type | the object type to build |
| view | the view for the object |
| diagonal | Whether to use the Orthogonal (0) or Diagonal (1) iterator. |
Definition at line 390 of file object_cmd.cpp.
References _current_company, CommandCost::AddCost(), CompanyProperties::build_object_limit, CMD_ERROR, TileIterator::Create(), DC_EXEC, EXPENSES_CONSTRUCTION, CommandCost::Failed(), GB(), ObjectSpec::Get(), GetAvailableMoneyForCommand(), CommandCost::GetCost(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), INVALID_TILE, OBJECT_SIZE_1X1, ObjectSpec::size, Map::Size(), and ObjectSpec::views.
| ClearedObjectArea* FindClearedObject | ( | TileIndex | tile | ) |
Find the entry in _cleared_object_areas which occupies a certain tile.
| tile | Tile of interest |
Definition at line 531 of file object_cmd.cpp.
Referenced by CmdTerraformLand().
| ObjectType GetObjectType | ( | Tile | t | ) |
Gets the ObjectType of the given object tile.
| t | the tile to get the type from. |
Definition at line 66 of file object_cmd.cpp.
References Object::GetByTile(), IsTileType(), MP_OBJECT, and Object::type.
Referenced by ObjectSpec::GetByTile(), IsObjectType(), and IsObjectTypeTile().
|
static |
Helper function for CircularTileSearch.
| tile | The tile to check. |
Definition at line 741 of file object_cmd.cpp.
References IsObjectTypeTile(), and OBJECT_TRANSMITTER.
Referenced by TryBuildTransmitter().
|
static |
Increase the animation stage of a whole structure.
| tile | The tile of the structure. |
Definition at line 143 of file object_cmd.cpp.
References GetAnimationFrame(), Object::GetByTile(), Object::location, MarkTileDirtyByTile(), and SetAnimationFrame().
|
static |
Perform the actual removal of the object from the map.
| o | The object to really clear. |
Definition at line 513 of file object_cmd.cpp.
References Object::DecTypeCount(), DeleteNewGRFInspectWindow(), Object::location, and Object::type.
|
static |
Try to build a lighthouse.
Definition at line 750 of file object_cmd.cpp.
References Map::MaxX(), and Map::MaxY().
|
static |
Try to build a transmitter.
Definition at line 792 of file object_cmd.cpp.
References BuildObject(), CircularTileSearch(), HasTransmitter(), IsBridgeAbove(), IsTileFlat(), IsTileType(), MP_CLEAR, OBJECT_TRANSMITTER, and RandomTile.
| void UpdateCompanyHQ | ( | TileIndex | tile, |
| uint | score | ||
| ) |
Update the CompanyHQ to the state associated with the given score.
| tile | The (northern) tile of the company HQ, or INVALID_TILE. |
| score | The current (performance) score of the company. |
Definition at line 162 of file object_cmd.cpp.
References GetCompanyHQSize, IncreaseCompanyHQSize, and INVALID_TILE.
| void UpdateObjectColours | ( | const Company * | c | ) |
Updates the colour of the object whenever a company changes.
| c | The company the company colour changed of. |
Definition at line 181 of file object_cmd.cpp.
References ObjectSpec::callback_mask, CBM_OBJ_COLOUR, Livery::colour1, Livery::colour2, ObjectSpec::flags, ObjectSpec::GetByTile(), GetTileOwner(), HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_object_pool >::Iterate(), and OBJECT_FLAG_2CC_COLOUR.
| const TileTypeProcs _tile_type_object_procs |
Definition at line 57 of file landscape.cpp.