Added requirements for thrown object to break window glass:

- ubWeight >= 4
- sinks
- not unaerodynamic
- made of metal or rock

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9236 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2022-01-06 12:54:34 +00:00
parent f986129ab7
commit 6704eca440
+24 -8
View File
@@ -975,7 +975,6 @@ BOOLEAN PhysicsCheckForCollisions( REAL_OBJECT *pObject, INT32 *piCollisionID )
*piCollisionID = iCollisionCode;
// If We hit the ground
if ( iCollisionCode > COLLISION_NONE )
{
@@ -990,17 +989,34 @@ BOOLEAN PhysicsCheckForCollisions( REAL_OBJECT *pObject, INT32 *piCollisionID )
if ( iCollisionCode == COLLISION_WINDOW_NORTHWEST || iCollisionCode == COLLISION_WINDOW_NORTHEAST || iCollisionCode == COLLISION_WINDOW_SOUTHWEST || iCollisionCode == COLLISION_WINDOW_SOUTHEAST )
{
if ( !pObject->fTestObject )
// sevenfm: added requirements for object to break window
if (Item[pObject->Obj.usItem].ubWeight >= 4 &&
Item[pObject->Obj.usItem].sinks &&
!Item[pObject->Obj.usItem].unaerodynamic &&
(Item[pObject->Obj.usItem].metal || Item[pObject->Obj.usItem].rock))
{
// Break window!
PhysicsDebugMsg( String( "Object %d: Collision Window", pObject->iID ) );
if (!pObject->fTestObject)
{
// Break window!
PhysicsDebugMsg(String("Object %d: Collision Window", pObject->iID));
sGridNo = MAPROWCOLTOPOS( ( (INT16)pObject->Position.y / CELL_Y_SIZE ), ( (INT16)pObject->Position.x / CELL_X_SIZE ) );
sGridNo = MAPROWCOLTOPOS(((INT16)pObject->Position.y / CELL_Y_SIZE), ((INT16)pObject->Position.x / CELL_X_SIZE));
ObjectHitWindow( sGridNo, usStructureID, FALSE, TRUE );
ObjectHitWindow(sGridNo, usStructureID, FALSE, TRUE);
}
*piCollisionID = COLLISION_NONE;
return(FALSE);
}
else
{
// A wall, do stuff
vTemp.x = dNormalX;
vTemp.y = dNormalY;
vTemp.z = dNormalZ;
fDoCollision = TRUE;
dElasity = (float)1.1;
}
*piCollisionID = COLLISION_NONE;
return( FALSE );
}
// ATE: IF detonate on impact, stop now!