mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +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;
|
*piCollisionID = iCollisionCode;
|
||||||
|
|
||||||
|
|
||||||
// If We hit the ground
|
// If We hit the ground
|
||||||
if ( iCollisionCode > COLLISION_NONE )
|
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 ( 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!
|
if (!pObject->fTestObject)
|
||||||
PhysicsDebugMsg( String( "Object %d: Collision Window", pObject->iID ) );
|
{
|
||||||
|
// 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!
|
// ATE: IF detonate on impact, stop now!
|
||||||
|
|||||||
Reference in New Issue
Block a user