diff --git a/src/control/Bridge.cpp b/src/control/Bridge.cpp
index 1e63cf30..e873062b 100644
--- a/src/control/Bridge.cpp
+++ b/src/control/Bridge.cpp
@@ -23,7 +23,6 @@ uint32 CBridge::TimeOfBridgeBecomingOperational;
 
 void CBridge::Init()
 {
-#ifdef GTA_BRIDGE
 	FindBridgeEntities();
 	OldLift = -1.0f;
 	if (pLiftPart && pWeight)
@@ -36,12 +35,10 @@ void CBridge::Init()
 
 		ThePaths.SetLinksBridgeLights(-330.0, -230.0, -700.0, -588.0, true);
 	}
-#endif
 }
 
 void CBridge::Update()
 {
-#ifdef GTA_BRIDGE
 	if (!pLiftPart || !pWeight)
 		return;
 
@@ -116,21 +113,15 @@ void CBridge::Update()
 		ThePaths.SetLinksBridgeLights(-330.0, -230.0, -700.0, -588.0, true);
 	else if (State == STATE_LIFT_PART_IS_DOWN && OldState == STATE_LIFT_PART_MOVING_DOWN)
 		ThePaths.SetLinksBridgeLights(-330.0, -230.0, -700.0, -588.0, false);
-#endif
 }
 
 bool CBridge::ShouldLightsBeFlashing()
 {
-#ifdef GTA_BRIDGE
 	return State != STATE_LIFT_PART_IS_DOWN;
-#else
-	return false;
-#endif
 }
 
 void CBridge::FindBridgeEntities()
 {
-#ifdef GTA_BRIDGE
 	pWeight   = nil;
 	pLiftRoad = nil;
 	pLiftPart = nil;
@@ -147,17 +138,12 @@ void CBridge::FindBridgeEntities()
 				pWeight = entry;
 		}
 	}
-#endif
 }
 
 bool CBridge::ThisIsABridgeObjectMovingUp(int index)
 {
-#ifdef GTA_BRIDGE
 	if (index != MI_BRIDGEROADSEGMENT && index != MI_BRIDGELIFT)
 		return false;
 
 	return State == STATE_LIFT_PART_ABOUT_TO_MOVE_UP || State == STATE_LIFT_PART_MOVING_UP;
-#else
-	return false;
-#endif
 }
diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp
index db6139b9..9b2bd4f0 100644
--- a/src/control/CarCtrl.cpp
+++ b/src/control/CarCtrl.cpp
@@ -696,7 +696,7 @@ CCarCtrl::PossiblyRemoveVehicle(CVehicle* pVehicle)
 		if (pVehicle->bExtendedRange)
 			threshold *= 1.5f;
 		if (distanceToPlayer > threshold && !CGarages::IsPointWithinHideOutGarage(pVehicle->GetPosition())){
-			if (pVehicle->GetIsOnScreenAndNotCulled()){
+			if (pVehicle->GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(pVehicle)) {
 				pVehicle->bFadeOut = true;
 			}else{
 				CWorld::Remove(pVehicle);
@@ -722,7 +722,7 @@ CCarCtrl::PossiblyRemoveVehicle(CVehicle* pVehicle)
 	if (pVehicle->GetStatus() != STATUS_WRECKED || pVehicle->m_nTimeOfDeath == 0)
 		return;
 	if (CTimer::GetTimeInMilliseconds() > pVehicle->m_nTimeOfDeath + 60000 &&
-		!pVehicle->GetIsOnScreenAndNotCulled()){
+		!(pVehicle->GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(pVehicle)) ){
 		if ((pVehicle->GetPosition() - vecPlayerPos).MagnitudeSqr() > SQR(7.5f)){
 			if (!CGarages::IsPointWithinHideOutGarage(pVehicle->GetPosition())){
 				CWorld::Remove(pVehicle);
@@ -2741,11 +2741,7 @@ bool CCarCtrl::ThisRoadObjectCouldMove(int16 mi)
 
 bool CCarCtrl::MapCouldMoveInThisArea(float x, float y)
 {
-#ifdef GTA_BRIDGE	// actually they forgot that in VC...
 	// bridge moves up and down
 	return x > -342.0f && x < -219.0f &&
 		y > -677.0f && y < -580.0f;
-#else
-	return false;
-#endif
 }
diff --git a/src/control/PathFind.cpp b/src/control/PathFind.cpp
index c278cf35..ee15b82f 100644
--- a/src/control/PathFind.cpp
+++ b/src/control/PathFind.cpp
@@ -975,7 +975,6 @@ CPathFind::RemoveBadStartNode(CVector pos, CPathNode **nodes, int16 *n)
 	}
 }
 
-#ifdef GTA_BRIDGE
 void
 CPathFind::SetLinksBridgeLights(float x1, float x2, float y1, float y2, bool enable)
 {
@@ -987,7 +986,6 @@ CPathFind::SetLinksBridgeLights(float x1, float x2, float y1, float y2, bool ena
 			m_carPathLinks[i].bBridgeLights = enable;
 	}
 }
-#endif
 
 void
 CPathFind::SwitchOffNodeAndNeighbours(int32 nodeId, bool disable)
diff --git a/src/control/TrafficLights.cpp b/src/control/TrafficLights.cpp
index f2dd6814..b2f0900e 100644
--- a/src/control/TrafficLights.cpp
+++ b/src/control/TrafficLights.cpp
@@ -273,12 +273,8 @@ CTrafficLights::ShouldCarStopForLight(CVehicle *vehicle, bool alwaysStop)
 bool
 CTrafficLights::ShouldCarStopForBridge(CVehicle *vehicle)
 {
-#ifdef GTA_BRIDGE
 	return ThePaths.m_carPathLinks[vehicle->AutoPilot.m_nNextPathNodeInfo].bBridgeLights &&
 		!ThePaths.m_carPathLinks[vehicle->AutoPilot.m_nCurrentPathNodeInfo].bBridgeLights;
-#else
-	return false;
-#endif
 }
 
 int
diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp
index 3f4684e7..9b178f35 100644
--- a/src/core/Camera.cpp
+++ b/src/core/Camera.cpp
@@ -633,11 +633,7 @@ CCamera::CamControl(void)
 					m_bInitialNodeFound = false;
 					m_bInitialNoNodeStaticsSet = false;
 				}
-#ifdef GTA_TRAIN
 				Process_Train_Camera_Control();
-#else
-				assert(0 && "this can't happen");
-#endif
 			}else{
 				if(((CVehicle*)pTargetEntity)->IsBoat())
 					boatTarget = true;
@@ -2711,7 +2707,6 @@ CCamera::DontProcessObbeCinemaCamera(void)
 	bDidWeProcessAnyCinemaCam = false;
 }
 
-#ifdef GTA_TRAIN
 void
 CCamera::LoadTrainCamNodes(char const *name)
 {
@@ -2889,7 +2884,6 @@ CCamera::Process_Train_Camera_Control(void)
 		}
 	}
 }
-#endif
 
 
 void
diff --git a/src/core/Game.cpp b/src/core/Game.cpp
index 27731f8a..d0f412d8 100644
--- a/src/core/Game.cpp
+++ b/src/core/Game.cpp
@@ -370,9 +370,7 @@ bool CGame::Initialise(const char* datFile)
 	LoadingScreen("Loading the Game", "Position dynamic objects", nil);
 	CWorld::RepositionCertainDynamicObjects();
 	LoadingScreen("Loading the Game", "Initialise vehicle paths", nil);
-#ifdef GTA_ZONECULL
 	CCullZones::ResolveVisibilities();
-#endif
 	CTrain::InitTrains();
 	CPlane::InitPlanes();
 	CCredits::Init();
@@ -489,9 +487,7 @@ void CGame::ReInitGameObjectVariables(void)
 	CSpecialFX::Init();
 	CWaterCannons::Init();
 	CParticle::ReloadConfig();
-#ifdef GTA_ZONECULL
 	CCullZones::ResolveVisibilities();
