mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
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:
+24
-8
@@ -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!
|
||||
|
||||
Reference in New Issue
Block a user