industry_cmd.c
changeset 201 c40d343115f8
parent 159 139cf78bfb28
child 266 b914f2b7da78
--- a/industry_cmd.c	Sat Sep 11 09:40:19 2004 +0000
+++ b/industry_cmd.c	Sat Sep 11 09:55:19 2004 +0000
@@ -194,7 +194,7 @@
 
 	if (!(_map_owner[ti->tile] & 0x80))
 		return;
-	
+
 	d = &_draw_industry_spec1[_map3_lo[ti->tile]];
 
 	AddChildSpriteScreen(0x12A7 + d->image_1, d->x, 0);
@@ -203,14 +203,14 @@
 		AddChildSpriteScreen(0x12B0 + image - 1, 8, 41);
 
 	if ( (image = d->image_3) != 0)
-		AddChildSpriteScreen(0x12AC + image - 1, 
+		AddChildSpriteScreen(0x12AC + image - 1,
 			_drawtile_proc1_x[image-1], _drawtile_proc1_y[image-1]);
 }
 
 static void IndustryDrawTileProc2(TileInfo *ti)
 {
 	int x = 0;
-	
+
 	if (_map_owner[ti->tile] & 0x80) {
 		x = _industry_anim_offs[_map3_lo[ti->tile]];
 		if ( (byte)x == 0xFF)
@@ -224,7 +224,7 @@
 static void IndustryDrawTileProc3(TileInfo *ti)
 {
 	if (_map_owner[ti->tile] & 0x80) {
-		AddChildSpriteScreen(0x128B, 5, 
+		AddChildSpriteScreen(0x128B, 5,
 			_industry_anim_offs_2[_map3_lo[ti->tile]]);
 	}
 	AddChildSpriteScreen(0x30B928A, 3, 67);
@@ -254,7 +254,7 @@
 	if (image & 0x80) {
 		image = (image >> 2) & 0x1F;
 		if (image != 0 && image < 7) {
-			AddChildSpriteScreen(image + 0x806, 
+			AddChildSpriteScreen(image + 0x806,
 				_coal_plant_sparkles_x[image-1],
 				_coal_plant_sparkles_y[image-1]
 			);
@@ -305,11 +305,11 @@
 
 		if (image&0x8000 && (image & 0xFFFF0000) == 0)
 			image |= ormod;
-			
+
 		if (!(_display_opt & DO_TRANS_BUILDINGS))
 			image = (image & 0x3FFF) | 0x3224000;
-		
-		AddSortableSpriteToDraw(image, 
+
+		AddSortableSpriteToDraw(image,
 			ti->x | (dits->subtile_xy>>4),
 			ti->y | (dits->subtile_xy&0xF),
 			(dits->width_height>>4)+1,
@@ -321,7 +321,7 @@
 			return;
 	}
 
-	/* TTDBUG: strange code here, return if AddSortableSpriteToDraw failed?  */	
+	/* TTDBUG: strange code here, return if AddSortableSpriteToDraw failed?  */
 		{
 		int proc;
 		if ((proc=dits->proc-1) >= 0 )
@@ -406,15 +406,15 @@
 
 	// check if you're allowed to remove the industry. Minimum amount
 	// of ratings to remove the industry depends on difficulty setting
-	if (!CheckforTownRating(tile, flags, t, INDUSTRY_REMOVE)) 
+	if (!CheckforTownRating(tile, flags, t, INDUSTRY_REMOVE))
 		return CMD_ERROR;
-		
+
 	if (flags & DC_EXEC) {
 		DeleteIndustry(i);
 		CreateEffectVehicleAbove(x + 8,y + 8, 2, EV_DEMOLISH);
 		ChangeTownRating(t, -1500, -1000);	// penalty is 1500
 	}
-	
+
 	return (_price.build_industry >> 5) * _industry_type_costs[i->type]*2;
 }
 */
@@ -435,7 +435,7 @@
 	byte m5;
 
 	i = DEREF_INDUSTRY(_map2[tile]);
-	
+
 	type = i->type;
 	cw = min(i->cargo_waiting[0], 255);
 	if (cw > _industry_min_cargo[type]/* && i->produced_cargo[0] != 0xFF*/) {
@@ -459,9 +459,9 @@
 	cw = min(i->cargo_waiting[1], 255);
 	if (cw > _industry_min_cargo[type]) {
 		i->cargo_waiting[1] -= cw;
-		
+
 		if (_economy.fluct <= 0) cw = (cw + 1) >> 1;
-		
+
 		i->last_mo_production[1] += cw;
 
 		am = MoveGoodsToStation(i->xy, i->width, i->height, i->produced_cargo[1], cw);
@@ -478,7 +478,7 @@
 	case 174:
 		if ((_tick_counter & 1) == 0) {
 			m = _map3_lo[tile] + 1;
-			
+
 			switch(m & 7) {
 			case 2:	SndPlayTileFx(45, tile); break;
 			case 6: SndPlayTileFx(41, tile); break;
@@ -497,7 +497,7 @@
 	case 165:
 		if ((_tick_counter & 3) == 0) {
 			m = _map3_lo[tile];
-			
+
 			if (_industry_anim_offs[m] == 0xFF) {
 				SndPlayTileFx(48, tile);
 			}
@@ -556,7 +556,7 @@
 				_map3_hi[tile] = 0;
 				DeleteAnimatedTile(tile);
 			}
-			_map3_lo[tile] = m;			
+			_map3_lo[tile] = m;
 			MarkTileDirtyByTile(tile);
 		}
 		break;
@@ -581,7 +581,7 @@
 			if (m == 4 && (m=0,++n) == 32+1 && (n=30,b)) {
 				_map_owner[tile] = 0x83;
 				_map5[tile] = 29;
-				DeleteAnimatedTile(tile);	
+				DeleteAnimatedTile(tile);
 			} else {
 				_map5[tile] = n;
 				_map_owner[tile] = (_map_owner[tile] & ~3) | m;
@@ -648,7 +648,7 @@
 	size = (size + 1) & 3;
 	if (size == 3) size |= 0x80;
 	_map_owner[tile] = size | b;
-	
+
 	MarkTileDirtyByTile(tile);
 
 	if (!(_map_owner[tile] & 0x80))
@@ -692,7 +692,7 @@
 	};
 
 	SndPlayTileFx(46, tile);
-	
+
 	dir = Random() & 3;
 
 	v = CreateEffectVehicleAbove(
@@ -783,7 +783,7 @@
 		break;
 
 	case 49: {
-		CreateEffectVehicleAbove(GET_TILE_X(tile)*16 + 6, GET_TILE_Y(tile)*16 + 6, 43, EV_SMOKE_3); 
+		CreateEffectVehicleAbove(GET_TILE_X(tile)*16 + 6, GET_TILE_Y(tile)*16 + 6, 43, EV_SMOKE_3);
 	} break;
 
 
@@ -800,8 +800,8 @@
 
 	case 161:
 		TileLoopIndustryCase161(tile);
-		break;		
-	
+		break;
+
 	case 165:
 		AddAnimatedTile(tile);
 		break;
@@ -840,7 +840,7 @@
 void DeleteIndustry(Industry *i)
 {
 	int index = i - _industries;
-	
+
 	BEGIN_TILE_LOOP(tile_cur,	i->width, i->height, i->xy);
 		if (IS_TILETYPE(tile_cur, MP_INDUSTRY)) {
 			if (_map2[tile_cur] == (byte)index) {
@@ -850,7 +850,7 @@
 			DeleteOilRig(tile_cur);
 		}
 	END_TILE_LOOP(tile_cur,	i->width, i->height, i->xy);
-	
+
 	i->xy = 0;
 	_industry_sort_dirty = true;
 	DeleteSubsidyWithIndustry(index);
@@ -894,9 +894,9 @@
 
 	do {
 		tile = TILE_MASK(tile);
-		
+
 		if (IS_TILETYPE(tile, MP_CLEAR) || IS_TILETYPE(tile, MP_TREES)) {
-			
+
 			or = type;
 			if (or == 1 && (uint16)Random() <= 9362) or = 2;
 
@@ -908,7 +908,7 @@
 			}
 			_map3_hi[tile] = (_map3_hi[tile] & and) | or;
 		}
-		
+
 		tile += direction ? TILE_XY(0,1) : TILE_XY(1,0);
 	} while (--size);
 }
@@ -933,7 +933,7 @@
 
 	/* offset tile to match size */
 	tile = tile - TILE_XY(size_x>>1, size_y>>1);
-	
+
 	/* check the amount of bad tiles */
 	count = 0;
 	BEGIN_TILE_LOOP(cur_tile, size_x, size_y, tile)
@@ -952,15 +952,15 @@
 	BEGIN_TILE_LOOP(cur_tile, size_x, size_y, tile)
 		cur_tile = TILE_MASK(cur_tile);
 		if (!IsBadFarmFieldTile2(cur_tile)) {
-			ModifyTile(cur_tile, 
-				MP_SETTYPE(MP_CLEAR) | 
+			ModifyTile(cur_tile,
+				MP_SETTYPE(MP_CLEAR) |
 				MP_MAP2_CLEAR | MP_MAP3LO | MP_MAP3HI_CLEAR | MP_MAPOWNER | MP_MAP5,
 				type2,			/* map3_lo */
 				OWNER_NONE,	/* map_owner */
 				type);			/* map5 */
 		}
 	END_TILE_LOOP(cur_tile, size_x, size_y, tile)
-	
+
 	type = 3;
 	if (_opt.landscape != LT_HILLY && _opt.landscape != LT_DESERT) {
 		type = _plantfarmfield_type[Random() & 0xF];
@@ -979,13 +979,13 @@
 		tile = TileAddWrap(i->xy, ((i->width>>1) + Random() % 31 - 16), ((i->height>>1) + Random() % 31 - 16));
 		if (tile != TILE_WRAPPED)
 			PlantFarmField(tile);
-	}	
+	}
 }
 
 static void ChopLumberMillTrees(Industry *i)
 {
 	static const TileIndexDiff _chop_dir[4] = { TILE_XY(0,1), TILE_XY(1,0), TILE_XY(0,-1), TILE_XY(-1,0) };
-	
+
 	uint tile = i->xy;
 	int dir, a, j;
 
@@ -1096,9 +1096,9 @@
 		_industry_sound_ctr++;
 
 		if (_industry_sound_ctr == 75) {
-			SndPlayTileFx(55, _industry_sound_tile); 
+			SndPlayTileFx(55, _industry_sound_tile);
 		} else if (_industry_sound_ctr == 160) {
-			_industry_sound_ctr = 0;	
+			_industry_sound_ctr = 0;
 			SndPlayTileFx(54, _industry_sound_tile);
 		}
 	}
@@ -1134,7 +1134,7 @@
 static bool CheckNewIndustry_Oilwell(uint tile, int type)
 {
 	int x,y;
-	
+
 	if(_ignore_restrictions && _game_mode == GM_EDITOR)
 		return true;
 
@@ -1230,7 +1230,7 @@
 	Industry *i;
 
 	t = ClosestTownFromTile(tile, (uint)-1);
-	
+
 	if (_patches.multiple_industry_per_town)
 		return t;
 
@@ -1285,9 +1285,9 @@
 				continue;
 			return false;
 		}
-			
+
 		FindLandscapeHeightByTile(&ti, cur_tile);
-		
+
 		if (it->map5 == 0xFF) {
 			if (ti.type != MP_WATER || ti.tileh != 0)
 				return false;
@@ -1310,7 +1310,7 @@
 
 					if (bits & 0x10)
 						return false;
-					
+
 					t = ~ti.tileh;
 
 					if (bits & 1 && (t & (1+8)))
@@ -1344,7 +1344,7 @@
 					if (ti.type != MP_HOUSE) {
 						_error_message = STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS;
 						return false;
-					}					
+					}
 				} else {
 do_clear:
 					if (DoCommandByTile(cur_tile, 0, 0, DC_AUTO, CMD_LANDSCAPE_CLEAR) == CMD_ERROR)
@@ -1366,7 +1366,7 @@
 	// accepting industries won't be close, not even with patch
 	if (_patches.same_industry_close && (spec->accepts_cargo[0] == 0xFF) )
 		return true;
-	
+
 	for(i=_industries; i != endof(_industries); i++) {
 		// check if an industry that accepts the same goods is nearby
 		if (i->xy != 0 &&
@@ -1451,7 +1451,7 @@
 
 	if (_generating_world == 0)
 		i->total_production[0] = i->total_production[1] = 0;
-	
+
 	i->prod_level = 0x10;
 
 	do {
@@ -1512,7 +1512,7 @@
 
 	if ((t=CheckMultipleIndustryInTown(tile, p1)) == NULL)
 		return CMD_ERROR;
-	
+
 	num = spec->num_table;
 	itt = spec->table;
 
@@ -1530,7 +1530,7 @@
 
 	if (flags & DC_EXEC)
 		DoCreateNewIndustry(i, tile, p1, it, t, 0x10);
-	
+
 	return (_price.build_industry >> 5) * _industry_type_costs[p1];
 }
 
@@ -1567,7 +1567,7 @@
 		return NULL;
 
 	DoCreateNewIndustry(i, tile, type, it, t, 0x10);
-	
+
 	return i;
 }
 
@@ -1590,7 +1590,7 @@
 			int i = 2000;
 			do {
 				if (CreateNewIndustry(TILE_MASK(Random()), type) != NULL)
-					break; 
+					break;
 			} while (--i != 0);
 		} while (--num);
 	}
@@ -1627,7 +1627,7 @@
 			change = old = i->production_rate[j];
 			if (CHANCE16R(20,1024,r))change -= ((RandomRange(50) + 10)*old) >> 8;
 			if (CHANCE16I(20+(i->pct_transported[j]*20>>8),1024,r>>16)) change += ((RandomRange(50) + 10)*old) >> 8;
-			
+
 			// make sure it doesn't exceed 255 or goes below 0
 			change = clamp(change, 0, 255);
 			if (change == old) {
@@ -1640,14 +1640,14 @@
 
 			if (change >= _industry_spec[i->type].production_rate[j]/4)
 				closeit = false;
-				
+
 			mag = abs(percent);
 			if (mag >= 10) {
 				SET_DPARAM16(3, mag);
 				SET_DPARAM16(0,_cargoc.names_s[i->produced_cargo[j]]);
 				SET_DPARAM16(1, i->town->index);
 				SET_DPARAM16(2, i->type + STR_4802_COAL_MINE);
-				AddNewsItem(percent>=0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN, 
+				AddNewsItem(percent>=0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN,
 						NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_TILE, NT_ECONOMY, 0),
 						i->xy + TILE_XY(1,1), 0);
 			}
@@ -1666,13 +1666,13 @@
 static void UpdateIndustryStatistics(Industry *i)
 {
 	byte pct;
-	
-	if (i->produced_cargo[0] != 0xFF) {		
+
+	if (i->produced_cargo[0] != 0xFF) {
 		pct = 0;
 		if (i->last_mo_production[0] != 0) {
 			i->last_prod_year = _cur_year;
 			pct = min(i->last_mo_transported[0] * 256 / i->last_mo_production[0],255);
-		} 
+		}
 		i->pct_transported[0] = pct;
 
 		i->total_production[0] = i->last_mo_production[0];
@@ -1687,7 +1687,7 @@
 		if (i->last_mo_production[1] != 0) {
 			i->last_prod_year = _cur_year;
 			pct = min(i->last_mo_transported[1] * 256 / i->last_mo_production[1],255);
-		} 
+		}
 		i->pct_transported[1] = pct;
 
 		i->total_production[1] = i->last_mo_production[1];
@@ -1747,7 +1747,7 @@
 	uint32 r;
 	StringID str;
 	int type = i->type;
-			
+
 	if (_industry_close_mode[type] == 1) {
 		/* decrease or increase */
 		if (type == IT_OIL_WELL && _opt.landscape == LT_NORMAL) goto decrease_production;
@@ -1759,14 +1759,14 @@
 					byte b;
 
 					i->prod_level <<= 1;
-					
+
 					b = i->production_rate[0]*2;
 					if (i->production_rate[0] >= 128) b=255;
 					i->production_rate[0] = b;
 					b = i->production_rate[1]*2;
 					if (i->production_rate[1] >= 128) b=255;
 					i->production_rate[1] = b;
-					
+
 					str = _industry_prod_up_strings[type];
 					goto add_news;
 				}
@@ -1782,7 +1782,7 @@
 				str = _industry_prod_down_strings[type];
 				goto add_news;
 			}
-		} 
+		}
 	} else if (_industry_close_mode[type] > 1) {
 		/* maybe close */
 		if ( (byte)(_cur_year - i->last_prod_year) >= 5 && CHANCE16(1,2)) {