-#endif
 
 	if ( !FrontEndMenuManager.m_bWantToLoad )
 	{
@@ -524,9 +520,7 @@ void CGame::ReloadIPLs(void)
 	CCranes::InitCranes();
 	CGarages::Init();
 	CWorld::RepositionCertainDynamicObjects();
-#ifdef GTA_ZONECULL
 	CCullZones::ResolveVisibilities();
-#endif
 	CRenderer::SortBIGBuildings();
 	CTimer::Update();
 }
diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp
index 978e0bb8..da9e7d33 100644
--- a/src/core/Streaming.cpp
+++ b/src/core/Streaming.cpp
@@ -1982,9 +1982,7 @@ CStreaming::ProcessEntitiesInSectorList(CPtrList &list, float x, float y, float
 				if(xmin < pos.x && pos.x < xmax &&
 				   ymin < pos.y && pos.y < ymax &&
 				   (CVector2D(x, y) - pos).MagnitudeSqr() < lodDistSq)
-#ifdef GTA_ZONECULL
 					if(CRenderer::IsEntityCullZoneVisible(e))
-#endif
 						RequestModel(e->GetModelIndex(), 0);
 			}
 		}
@@ -2008,9 +2006,7 @@ CStreaming::ProcessEntitiesInSectorList(CPtrList &list)
 		   (!e->IsObject() || ((CObject*)e)->ObjectCreatedBy != TEMP_OBJECT)){
 			CTimeModelInfo *mi = (CTimeModelInfo*)CModelInfo::GetModelInfo(e->GetModelIndex());
 			if (mi->GetModelType() != MITYPE_TIME || CClock::GetIsTimeInRange(mi->GetTimeOn(), mi->GetTimeOff()))
-#ifdef GTA_ZONECULL
 				if(CRenderer::IsEntityCullZoneVisible(e))
-#endif
 					RequestModel(e->GetModelIndex(), 0);
 		}
 	}
@@ -2434,9 +2430,7 @@ CStreaming::LoadScene(const CVector &pos)
 			RemoveModel(si - ms_aInfoForModel);
 	}
 	CRenderer::m_loadingPriority = false;
-#ifdef GTA_ZONECULL
 	CCullZones::ForceCullZoneCoors(pos);
-#endif
 	DeleteAllRwObjects();
 	AddModelsToRequestList(pos);
 	CRadar::StreamRadarSections(pos);
diff --git a/src/core/ZoneCull.cpp b/src/core/ZoneCull.cpp
index 1e9c00f0..780c180e 100644
--- a/src/core/ZoneCull.cpp
+++ b/src/core/ZoneCull.cpp
@@ -38,7 +38,6 @@ CCullZones::Init(void)
 	CurrentFlags_Camera = 0;
 	CurrentFlags_Player = 0;
 	bCurrentSubwayIsInvisible = false;
-#ifdef GTA_ZONECULL
 	NumCullZones = 0;
 	OldCullZone = -1;
 	EntityIndicesUsed = 0;
@@ -47,10 +46,8 @@ CCullZones::Init(void)
 		aPointersToBigBuildingsForBuildings[i] = -1;
 	for(i = 0; i < NUMTREADABLES; i++)
 		aPointersToBigBuildingsForTreadables[i] = -1;
-#endif
 }
 
-#ifdef GTA_ZONECULL
 bool CCullZone::TestLine(CVector vec1, CVector vec2)
 {
 	CColPoint colPoint;
@@ -216,7 +213,6 @@ CCullZones::DoVisibilityTestCullZone(int zoneId, bool doIt)
 		}
 	}
 }
-#endif
 
 void
 CCullZones::Update(void)
@@ -229,10 +225,8 @@ CCullZones::Update(void)
 	switch(CTimer::GetFrameCounter() & 7){
 	case 0:
 	case 4:
-#ifdef GTA_ZONECULL
 		/* Update Cull zone */
 		ForceCullZoneCoors(TheCamera.GetGameCamPosition());
-#endif
 		break;
 
 	case 2:
@@ -256,7 +250,6 @@ CCullZones::Update(void)
 void
 CCullZones::ForceCullZoneCoors(CVector coors)
 {
-#ifdef GTA_ZONECULL
 	int32 z;
 	z = FindCullZoneForCoors(coors);
 	if(z != OldCullZone){
@@ -266,10 +259,8 @@ CCullZones::ForceCullZoneCoors(CVector coors)
 			aZones[z].DoStuffEnteringZone();
 		OldCullZone = z;
 	}
-#endif
 }
 
-#ifdef GTA_ZONECULL
 int32
 CCullZones::FindCullZoneForCoors(CVector coors)
 {
@@ -282,7 +273,6 @@ CCullZones::FindCullZoneForCoors(CVector coors)
 			return i;
 	return -1;
 }
-#endif
 
 int32
 CCullZones::FindAttributesForCoors(CVector coors, int32 *wantedLevel)
@@ -360,7 +350,6 @@ CCullZones::AddCullZone(CVector const &position,
 	CAttributeZone *attrib;
 
 	CVector v;
-#ifdef GTA_ZONECULL
 	if((flag & ATTRZONE_NOTCULLZONE) == 0){
 		cull = &aZones[NumCullZones++];
 		v = position;
@@ -383,7 +372,6 @@ CCullZones::AddCullZone(CVector const &position,
 		cull->m_groupIndexCount[2] = 0;
 		cull->m_indexStart = 0;
 	}
-#endif
 	if(flag & ~ATTRZONE_NOTCULLZONE){
 		attrib = &aAttributeZones[NumAttributeZones++];
 		attrib->minx = minx;
@@ -398,7 +386,6 @@ CCullZones::AddCullZone(CVector const &position,
 }
 
 
-#ifdef GTA_ZONECULL
 void
 CCullZone::DoStuffLeavingZone(void)
 {
@@ -573,5 +560,4 @@ CCullZones::DoWeHaveMoreThanXOccurencesOfSet(int32 count, uint16 *set)
 		}
 	}
 	return false;
-}
-#endif
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/src/core/config.h b/src/core/config.h
index 0bbc883e..7c1fab5b 100644
--- a/src/core/config.h
+++ b/src/core/config.h
@@ -143,12 +143,6 @@ enum Config {
 //#define GTA_PS2
 //#define GTA_XBOX
 
-#ifndef MIAMI
-#define GTA_TRAIN	// This game has trains
-#define GTA_BRIDGE	// This game has the bridge
-#define GTA_ZONECULL	// This game culls by zones
-#endif
-
 // This enables things from the PS2 version on PC
 #define GTA_PS2_STUFF
 
diff --git a/src/entities/Entity.cpp b/src/entities/Entity.cpp
index 7bacd421..e2b91552 100644
--- a/src/entities/Entity.cpp
+++ b/src/entities/Entity.cpp
@@ -60,10 +60,8 @@ CEntity::CEntity(void)
 	bMeleeProof = false;
 	bOnlyDamagedByPlayer = false;
 	bStreamingDontDelete = false;
-#ifdef GTA_ZONECULL
 	bZoneCulled = false;
 	bZoneCulled2 = false;
-#endif
 
 	bRemoveFromWorld = false;
 	bHasHitWall = false;
@@ -150,17 +148,6 @@ CEntity::GetIsOnScreenComplex(void)
 	return TheCamera.IsBoxVisible(boundBox, &TheCamera.GetCameraMatrix());
 }
 
-bool
-CEntity::GetIsOnScreenAndNotCulled(void)
-{
-#ifdef GTA_ZONECULL
-	return GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(this);
-#else
-	return GetIsOnScreen();
-#endif
-}
-
-
 void
 CEntity::Add(void)
 {
@@ -967,10 +954,8 @@ CEntity::SaveEntityFlags(uint8*& buf)
 	if (bMeleeProof) tmp |= BIT(27);
 	if (bOnlyDamagedByPlayer) tmp |= BIT(28);
 	if (bStreamingDontDelete) tmp |= BIT(29);
-#ifdef GTA_ZONECULL
 	if (bZoneCulled) tmp |= BIT(30);
 	if (bZoneCulled2) tmp |= BIT(31);
-#endif
 
 	WriteSaveBuf<uint32>(buf, tmp);
 
@@ -1022,10 +1007,8 @@ CEntity::LoadEntityFlags(uint8*& buf)
 	bMeleeProof = !!(tmp & BIT(27));
 	bOnlyDamagedByPlayer = !!(tmp & BIT(28));
 	bStreamingDontDelete = !!(tmp & BIT(29));
-#ifdef GTA_ZONECULL
 	bZoneCulled = !!(tmp & BIT(30));
 	bZoneCulled2 = !!(tmp & BIT(31));
-#endif
 
 	tmp = ReadSaveBuf<uint32>(buf);
 
diff --git a/src/entities/Entity.h b/src/entities/Entity.h
index 17353f97..7b1d4c07 100644
--- a/src/entities/Entity.h
+++ b/src/entities/Entity.h
@@ -68,10 +68,8 @@ public:
 	uint32 bMeleeProof : 1;
 	uint32 bOnlyDamagedByPlayer : 1;
 	uint32 bStreamingDontDelete : 1;	// Dont let the streaming remove this 
-#ifdef GTA_ZONECULL
 	uint32 bZoneCulled : 1;
 	uint32 bZoneCulled2 : 1;    // only treadables+10m
-#endif
 
 	// flagsD
 	uint32 bRemoveFromWorld : 1;		// remove this entity next time it should be processed
@@ -148,7 +146,6 @@ public:
 	bool GetIsTouching(CVector const &center, float r);
 	bool GetIsOnScreen(void);
 	bool GetIsOnScreenComplex(void);
-	bool GetIsOnScreenAndNotCulled(void);
 	bool IsVisible(void) { return m_rwObject && bIsVisible && GetIsOnScreen(); }
 	bool IsVisibleComplex(void) { return m_rwObject && bIsVisible && GetIsOnScreenComplex(); }
 	int16 GetModelIndex(void) const { return m_modelIndex; }
diff --git a/src/peds/CopPed.cpp b/src/peds/CopPed.cpp
index 72c89df2..99e8c1ae 100644
--- a/src/peds/CopPed.cpp
+++ b/src/peds/CopPed.cpp
@@ -709,7 +709,7 @@ CCopPed::ProcessControl(void)
 		return;
 
 	bool dontShoot = false;
-	if (GetIsOnScreenAndNotCulled()) {
+	if (GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(this)) {
 		if (((CTimer::GetFrameCounter() + m_randomSeed) & 0x1F) == 17) {
 			CEntity *foundBuilding = nil;
 			CColPoint foundCol;
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 107a4235..0c5e8fae 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -972,9 +972,7 @@ CRenderer::ScanSectorList(CPtrList *lists)
 				continue;	// already seen
 			ent->m_scanCode = CWorld::GetCurrentScanCode();
 
-#ifdef GTA_ZONECULL
 			if(IsEntityCullZoneVisible(ent))
-#endif
 				switch(SetupEntityVisibility(ent)){
 				case VIS_VISIBLE:
 					ms_aVisibleEntityPtrs[ms_nNoOfVisibleEntities++] = ent;
@@ -997,14 +995,12 @@ CRenderer::ScanSectorList(CPtrList *lists)
 							CStreaming::RequestModel(ent->GetModelIndex(), 0);
 					break;
 				}
-#ifdef GTA_ZONECULL
 			else if(ent->IsBuilding() && ((CBuilding*)ent)->GetIsATreadable()){
 				if(!CStreaming::ms_disableStreaming)
 					if(SetupEntityVisibility(ent) == VIS_STREAMME)
 						if(!m_loadingPriority || CStreaming::ms_numModelsRequested < 10)
 							CStreaming::RequestModel(ent->GetModelIndex(), 0);
 			}
-#endif
 		}
 	}
 }
@@ -1026,9 +1022,7 @@ CRenderer::ScanSectorList_Priority(CPtrList *lists)
 				continue;	// already seen
 			ent->m_scanCode = CWorld::GetCurrentScanCode();
 
-#ifdef GTA_ZONECULL
 			if(IsEntityCullZoneVisible(ent))
-#endif
 				switch(SetupEntityVisibility(ent)){
 				case VIS_VISIBLE:
 					ms_aVisibleEntityPtrs[ms_nNoOfVisibleEntities++] = ent;
@@ -1053,13 +1047,11 @@ CRenderer::ScanSectorList_Priority(CPtrList *lists)
 					}
 					break;
 				}
-#ifdef GTA_ZONECULL
 			else if(ent->IsBuilding() && ((CBuilding*)ent)->GetIsATreadable()){
 				if(!CStreaming::ms_disableStreaming)
 					if(SetupEntityVisibility(ent) == VIS_STREAMME)
 						CStreaming::RequestModel(ent->GetModelIndex(), 0);
 			}
-#endif
 		}
 	}
 }
