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