Changeset - r19092:7cf78bed35e8
[Not reviewed]
master
0 1 0
frosch - 13 years ago 2012-02-16 22:22:45
frosch@openttd.org
(svn r23960) -Fix/Change: [NewGRF] Make the properties for always/never refittable cargo types not behave incremental, but reset them on reassignment.
1 file changed with 12 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/newgrf.cpp
Show inline comments
 
@@ -1199,10 +1199,12 @@ static ChangeInfoResult RailVehicleChang
 
				uint8 count = buf->ReadByte();
 
				_gted[e->index].UpdateRefittability(prop == 0x2C && count != 0);
 
				if (prop == 0x2C) _gted[e->index].defaultcargo_grf = _cur.grffile;
 
				uint32 &ctt = prop == 0x2C ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask;
 
				ctt = 0;
 
				while (count--) {
 
					CargoID ctype = GetCargoTranslation(buf->ReadByte(), _cur.grffile);
 
					if (ctype == CT_INVALID) continue;
 
					SetBit(prop == 0x2C ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask, ctype);
 
					SetBit(ctt, ctype);
 
				}
 
				break;
 
			}
 
@@ -1379,10 +1381,12 @@ static ChangeInfoResult RoadVehicleChang
 
				uint8 count = buf->ReadByte();
 
				_gted[e->index].UpdateRefittability(prop == 0x24 && count != 0);
 
				if (prop == 0x24) _gted[e->index].defaultcargo_grf = _cur.grffile;
 
				uint32 &ctt = prop == 0x24 ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask;
 
				ctt = 0;
 
				while (count--) {
 
					CargoID ctype = GetCargoTranslation(buf->ReadByte(), _cur.grffile);
 
					if (ctype == CT_INVALID) continue;
 
					SetBit(prop == 0x24 ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask, ctype);
 
					SetBit(ctt, ctype);
 
				}
 
				break;
 
			}
 
@@ -1543,10 +1547,12 @@ static ChangeInfoResult ShipVehicleChang
 
				uint8 count = buf->ReadByte();
 
				_gted[e->index].UpdateRefittability(prop == 0x1E && count != 0);
 
				if (prop == 0x1E) _gted[e->index].defaultcargo_grf = _cur.grffile;
 
				uint32 &ctt = prop == 0x1E ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask;
 
				ctt = 0;
 
				while (count--) {
 
					CargoID ctype = GetCargoTranslation(buf->ReadByte(), _cur.grffile);
 
					if (ctype == CT_INVALID) continue;
 
					SetBit(prop == 0x1E ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask, ctype);
 
					SetBit(ctt, ctype);
 
				}
 
				break;
 
			}
 
@@ -1685,10 +1691,12 @@ static ChangeInfoResult AircraftVehicleC
 
				uint8 count = buf->ReadByte();
 
				_gted[e->index].UpdateRefittability(prop == 0x1D && count != 0);
 
				if (prop == 0x1D) _gted[e->index].defaultcargo_grf = _cur.grffile;
 
				uint32 &ctt = prop == 0x1D ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask;
 
				ctt = 0;
 
				while (count--) {
 
					CargoID ctype = GetCargoTranslation(buf->ReadByte(), _cur.grffile);
 
					if (ctype == CT_INVALID) continue;
 
					SetBit(prop == 0x1D ? _gted[e->index].ctt_include_mask : _gted[e->index].ctt_exclude_mask, ctype);
 
					SetBit(ctt, ctype);
 
				}
 
				break;
 
			}
0 comments (0 inline, 0 general)