@@ -1112,9 +1104,7 @@ CRenderer::ScanSectorList_RequestModels(CPtrList *lists)
 			if(ent->m_scanCode == CWorld::GetCurrentScanCode())
 				continue;	// already seen
 			ent->m_scanCode = CWorld::GetCurrentScanCode();
-#ifdef GTA_ZONECULL
 			if(IsEntityCullZoneVisible(ent))
-#endif
 			if(ShouldModelBeStreamed(ent))
 				CStreaming::RequestModel(ent->GetModelIndex(), 0);
 		}
@@ -1160,7 +1150,6 @@ CRenderer::ShouldModelBeStreamed(CEntity *ent)
 		return dist - FADE_DISTANCE - STREAM_DISTANCE < mi->GetLargestLodDistance();
 }
 
-#ifdef GTA_ZONECULL
 bool
 CRenderer::IsEntityCullZoneVisible(CEntity *ent)
 {
@@ -1203,7 +1192,6 @@ CRenderer::IsVehicleCullZoneVisible(CEntity *ent)
 		return !(v->m_pCurGroundEntity && v->m_pCurGroundEntity->bZoneCulled2);
 	return true;
 }
-#endif
 
 void
 CRenderer::RemoveVehiclePedLights(CEntity *ent, bool reset)
diff --git a/src/render/Renderer.h b/src/render/Renderer.h
index e28995c3..362741e3 100644
--- a/src/render/Renderer.h
+++ b/src/render/Renderer.h
@@ -64,10 +64,8 @@ public:
 	static void SortBIGBuildingsForSectorList(CPtrList *list);
 
 	static bool ShouldModelBeStreamed(CEntity *ent);
-#ifdef GTA_ZONECULL
 	static bool IsEntityCullZoneVisible(CEntity *ent);
 	static bool IsVehicleCullZoneVisible(CEntity *ent);
-#endif
 
 	static void RemoveVehiclePedLights(CEntity *ent, bool reset);
 };
diff --git a/src/vehicles/Train.cpp b/src/vehicles/Train.cpp
index fef712e6..7831a0c8 100644
--- a/src/vehicles/Train.cpp
+++ b/src/vehicles/Train.cpp
@@ -38,7 +38,6 @@ CVector CTrain::aStationCoors_S[4];
 CTrain::CTrain(int32 id, uint8 CreatedBy)
  : CVehicle(CreatedBy)
 {
-#ifdef GTA_TRAIN
 	CVehicleModelInfo *mi = (CVehicleModelInfo*)CModelInfo::GetModelInfo(id);
 	m_vehType = VEHICLE_TYPE_TRAIN;
 	pHandling = mod_HandlingManager.GetHandlingData((eHandlingId)mi->m_handlingId);
@@ -61,28 +60,22 @@ CTrain::CTrain(int32 id, uint8 CreatedBy)
 
 	bUsesCollision = true;
 	SetStatus(STATUS_TRAIN_MOVING);
-#else
-	assert(0 && "No trains in this game");
-#endif
 }
 
 void
 CTrain::SetModelIndex(uint32 id)
 {
-#ifdef GTA_TRAIN
 	int i;
 
 	CVehicle::SetModelIndex(id);
 	for(i = 0; i < NUM_TRAIN_NODES; i++)
 		m_aTrainNodes[i] = nil;
 	CClumpModelInfo::FillFrameArray(GetClump(), m_aTrainNodes);
-#endif
 }
 
 void
 CTrain::ProcessControl(void)
 {
-#ifdef GTA_TRAIN
 	if(gbModelViewer || m_isFarAway && (CTimer::GetFrameCounter() + m_nWagonId) & 0xF)
 		return;
 
@@ -285,13 +278,11 @@ CTrain::ProcessControl(void)
 				TrainHitStuff(s->m_lists[ENTITYLIST_PEDS_OVERLAP]);
 			}
 	}
