fixed boat rendering

This commit is contained in:
aap 2019-07-03 14:06:26 +02:00
parent 738bde1c15
commit 936a8e8351
1 changed files with 12 additions and 9 deletions

View File

@ -222,16 +222,16 @@ CRenderer::RenderEverythingBarRoads(void)
if(e->IsVehicle() ||
e->IsPed() && CVisibilityPlugins::GetClumpAlpha((RpClump*)e->m_rwObject) != 255){
if(e->IsVehicle() && ((CVehicle*)e)->IsBoat()){
ei.ent = e;
dist = ms_vecCameraPosition - e->GetPosition();
ei.sort = dist.MagnitudeSqr();
gSortedVehiclesAndPeds.InsertSorted(ei);
}else{
dist = ms_vecCameraPosition - e->GetPosition();
if(!CVisibilityPlugins::InsertEntityIntoSortedList(e, dist.Magnitude())){
printf("Ran out of space in alpha entity list");
RenderOneNonRoad(e);
}
}else{
ei.ent = e;
dist = ms_vecCameraPosition - e->GetPosition();
ei.sort = dist.MagnitudeSqr();
gSortedVehiclesAndPeds.InsertSorted(ei);
}
}else
RenderOneNonRoad(e);
@ -241,15 +241,17 @@ CRenderer::RenderEverythingBarRoads(void)
void
CRenderer::RenderVehiclesButNotBoats(void)
{
// This function doesn't do anything
// because only boats are inserted into the list
CLink<EntityInfo> *node;
for(node = gSortedVehiclesAndPeds.tail.prev;
node != &gSortedVehiclesAndPeds.head;
node = node->prev){
// only boats in this list
CVehicle *v = (CVehicle*)node->item.ent;
if(v->IsVehicle() && v->IsBoat()) // BUG: IsVehicle missing in III
continue;
RenderOneNonRoad(v);
if(!v->IsBoat())
RenderOneNonRoad(v);
}
}
@ -261,8 +263,9 @@ CRenderer::RenderBoats(void)
for(node = gSortedVehiclesAndPeds.tail.prev;
node != &gSortedVehiclesAndPeds.head;
node = node->prev){
// only boats in this list
CVehicle *v = (CVehicle*)node->item.ent;
if(v->IsVehicle() && v->IsBoat()) // BUG: IsVehicle missing in III
if(v->IsBoat())
RenderOneNonRoad(v);
}
}