Changeset - r14159:6cb75763eb03
[Not reviewed]
master
0 14 0
rubidium - 15 years ago 2010-01-04 18:21:07
rubidium@openttd.org
(svn r18717) -Codechange: use TileArea in industry instead of three separate variables. Also make use of TileArea functions for determining the 'width' and 'height' of an industry.
14 files changed with 71 insertions and 81 deletions:
0 comments (0 inline, 0 general)
src/ai/api/ai_industry.cpp
Show inline comments
 
@@ -115,7 +115,7 @@
 
{
 
	if (!IsValidIndustry(industry_id)) return INVALID_TILE;
 

	
 
	return ::Industry::Get(industry_id)->xy;
 
	return ::Industry::Get(industry_id)->location.tile;
 
}
 

	
 
/* static */ int32 AIIndustry::GetAmountOfStationsAround(IndustryID industry_id)
 
@@ -124,7 +124,7 @@
 

	
 
	Industry *ind = ::Industry::Get(industry_id);
 
	StationList stations;
 
	::FindStationsAroundTiles(TileArea(ind->xy, ind->width, ind->height), &stations);
 
	::FindStationsAroundTiles(ind->location, &stations);
 
	return (int32)stations.Length();
 
}
 

	
 
@@ -162,7 +162,7 @@
 
	if (!HasHeliport(industry_id)) return INVALID_TILE;
 

	
 
	const Industry *ind = ::Industry::Get(industry_id);
 
	TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy) {
 
	TILE_LOOP(tile_cur, ind->location.w, ind->location.h, ind->location.tile) {
 
		if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
 
			return tile_cur;
 
		}
 
@@ -184,7 +184,7 @@
 
	if (!HasDock(industry_id)) return INVALID_TILE;
 

	
 
	const Industry *ind = ::Industry::Get(industry_id);
 
	TILE_LOOP(tile_cur, ind->width, ind->height, ind->xy) {
 
	TILE_LOOP(tile_cur, ind->location.w, ind->location.h, ind->location.tile) {
 
		if (IsTileType(tile_cur, MP_STATION) && IsOilRig(tile_cur)) {
 
			return tile_cur;
 
		}
src/ai/api/ai_tilelist.cpp
Show inline comments
 
@@ -86,7 +86,7 @@ AITileList_IndustryAccepting::AITileList
 

	
 
	if (!_settings_game.station.modified_catchment) radius = CA_UNMODIFIED;
 

	
 
	TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius)) {
 
	TILE_LOOP(cur_tile, i->location.w + radius * 2, i->location.h+ radius * 2, i->location.tile - ::TileDiffXY(radius, radius)) {
 
		if (!::IsValidTile(cur_tile)) continue;
 
		/* Exclude all tiles that belong to this industry */
 
		if (::IsTileType(cur_tile, MP_INDUSTRY) && ::GetIndustryIndex(cur_tile) == industry_id) continue;
 
@@ -123,7 +123,7 @@ AITileList_IndustryProducing::AITileList
 

	
 
	if (!_settings_game.station.modified_catchment) radius = CA_UNMODIFIED;
 

	
 
	TILE_LOOP(cur_tile, i->width + radius * 2, i->height + radius * 2, i->xy - ::TileDiffXY(radius, radius)) {
 
	TILE_LOOP(cur_tile, i->location.w + radius * 2, i->location.h+ radius * 2, i->location.tile - ::TileDiffXY(radius, radius)) {
 
		if (!::IsValidTile(cur_tile)) continue;
 
		/* Exclude all tiles that belong to this industry */
 
		if (::IsTileType(cur_tile, MP_INDUSTRY) && ::GetIndustryIndex(cur_tile) == industry_id) continue;
src/disaster_cmd.cpp
Show inline comments
 
@@ -401,8 +401,8 @@ static bool DisasterTick_Aircraft(Disast
 
	if (v->current_order.GetDestination() == 2) {
 
		if (GB(v->tick_counter, 0, 2) == 0) {
 
			Industry *i = Industry::Get(v->dest_tile); // Industry destructor calls ReleaseDisastersTargetingIndustry, so this is valid
 
			int x = TileX(i->xy) * TILE_SIZE;
 
			int y = TileY(i->xy) * TILE_SIZE;
 
			int x = TileX(i->location.tile) * TILE_SIZE;
 
			int y = TileY(i->location.tile) * TILE_SIZE;
 
			uint32 r = Random();
 

	
 
			CreateEffectVehicleAbove(
 
@@ -423,7 +423,7 @@ static bool DisasterTick_Aircraft(Disast
 

	
 
			SetDParam(0, i->town->index);
 
			AddIndustryNewsItem(news_message, NS_ACCIDENT, i->index); // delete the news, when the industry closes
 
			SndPlayTileFx(SND_12_EXPLOSION, i->xy);
 
			SndPlayTileFx(SND_12_EXPLOSION, i->location.tile);
 
		}
 
	} else if (v->current_order.GetDestination() == 0) {
 
		int x = v->x_pos - (15 * TILE_SIZE);
 
@@ -742,7 +742,7 @@ static void Disaster_Airplane_Init()
 

	
 
	/* Start from the bottom (south side) of the map */
 
	int x = (MapSizeX() + 9) * TILE_SIZE - 1;
 
	int y = TileY(found->xy) * TILE_SIZE + 37;
 
	int y = TileY(found->location.tile) * TILE_SIZE + 37;
 

	
 
	InitializeDisasterVehicle(v, x, y, 135, DIR_NE, ST_AIRPLANE);
 

	
 
@@ -772,7 +772,7 @@ static void Disaster_Helicopter_Init()
 
	DisasterVehicle *v = new DisasterVehicle();
 

	
 
	int x = -16 * TILE_SIZE;
 
	int y = TileY(found->xy) * TILE_SIZE + 37;
 
	int y = TileY(found->location.tile) * TILE_SIZE + 37;
 

	
 
	InitializeDisasterVehicle(v, x, y, 135, DIR_SW, ST_HELICOPTER);
 

	
 
@@ -861,10 +861,10 @@ static void Disaster_CoalMine_Init()
 
			if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_CAN_SUBSIDENCE) && --index < 0) {
 
				SetDParam(0, i->town->index);
 
				AddNewsItem(STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE,
 
					NS_ACCIDENT, NR_TILE, i->xy + TileDiffXY(1, 1)); // keep the news, even when the mine closes
 
					NS_ACCIDENT, NR_TILE, i->location.tile + TileDiffXY(1, 1)); // keep the news, even when the mine closes
 

	
 
				{
 
					TileIndex tile = i->xy;
 
					TileIndex tile = i->location.tile;
 
					TileIndexDiff step = TileOffsByDiagDir((DiagDirection)GB(Random(), 0, 2));
 

	
 
					for (uint n = 0; n < 30; n++) {
src/economy.cpp
Show inline comments
 
@@ -896,7 +896,7 @@ static uint DeliverGoodsToIndustry(const
 

	
 
		/* Check if industry temporarily refuses acceptance */
 
		if (HasBit(indspec->callback_mask, CBM_IND_REFUSE_CARGO)) {
 
			uint16 res = GetIndustryCallback(CBID_INDUSTRY_REFUSE_CARGO, 0, GetReverseCargoTranslation(cargo_type, indspec->grf_prop.grffile), ind, ind->type, ind->xy);
 
			uint16 res = GetIndustryCallback(CBID_INDUSTRY_REFUSE_CARGO, 0, GetReverseCargoTranslation(cargo_type, indspec->grf_prop.grffile), ind, ind->type, ind->location.tile);
 
			if (res == 0) continue;
 
		}
 

	
src/industry.h
Show inline comments
 
@@ -22,6 +22,7 @@
 
#include "tile_type.h"
 
#include "subsidy_type.h"
 
#include "industry_map.h"
 
#include "tilearea_type.h"
 

	
 

	
 
typedef Pool<Industry, IndustryID, 64, 64000> IndustryPool;
 
@@ -33,9 +34,7 @@ extern IndustryPool _industry_pool;
 
struct Industry : IndustryPool::PoolItem<&_industry_pool> {
 
	typedef PersistentStorageArray<uint32, 16> PersistentStorage;
 

	
 
	TileIndex xy;                       ///< coordinates of the primary tile the industry is built one
 
	byte width;
 
	byte height;
 
	TileArea location;                  ///< Location of the industry
 
	const Town *town;                   ///< Nearest town
 
	CargoID produced_cargo[2];          ///< 2 production cargo slots
 
	uint16 produced_cargo_waiting[2];   ///< amount of cargo produced per cargo
 
@@ -69,7 +68,7 @@ struct Industry : IndustryPool::PoolItem
 

	
 
	PersistentStorage psa;              ///< Persistent storage for NewGRF industries.
 

	
 
	Industry(TileIndex tile = INVALID_TILE) : xy(tile) {}
 
	Industry(TileIndex tile = INVALID_TILE) : location(tile, 0, 0) {}
 
	~Industry();
 

	
 
	/**
src/industry_cmd.cpp
Show inline comments
 
@@ -142,9 +142,9 @@ Industry::~Industry()
 

	
 
	/* Industry can also be destroyed when not fully initialized.
 
	 * This means that we do not have to clear tiles either. */
 
	if (this->width == 0) return;
 
	if (this->location.w == 0) return;
 

	
 
	TILE_LOOP(tile_cur, this->width, this->height, this->xy) {
 
	TILE_LOOP(tile_cur, this->location.w, this->location.h, this->location.tile) {
 
		if (IsTileType(tile_cur, MP_INDUSTRY)) {
 
			if (GetIndustryIndex(tile_cur) == this->index) {
 
				/* MakeWaterKeepingClass() can also handle 'land' */
 
@@ -163,7 +163,7 @@ Industry::~Industry()
 

	
 
	if (GetIndustrySpec(this->type)->behaviour & INDUSTRYBEH_PLANT_FIELDS) {
 
		/* Remove the farmland and convert it to regular tiles over time. */
 
		TILE_LOOP(tile_cur, 42, 42, this->xy - TileDiffXY(21, 21)) {
 
		TILE_LOOP(tile_cur, 42, 42, this->location.tile - TileDiffXY(21, 21)) {
 
			tile_cur = TILE_MASK(tile_cur);
 
			if (IsTileType(tile_cur, MP_CLEAR) && IsClearGround(tile_cur, CLEAR_FIELDS) &&
 
					GetIndustryIndexOfField(tile_cur) == this->index) {
 
@@ -509,7 +509,7 @@ static void TransportIndustryGoods(TileI
 
	const IndustrySpec *indspec = GetIndustrySpec(i->type);
 
	bool moved_cargo = false;
 

	
 
	StationFinder stations(TileArea(i->xy, i->width, i->height));
 
	StationFinder stations(i->location);
 

	
 
	for (uint j = 0; j < lengthof(i->produced_cargo_waiting); j++) {
 
		uint cw = min(i->produced_cargo_waiting[j], 255);
 
@@ -1043,10 +1043,10 @@ static void PlantFarmField(TileIndex til
 

	
 
void PlantRandomFarmField(const Industry *i)
 
{
 
	int x = i->width  / 2 + Random() % 31 - 16;
 
	int y = i->height / 2 + Random() % 31 - 16;
 
	int x = i->location.w / 2 + Random() % 31 - 16;
 
	int y = i->location.h / 2 + Random() % 31 - 16;
 

	
 
	TileIndex tile = TileAddWrap(i->xy, x, y);
 
	TileIndex tile = TileAddWrap(i->location.tile, x, y);
 

	
 
	if (tile != INVALID_TILE) PlantFarmField(tile, i->index);
 
}
 
@@ -1082,7 +1082,7 @@ static bool SearchLumberMillTrees(TileIn
 
 */
 
static void ChopLumberMillTrees(Industry *i)
 
{
 
	TileIndex tile = i->xy;
 
	TileIndex tile = i->location.tile;
 

	
 
	if (!IsIndustryCompleted(tile)) return;  ///< Can't proceed if not completed
 

	
 
@@ -1101,7 +1101,7 @@ static void ProduceIndustryGoods(Industr
 
		if (Chance16R(1, 14, r) && (num = indsp->number_of_sounds) != 0) {
 
			SndPlayTileFx(
 
				(SoundFx)(indsp->random_sounds[((r >> 16) * num) >> 16]),
 
				i->xy);
 
				i->location.tile);
 
		}
 
	}
 

	
 
@@ -1118,7 +1118,7 @@ static void ProduceIndustryGoods(Industr
 
		if ((indbehav & INDUSTRYBEH_PLANT_FIELDS) != 0) {
 
			bool plant;
 
			if (HasBit(indsp->callback_mask, CBM_IND_SPECIAL_EFFECT)) {
 
				plant = (GetIndustryCallback(CBID_INDUSTRY_SPECIAL_EFFECT, Random(), 0, i, i->type, i->xy) != 0);
 
				plant = (GetIndustryCallback(CBID_INDUSTRY_SPECIAL_EFFECT, Random(), 0, i, i->type, i->location.tile) != 0);
 
			} else {
 
				plant = Chance16(1, 8);
 
			}
 
@@ -1128,7 +1128,7 @@ static void ProduceIndustryGoods(Industr
 
		if ((indbehav & INDUSTRYBEH_CUT_TREES) != 0) {
 
			bool cut = ((i->counter & 0x1FF) == 0);
 
			if (HasBit(indsp->callback_mask, CBM_IND_SPECIAL_EFFECT)) {
 
				cut = (GetIndustryCallback(CBID_INDUSTRY_SPECIAL_EFFECT, 0, 1, i, i->type, i->xy) != 0);
 
				cut = (GetIndustryCallback(CBID_INDUSTRY_SPECIAL_EFFECT, 0, 1, i, i->type, i->location.tile) != 0);
 
			}
 

	
 
			if (cut) ChopLumberMillTrees(i);
 
@@ -1499,7 +1499,7 @@ static bool CheckIfFarEnoughFromIndustry
 

	
 
	FOR_ALL_INDUSTRIES(i) {
 
		/* Within 14 tiles from another industry is considered close */
 
		bool in_low_distance = DistanceMax(tile, i->xy) <= 14;
 
		bool in_low_distance = DistanceMax(tile, i->location.tile) <= 14;
 

	
 
		/* check if an industry that accepts the same goods is nearby */
 
		if (in_low_distance &&
 
@@ -1541,8 +1541,7 @@ static void DoCreateNewIndustry(Industry
 
	uint32 r;
 
	uint j;
 

	
 
	i->xy = tile;
 
	i->width = i->height = 0;
 
	i->location = TileArea(tile, 1, 1);
 
	i->type = type;
 
	IncIndustryTypeCount(type);
 

	
 
@@ -1629,12 +1628,7 @@ static void DoCreateNewIndustry(Industry
 
		TileIndex cur_tile = tile + ToTileIndexDiff(it->ti);
 

	
 
		if (it->gfx != GFX_WATERTILE_SPECIALCHECK) {
 
			byte size;
 

	
 
			size = it->ti.x;
 
			if (size > i->width) i->width = size;
 
			size = it->ti.y;
 
			if (size > i->height)i->height = size;
 
			i->location.Add(cur_tile);
 

	
 
			WaterClass wc = (IsWaterTile(cur_tile) ? GetWaterClass(cur_tile) : WATER_CLASS_INVALID);
 

	
 
@@ -1654,9 +1648,6 @@ static void DoCreateNewIndustry(Industry
 
		}
 
	} while ((++it)->ti.x != -0x80);
 

	
 
	i->width++;
 
	i->height++;
 

	
 
	if (GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_PLANT_ON_BUILT) {
 
		for (j = 0; j != 50; j++) PlantRandomFarmField(i);
 
	}
 
@@ -2031,7 +2022,7 @@ static void CanCargoServiceIndustry(Carg
 
			if (HasBit(indspec->callback_mask, CBM_IND_REFUSE_CARGO)) {
 
				uint16 res = GetIndustryCallback(CBID_INDUSTRY_REFUSE_CARGO,
 
						0, GetReverseCargoTranslation(cargo, indspec->grf_prop.grffile),
 
						ind, ind->type, ind->xy);
 
						ind, ind->type, ind->location.tile);
 
				if (res == 0) continue;
 
			}
 
			*c_accepts = true;
 
@@ -2066,7 +2057,7 @@ static int WhoCanServiceIndustry(Industr
 
{
 
	/* Find all stations within reach of the industry */
 
	StationList stations;
 
	FindStationsAroundTiles(TileArea(ind->xy, ind->width, ind->height), &stations);
 
	FindStationsAroundTiles(ind->location, &stations);
 

	
 
	if (stations.Length() == 0) return 0; // No stations found at all => nobody services
 

	
 
@@ -2168,7 +2159,7 @@ static void ChangeIndustryProduction(Ind
 

	
 
	bool callback_enabled = HasBit(indspec->callback_mask, monthly ? CBM_IND_MONTHLYPROD_CHANGE : CBM_IND_PRODUCTION_CHANGE);
 
	if (callback_enabled) {
 
		uint16 res = GetIndustryCallback(monthly ? CBID_INDUSTRY_MONTHLYPROD_CHANGE : CBID_INDUSTRY_PRODUCTION_CHANGE, 0, Random(), i, i->type, i->xy);
 
		uint16 res = GetIndustryCallback(monthly ? CBID_INDUSTRY_MONTHLYPROD_CHANGE : CBID_INDUSTRY_PRODUCTION_CHANGE, 0, Random(), i, i->type, i->location.tile);
 
		if (res != CALLBACK_FAILED) { // failed callback means "do nothing"
 
			suppress_message = HasBit(res, 7);
 
			/* Get the custom message if any */
 
@@ -2343,7 +2334,7 @@ static void ChangeIndustryProduction(Ind
 
		AddNewsItem(str,
 
			ns,
 
			closeit ? NR_TILE : NR_INDUSTRY,
 
			closeit ? i->xy + TileDiffXY(1, 1) : i->index);
 
			closeit ? i->location.tile + TileDiffXY(1, 1) : i->index);
 
	}
 
}
 

	
src/industry_gui.cpp
Show inline comments
 
@@ -63,7 +63,7 @@ static void GetCargoSuffix(uint cargo, C
 
{
 
	suffix[0] = '\0';
 
	if (HasBit(indspec->callback_mask, CBM_IND_CARGO_SUFFIX)) {
 
		uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast<Industry *>(ind), ind_type, (cst != CST_FUND) ? ind->xy : INVALID_TILE);
 
		uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast<Industry *>(ind), ind_type, (cst != CST_FUND) ? ind->location.tile : INVALID_TILE);
 
		if (GB(callback, 0, 8) != 0xFF) {
 
			PrepareTextRefStackUsage(6);
 
			GetString(suffix, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), suffix_last);
 
@@ -580,7 +580,7 @@ public:
 

	
 
		this->InitNested(desc, window_number);
 
		NWidgetViewport *nvp = this->GetWidget<NWidgetViewport>(IVW_VIEWPORT);
 
		nvp->InitializeViewport(this, Industry::Get(window_number)->xy + TileDiffXY(1, 1), ZOOM_LVL_INDUSTRY);
 
		nvp->InitializeViewport(this, Industry::Get(window_number)->location.tile + TileDiffXY(1, 1), ZOOM_LVL_INDUSTRY);
 
	}
 

	
 
	virtual void OnPaint()
 
@@ -674,7 +674,7 @@ public:
 

	
 
		/* Get the extra message for the GUI */
 
		if (HasBit(ind->callback_mask, CBM_IND_WINDOW_MORE_TEXT)) {
 
			uint16 callback_res = GetIndustryCallback(CBID_INDUSTRY_WINDOW_MORE_TEXT, 0, 0, i, i->type, i->xy);
 
			uint16 callback_res = GetIndustryCallback(CBID_INDUSTRY_WINDOW_MORE_TEXT, 0, 0, i, i->type, i->location.tile);
 
			if (callback_res != CALLBACK_FAILED) {
 
				StringID message = GetGRFStringID(ind->grf_prop.grffile->grfid, 0xD000 + callback_res);
 
				if (message != STR_NULL && message != STR_UNDEFINED) {
 
@@ -747,9 +747,9 @@ public:
 
			case IVW_GOTO:
 
				i = Industry::Get(this->window_number);
 
				if (_ctrl_pressed) {
 
					ShowExtraViewPortWindow(i->xy + TileDiffXY(1, 1));
 
					ShowExtraViewPortWindow(i->location.tile + TileDiffXY(1, 1));
 
				} else {
 
					ScrollMainWindowToTile(i->xy + TileDiffXY(1, 1));
 
					ScrollMainWindowToTile(i->location.tile + TileDiffXY(1, 1));
 
				}
 
				break;
 
		}
 
@@ -1124,9 +1124,9 @@ public:
 
				p = y + this->vscroll.GetPosition();
 
				if (p < this->industries.Length()) {
 
					if (_ctrl_pressed) {
 
						ShowExtraViewPortWindow(this->industries[p]->xy);
 
						ShowExtraViewPortWindow(this->industries[p]->location.tile);
 
					} else {
 
						ScrollMainWindowToTile(this->industries[p]->xy);
 
						ScrollMainWindowToTile(this->industries[p]->location.tile);
 
					}
 
				}
 
			} break;
src/newgrf_industries.cpp
Show inline comments
 
@@ -92,7 +92,7 @@ static uint32 GetClosestIndustry(TileInd
 
	FOR_ALL_INDUSTRIES(i) {
 
		if (i->type != type || i == current) continue;
 

	
 
		best_dist = min(best_dist, DistanceManhattan(tile, i->xy));
 
		best_dist = min(best_dist, DistanceManhattan(tile, i->location.tile));
 
	}
 

	
 
	return best_dist;
 
@@ -132,7 +132,7 @@ static uint32 GetCountAndDistanceOfClose
 
	if (layout_filter == 0) {
 
		/* If the filter is 0, it could be because none was specified as well as being really a 0.
 
		 * In either case, just do the regular var67 */
 
		closest_dist = GetClosestIndustry(current->xy, ind_index, current);
 
		closest_dist = GetClosestIndustry(current->location.tile, ind_index, current);
 
		count = GetIndustryTypeCount(ind_index);
 
	} else {
 
		/* Count only those who match the same industry type and layout filter
 
@@ -140,7 +140,7 @@ static uint32 GetCountAndDistanceOfClose
 
		const Industry *i;
 
		FOR_ALL_INDUSTRIES(i) {
 
			if (i->type == ind_index && i != current && i->selected_layout == layout_filter) {
 
				closest_dist = min(closest_dist, DistanceManhattan(current->xy, i->xy));
 
				closest_dist = min(closest_dist, DistanceManhattan(current->location.tile, i->location.tile));
 
				count++;
 
			}
 
		}
 
@@ -235,7 +235,7 @@ uint32 IndustryGetVariable(const Resolve
 
		case 0x46: return industry->construction_date; // Date when built - long format - (in days)
 

	
 
		/* Get industry ID at offset param */
 
		case 0x60: return GetIndustryIDAtOffset(GetNearbyTile(parameter, industry->xy), industry);
 
		case 0x60: return GetIndustryIDAtOffset(GetNearbyTile(parameter, industry->location.tile), industry);
 

	
 
		/* Get random tile bits at offset param */
 
		case 0x61:
 
@@ -269,15 +269,15 @@ uint32 IndustryGetVariable(const Resolve
 
		case 0x7C: return industry->psa.Get(parameter);
 

	
 
		/* Industry structure access*/
 
		case 0x80: return industry->xy;
 
		case 0x81: return GB(industry->xy, 8, 8);
 
		case 0x80: return industry->location.tile;
 
		case 0x81: return GB(industry->location.tile, 8, 8);
 
		/* Pointer to the town the industry is associated with */
 
		case 0x82: return industry->town->index;
 
		case 0x83:
 
		case 0x84:
 
		case 0x85: DEBUG(grf, 0, "NewGRFs shouldn't be doing pointer magic"); break; // not supported
 
		case 0x86: return industry->width;
 
		case 0x87: return industry->height;// xy dimensions
 
		case 0x86: return industry->location.w;
 
		case 0x87: return industry->location.h;// xy dimensions
 

	
 
		case 0x88:
 
		case 0x89: return industry->produced_cargo[variable - 0x88];
 
@@ -455,8 +455,8 @@ bool CheckIfCallBackAllowsCreation(TileI
 

	
 
	Industry ind;
 
	ind.index = INVALID_INDUSTRY;
 
	ind.xy = tile;
 
	ind.width = 0;
 
	ind.location.tile = tile;
 
	ind.location.w = 0;
 
	ind.type = type;
 
	ind.selected_layout = itspec_index;
 
	ind.town = ClosestTownFromTile(tile, UINT_MAX);
 
@@ -516,7 +516,7 @@ void IndustryProductionCallback(Industry
 
{
 
	const IndustrySpec *spec = GetIndustrySpec(ind->type);
 
	ResolverObject object;
 
	NewIndustryResolver(&object, ind->xy, ind, ind->type);
 
	NewIndustryResolver(&object, ind->location.tile, ind, ind->type);
 
	if ((spec->behaviour & INDUSTRYBEH_PRODCALLBACK_RANDOM) != 0) object.callback_param1 = Random();
 
	int multiplier = 1;
 
	if ((spec->behaviour & INDUSTRYBEH_PROD_MULTI_HNDLING) != 0) multiplier = ind->prod_level;
src/newgrf_industrytiles.cpp
Show inline comments
 
@@ -86,7 +86,7 @@ static uint32 IndustryTileGetVariable(co
 
		case 0x42: return GetTownRadiusGroup(ClosestTownFromTile(tile, UINT_MAX), tile);
 

	
 
		/* Relative position */
 
		case 0x43: return GetRelativePosition(tile, inds->xy);
 
		case 0x43: return GetRelativePosition(tile, inds->location.tile);
 

	
 
		/* Animation frame. Like house variable 46 but can contain anything 0..FF. */
 
		case 0x44: return (IsTileType(tile, MP_INDUSTRY)) ? GetIndustryAnimationState(tile) : 0;
 
@@ -271,8 +271,8 @@ bool PerformIndustryTileSlopeCheck(TileI
 
{
 
	Industry ind;
 
	ind.index = INVALID_INDUSTRY;
 
	ind.xy = ind_base_tile;
 
	ind.width = 0;
 
	ind.location.tile = ind_base_tile;
 
	ind.location.w = 0;
 
	ind.type = type;
 

	
 
	uint16 callback_res = GetIndustryTileCallback(CBID_INDTILE_SHAPE_CHECK, 0, itspec_index, gfx, &ind, ind_tile);
 
@@ -396,7 +396,7 @@ bool StartStopIndustryTileAnimation(cons
 
{
 
	bool ret = true;
 
	uint32 random = Random();
 
	TILE_LOOP(tile, ind->width, ind->height, ind->xy) {
 
	TILE_LOOP(tile, ind->location.w, ind->location.h, ind->location.tile) {
 
		if (IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == ind->index) {
 
			if (StartStopIndustryTileAnimation(tile, iat, random)) {
 
				SB(random, 0, 16, Random());
 
@@ -441,7 +441,7 @@ void TriggerIndustryTile(TileIndex tile,
 

	
 
void TriggerIndustry(Industry *ind, IndustryTileTrigger trigger)
 
{
 
	TILE_LOOP(tile, ind->width, ind->height, ind->xy) {
 
	TILE_LOOP(tile, ind->location.w, ind->location.h, ind->location.tile) {
 
		if (IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == ind->index) {
 
			DoTriggerIndustryTile(tile, trigger, ind);
 
		}
src/news_gui.cpp
Show inline comments
 
@@ -63,7 +63,7 @@ static TileIndex GetReferenceTile(NewsRe
 
	switch (reftype) {
 
		case NR_TILE:     return (TileIndex)ref;
 
		case NR_STATION:  return Station::Get((StationID)ref)->xy;
 
		case NR_INDUSTRY: return Industry::Get((IndustryID)ref)->xy + TileDiffXY(1, 1);
 
		case NR_INDUSTRY: return Industry::Get((IndustryID)ref)->location.tile + TileDiffXY(1, 1);
 
		case NR_TOWN:     return Town::Get((TownID)ref)->xy;
 
		default:          return INVALID_TILE;
 
	}
src/saveload/industry_sl.cpp
Show inline comments
 
@@ -17,10 +17,10 @@
 
#include "saveload.h"
 

	
 
static const SaveLoad _industry_desc[] = {
 
	SLE_CONDVAR(Industry, xy,                         SLE_FILE_U16 | SLE_VAR_U32,  0, 5),
 
	SLE_CONDVAR(Industry, xy,                         SLE_UINT32,                  6, SL_MAX_VERSION),
 
	    SLE_VAR(Industry, width,                      SLE_UINT8),
 
	    SLE_VAR(Industry, height,                     SLE_UINT8),
 
	SLE_CONDVAR(Industry, location.tile,              SLE_FILE_U16 | SLE_VAR_U32,  0, 5),
 
	SLE_CONDVAR(Industry, location.tile,              SLE_UINT32,                  6, SL_MAX_VERSION),
 
	    SLE_VAR(Industry, location.w,                 SLE_UINT8),
 
	    SLE_VAR(Industry, location.h,                 SLE_UINT8),
 
	    SLE_REF(Industry, town,                       REF_TOWN),
 
	SLE_CONDNULL( 2, 0, 60),       ///< used to be industry's produced_cargo
 
	SLE_CONDARR(Industry, produced_cargo,             SLE_UINT8,  2,              78, SL_MAX_VERSION),
src/saveload/oldloader_sl.cpp
Show inline comments
 
@@ -776,10 +776,10 @@ static bool LoadOldStation(LoadgameState
 
}
 

	
 
static const OldChunks industry_chunk[] = {
 
	OCL_SVAR(   OC_TILE, Industry, xy ),
 
	OCL_SVAR(   OC_TILE, Industry, location.tile ),
 
	OCL_VAR ( OC_UINT32,   1, &_old_town_index ),
 
	OCL_SVAR(  OC_UINT8, Industry, width ),
 
	OCL_SVAR(  OC_UINT8, Industry, height ),
 
	OCL_SVAR(  OC_UINT8, Industry, location.w ),
 
	OCL_SVAR(  OC_UINT8, Industry, location.h ),
 
	OCL_NULL( 2 ),  ///< used to be industry's produced_cargo
 

	
 
	OCL_SVAR( OC_TTD | OC_UINT16, Industry, produced_cargo_waiting[0] ),
 
@@ -825,7 +825,7 @@ static bool LoadOldIndustry(LoadgameStat
 
	Industry *i = new (num) Industry();
 
	if (!LoadChunk(ls, i, industry_chunk)) return false;
 

	
 
	if (i->xy != 0) {
 
	if (i->location.tile != 0) {
 
		i->town = Town::Get(RemapTownIndex(_old_town_index));
 

	
 
		if (_savegame_type == SGT_TTO) {
src/subsidy.cpp
Show inline comments
 
@@ -236,7 +236,7 @@ static Subsidy *FindSubsidyCargoRoute()
 
		/* Only want big towns */
 
		if (t->population < SUBSIDY_CARGO_MIN_POPULATION) return NULL;
 

	
 
		if (DistanceManhattan(i->xy, t->xy) > SUBSIDY_MAX_DISTANCE) return NULL;
 
		if (DistanceManhattan(i->location.tile, t->xy) > SUBSIDY_MAX_DISTANCE) return NULL;
 

	
 
		dst = t->index;
 
	} else {
 
@@ -252,7 +252,7 @@ static Subsidy *FindSubsidyCargoRoute()
 
			return NULL;
 
		}
 

	
 
		if (DistanceManhattan(i->xy, i2->xy) > SUBSIDY_MAX_DISTANCE) return NULL;
 
		if (DistanceManhattan(i->location.tile, i2->location.tile) > SUBSIDY_MAX_DISTANCE) return NULL;
 

	
 
		dst = i2->index;
 
	}
src/subsidy_gui.cpp
Show inline comments
 
@@ -83,7 +83,7 @@ struct SubsidyListWindow : Window {
 
		/* determine src coordinate for subsidy and try to scroll to it */
 
		TileIndex xy;
 
		switch (s->src_type) {
 
			case ST_INDUSTRY: xy = Industry::Get(s->src)->xy; break;
 
			case ST_INDUSTRY: xy = Industry::Get(s->src)->location.tile; break;
 
			case ST_TOWN:     xy =     Town::Get(s->src)->xy; break;
 
			default: NOT_REACHED();
 
		}
 
@@ -93,7 +93,7 @@ struct SubsidyListWindow : Window {
 

	
 
			/* otherwise determine dst coordinate for subsidy and scroll to it */
 
			switch (s->dst_type) {
 
				case ST_INDUSTRY: xy = Industry::Get(s->dst)->xy; break;
 
				case ST_INDUSTRY: xy = Industry::Get(s->dst)->location.tile; break;
 
				case ST_TOWN:     xy =     Town::Get(s->dst)->xy; break;
 
				default: NOT_REACHED();
 
			}
0 comments (0 inline, 0 general)