Changeset - r8212:13ec7a6b1407
[Not reviewed]
master
0 18 4
rubidium - 16 years ago 2008-01-07 09:19:53
rubidium@openttd.org
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
22 files changed with 195 insertions and 126 deletions:
0 comments (0 inline, 0 general)
src/aircraft_cmd.cpp
Show inline comments
 
@@ -25,24 +25,26 @@
 
#include "newgrf_text.h"
 
#include "newgrf_sound.h"
 
#include "spritecache.h"
 
#include "cargotype.h"
 
#include "strings_func.h"
 
#include "command_func.h"
 
#include "window_func.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "functions.h"
 
#include "variables.h"
 
#include "autoreplace_func.h"
 
#include "autoreplace_gui.h"
 

	
 
void Aircraft::UpdateDeltaXY(Direction direction)
 
{
 
	uint32 x;
 
#define MKIT(a, b, c, d) ((a & 0xFF) << 24) | ((b & 0xFF) << 16) | ((c & 0xFF) << 8) | ((d & 0xFF) << 0)
 
	switch (this->subtype) {
 
		default: NOT_REACHED();
 
		case AIR_AIRCRAFT:
 
		case AIR_HELICOPTER:
 
			switch (this->u.air.state) {
 
				case ENDTAKEOFF:
 
				case LANDING:
src/autoreplace_base.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/** @file autoreplace_base.h Base class for autoreplaces/autorenews. */
 

	
 
#ifndef AUTOREPLACE_BASE_H
 
#define AUTOREPLACE_BASE_H
 

	
 
#include "oldpool.h"
 
#include "autoreplace_type.h"
 

	
 
/**
 
 * Memory pool for engine renew elements. DO NOT USE outside of engine.c. Is
 
 * placed here so the only exception to this rule, the saveload code, can use
 
 * it.
 
 */
 
DECLARE_OLD_POOL(EngineRenew, EngineRenew, 3, 8000)
 

	
 
/**
 
 * Struct to store engine replacements. DO NOT USE outside of engine.c. Is
 
 * placed here so the only exception to this rule, the saveload code, can use
 
 * it.
 
 */
 
struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> {
 
	EngineID from;
 
	EngineID to;
 
	EngineRenew *next;
 
	GroupID group_id;
 

	
 
	EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {}
 
	~EngineRenew() { this->from = INVALID_ENGINE; }
 

	
 
	inline bool IsValid() const { return this->from != INVALID_ENGINE; }
 
};
 

	
 
#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid())
 
#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0)
 

	
 
#endif /* AUTOREPLACE_BASE_H */
src/autoreplace_cmd.cpp
Show inline comments
 
@@ -12,24 +12,25 @@
 
#include "vehicle_gui.h"
 
#include "depot.h"
 
#include "train.h"
 
#include "aircraft.h"
 
#include "cargotype.h"
 
#include "group.h"
 
#include "order.h"
 
#include "strings_func.h"
 
#include "command_func.h"
 
#include "vehicle_func.h"
 
#include "functions.h"
 
#include "variables.h"
 
#include "autoreplace_func.h"
 

	
 
/*
 
 * move the cargo from one engine to another if possible
 
 */
 
static void MoveVehicleCargo(Vehicle *dest, Vehicle *source)
 
{
 
	Vehicle *v = dest;
 

	
 
	do {
 
		do {
 
			if (source->cargo_type != dest->cargo_type)
 
				continue; // cargo not compatible
src/autoreplace_func.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/** @file autoreplace_func.h Functions related to autoreplacing. */
 

	
 
#ifndef AUTOREPLACE_FUNC_H
 
#define AUTOREPLACE_FUNC_H
 

	
 
#include "autoreplace_type.h"
 
#include "player.h"
 

	
 
/**
 
 * Remove all engine replacement settings for the player.
 
 * @param  erl The renewlist for a given player.
 
 * @return The new renewlist for the player.
 
 */
 
void RemoveAllEngineReplacement(EngineRenewList *erl);
 

	
 
/**
 
 * Retrieve the engine replacement in a given renewlist for an original engine type.
 
 * @param  erl The renewlist to search in.
 
 * @param  engine Engine type to be replaced.
 
 * @return The engine type to replace with, or INVALID_ENGINE if no
 
 * replacement is in the list.
 
 */
 
EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group);
 

	
 
/**
 
 * Add an engine replacement to the given renewlist.
 
 * @param erl The renewlist to add to.
 
 * @param old_engine The original engine type.
 
 * @param new_engine The replacement engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags);
 

	
 
/**
 
 * Remove an engine replacement from a given renewlist.
 
 * @param erl The renewlist from which to remove the replacement
 
 * @param engine The original engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
CommandCost RemoveEngineReplacement(EngineRenewList *erl, EngineID engine, GroupID group, uint32 flags);
 

	
 
/**
 
 * Remove all engine replacement settings for the given player.
 
 * @param p Player.
 
 */
 
static inline void RemoveAllEngineReplacementForPlayer(Player *p)
 
{
 
	RemoveAllEngineReplacement(&p->engine_renew_list);
 
}
 

	
 
/**
 
 * Retrieve the engine replacement for the given player and original engine type.
 
 * @param p Player.
 
 * @param engine Engine type.
 
 * @return The engine type to replace with, or INVALID_ENGINE if no
 
 * replacement is in the list.
 
 */
 
static inline EngineID EngineReplacementForPlayer(const Player *p, EngineID engine, GroupID group)
 
{
 
	return EngineReplacement(p->engine_renew_list, engine, group);
 
}
 

	
 
/**
 
 * Check if a player has a replacement set up for the given engine.
 
 * @param p Player.
 
 * @param  engine Engine type to be replaced.
 
 * @return true if a replacement was set up, false otherwise.
 
 */
 
static inline bool EngineHasReplacementForPlayer(const Player *p, EngineID engine, GroupID group)
 
{
 
	return EngineReplacementForPlayer(p, engine, group) != INVALID_ENGINE;
 
}
 

	
 
/**
 
 * Add an engine replacement for the player.
 
 * @param p Player.
 
 * @param old_engine The original engine type.
 
 * @param new_engine The replacement engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
static inline CommandCost AddEngineReplacementForPlayer(Player *p, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags)
 
{
 
	return AddEngineReplacement(&p->engine_renew_list, old_engine, new_engine, group, flags);
 
}
 

	
 
/**
 
 * Remove an engine replacement for the player.
 
 * @param p Player.
 
 * @param engine The original engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
static inline CommandCost RemoveEngineReplacementForPlayer(Player *p, EngineID engine, GroupID group, uint32 flags)
 
{
 
	return RemoveEngineReplacement(&p->engine_renew_list, engine, group, flags);
 
}
 

	
 
#endif /* AUTOREPLACE_FUNC_H */
src/autoreplace_gui.cpp
Show inline comments
 
@@ -8,24 +8,25 @@
 
#include "table/sprites.h"
 
#include "table/strings.h"
 
#include "gui.h"
 
#include "command_func.h"
 
#include "variables.h"
 
#include "vehicle_gui.h"
 
#include "newgrf_engine.h"
 
#include "group.h"
 
#include "rail.h"
 
#include "strings_func.h"
 
#include "window_func.h"
 
#include "vehicle_func.h"
 
#include "autoreplace_func.h"
 

	
 
static RailType _railtype_selected_in_replace_gui;
 

	
 
static bool _rebuild_left_list;
 
static bool _rebuild_right_list;
 

	
 
static const StringID _rail_types_list[] = {
 
	STR_RAIL_VEHICLES,
 
	STR_ELRAIL_VEHICLES,
 
	STR_MONORAIL_VEHICLES,
 
	STR_MAGLEV_VEHICLES,
 
	INVALID_STRING_ID
src/autoreplace_gui.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/** @file autoreplace_gui.h Functions related to the autoreplace GUIs*/
 

	
 
#ifndef AUTOREPLACE_GUI_H
 
#define AUTOREPLACE_GUI_H
 

	
 
#include "vehicle_type.h"
 

	
 
/**
 
 * When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists
 
 * @param type The type of engine
 
 */
 
void AddRemoveEngineFromAutoreplaceAndBuildWindows(VehicleType type);
 
void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g);
 
void ShowReplaceVehicleWindow(VehicleType vehicletype);
 
void ShowReplaceGroupVehicleWindow(GroupID group, VehicleType veh);
 

	
 
#endif /* AUTOREPLACE_GUI_H */
src/autoreplace_type.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/** @file autoreplace_type.h Types related to autoreplacing. */
 

	
 
#ifndef AUTOREPLACE_TYPE_H
 
#define AUTOREPLACE_TYPE_H
 

	
 
struct EngineRenew;
 

	
 
/**
 
 * A list to group EngineRenew directives together (such as per-player).
 
 */
 
typedef EngineRenew* EngineRenewList;
 

	
 
#endif /* AUTOREPLACE_TYPE_H */
src/engine.cpp
Show inline comments
 
@@ -15,24 +15,26 @@
 
#include "train.h"
 
#include "aircraft.h"
 
#include "newgrf_cargo.h"
 
#include "table/engines.h"
 
#include "group.h"
 
#include "string.h"
 
#include "misc/autoptr.hpp"
 
#include "strings_func.h"
 
#include "viewport.h"
 
#include "functions.h"
 
#include "window_func.h"
 
#include "date_func.h"
 
#include "autoreplace_base.h"
 
#include "autoreplace_gui.h"
 

	
 
EngineInfo _engine_info[TOTAL_NUM_ENGINES];
 
RailVehicleInfo _rail_vehicle_info[NUM_TRAIN_ENGINES];
 
ShipVehicleInfo _ship_vehicle_info[NUM_SHIP_ENGINES];
 
AircraftVehicleInfo _aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES];
 
RoadVehicleInfo _road_vehicle_info[NUM_ROAD_ENGINES];
 

	
 
enum {
 
	YEAR_ENGINE_AGING_STOPS = 2050,
 
};
 

	
 

	
src/engine.h
Show inline comments
 
@@ -253,102 +253,24 @@ static inline const ShipVehicleInfo* Shi
 
static inline const AircraftVehicleInfo* AircraftVehInfo(EngineID e)
 
{
 
	assert(e >= AIRCRAFT_ENGINES_INDEX && e < AIRCRAFT_ENGINES_INDEX + lengthof(_aircraft_vehicle_info));
 
	return &_aircraft_vehicle_info[e - AIRCRAFT_ENGINES_INDEX];
 
}
 

	
 
static inline const RoadVehicleInfo* RoadVehInfo(EngineID e)
 
{
 
	assert(e >= ROAD_ENGINES_INDEX && e < ROAD_ENGINES_INDEX + lengthof(_road_vehicle_info));
 
	return &_road_vehicle_info[e - ROAD_ENGINES_INDEX];
 
}
 

	
 
/************************************************************************
 
 * Engine Replacement stuff
 
 ************************************************************************/
 

	
 
struct EngineRenew;
 
/**
 
 * Memory pool for engine renew elements. DO NOT USE outside of engine.c. Is
 
 * placed here so the only exception to this rule, the saveload code, can use
 
 * it.
 
 */
 
DECLARE_OLD_POOL(EngineRenew, EngineRenew, 3, 8000)
 

	
 
/**
 
 * Struct to store engine replacements. DO NOT USE outside of engine.c. Is
 
 * placed here so the only exception to this rule, the saveload code, can use
 
 * it.
 
 */
 
struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> {
 
	EngineID from;
 
	EngineID to;
 
	EngineRenew *next;
 
	GroupID group_id;
 

	
 
	EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {}
 
	~EngineRenew() { this->from = INVALID_ENGINE; }
 

	
 
	inline bool IsValid() const { return this->from != INVALID_ENGINE; }
 
};
 

	
 
#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid())
 
#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0)
 

	
 

	
 
/**
 
 * A list to group EngineRenew directives together (such as per-player).
 
 */
 
typedef EngineRenew* EngineRenewList;
 

	
 
/**
 
 * Remove all engine replacement settings for the player.
 
 * @param  erl The renewlist for a given player.
 
 * @return The new renewlist for the player.
 
 */
 
void RemoveAllEngineReplacement(EngineRenewList *erl);
 

	
 
/**
 
 * Retrieve the engine replacement in a given renewlist for an original engine type.
 
 * @param  erl The renewlist to search in.
 
 * @param  engine Engine type to be replaced.
 
 * @return The engine type to replace with, or INVALID_ENGINE if no
 
 * replacement is in the list.
 
 */
 
EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group);
 

	
 
/**
 
 * Add an engine replacement to the given renewlist.
 
 * @param erl The renewlist to add to.
 
 * @param old_engine The original engine type.
 
 * @param new_engine The replacement engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags);
 

	
 
/**
 
 * Remove an engine replacement from a given renewlist.
 
 * @param erl The renewlist from which to remove the replacement
 
 * @param engine The original engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
CommandCost RemoveEngineReplacement(EngineRenewList *erl, EngineID engine, GroupID group, uint32 flags);
 

	
 
/** When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists
 
 * @param type The type of engine
 
 */
 
void AddRemoveEngineFromAutoreplaceAndBuildWindows(VehicleType type);
 

	
 
/* Engine list manipulators - current implementation is only C wrapper of CBlobT<EngineID> class (helpers.cpp) */
 
void EngList_Create(EngineList *el);            ///< Creates engine list
 
void EngList_Destroy(EngineList *el);           ///< Deallocate and destroy engine list
 
uint EngList_Count(const EngineList *el);       ///< Returns number of items in the engine list
 
void EngList_Add(EngineList *el, EngineID eid); ///< Append one item at the end of engine list
 
EngineID* EngList_Items(EngineList *el);        ///< Returns engine list items as C array
 
void EngList_RemoveAll(EngineList *el);         ///< Removes all items from engine list
 
typedef int CDECL EngList_SortTypeFunction(const void*, const void*); ///< argument type for EngList_Sort()
 
void EngList_Sort(EngineList *el, EngList_SortTypeFunction compare); ///< qsort of the engine list
 
void EngList_SortPartial(EngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items); ///< qsort of specified portion of the engine list
 

	
 
#endif /* ENGINE_H */
src/group_cmd.cpp
Show inline comments
 
@@ -11,24 +11,26 @@
 
#include "saveload.h"
 
#include "debug.h"
 
#include "group.h"
 
#include "train.h"
 
#include "aircraft.h"
 
#include "string.h"
 
#include "vehicle_gui.h"
 
#include "misc/autoptr.hpp"
 
#include "strings_func.h"
 
#include "functions.h"
 
#include "window_func.h"
 
#include "vehicle_func.h"
 
#include "autoreplace_base.h"
 
#include "autoreplace_func.h"
 

	
 
/**
 
 * Update the num engines of a groupID. Decrease the old one and increase the new one
 
 * @note called in SetTrainGroupID and UpdateTrainGroupID
 
 * @param i     EngineID we have to update
 
 * @param old_g index of the old group
 
 * @param new_g index of the new group
 
 */
 
static inline void UpdateNumEngineGroup(EngineID i, GroupID old_g, GroupID new_g)
 
{
 
	if (old_g != new_g) {
 
		/* Decrease the num engines of EngineID i of the old group if it's not the default one */
src/group_gui.cpp
Show inline comments
 
@@ -12,24 +12,25 @@
 
#include "command_func.h"
 
#include "engine.h"
 
#include "vehicle_gui.h"
 
#include "depot.h"
 
#include "train.h"
 
#include "group.h"
 
#include "viewport.h"
 
#include "debug.h"
 
#include "strings_func.h"
 
#include "core/alloc_func.hpp"
 
#include "window_func.h"
 
#include "vehicle_func.h"
 
#include "autoreplace_gui.h"
 

	
 

	
 
struct Sorting {
 
	Listing aircraft;
 
	Listing roadveh;
 
	Listing ship;
 
	Listing train;
 
};
 

	
 
static Sorting _sorting;
 

	
 

	
src/oldloader.cpp
Show inline comments
 
@@ -16,24 +16,25 @@
 
#include "ship.h"
 
#include "train.h"
 
#include "signs.h"
 
#include "debug.h"
 
#include "depot.h"
 
#include "newgrf_config.h"
 
#include "ai/ai.h"
 
#include "zoom_func.h"
 
#include "functions.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "variables.h"
 
#include "autoreplace_gui.h"
 

	
 
enum {
 
	HEADER_SIZE = 49,
 
	BUFFER_SIZE = 4096,
 

	
 
	OLD_MAP_SIZE = 256 * 256
 
};
 

	
 
struct LoadgameState {
 
	FILE *file;
 

	
 
	uint chunk_size;
src/player.h
Show inline comments
 
@@ -6,24 +6,25 @@
 
#define PLAYER_H
 

	
 
#include "oldpool.h"
 
#include "aystar.h"
 
#include "rail_type.h"
 
#include "road_func.h"
 
#include "cargo_type.h"
 
#include "command_type.h"
 
#include "date_type.h"
 
#include "engine.h"
 
#include "livery.h"
 
#include "genworld.h"
 
#include "autoreplace_type.h"
 

	
 
struct PlayerEconomyEntry {
 
	Money income;
 
	Money expenses;
 
	int32 delivered_cargo;
 
	int32 performance_history; ///< player score (scale 0-1000)
 
	Money company_value;
 
};
 

	
 
struct AiBuildRec {
 
	TileIndex spec_tile;
 
	TileIndex use_tile;
 
@@ -321,64 +322,20 @@ static inline RailType GetBestRailtype(c
 
struct HighScore {
 
	char company[100];
 
	StringID title; ///< NO_SAVE, has troubles with changing string-numbers.
 
	uint16 score;   ///< do NOT change type, will break hs.dat
 
};
 

	
 
VARDEF HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5
 
void SaveToHighScore();
 
void LoadFromHighScore();
 
int8 SaveHighScoreValue(const Player *p);
 
int8 SaveHighScoreValueNetwork();
 

	
 
/* Engine Replacement Functions */
 

	
 
/**
 
 * Remove all engine replacement settings for the given player.
 
 * @param p Player.
 
 */
 
static inline void RemoveAllEngineReplacementForPlayer(Player *p) { RemoveAllEngineReplacement(&p->engine_renew_list); }
 

	
 
/**
 
 * Retrieve the engine replacement for the given player and original engine type.
 
 * @param p Player.
 
 * @param engine Engine type.
 
 * @return The engine type to replace with, or INVALID_ENGINE if no
 
 * replacement is in the list.
 
 */
 
static inline EngineID EngineReplacementForPlayer(const Player *p, EngineID engine, GroupID group) { return EngineReplacement(p->engine_renew_list, engine, group); }
 

	
 
/**
 
 * Check if a player has a replacement set up for the given engine.
 
 * @param p Player.
 
 * @param  engine Engine type to be replaced.
 
 * @return true if a replacement was set up, false otherwise.
 
 */
 
static inline bool EngineHasReplacementForPlayer(const Player *p, EngineID engine, GroupID group) { return EngineReplacementForPlayer(p, engine, group) != INVALID_ENGINE; }
 

	
 
/**
 
 * Add an engine replacement for the player.
 
 * @param p Player.
 
 * @param old_engine The original engine type.
 
 * @param new_engine The replacement engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
static inline CommandCost AddEngineReplacementForPlayer(Player *p, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags) { return AddEngineReplacement(&p->engine_renew_list, old_engine, new_engine, group, flags); }
 

	
 
/**
 
 * Remove an engine replacement for the player.
 
 * @param p Player.
 
 * @param engine The original engine type.
 
 * @param flags The calling command flags.
 
 * @return 0 on success, CMD_ERROR on failure.
 
 */
 
static inline CommandCost RemoveEngineReplacementForPlayer(Player *p, EngineID engine, GroupID group, uint32 flags) {return RemoveEngineReplacement(&p->engine_renew_list, engine, group, flags); }
 

	
 
/**
 
 * Reset the livery schemes to the player's primary colour.
 
 * This is used on loading games without livery information and on new player start up.
 
 * @param p Player to reset.
 
 */
 
void ResetPlayerLivery(Player *p);
 

	
 
#endif /* PLAYER_H */
src/players.cpp
Show inline comments
 
@@ -19,24 +19,26 @@
 
#include "engine.h"
 
#include "ai/ai.h"
 
#include "player_face.h"
 
#include "group.h"
 
#include "window_func.h"
 
#include "tile_map.h"
 
#include "strings_func.h"
 
#include "gfx_func.h"
 
#include "functions.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "autoreplace_func.h"
 
#include "autoreplace_gui.h"
 

	
 
/**
 
 * Sets the local player and updates the patch settings that are set on a
 
 * per-company (player) basis to reflect the core's state in the GUI.
 
 * @param new_player the new player
 
 * @pre IsValidPlayer(new_player) || new_player == PLAYER_SPECTATOR || new_player == OWNER_NONE
 
 */
 
void SetLocalPlayer(PlayerID new_player)
 
{
 
	/* Player could also be PLAYER_SPECTATOR or OWNER_NONE */
 
	assert(IsValidPlayer(new_player) || new_player == PLAYER_SPECTATOR || new_player == OWNER_NONE);
 

	
src/roadveh_cmd.cpp
Show inline comments
 
@@ -30,24 +30,25 @@
 
#include "newgrf_text.h"
 
#include "newgrf_sound.h"
 
#include "yapf/yapf.h"
 
#include "cargotype.h"
 
#include "strings_func.h"
 
#include "tunnelbridge_map.h"
 
#include "functions.h"
 
#include "window_func.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "variables.h"
 
#include "autoreplace_gui.h"
 

	
 

	
 
static const uint16 _roadveh_images[63] = {
 
	0xCD4, 0xCDC, 0xCE4, 0xCEC, 0xCF4, 0xCFC, 0xD0C, 0xD14,
 
	0xD24, 0xD1C, 0xD2C, 0xD04, 0xD1C, 0xD24, 0xD6C, 0xD74,
 
	0xD7C, 0xC14, 0xC1C, 0xC24, 0xC2C, 0xC34, 0xC3C, 0xC4C,
 
	0xC54, 0xC64, 0xC5C, 0xC6C, 0xC44, 0xC5C, 0xC64, 0xCAC,
 
	0xCB4, 0xCBC, 0xD94, 0xD9C, 0xDA4, 0xDAC, 0xDB4, 0xDBC,
 
	0xDCC, 0xDD4, 0xDE4, 0xDDC, 0xDEC, 0xDC4, 0xDDC, 0xDE4,
 
	0xE2C, 0xE34, 0xE3C, 0xC14, 0xC1C, 0xC2C, 0xC3C, 0xC4C,
 
	0xC5C, 0xC64, 0xC6C, 0xC74, 0xC84, 0xC94, 0xCA4
 
};
src/saveload.cpp
Show inline comments
 
@@ -22,24 +22,25 @@
 
#include "player.h"
 
#include "saveload.h"
 
#include "network/network.h"
 
#include "variables.h"
 
#include "table/strings.h"
 
#include "window_func.h"
 
#include "strings_func.h"
 
#include "gfx_func.h"
 
#include "core/alloc_func.hpp"
 
#include "functions.h"
 
#include "core/endian_func.hpp"
 
#include "vehicle_base.h"
 
#include "autoreplace_base.h"
 
#include <list>
 

	
 
extern const uint16 SAVEGAME_VERSION = 83;
 
uint16 _sl_version;       ///< the major savegame version identifier
 
byte   _sl_minor_version; ///< the minor savegame version, DO NOT USE!
 

	
 
typedef void WriterProc(uint len);
 
typedef uint ReaderProc();
 

	
 
/** The saveload struct, containing reader-writer functions, bufffer, version, etc. */
 
static struct {
 
	bool save;                           ///< are we doing a save or a load atm. True when saving
src/ship_cmd.cpp
Show inline comments
 
@@ -26,24 +26,25 @@
 
#include "newgrf_callbacks.h"
 
#include "newgrf_text.h"
 
#include "newgrf_sound.h"
 
#include "spritecache.h"
 
#include "misc/autoptr.hpp"
 
#include "strings_func.h"
 
#include "functions.h"
 
#include "window_func.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "variables.h"
 
#include "autoreplace_gui.h"
 

	
 

	
 
static const uint16 _ship_sprites[] = {0x0E5D, 0x0E55, 0x0E65, 0x0E6D};
 

	
 
static const TrackBits _ship_sometracks[4] = {
 
	TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_LEFT,  // 0x19, // DIAGDIR_NE
 
	TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_LEFT,  // 0x16, // DIAGDIR_SE
 
	TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT, // 0x25, // DIAGDIR_SW
 
	TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_RIGHT, // 0x2A, // DIAGDIR_NW
 
};
 

	
 
static TrackBits GetTileShipTrackStatus(TileIndex tile)
src/train_cmd.cpp
Show inline comments
 
@@ -35,24 +35,25 @@
 
#include "yapf/yapf.h"
 
#include "cargotype.h"
 
#include "group.h"
 
#include "table/sprites.h"
 
#include "tunnelbridge_map.h"
 
#include "strings_func.h"
 
#include "functions.h"
 
#include "window_func.h"
 
#include "date_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "variables.h"
 
#include "autoreplace_gui.h"
 

	
 

	
 
static bool TrainCheckIfLineEnds(Vehicle *v);
 
static void TrainController(Vehicle *v, bool update_image);
 

	
 
static const byte _vehicle_initial_x_fract[4] = {10, 8, 4,  8};
 
static const byte _vehicle_initial_y_fract[4] = { 8, 4, 8, 10};
 
static const TrackBits _state_dir_table[4] = { TRACK_BIT_RIGHT, TRACK_BIT_LOWER, TRACK_BIT_LEFT, TRACK_BIT_UPPER };
 

	
 

	
 
/** Return the cargo weight multiplier to use for a rail vehicle
 
 * @param cargo Cargo type to get multiplier for
src/vehicle.cpp
Show inline comments
 
@@ -35,24 +35,26 @@
 
#include "newgrf_engine.h"
 
#include "newgrf_sound.h"
 
#include "group.h"
 
#include "order.h"
 
#include "strings_func.h"
 
#include "zoom_func.h"
 
#include "functions.h"
 
#include "date_func.h"
 
#include "window_func.h"
 
#include "vehicle_func.h"
 
#include "sound_func.h"
 
#include "variables.h"
 
#include "autoreplace_func.h"
 
#include "autoreplace_gui.h"
 

	
 
#define INVALID_COORD (0x7fffffff)
 
#define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6))
 

	
 
VehicleID _vehicle_id_ctr_day;
 
Vehicle *_place_clicked_vehicle;
 
VehicleID _new_vehicle_id;
 
uint16 _returned_refit_capacity;
 

	
 

	
 
/* Tables used in vehicle.h to find the right command for a certain vehicle type */
 
const uint32 _veh_build_proc_table[] = {
src/vehicle_func.h
Show inline comments
 
@@ -67,26 +67,24 @@ UnitID GetFreeUnitNumber(VehicleType typ
 

	
 
void TrainConsistChanged(Vehicle *v);
 
void TrainPowerChanged(Vehicle *v);
 
Money GetTrainRunningCost(const Vehicle *v);
 

	
 
bool VehicleNeedsService(const Vehicle *v);
 

	
 
uint GenerateVehicleSortList(const Vehicle*** sort_list, uint16 *length_of_array, VehicleType type, PlayerID owner, uint32 index, uint16 window_type);
 
void BuildDepotVehicleList(VehicleType type, TileIndex tile, Vehicle ***engine_list, uint16 *engine_list_length, uint16 *engine_count, Vehicle ***wagon_list, uint16 *wagon_list_length, uint16 *wagon_count);
 
CommandCost SendAllVehiclesToDepot(VehicleType type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id);
 
void VehicleEnterDepot(Vehicle *v);
 

	
 
void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g);
 

	
 
CommandCost MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs);
 
bool CanBuildVehicleInfrastructure(VehicleType type);
 

	
 
void CcCloneVehicle(bool success, TileIndex tile, uint32 p1, uint32 p2);
 

	
 
/* Flags to add to p2 for goto depot commands */
 
/* Note: bits 8-10 are used for VLW flags */
 
enum {
 
	DEPOT_SERVICE       = (1 << 0), // The vehicle will leave the depot right after arrival (serivce only)
 
	DEPOT_MASS_SEND     = (1 << 1), // Tells that it's a mass send to depot command (type in VLW flag)
 
	DEPOT_DONT_CANCEL   = (1 << 2), // Don't cancel current goto depot command if any
 
	DEPOT_LOCATE_HANGAR = (1 << 3), // Find another airport if the target one lacks a hangar
src/vehicle_gui.cpp
Show inline comments
 
@@ -23,24 +23,25 @@
 
#include "newgrf_text.h"
 
#include "ship.h"
 
#include "aircraft.h"
 
#include "roadveh.h"
 
#include "depot.h"
 
#include "cargotype.h"
 
#include "group.h"
 
#include "group_gui.h"
 
#include "strings_func.h"
 
#include "functions.h"
 
#include "window_func.h"
 
#include "vehicle_func.h"
 
#include "autoreplace_gui.h"
 

	
 
struct Sorting {
 
	Listing aircraft;
 
	Listing roadveh;
 
	Listing ship;
 
	Listing train;
 
};
 

	
 
static Sorting _sorting;
 

	
 
static bool   _internal_sort_order;     // descending/ascending
 

	
src/vehicle_gui.h
Show inline comments
 
@@ -58,27 +58,25 @@ void DrawAircraftImage(const Vehicle *v,
 
void ShowBuildVehicleWindow(TileIndex tile, VehicleType type);
 

	
 
void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v);
 

	
 
uint ShowAdditionalText(int x, int y, uint w, EngineID engine);
 
uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine);
 

	
 
void ShowVehicleListWindow(const Vehicle *v);
 
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type);
 
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, StationID station);
 
void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, TileIndex depot_tile);
 

	
 
void ShowReplaceVehicleWindow(VehicleType vehicletype);
 
void DrawSmallOrderList(const Vehicle *v, int x, int y);
 
void ShowReplaceGroupVehicleWindow(GroupID group, VehicleType veh);
 

	
 
void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip);
 

	
 
static inline uint GetVehicleListHeight(VehicleType type)
 
{
 
	return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24;
 
}
 

	
 
/* Unified window procedure */
 
void ShowVehicleViewWindow(const Vehicle *v);
 

	
 
#endif /* VEHICLE_GUI_H */
0 comments (0 inline, 0 general)