Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CStreamSector *__cdecl CShadows::CastPedShadowSectorList(CStreamSector **pStreamSector, float cornerL_X, float cornerL_Y, float cornerU_X, float cornerU_Y, int shadowCenter, float X2, float Y2, int X1, int Y1, char intensity, int red, int green, int blue, int Zdistance, int posCorrection, int zero, CShadowData *shadowData, int pResult)
- {
- CStreamSector *streamSector; // eax@1
- CEntity *entity; // esi@4
- RwV3D *_pPosition; // eax@13
- CMatrix *matrix?; // ecx@13
- CColModel *Collision; // edx@15
- RwV3D *pPosition; // eax@16
- float rect.CornerA.x; // [sp+4h] [bp-10h]@9
- float rect.CornerA.y; // [sp+8h] [bp-Ch]@11
- float rect.CornerB.x; // [sp+Ch] [bp-8h]@9
- float rect.CornerB.y; // [sp+10h] [bp-4h]@12
- int pNextEntity; // [sp+18h] [bp+4h]@4
- streamSector = *pStreamSector;
- if ( *pStreamSector )
- {
- while ( 1 )
- {
- entity = streamSector->pEntities1;
- pNextEntity = streamSector->pEntities2;
- if ( *(streamSector->pEntities1 + 0x2C) != ms_nCurrentScanCode )
- {
- entity->m_nScanCode = ms_nCurrentScanCode;
- if ( entity->flags & 1 )
- {
- if ( !(BYTE2(entity->flags) & 1) && (entity->m_nbInterior == activeInterior || entity->m_nbInterior == 13) )
- {
- (*(entity->__parent.__vmt + 0x24))(entity, &rect.CornerA.x);// CEntity::getBoundRect
- if ( cornerL_X < rect.CornerB.x )
- {
- if ( cornerU_X > rect.CornerA.x && cornerL_Y < rect.CornerA.y && cornerU_Y > rect.CornerB.y )
- {
- matrix? = entity->__parent.m_pCoords;
- _pPosition = &matrix?->matrix.pos;
- if ( !matrix? )
- _pPosition = &entity->__parent.placement.pos;
- Collision = modelPtrs[entity->m_wModelIndex]->m_pColModel;
- if ( Collision->bbox.inf.z + _pPosition->z > *(shadowCenter + 8) - *&Zdistance )
- {
- pPosition = &matrix?->matrix.pos;
- if ( !matrix? )
- pPosition = &entity->__parent.placement.pos;
- if ( Collision->bbox.sup.z + pPosition->z < *(shadowCenter + 8) )
- CShadows::castPedShadowEntity(
- entity,
- shadowCenter,
- X2,
- Y2,
- X1,
- Y1,
- intensity,
- red,
- green,
- blue,
- Zdistance,
- posCorrection,
- zero,
- shadowData);
- }
- }
- }
- }
- }
- }
- streamSector = pNextEntity;
- if ( !pNextEntity )
- break;
- streamSector = pNextEntity;
- }
- }
- return streamSector;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement