Some cleanups. Room for many more.
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1860 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -570,23 +570,24 @@ CheckObjectCollision (COUNT index)
|
|||||||
for (; index != END_OF_LIST; index = GetPredLink (GetPrimLinks (pPrim)))
|
for (; index != END_OF_LIST; index = GetPredLink (GetPrimLinks (pPrim)))
|
||||||
{
|
{
|
||||||
INTERSECT_CONTROL ElementControl;
|
INTERSECT_CONTROL ElementControl;
|
||||||
|
HELEMENT hElement, hNextElement;
|
||||||
|
|
||||||
pPrim = &DisplayArray[index];
|
pPrim = &DisplayArray[index];
|
||||||
ElementControl.IntersectStamp = pPrim->Object.Stamp;
|
ElementControl.IntersectStamp = pPrim->Object.Stamp;
|
||||||
ElementControl.EndPoint =
|
ElementControl.EndPoint = ElementControl.IntersectStamp.origin;
|
||||||
ElementControl.IntersectStamp.origin;
|
|
||||||
|
|
||||||
if (GetFrameHandle (
|
if (GetFrameHandle (ElementControl.IntersectStamp.frame)
|
||||||
ElementControl.IntersectStamp.frame
|
== LanderHandle)
|
||||||
) == LanderHandle)
|
|
||||||
CheckObjectCollision (index);
|
|
||||||
else if (DrawablesIntersect (&LanderControl,
|
|
||||||
&ElementControl, MAX_TIME_VALUE))
|
|
||||||
{
|
{
|
||||||
HELEMENT hElement, hNextElement;
|
CheckObjectCollision (index);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (hElement = GetHeadElement ();
|
if (!DrawablesIntersect (&LanderControl,
|
||||||
hElement; hElement = hNextElement)
|
&ElementControl, MAX_TIME_VALUE))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (hElement = GetHeadElement (); hElement; hElement = hNextElement)
|
||||||
{
|
{
|
||||||
ELEMENTPTR ElementPtr;
|
ELEMENTPTR ElementPtr;
|
||||||
|
|
||||||
@@ -597,11 +598,16 @@ CheckObjectCollision (COUNT index)
|
|||||||
{
|
{
|
||||||
ElementPtr->state_flags |= DISAPPEARING;
|
ElementPtr->state_flags |= DISAPPEARING;
|
||||||
UnlockElement (hElement);
|
UnlockElement (hElement);
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (&DisplayArray[ElementPtr->PrimIndex] == pPrim
|
|
||||||
&& (ElementPtr->state_flags & BAD_GUY))
|
if (&DisplayArray[ElementPtr->PrimIndex] != pPrim
|
||||||
|
|| !(ElementPtr->state_flags & BAD_GUY))
|
||||||
|
{
|
||||||
|
UnlockElement (hElement);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
COUNT scan, NumRetrieved;
|
COUNT scan, NumRetrieved;
|
||||||
SIZE which_node;
|
SIZE which_node;
|
||||||
@@ -613,9 +619,9 @@ CheckObjectCollision (COUNT index)
|
|||||||
|| pPSD->InTransit)
|
|| pPSD->InTransit)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* if a natural disaster */
|
|
||||||
if (ElementPtr->state_flags & FINITE_LIFE)
|
if (ElementPtr->state_flags & FINITE_LIFE)
|
||||||
{
|
{
|
||||||
|
/* A natural disaster */
|
||||||
scan = ElementPtr->mass_points;
|
scan = ElementPtr->mass_points;
|
||||||
switch (scan)
|
switch (scan)
|
||||||
{
|
{
|
||||||
@@ -635,7 +641,7 @@ CheckObjectCollision (COUNT index)
|
|||||||
{
|
{
|
||||||
DWORD TimeIn;
|
DWORD TimeIn;
|
||||||
|
|
||||||
/* ran into Spathi on Pluto */
|
/* Ran into Spathi on Pluto */
|
||||||
TimeIn = GetTimeCounter ();
|
TimeIn = GetTimeCounter ();
|
||||||
which_node = 8;
|
which_node = 8;
|
||||||
do
|
do
|
||||||
@@ -671,14 +677,14 @@ CheckObjectCollision (COUNT index)
|
|||||||
{
|
{
|
||||||
0, 6, 13, 26
|
0, 6, 13, 26
|
||||||
};
|
};
|
||||||
|
int creatureIndex = ElementPtr->mass_points
|
||||||
|
& ~CREATURE_AWARE;
|
||||||
|
int dangerLevel =
|
||||||
|
(CreatureData[creatureIndex].Attributes &
|
||||||
|
DANGER_MASK) >> DANGER_SHIFT;
|
||||||
|
|
||||||
if (((COUNT)TFB_Random () & 127) < danger_vals[
|
if (((COUNT)TFB_Random () & 127) <
|
||||||
(CreatureData[
|
danger_vals[dangerLevel])
|
||||||
ElementPtr->mass_points
|
|
||||||
& ~CREATURE_AWARE
|
|
||||||
].Attributes & DANGER_MASK)
|
|
||||||
>> DANGER_SHIFT
|
|
||||||
])
|
|
||||||
{
|
{
|
||||||
PlaySound (SetAbsSoundIndex (
|
PlaySound (SetAbsSoundIndex (
|
||||||
LanderSounds, BIOLOGICAL_DISASTER
|
LanderSounds, BIOLOGICAL_DISASTER
|
||||||
@@ -745,7 +751,9 @@ CheckObjectCollision (COUNT index)
|
|||||||
SetPrimColor (pPrim, WHITE_COLOR);
|
SetPrimColor (pPrim, WHITE_COLOR);
|
||||||
|
|
||||||
PlaySound (SetAbsSoundIndex (
|
PlaySound (SetAbsSoundIndex (
|
||||||
LanderSounds, LANDER_HITS), NotPositional (), NULL, GAME_SOUND_PRIORITY);
|
LanderSounds, LANDER_HITS),
|
||||||
|
NotPositional (), NULL,
|
||||||
|
GAME_SOUND_PRIORITY);
|
||||||
}
|
}
|
||||||
UnlockElement (hElement);
|
UnlockElement (hElement);
|
||||||
break;
|
break;
|
||||||
@@ -856,11 +864,6 @@ CheckObjectCollision (COUNT index)
|
|||||||
}
|
}
|
||||||
UnlockElement (hElement);
|
UnlockElement (hElement);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
UnlockElement (hElement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user