diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index 4c98844f..111d9aa7 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -525,6 +525,11 @@ ADDITIONAL_TILE_PROPERTIES_VALUES GetAllAdditonalTilePropertiesForGrid( const IN BOOLEAN fFoundBottom = FALSE; memset(&ubAllTileProperties,0,sizeof(ubAllTileProperties)); + if( !( sGridNo > -1 && sGridNo < WORLD_MAX ) || !( bLevel == FIRST_LEVEL || bLevel == SECOND_LEVEL ) ) + { + // incorrect argument values, what the hell? + return ubAllTileProperties; + } for(UINT8 ubCnt=0; ubCnt<5 && !fFoundBottom; ubCnt++) { if (bLevel == I_ROOF_LEVEL) @@ -566,11 +571,10 @@ ADDITIONAL_TILE_PROPERTIES_VALUES GetAllAdditonalTilePropertiesForGrid( const IN break; } } - if( pNode!= NULL ) + if( pNode!= NULL && pNode->usIndex < NUMBEROFTILES ) { iWoodCamoAffinity += gTileDatabase[ pNode->usIndex ].bWoodCamoAffinity; - iDesertCamoAffinity += gTileDatabase[ pNode->usIndex ].bDesertCamoAffinity; - iUrbanCamoAffinity += gTileDatabase[ pNode->usIndex ].bUrbanCamoAffinity; + iDesertCamoAffinity += gTileDatabase[ pNode->usIndex ].bDesertCamoAffinity; iUrbanCamoAffinity += gTileDatabase[ pNode->usIndex ].bUrbanCamoAffinity; iSnowCamoAffinity += gTileDatabase[ pNode->usIndex ].bSnowCamoAffinity; iCamoStanceModifer += gTileDatabase[ pNode->usIndex ].bCamoStanceModifer; diff --git a/TileEngine/lighting.cpp b/TileEngine/lighting.cpp index bc74b666..e4ab604a 100644 --- a/TileEngine/lighting.cpp +++ b/TileEngine/lighting.cpp @@ -762,11 +762,14 @@ UINT8 LightTrueLevel( INT32 sGridNo, INT16 bLevel ) { LEVELNODE* pShadowNode = NULL; if(!(pStructure->fFlags & STRUCTURE_BASE_TILE)) - pShadowNode = gpWorldLevelData[ FindBaseStructure(pStructure)->sGridNo ].pShadowHead; + { + STRUCTURE* pBaseStructure = FindBaseStructure(pStructure); + if( pBaseStructure != NULL ) + pShadowNode = gpWorldLevelData[ pBaseStructure->sGridNo ].pShadowHead; + } else pShadowNode = gpWorldLevelData[ sNewGridNo ].pShadowHead; - if(pShadowNode != NULL) - { + if(pShadowNode != NULL) { iSum += max( 0, (StructureHeight(pStructure) - 1 ) ); } }