-#endif GTA_TRAIN
 }
 
 void
 CTrain::PreRender(void)
 {
-#ifdef GTA_TRAIN
 	CVehicleModelInfo *mi = (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex());
 
 	if(m_bIsFirstWagon){
@@ -351,21 +342,17 @@ CTrain::PreRender(void)
 			CCoronas::TYPE_NORMAL, CCoronas::FLARE_NONE, CCoronas::REFLECTION_ON,
 			CCoronas::LOSCHECK_OFF, CCoronas::STREAK_ON, 0.0f);
 	}
-#endif
 }
 
 void
 CTrain::Render(void)
 {
-#ifdef GTA_TRAIN
 	CEntity::Render();
-#endif
 }
 
 void
 CTrain::TrainHitStuff(CPtrList &list)
 {
-#ifdef GTA_TRAIN
 	CPtrNode *node;
 	CPhysical *phys;
 
@@ -374,13 +361,11 @@ CTrain::TrainHitStuff(CPtrList &list)
 		if(phys != this && Abs(this->GetPosition().z - phys->GetPosition().z) < 1.5f)
 			phys->bHitByTrain = true;
 	}
-#endif
 }
 
 void
 CTrain::AddPassenger(CPed *ped)
 {
-#ifdef GTA_TRAIN
 	int i = ped->m_vehEnterType;
 	if((i == TRAIN_POS_LEFT_ENTRY || i == TRAIN_POS_MID_ENTRY || i == TRAIN_POS_RIGHT_ENTRY) && pPassengers[i] == nil){
 		pPassengers[i] = ped;
@@ -393,13 +378,11 @@ CTrain::AddPassenger(CPed *ped)
 				return;
 			}
 	}
-#endif
 }
 
 void
 CTrain::OpenTrainDoor(float ratio)
 {
-#ifdef GTA_TRAIN
 	if(m_rwObject == nil)
 		return;
 
@@ -424,7 +407,6 @@ CTrain::OpenTrainDoor(float ratio)
 
 	doorL.UpdateRW();
 	doorR.UpdateRW();
-#endif
 }
 
 
@@ -432,7 +414,6 @@ CTrain::OpenTrainDoor(float ratio)
 void
 CTrain::InitTrains(void)
 {
-#ifdef GTA_TRAIN
 	int i, j;
 	CTrain *train;
 
@@ -499,25 +480,21 @@ CTrain::InitTrains(void)
 		for(j = 0; pTrackNodes_S[j].t < StationDist_S[i]; j++);
 		aStationCoors_S[i] = pTrackNodes_S[j].p;
 	}
-#endif
 }
 
 void
 CTrain::Shutdown(void)
 {
-#ifdef GTA_TRAIN
 	delete[] pTrackNodes;
 	delete[] pTrackNodes_S;
 	pTrackNodes = nil;
 	pTrackNodes_S = nil;
-#endif
 }
 
 void
 CTrain::ReadAndInterpretTrackFile(char *filename, CTrainNode **nodes, int16 *numNodes, int32 numStations, float *stationDists,
 		float *totalLength, float *totalDuration, CTrainInterpolationLine *interpLines, bool rightRail)
 {
-#ifdef GTA_TRAIN
 	bool readingFile = false;
 	int bp, lp;
 	int i, tmp;
@@ -639,7 +616,6 @@ CTrain::ReadAndInterpretTrackFile(char *filename, CTrainNode **nodes, int16 *num
 
 	// end
 	interpLines[j].time = *totalDuration;
-#endif
 }
 
 void
@@ -651,7 +627,6 @@ ProcessTrainAnnouncements(void)
 void
 CTrain::UpdateTrains(void)
 {
-#ifdef GTA_TRAIN
 	int i, j;
 	uint32 time;
 	float t, deltaT;
@@ -715,5 +690,4 @@ CTrain::UpdateTrains(void)
 		// time offset for each train
 		time += 0x40000/4;
 	}
-#endif
 }